Wednesday, March 24, 2010

Wrap up post!

Sorry it took so long to give my final thoughts, college has been crazy busy!

On the day we won an award of Animination!

The fact that they were giving out awards like chocolate takes nothing away!

It was a good experience and the sleep deprevation showed me that it is possible to pull of intense development cycles when needed!

Also the art style got alot of attention, a good thing too keep in mind for future projects.

I WILL be deveolping more using the XNA framework. Watch this space.

Monday, March 15, 2010

Glorious Design Document

Rather than following the traditional style of Pacman that we both grew up playing, we decided after much consideration to create with an innovative idea instead of taking the easy path and mimicking old style “Mario-esqe” 2 dimensional platforming with procedurally generated levels where never any one instance of the game will ever be the same as the next, just to make the game a lot more fun and challenging.
Our first original idea was that rather than playing as Pacman, we decided to instead implement game play as the Ghost whose village has just been attacked, his house eaten and his family killed- he’s now on a hunt for Pacman, to get revenge. We hoped this would bring some “originality” and new 2010 innovative idea of the game. All our levels are “procedurally generated”, so “no” 2 instances of the game will ever be the same.

The Player caters the game to their own whim as far as they may choose from 3 different lengths (‘short= 6,000’, ‘medium= 10,000’ and ‘long = 20,000’) pixels. The player then shall select the ghost they would like to play with from a choice of 10 different styles, characters and colours (all created as .png files) which are deliberately coloured brightly to prevent any discouragement of female players and to ensure they feel like the game is for them as well.

Upon receiving the starter pack we started analysing what we could use from it. We adopted the sounds and also based our state logic on the scene manager layout that was available.
Throughout all levels the Ghost shall be forced to confront randomly generated Pacman with randomly generated sizes and locations. If the Ghost’s size is bigger than the Pacman size, the Ghost shall win another Dot, if smaller then the Ghost Dies and the player must begin the level once more. A Ghost’s size shall be initialized at the beginning of the game and the Ghost’s size grown every time the player clicks the left trigger of the controller and shrunk every time the Player clicks the right trigger, if needed. Every time the Ghost dies, the amount of Dots they have previously collected is halved as penalty with only 5 lives to play with represented as small icons of your current ghost (changing depending on your character) in the corner screen. Cherries are also sparsely located in random locations throughout the game with a bonus of 10 points every time one is collected. We have also implemented a trampoline element where it would act like a further and much more powerful jump, which is based on the player’s speed and cause the trampoline do then act as a jettison, allowing for longer jumps across greater distances.
During Menu 2 state, if the player holds both triggers (left and right) down, they may avail of the cheat to choose any of the 2 cheat options. The First cheat is “Opposite Day”, where the Player’s character is the “Pacman” and must defeat randomly generated Ghost’s along their way to defeat “the Dark Ghost” at the end of the game. The second cheat option is “Fast Mode”, where the Ghost then moves at double speed and can be combined with any level’s length or even combined with the Opposite Day cheat.

1 the Player chooses the ghost they would like to play with and enters a level that introduces them to training of how to jump from block to block. Since our levels are “procedurally generated”, no level will ever be created the same.

The Player then enters the “Totally Safe Cave” that brings them to level 2. They are again faced with more jumping challenges and face a different background while collecting the yellow dots and destroying Pacman they randomly encounter, their last opportunity to collect Dots. The player then enters level 3, the Boss level and confrontation with, “The Dark Pacman”

Due to the pacman canon, the ghosts are technically invulnerable and can never die, which presented a game playing challenge when deciding how the boss fight should be approached, and how to make a battle fun when 1 side is invulnerable. The pattern style attack choice we created circumnavigates this issue.
Our Boss Fight is the confrontation between the Ghost and the dark Pacman (and he’s”Pacing”!) The ghost must defeat Pacman by jumping on him all the while avoiding the bullets being fired. There is no A.I. implemented for the Boss, his attack style is in the truest tradition of 2 dimensional platforming where his attacks are passed on patterns and the player is expected to anticipate the patterns and attack. After 20 seconds, the Pacman suddenly charges at the Ghost which has now changed appearance to the “frightened blue ghost” (in true Pacman style). The player then has no other choice but to run away and continue flashing between the original Ghost character they choose and the “frightened blue ghost” character image while the Pacman pursues the player (for 7 seconds). If the Pacman rectangle intersects with the Ghost’s rectangle the player looses the game. After the Pacman has ceased the hunt, the Ghost may return to hunting the Pacman once more.
Pacman’s bullets are created wherever the gun nozzle is and decreases their position relative to the x axis every update. When a bullet rectangle interacts with Pacman’s rectangle the game state is set to dead so next time the draw command is run the game state “isDead” E-num causes the dead Jpeg to be displayed over everything, hence ending the Game
Defeating the Dark Pacman... If the Ghost is bigger than the Pacman, you are capable of beating the dark Pacman, however if smaller you have to dodge 25 seconds of his attacks, after this you automatically gain 50 Dots. A player requires 60 dots to be of sufficient size to defeat the Boss. The game is won when the Ghost’s rectangle interacts with the Pacman rectangle causing the game state being set to one, causing the credits to show until a certain time has passed.
Our Boss, of course, increases the chance the Ghost may be shot and die which forces the User to restart the game if they would like to play again, (which of course they will!) The player will also die at any time during the game if they fall through any of the gaps that require them to jump over.
The “You are Dead” screen, is inspired by the Capcon “” screens’ from Game’s like Devil may cry and “Onimusha” you are dead
Throughout development, we used an “XP” type development style where we programmed to prototyping and use case’s to support these on-the-fly prototypes which in designing a game where we are a small highly capable development team where we both have previous experience, as Maria placed 3rd in the Robocode Final of 2006 and Seamus participated in the XNA final last year in 2008, both representing U.L. in our respective competitions. was also lovingly utilized to help us keep track of thoughts on such a tight development cycle and kept up to date alongside development. Though it was slightly ignored toward the end as rapid development took precedence, it still proved invaluable keeping track of thoughts.

Friday, March 5, 2010


I decided to code instead of type for a bit!
I am well tired but there is now a conclusion on the game.
There's a boss fight!
Everything has a background.

Wednesday, March 3, 2010


You can now die in my game.

I came across a pretty frustrating bug here. When you go below the screens hight you die, but I was not resetting the players position after they fell off. This lead to a constant stream of "you are dead" screen as the player was technically dieing every update.

We have side scrolling!!!!!

The player can move around freely with in a certain space on the screen.
Once they come too close to the edge the screen it's begins to move!!! And by it I mean the actual block in the background..

Latest screenshot


Jumping and his good friend falling are now implemented!
I have linked jumping and falling to the character speed, I can tweak that now till it's perfect.

Next on the list is the scrolling screen!

Minimulist is not the word

I have implemented and game state system using enum,
A level creation process using a single vector,
A character choosing menu using another vector and a controller system in 6 lines of code.

The tight development cycle is bring out my most efficient least maintainable side!