Game Production 9

Game Production

Well, we didn’t quite reach the 200 likes we needed in the end but we had fun trying! We did get a lot of really positive feedback from people overall & it was fun to see people’s faces light up with nostalgia when they saw the Facebook page & played the game.

Sarah “went to town” with memes in promotion of the game & they definitely had a positive impact! See some example below!

  Not quite 200 but good enough for me!

My Facebook banner image!

Meme 1!

Meme 2!

Meme 3!

Conclusions

Overall this project was a brilliant learning exercise & reminded me why I chose to do this Masters in the first place! It was extremely challenging (especially for Fabrizio…he may have questioned his own mortality a few times!!)  but immensely rewarding in the end.

We learned many things during the course of this module including:

  • The basics of the whole game production process on a small scale
  • Careful planning is absolutely vital to the success of a project
  • Tools like Assembla make life so much easier & help to track the workload & contributions of the group
  • The controls & character movements are the number 1 priority, get them sorted 1st!
  • Realistic character movements really add a lot to the game experience
  • AGAIN…GameMaker is good a some things but useless at others!
  • Promotion of a game is not easy:
    • You often need to establish a unique selling point or different slant on the game
    • You really need to make an impact in the relevant community to get noticed
    • If possible get in contact with the original creator(s) of the game
    • It’s very easy to lose friends on Facebook with constant promotion of your project on their news feed!

The other projects in the class are well worth a look so here are the links below!

https://www.facebook.com/SnowBrosBrothersInArms

https://www.facebook.com/CastleWolfensteinTheRemake

https://www.facebook.com/PanzerCD

https://www.facebook.com/FallInLoveWithBubbleBobble

https://www.facebook.com/thewingedbeavers

https://www.facebook.com/HourseOutside

https://www.facebook.com/pages/Gearheads/205000696272213

https://www.facebook.com/alleyCatDIT

Game Production 8

Game Production

The main thing we had not implemented in the game so far was enemy interaction. This posed several problems as GameMaker does not do AI or complex collision detection very well. As a compromise, we simplified the fighting by just giving the enemy a 1 in 3 chance of causing damage to the prince when a collision occurred, while the prince had a 100% collision success rate & needed to land 3 hits to kill the enemy.

To make life easier, Fabrizio broke the development of enemy interaction up into two stages. Firstly he would create a static enemy object to test the collision detection & enemy life system. Once he had this working he implemented the enemy movements & animations based on proximity to the prince. Simple in theory but considerably harder in practice!

A major drawback to this process was the fact that we could only find enemy sprites from the original 1989 game, not the 1992 version we were creating. This meant that the enemy sprites were a completely different size to the prince, making the prince look like some kind of giant! This is where my Photoshop skills came to the rescue! I simply scaled the original sprites up to match  the prince & did some pixel-by-pixel tweaking to make sure they didn’t look fuzzy or out of sync with the resolution of the rest of the game. See original & my tweaked version below:

 

We continued adding sounds, any missing animations & Fabrizio developed a basic HUD to display lives & a help screen to display the game controls. The game was actually starting to feel like a game now!

I began development of a 2nd level at this stage. I decided to take the 1st level from the original 1989 game & alter it slightly so it would serve as a 2nd level in our game! This time around, the creation of the level was much quicker as I really knew what I was doing now! The colour palette & scale between the two games was different so it required some intricate cutting, pasting & tweaking to make the levels match. Also, as we had removed some of the functionality of the prince (mainly the ability to hang from ledges), we had to tweak the logic & layout of the level a little compared to the original. See original & altered level layouts below:

Below is the link to Build 6. The HUD & static enemy with working collision detection are the only major changes for this build.

http://www.assembla.com/spaces/msfmodding2012/documents/aCodwKDQar4yNEacwqjQYw/download/aCodwKDQar4yNEacwqjQYw

Build 7 added the enemy movements & some almost imperceptible but important bug fixes. See link below:

http://www.assembla.com/spaces/msfmodding2012/documents/cLBk1KEM8r4zqJacwqjQXA/download/cLBk1KEM8r4zqJacwqjQXA

At this point we were told to stop adding content & finish up anything of major importance. Our focus now was to push the promotion of the game as far as possible & reach those 200 Facebook page likes! So, for Build 8 we just threw in the finished 2nd level but more than doubled the size & length of the game in the process! Find the link to the last build below!

http://www.assembla.com/spaces/msfmodding2012/documents/cv6WzmHXir4ynIacwqjQWU/download/cv6WzmHXir4ynIacwqjQWU

Next up: conclusions & lessons learned!

 

Game Production 7

Game Production

Build 4 went well anyway! Some more people tested the game & they were really impressed with what we had done so far, especially given that we had chosen one of the hardest games. It was nice to get positive feedback, it kind of injected some passion back into the project after the blood, sweat & tears that had gone into it so far!

At this point we continued adding more of the missing interactions & mechanics into the game for build 5:

  • Potions
  • Life system
  • Game reset after you die
  • Sword pick-up
  • Prince sword combat animations & movements

Find the link to build 5 here:

http://www.assembla.com/spaces/msfmodding2012/documents/aXPa_wCQGr4yJ-acwqjQXA/download/aXPa_wCQGr4yJ-acwqjQXA

Game Promotion!

Having gotten this far & having a decent understanding of our pipeline of work for the next few weeks, we were told to start promotion of our games online! This initially meant setting up a Facebook page & creating a teaser trailer to go on YouTube. See the link to the Facebook page & teaser trailer below.

https://www.facebook.com/PrinceOfPersia19892d

Our main goal was to try & get 200 likes on our Facebook page & create a bit of a buzz around the game in it’s respective community. Unfortunately we’re still waiting on our 200 likes but 143 to date isn’t too bad I suppose!

Over the next few weeks we would continue to add content to the game & fix any remaining bugs but our main aim was to maximise the promotion of the game through sites like Reddit, YouTube, Facebook, forums, etc.

Next up: enemies, enemy AI & a second level!

Game Production 6

Game Production

After build 3 we had a few different people test the game to get some basic feedback from a different perspective, including our module lecturer Hugh McAtamney. The general consensus was that the movement of the prince didn’t quite feel right. Fabrizio had developed the movements based on friction & acceleration. Some felt that this wasn’t really in keeping with the original game. Some points of concern are below:

  • It felt like you were skating along the ground rather than running on it
  • The jumps didn’t cover the same distance as in the original game, making it harder to judge distances
  • There were too many animation & collision bugs
  • Some of the functionality of the prince was missing (hanging on ledges)

At this stage, we re-evaluated our approach to the movements & ended up completely re-doing them from scratch. This unfortunately created another nightmare for Fabrizio as lead programmer, as he had to discard almost 4 weeks work. We made a decision to leave out the ledge-hanging mechanic & other small features as we felt they were beyond the capabilities of the GameMaker program.

In the end the movements overhaul was worth it! Fabrizio adopted a new approach by where the prince character moved by a certain number of floor tiles for each animation. It required some further tweaking to improve the fluidity of the movements but everyone who tested the game thereafter was much happier with the feel of the game.

Build 4

Build 4 was going to be our first major deadline for the module so we wanted to have a full level ready to play with all the basic interactions (except for enemies, these would come later).
I had the task of adding the other half of the first level to the game. This again involved placing wall & floor objects and changing the background image so the full level could be seen. I also added the rest of the interactive objects & the corresponding prince animations to the game:
  • Shaking / Falling / Broken tiles
  • Buttons & gates
  • Guillotines
  • Spikes
  • End-of-level door
  • Potions (good & bad) (no functionality yet, just animated sprites!)

Anyway, below is the link to the finished Build 4 .exe file! Enjoy!

http://www.assembla.com/spaces/msfmodding2012/documents/cFp4cWBtyr4yLcacwqjQYw/download/cFp4cWBtyr4yLcacwqjQYw

Game Production 5

Game Production

Build 3

At this point, while we were still not 100% happy with the character movements, we felt they were sufficiently well established to allow us to go ahead with other areas of the game.

Sarah & Fabrizio started implementing various sounds in the game, such as the prince’s footsteps, the “thud” sound when he landed from a height & the intro jingle at the start of the level.

I started working on the interactive objects. These included:

  • shaking, falling & broken tiles
  • spikes
  • guillotines
  • gates
  • buttons

As we had converted the level layouts to 2D, many of the interactive objects needed to be altered or new ones created from scratch. The availability of sprites was also an issue at this stage so in many cases I had to play the free Flash version of the game online & take print screens at different times to capture the different frames of animation of various animated objects!

Again this was a relatively long process having to work pixel-by-pixel when reworking most of the images but it was a good learning exercise in how to approach the design of these types of assets in a game. Below are some of the original assets with my altered versions for comparison (including some animated GIFs – click & see!!).

At this stage I was comfortable with creating animated GIF images for testing outside of GameMaker so I went ahead & created other animations which would be used at a later stage, see GIFs below.

 

Next up Build 4…& a lot more heartache!

Game Production 4

Game Production

By far the hardest part of the Prince of Persia project was getting the character movements to feel right. For our lead programmer Fabrizio in particular, this meant a LOT of blood, sweat & tears!

For me & Sarah, our task was simpler but no less tedious. We had to separate each of the sprites in the massive sprite sheet & put them together again in GameMaker as separate frames of a particular movement animation. An example of the basic running animation is below:

To put things in perspective, the prince character had around 22 different movement animations, each with between 5 & 18 frames! No wonder the character movements in the original game were so highly praised; no other game had gone into this much detail before!!

Build 2

For the 2nd build of the game, we decided to recreate just one side of the first level. This was mainly to make sure we would actually have something to show in the next class, as the whole process was quite time consuming!

Fabrizio focused on tweaking the character movements & successfully triggering the movement animations. Sarah continued to dice up the sprite sheet & started looking for other assets which would be used at a later stage, including enemy sprites & sounds!

I focused on creating the level. This involved creating a static background image & then placing wall & floor sprites as solid objects for the prince object to interact with. See image below.The position of each object had to be pixel perfect so as not to create any collision bugs.

I then worked with Fabrizio to make sure the game camera was set up to follow the prince character. At this point we made the decision to make the game a flowing side-scroller as opposed to the original game’s scree-by-screen approach (similar to later games like Abe’s Oddysee). This again made life a lot easier as it got rid of the need for multiple scenes or cameras. It also didn’t change the gameplay experience too much so it was a decent compromise.

Below is the link to Build 2:

http://www.assembla.com/spaces/msfmodding2012/documents/d_k-4CwpWr4z5-acwqjQYw/download/d_k-4CwpWr4z5-acwqjQYw

Next up, interactive objects!

Game Production 3

Game Production

The roles of the team were divided roughly as follows:

  • Fabrizio: Lead Programmer, Team Leader
  • Marc: Artist, Assistant Programmer
  • Sarah: Assistant Artist, Lead QA, Marketing Manager

First off, very early in the project we learned two things…

1: GameMaker is great at making certain things easy but other things REALLY hard.The program has certain limitations, especially in the free “Lite” version. We gained some more functionality when we switched to the full HTML5 version but we were simply unable to do certain things.

2: We probably chose the most difficult game out of everyone in the class in terms of game mechanics!! The realistic movements of the character are what the game was most famous for. Recreating those movements in GameMaker & making them faithful to the original game was a nightmare, especially for Fabrizio as he assumed the role of lead programmer!

We also quickly realised that assets such as sprites & levels layouts from the original 1989 game were almost impossible to find. However, we found that there were a lot more available for the 1992 Apple II remake. With these realisations, it was necessary to change our approach to the project & the game in general.

The first change was to convert the game from the original semi-2D style to regular 2D. The original layout of a level from the ’92 is shown below:

Now, below is my altered background image used in GameMaker:

The effect was basically to “flatten” the game into a strict side-on view. This made life immeasurably easier for Fabrizio & shortened the time involved in the project overall. However, as the Lead Artist, this meant I had to painstakingly alter the original images, often pixel-by-pixel! Still, as challenging as it was was, it was also kind of fun when I saw the end product!

Build 1

In the first build of the game our major goals were: tracking down the sprite sheet for the prince character & getting the basic movements of the prince working. Even these tasks themselves proved to be difficult. This was going to be a LONG project! The link to build 1 is below:

http://www.assembla.com/spaces/msfmodding2012/documents/dbcRSMvVOr4BHVacwqjQXA/download/dbcRSMvVOr4BHVacwqjQXA

Game Production 2

Game Production

Ok! Our chosen game for this project was the original 1989 Prince of Persia. This was essentially a semi-2D platform game loosely based on “Aladdin” or an “Arabian Nights” theme. You play as a prince who must escape from an elaborate dungeon to save the princess from the evil Vizier. More details on the game in a bit! First up is the management side of the project!

For this project we were required to keep a development log using a tool such as Trello, Assembla or even Google Docs, depending on the size of the team & the complexity of the game. We chose Assembla as it seemed to have a lot more functionality than Trello & also because it would most likely be the tool we would use for our overall final project for the MSc. Assembla very quickly became essential to the success of the project.

Go to Assembla

Using Assembla we were easily able to break up and track the tasks that were involved in the deliverable for each week’s class. We would set up Milestones which would quantify major deadlines over several weeks. We would then assign Tickets to ourselves or each other within each milestone, detailing what was to be done in this particular task & the time-frame involved. We could update the status of each ticket to reflect our progress on the task, including uploading necessary files or links. The Files tab was used for uploading any research, assets, files and different builds of the game. The Messages section would be used to track team discussion of any major issues. For reasons I will detail in a later post, we did not use the Wiki section but we did become familiar with it so that we would know how to use it for the major project.

Overall Assembla was vital in keeping track of the project as it became bigger and bigger. This would undoubtedly become the case with the Major Project also so this was a really good learning process.

Next up, starting to create the game!

Game Production

Game Production

One of the modules I chose in semester 2 of my Digital Games MSc was Game Production. This module would essentially follow on from the basic principles of the Ludology & Gameplay module from semester 1 by allowing us to put what we had learned into practice.

The main goal of Game Production was fairly simple…create a game! We were asked to form groups of up to 3 people & chose one of our favourite retro games from the 80s or early 90s. We would then attempt to recreate this game (or as much as possible) using the YoYo Games program GameMaker.

GameMaker would serve as our introduction to the whole process behind creating a game. We would learn the limitations of the program and ultimately our own limitations too! For this group I teamed up with Fabrizio Valerio Covone & Sarah Bevan. Our chosen game was the original Prince of Persia from 1989, created by Jordan Mechner.

More in the next post!