Sunday 22 April 2012

Episode 14: Project Monkey


    When I first started this blog, one of my major reasons for setting it up was so that people could keep track of the games I would develop as an aspiring game developer. I haven’t posted anything related to that, until now. I have gotten tired of waiting for the rest of my team to get their act together so we can work on our game. The thing is we’re all busy with school and don’t have the extra time needed to work on a game. I am more passionate than the rest of them about making games, so I have decided to make my first game without them.
       This brings about more limitations. I have to make a simple game with simple game mechanics that I can actually complete all on my own. Also, I can only develop the game for Windows as I haven’t learned how to write programs for other platforms yet. So I decided to make a simple racing game. If I had to describe my game in one sentence to a fellow gamer, I would say that it is like a Mirror’s Edge or Prince of Persia racing game, or Mario Kart without the Karts. If I had to describe it to someone that knows little about games, I would say it’s an obstacle course racing game.
 A screenshot of the game running in real time. I know that's a bland energy bar at the top, but I won't fine-tune visual details until the gameplay works.

        The racers themselves will be characters from another game I have created conceptually, but won’t be able to develop until I’m working at a big studio. I’m calling this game “Project Monkey” until I come up with the final name for the game. I will constantly update this particular blog post (episode 14), so keep checking back here to monitor my progress and give your comments. Project Monkey is about two weeks old if you counted backwards from today, Sunday the 22nd of April but I don’t know the exact date I decided to work on this project. All I can say for sure is that I thought about the basic concept and the game mechanics for about four days before I started any work on the computer.
           I probably started coding the game exactly a week ago today. I had two tests to read for last week so I spent all my time either reading or coding, depending on whether or not there was any juice left in my laptop. Sometimes, there actually are advantages to the inconsistent power supply in my country. I probably won’t have been able to read for my tests if my laptop’s battery wasn’t sometimes dead. The thing with coding a game, or any other program for that matter, especially for an amateur like me who learns as he goes is that you may know exactly what you want the game to do, but you don’t know exactly how to tell the computer to make it do so. Brainstorming, trial and error, browsing through tutorials, etc steal so much of my time and whenever I’m away from the computer, unless I’m hanging out with friends at that moment, I’m probably figuring out a way around a particular problem. And on a good number of occasions, I don’t figure out what to do until I leave the computer.
 By the way, the code you see in the background ISN'T the one running this level! It just happened to be the tab I had open when I took the screenshot.

         I won’t discuss the game mechanics yet because I want to hear your comments on what I’ve said so far first. However, from the screenshots, you can see that I’m going for a cel-shaded art style (for non-gamers, that means cartoon-like graphics). My younger brother created the 3D model of the tiger-ish creature you see in the screenshot and he will pretty much be creating all the graphics I will use in this game (of course, I’ll download some free 3D models too). It’s still it’s a solo project, but I just don’t want to spend countless hours creating the sprites (2D images for you non-gamers) and 3D models that will be used in the game, when I still have to work on the level design, sound design, game mechanics and the time-consuming task of writing all of the codes by myself.

COPYRIGHT: Every character, game mechanic and other intellectual property that will be used in this game and posted on this blog, unless otherwise stated, belongs to me and was formulated by me alone. No plagiarism please. 


    Update 1: 30/04/2012 - Three Weeks into Development
       First of all, I apologize for posting a day later than promised. Believe it or not, for some reason I can't explain, the internet at my house didn't work on any computer, phone, tablet or 3DS yesterday but it worked on the TV. In any case, it's working now. So I have been working on Project Monkey for exactly eight days since my last post. I have made a little progress with programming the actions available to the only two characters I have been working with so far, but I think I will discuss my progress in my next post, which will hopefully be on the Sunday the 6th of May. For today's post, I want to introduce you to the game mechanics I have in mind.
         As I said earlier, it's a racing game with no vehicles. It's set in a fictional world inhabited by monsters. There are no humans in this world, though some monsters may look like humans. Each monster will have a special ability that gives him an edge while racing. A few will be able to fly, howbeit they will fly differently. Bird flight(like a plane) vs Insect flight(like a helicopter) vs Mammal flight(gliding). One monster will be able to swim well, even though he can still move on land and the tiger in the screenshots above will be able to wall-run. I have nine characters in total planned, though that may change by the final build.


You will not believe the crazy glitches I've been getting when I try to put jet boosters on his jetpacks!

          The energy gauge you see in the top right corner of the screenshots is not a life bar. It's an energy gauge that depletes whenever the player boosts his speed by holding down the boost button, whenever he uses any of his two special attacks and depending on what his special ability is, when he uses his special ability. It auto-refills overtime because I want to emphasize the fact that the monsters are using their natural abilities(and hence, natural energy) to race, so players will not be picking up power-ups to refill the energy gauge. The gauge takes about ten seconds to fill up from empty, and it always starts empty at the beginning of each race.
             Each character will have two special attacks to use to slow down other racers. I haven't yet figured out what to do about defending against attacks from other racers. A barrier that drains the energy gauge? A different defensive skill for each character? Or rely solely on dodging(there's a dodge mechanic for avoiding obstacles)? I'm open to suggestions. I'm also considering giving each character a finishing move that hits all other racers but can only be used once per race and completely drains the full energy bar. I doubt that will make it to the final game though, it might unbalance the game.
          There will be different game modes of course, but the core gameplay is obstacle course racing. Four monsters will race at once but the game will only support a maximum of two players and no online. I have three control methods planned. The keyboard and mouse controls, a USB pad and the wii mote. Wii motes can be connected to PCs by bluetooth so I hope to support these three control methods. I need your opinion on the movement controls. Would you rather move with the arrow keys on the right hand side of your keyboard and dodge with the W, A, S and D keys, or would you rather move with the keys on the left hand side and dodge with the arrow keys? I think I'll actually put up a poll for that.
           Finally, the reason I decided on "Project Monkey" was because monkeys remind me of a lot of the things that were going through my mind when I decided to make this game. When I think "monkey", I think "funny, excited, agile, fast, defiant, bold and cheeky creature". Those words pretty much summarize both my game, and my "forget them, I'm making a game on my own" attitude. Project Monkey dudes!


   Update 2: 06/05/2012 - A Month into Development
       Another week has gone by and I hardly made any progress since last week. That's not because I've been working without being productive, it's more because of two things. I'm on a little break from school, and I'm spending most of the day at my dad's office, creating software that he will use at work. After work, I could work on my game when I get home (like I do in school), but I'm at home now so I'd much rather spend that time doing something I can't do in school.
       So I spent all my free time playing Batman: Arkham City on PS3. I just beat the game about an hour before making this blog post. It took me a week to beat the main story with a 40% overall completion of the game. The in-game statistics says I've completed 40% of the game. It tells me to what extent I've completed each side mission (also expressed as a percentage), to what extent I've collected each type of collectible and weapon upgrade, etc. So there's still a lot to play, and I haven't played Catwoman's part yet.
      I consider Arkham City to be the fifth best single player game I've ever played, slightly edging out the Metroid games, which all rank equally to me and share the number six spot. The rest of my top five is
4. Metal Gear Solid 3: Snake Eater
3. Super Mario Galaxy 1 & 2
2. The Legend of Zelda: Majora's Mask
1. The Legend of Zelda: Ocarina of Time 

I know the booster looks crappy now, but I'll work on graphics when I get the gameplay down.

            I did make a little progress on my game though. At least, I got the jet booster sprite to work properly. It flickers as you fly and disappears once you land, just like it should. The thing with game development is you never know when and where a glitch might appear and it might take a while to figure out how to get rid of it. There's a new glitch now. While flight works perfectly after the first time you use it, the very first time you use it, the robot will take off so fast that you suddenly see him bashed against the nearest wall that was in front of you, even if that wall was ten meters away. I don't know what causes it yet or how to solve that, but right now, the initial flight literally teleports him into the nearest wall.
      Finally, last week, the Avengers movie launched. well, April 26 in most places (including here, Nigeria) and May 4 in the US. It smashed box office records, earning $200.3  million on it's opening weekend, the biggest opening of all time! For more info, you can go here. On twitter, I follow a joke account called "TheTweetOfGod", who tries to imagine some funny statements God might make, and tweet them. Statements such as "There is no sense in worrying about the past. The future though, holy crap". Yesterday he tweeted "I blessed 'The Avengers' with $200 million this weekend. Because you can't spell 'The Avengers' without 'heaven'". Get it?

                          Now this is seriously funny!

     For each month of development of my game, I will create a new blog post and update that post weekly, like I have done with this (Episode 14). So the next time I post about Project Monkey, it will be in another episode which I will update thrice before moving on to another episode, so that it's easy to navigate through the posts. I figure if I keep updating this same post, it will become clumsy and readers might have trouble finding a specific update. 


    Update: Four characters revealed and more info on the game mechanics in episode 15 of this blog. Another character revealed and the first gameplay videos are on episode 19 of this blog.

No comments:

Post a Comment

Comment here: