Thursday, 21 March 2013

Daily Progress

Day 1, 20th March: Finished the Proposal Form, but not to a good standard. However I still have tomorrow so I will fine-tune it then.

Day 2, 21st March: Went over the Proposal Form again and made minor grammatical changes. I also realised I did not have enough in the 9 week plan so I added a fair amount.

Day 3, 22nd March: Watched a video on good game design. Learned of conveyance and easing players into games using the first level as a tutorial of sorts, without the need for a huge amount of text teaching you how, or one of these:



Day 4, 23rd March: Thinking about what was learned yesterday, I wanted to come up with ideas of how I can let the player learn, themselves, what they need to do very early into the game. I will map the controls to common control-schemes (example, WASD to move) and at the very start make clear which way you'll need to travel (always to the right, I will start the first level with an impassable wall to the left) and something to jump over that, if failed, will NOT cause death, as it will be a learning curve. Perhaps several fails will equals death, but it must be somewhat forgiving at the start.

Day 5, 28th March: Started research on the games I'd like mine to be compared to/seen as culminations of the best parts of. Today, I played a little bit of Donkey Kong from 1981 and wrote about it on a different post in this blog.

Day 6, 29th March: After playing Mario's first game yesterday, I looked at his first major one as central character. I watched a play-through of Mario Bros. from 1985. I was surprised to find the date of this, the fact that it was only made a few years after Donkey Kong and yet looked so much more developed. I wrote more on the blog post.

Day 7, 30th March: Same again, watched a playthrough of Supermeatboy. Wrote more onto the post about its controls, looks and overall feel.

Day 8, 1st April: Realised I had not analysed the video I watched at the start, so I did that on the research blog today.

Day 9, 5th April: Today I thought of a name, story and title screen for the game. I wanted to do the name and title screen first, so I created a simple but effective background with some text for the name (I chose "Mega Bario Siblings"). This is that title screen.



Day 10, 6th April: Today I finally got around to writing the story. It is about a retired handyman who discovers a hidden world inside a sewer pipe outside his home - and this world seems to be entirely in 2d!

Day 11, 10th April: Drew the character in a few different forms. I drew a polygon-style form, detailed form and a small sprite-like one.

Day 12, 11th April: After drawing the character yesterday, I decided to design and draw a basic version of the level I am to be creating.

Day 13, 17th April: Today I created the music for the game's level. I already had an idea of the feel of the level: a mysterious, icy level so I tried to make the music match this. Sometime after, I changed it a bit by adding a drum beat - this made it become a little more fast paced and action-like and I believe this change is good.

Day 14, 18th April: Created quite a few prefabs to be imported into Unity later on, which are files with the .fbx extension exported using Cinema 4D. I made a rock, some floor tiles, spikes, a wall and a pressure panel.

Day 15, 23rd April: As my proposal was only on my hard drive, I decided to kill two birds with one stone today: I put the proposal onto blogger to both back it up, and to make it visible to be looked at, at any time.
I could not find a good way to upload it onto there, so it is a bit off, but should be readable.

Day 16, 24th April: Started making the character in Cinema 4D. It was not going great because I forgot how to model properly. As soon as I watched a couple of tutorials, I remembered and managed to model a few parts. By this time, however, I was almost finished and most of my character was just standard objects manipulated to join each other and shaped as I wanted them.

Day 17, 25th April: Today, I started rigging the character. This is necessary for any animation the character might do during the game, such as jumping, crouching, punching and of course a walk cycle. I used this tutorial for the basics on rigging.
Day 18, 26th April: Today fixed my rigging and was able to create the walk cycle, after some trouble. 
After this, I went on to make the other animations: the jump animation and the punch animation.

Day 19, 2nd May: The harder stuff has definitely come. Today, I imported my character into Unity and managed to get the walk cycle animation to animate only when the character moves. I also scripted a turn animation; when you press left, he turns left and when you press right he turns right. This was a small but important thing to get out of the way.

Day 20, 3rd May: Had trouble most of today. First, I didn't realise what the 'slope' feature did in the character's script, but only after a long time working around it, I realised it actually stops my character from walking up edges and slopes automatically and not just walking to them. I had accidentally set it to 0 so he got stuck on even the slightest elevation, which was very annoying. After fixing this, I did a small amount of level building. 

Day 21, 4th May: Continuing with the level building, I managed to make a snow effect so that I could have a constant particle effect going on in the foreground/background of my scene that looked like snow. This was a nice touch, I thought, and fits somewhat nicely with the music. I also created the panel which releases the boulder, but as of right now, I can't quite get the boulder right: It is easily pushed by the character, which is definitely not how it should be. I aim to make the boulder much heavier than the character so that if it hits the character, they will be dragged back by it, as a sort of penalty if you do not jump over the boulder properly. 

Day 22, 8th May: Continuing again to try and fix the problem I had, I finally managed to get it right. Using tags and variables, I set it up so that only the player can be affected by the boulder and I just made the boulder teleport player back to his spawn point. From here, I need to make the health bar work. 

Day 23, 9th May: Instead of the health bar, which I'm going to leave for now, I decided to make the rest of the level using the tile prefabs I had. I did this and by the end felt that what I had was not long enough, so now I want to add more to the level before I finish it. 

Day 24, 10th May: As I couldn't get it to work, and it would be a pain anyway, I've completely scrapped the health bar. What I'll be doing now is simply one-hit killing, but setting up a checkpoint or two within the game. To do this is simple, I just set any spikes/boulders after the 'checkpoint' to not send you back to the spawn empty I made earlier; you will be sent to a new empty which I will place on that checkpoint.
Along with this, I set up some gas below the 'pitfalls'. This is to show you that falling there WILL kill you, and a very subtle (and by very subtle, I mean I doubt anyone will even notice this) hint at where to go at one point. I'll speak of that point here anyway - there will come a time where there is nowhere to go besides falling down a hole, a leap of faith must be made. At this point, the ONE hole that has no gas below it will be the safe one. The others will kill you. I do hope people playing the game notice this as I believe it's an innovative way of giving the player a choice based on their own awareness of the game's design even that early into it.

Day 25, 12th May: While today I didn't do anything in the game, I did come up with a few things I need to implement soon. These are putting in the titleGUI and having it send you to the game or a help screen, and having an enemy or moving obstacle. As so far I only have a boulder that rolls towards you slowly and static spikes, I feel like I should add something like a painful obstacle that moves left and right at some pace that you must jump over at the right time. That, or I could have the obstacle move up and down so you must time it well not with jumping, but with running quickly underneath. I'll decide which is better when I get to it.

Another thing I could add is music for that titleGUI (or title scene, really) which plays while you are seeing it but stops as soon as you hit 'play'.

Day 26, 14th May: I decided the first thing I should do is quickly import my title and create a couple of scenes. One for the title screen and one for the help screen. So I did this and added some scripting to send you to the appropriate scene whenever certain buttons are clicked. This is all I did for now as I'll have to create some music for the title screen, and this will have to wait until I have the appropriate software.

Day 27, 15th May: Created a tree prefab as a sort of background graphic to make the game look nicer. I also applied the toon shader to things to give them that cartoon style I've been trying to achieve, and I think it looks great. Tomorrow, I should be able to finish the game level. I'll then make the title music, possibly record some sound effects, and then I'll be done. 

Day 28, 16th May: Today I tried changing the background. As my game is 2d, I could do this simply by creating and rotating a plane and applying a large sized material onto it. I did this but it didn't look as nice as I hoped, so I put the skybox back in. I also added sound effects to certain things, like the jump, when you fall for a trap, and when you get hit and respawn, along with the title screen's music which I used Garage Band to create.

Day 29, 17th May: Today I found a Youtube tutorial which helped me out massively in creating check points. I had originally placed in a mechanic that makes the character go to a different spawn point on death, but this didn't work as there were conflicting scripts. The video is below and it is what I used to make the spawn point, which was the same throughout and all scripts redirected to it, simply move to where the checkpoint object is. This, after testing, worked perfectly.




Day 30, 18th May: I realised, finally, what my game was missing: an end! So, I made a gui and an animated object to send you to a new scene which contains this end GUI. I used Unity's in-built animation option and made it spin erratically on the spot.

Day 31, 22nd May: I've added music to the end which is a nice little celebratory jingle. I believe this, with its 8-bit sound and its upbeat-ness, perfectly fits the end as you have just reached the end of the level in a game which is massively inspired upon those old games where 8 bits was a limitation. 

Day 32, 23rd May: More research on my 'research' blog. I added what the games' styles are, my opinion on this, and even added a few more games and wrote about these, too. I am happy with what I have there, now. 

Day 33, 24th May: Another addition to the blog. I wrote about some problems I was facing and how I overcame them. The main focus was with my control script, which did not allow me to use moving platforms and forced me to use jumps which you must commit to, whose trajectory you cannot alter after you press the jump button. Also updated the research a little more. 

Day 34, 25th May: After noting that moving platforms do not work well in my game, I removed the one I had in there. I replaced it with three separate platforms, over spikes, which I believe to be a small rhythmic challenge as you are forced to stay moving forward whilst jumping, it is all in the timing. 
Here are those platforms, originally intended to be trampolines but I could not get the script to work:

Day 35, 26th May: Today, I experimented with Parallax Scrolling. And it was a success, so I'll keep it in! I will go back and make the backgrounds look a lot nicer, but for now it looks like this: 

The first background goes in the opposite direction of the player, whereas the second background follows very slowly. To get this to work, I input this code, which I have noted.

#pragma strict
//variables to assign in the Inspector
private var X : float;
var offset : int;
var FollowCamera : boolean;

//tells where X is, in this case, Camera's x position
function Start () {
X = Camera.main.transform.position.x;
}
//If following the camera, which is either ticked or unticked in the Inspector
function Update () {
if(FollowCamera) {
transform.position.x = (Camera.main.transform.position.x) -X/offset;
//scroll either following player or going opposite depending on ticked/unticked
} else {
transform.position.x = (X - Camera.main.transform.position.x) /offset;
}
}


Day 36, 27th May: After more testing, I found the parallax scrolling to be buggy and worse-looking than the skybox, so I removed it. Sometimes, it seems, adding all this complex stuff isn't actually a good thing overall. But it was good to reflect upon this.

Day 37, 28th May: Changed my Skybox to a darker one I found in my files. I prefer the looks of this one, so I am keeping it. I also changed the particle effects from sparkles to snowflake-like particles. 

Day 38, 30th May: Today I added in an actual enemy. I based it on a Toad, but to make it unique, I gave it a Pope hat and sceptre. This is to appear at the end of the level and goes back and forth, so it is effectively another obstacle, but I think it passes as an enemy.

Day 39, 2nd June: Almost time to hand in the final project. Just looking over the game again, I played through it and changed the part where you have to drop down a certain hole. As it wasn't very straightforward, I simply added the words "Leap of faith" and made there only one hole, but I removed the wall so you do not know which 'leap of faith' to make; it is up to the player's own judgement there.

Day 40, 5th June: Time to build the game. In the build settings, I made sure that the build was designated for Mac and Windows, and I made it the highest possible quality. I imported all the scenes in the correct order (shown below) so that when you play the game, you go to the Title screen first.
Now all that's left is an evaluation, which will be on a separate blog. 


No comments:

Post a Comment