**edit** I just realised that this post had been hidden. Whoops!
Hi! Here is the first release of Action Fireman as part of my Computer Games Architecture course in City University. It has 3 levels of hose-spraying action, along with High Scores, randomly generated buildings and lovely particle effects. I hope you enjoy it! Feel free to email me (provfest{art}gmail{dort}com) with any suggestions you have.
Making this has taught me an incredible amount, and I hope to utilise all the skills in making my next game, whatever it may be.
Observer Pattern:
To allow the Building to update the HUD with HP and, possibly, an ‘on fire node’ index. By extension a Model View Controller pattern will hopefully be implemented.
State Pattern:
Menu system: Currently implemented in a rough way. Will have Options, High Score, Game Over, and Results pages.
Sample screen flow. At the moment it is only the Main Screen > Game >Main Screen loop that is up and running. Time, people, Time.
Hose State Diagram. Not sure, again, if this is correct, but this is how the hose will work.
At least this one has arrows! I’m slowly improving, if nothing else.
I also have plenty of bastardised bits of code cobbled together, mainly from the (excellent) Make a Game in 60 Minutes tutorial on the MSDN. Needless to say it took me far longer than 60 minutes to complete the tutorial because I was attempting to understand everything. In short, my game reads in a number for the blocks and arranges them in a 3D grid. It’s god-awful code, to be sure, and will undoubtedly be re-written (as, technically, the blocks are still “asteroids” and have all their variables named as such). It is, however, very eye-opening.
First attempt at a State Diagram for the blazing buildings in the game. I will amend it if anything comes up. There will be sub- and super- FSMs in the project, also, for the civilians, protagonist, rubble, etc.
I will put up a game loop very soon, too, which will undoubtedly help with my programming.
**EDIT** I just realised that I had no arrows on the diagram. Some Games Architecture student I am. Should be fixed now. WIll probably need to be amended in the future. I am so new at this.
“Woedings”?
Well, not really. I’m just trying to figure out the best way to break this game down. I’m reading up on Tutorial after Turorial and it’s all slowly beignning to make sense. Here is the way it will probably break down.
The blocks and the buildings will be separate classes. The buildings will read whichever difficulty the player chooses and create a matrix of building ‘blocks’. based upon this. It will then assign textures based upon a few variables, how high and wide the building is will determine which texture library is invoked. Lower will be simple brick and plaster houses, higher will be skyscrapers and factories.
Once the building has been created and based, again, on the difficulty chosen, the program will start a number of fires, small or large on certain “nodes”. These fires will burn for a certain amount of time, eventually growing and spreading to adjacent nodes. With every ‘tick’ the fires will gain strength and will add to an overall number, which will eat away at the HP of the building.
The ACTION Fireman will aim his hose at the building, with the hose creating a boundingbox (or, ideally, a sphere) and the game detecting whether or not the hose is intersecting with any of the blocks. If so, a quick calculation will tell the game what kind of spray it is (large or small, no in-between) and will start eating away at the HP of the fire on that node. Once the fire has gone out the ACTION fireman will have to put out the surrounding fires to stop it spreading again.
Anyway, this is how it will work in my head. We’ll see if it works in execution.
Moodboard of ideas. Our eponymous hero is going to be a cross between The Soldier from Team Fortress 2, Christoper Nolan’s Batman. With a moustache.
«wow this post was sitting in my drafts folder for a while»
Here I’ll discuss, roughly, how the game is going to work. Accompanying this explanation is the (admittedly, very rough) graphic up above.
((That’s 3 Years of Multimedia. My lecturers are probably shaking their fists at the sky.))
As mentioned before, the game will generate a building for you depending on what difficulty level you choose from the mail menu. Once the building has been generated a HP value will be calculated (from the number of blocks multiplied by material values). This is one of the ‘bars’ in the top corner of the screen. As the fires grow and spread the HP of the building will be gradually eaten away. Once the bar has been reduced to nothing the building is lost and the game is over.
The other bars represent Water Pressure and Personal Damage. Your water pressure gauge will slowly deplete as you use the hose on its highest (most concentrated) setting. Using your hose on the most dispersed setting will still reduce the water pressure, but at a much slower rate. It’s worth noting that the hose will be controlled by the left and right triggers, one for concentrated hosing, one for dispersed. It goes without saying that putting the hose into ‘overdrive’ will make the gauge disappear in seconds.
The health bar is different again. I may remove the idea, but basically there needs to be something in there that breaks up the possible monotony of spraying a building. Much like in the Mario Strikers game on Wii, whenever a “super shot” (I can’t remember Nintendo’s precise terminology) occurs, the game jumps to an almost first-person goalkeeping view. The goalkeeper, in this case, can see football(s) flying towards him and must ‘save’ them with the WiiMote. The idea in ACTION Fireman would be similar; crumbling buildings would spit out pieces of rubble in “special events”. The action would freeze as the camera swings in to first person and ACTION Fireman has to blast the pieces of rubble out of the air before they hit him. Occasionally ACTION Fireman will have to douse flaming people as they escape the building whilst knocking burning debris from the air, switching rapidly from spraying method to spraying method. These will break the flow of play, keeping the player engaged. It will also reinforce the idea of our hero being an ACTION Fireman, instead of a regular Fireman.
Did I mention it’s the future?
It’s the future.
The way a player will get ranked on a level is with a timer. This may pose problematic as, ideally, the buildings would all be procedurally (perhaps not the right word in this case) generated based on difficulty level. Maybe there’ll be some set levels which have Par-Times. If the player beats the Par-Time they will score higher. Adding to the score would be successfully deflected debris and saved citizens, but you’ll rank much higher if you simply put the burning building out before any of those situations need to occur.
In an ideal world if I could code this up (with appropriately decent design patterns) I could get some sort of local multiplayer, with two ACTION Firemen putting out fires on bigger buildings and saving citizens. That said, I worry enough about my ability to code even the basics of this game, so we’ll have to see. Regardless, the prospect of making it is hugely exciting.
More as I think of it.
Here is where donations will be made for my project. I feared that the Just Giving website didn’t have SJA as a charity, but it turns out that it was under St John Ambulance.
I feel a bit like an idiot.
Here is explanation of the basic mechanics in ACTION Fireman. It’s a simple shooter at heart, but hopefully will have one or two interesting mechanics. I will post mock-up game screens tomorrow!
