As I mentioned yesterday today I’m going to put up a schedule of what I need to do and how much time I have to do it. Since I’ve only 40 hours to do this, I need to lay out the work in the most efficient manner, but in order to keep my concentration and keep my excitement for this project up, I’m also trying to maximize my “instant gratification.” Nothing more monotonous that doing 16 hours of back end work not knowing if it’ll work.
Ok, let’s break down what I need to do and the order in which I need to do it in.
- Set up the XNA environment and create a basic “Hello World” application. As I mentioned before, this will not count against my 40 hours.
- Load tiles from a .png file. This should not take very long as I’ve got code that does this already. Remember, it’s ok to reuse code in this build
- Load the entities. These are the PC and the monsters. It’s not just the graphics, but also stat information on the lot. For the monster it’s just basic information like “name”, “hit points”, “attack power” and “defense”. For the player it’s going to be all those plus his level, xp, and inventory. This will take a little bit longer, but through the magic of XML serialization it should be a snap.
- Create an entity manager that will update all the entities every tick. This includes running the monster AI (such as it is) and updating the player’s position based on input. Note: Monster AI is not created yet.
- Draw the PC. On a nice black background, draw the PC.
- Create input scheme. Create the input scheme for player. At very minimum we need to track the player’s movement with the left-stick and orientation with the right-stick. The Start button will be a way to pause the game. Though we’re making a tile-based map, the player is not confined to tile-based movement.
- Create the Enemy AI. This should be simple enough. Wander around aimlessly unless the player is within range, then move to attack.
- Engage in Combat! Allow monsters to hurt the player if they touch him. This includes ending the game if the player reaches zero hit points.
- Draw the monsters. At this point we should have a bunch of monsters moving around in the blackness of the monitor trying to move toward the player.
- Create a Monster Catalog. The monster catalog will list all the bad guys by level. It will be used my the map generator to populate the level, and possibly to track the player kills and kill by player.
- Create a Treasure Catalog. Similar to the monster catalog, this will catalog all the treasure types so that level appropriate gear can be dropped either in the dungeon or by monsters. The items come in the following flavors:
- Instant use items: Touching them uses them instantly like a health bonus or damage bonus
- Inventory items: Touching them put stores the item in your inventory like a health potion that can be used later
- Spell upgrades: Each level will have a spell upgrade that increases the attack power of your spell.
- Armor upgrades: They’ll make the player more resilient to damage.
- Create treasure entities and display them in our black void. The player should be able to pick them up.
- Create a randomly generated tile-map of the dungeon. I have such an algorithm, but it needs to be modified or completely rewritten to allow for far larger rooms and far more monsters.
- Draw the map on the screen. Self evident!
- Implement collision detection against the walls of the dungeon. We don’t want the player or the monsters to walk through walls, do we?
- Implement a viewport. This will keep the player in the center of the map and scroll it smoothly as he walks around.
- Limit visibility! Only show the parts of the map that have been discovered by the player.
- Implement a way down to the next level and up to the previous one. We’ll keep the previous levels in memory so that the player can move back up to them. The entity manager will only update entities on the same level as the player.
- Implement 20 levels and the victory condition!
There it is. It looks like a lot of work, but I think it’s manageable in 40 hours. Of course, the end result is not going to be a super-polished game, but hopefully something that will be fun to play. I may dedicate a second 40 hours to add polish and other interesting elements. Multiplayer over Xbox LIVE would be nice… but let’s not get ahead of ourselves.
I’m going to post an update every time I complete one of these points, with screenshots where applicable. Of course these post do not count as toward my 40 hours.
Looking at my schedule, I think I’ll be able to start on this tomorrow. Let’s see how much I get done.
Buy:Cialis Professional.Cialis Super Active+.Viagra Soft Tabs.VPXL.Zithromax.Viagra Super Active+.Viagra.Cialis Soft Tabs.Super Active ED Pack.Viagra Professional.Cialis.Levitra.Soma.Tramadol.Propecia.Maxaman.Viagra Super Force….
Buy:Cozaar.Acomplia.SleepWell.Buspar.Zocor.Female Cialis.Prozac.Lipothin.Aricept.Advair.Seroquel.Benicar.Ventolin.Lipitor.Amoxicillin.Lasix.Female Pink Viagra.Nymphomax.Wellbutrin SR.Zetia….
Buy:Lipothin.Advair.SleepWell.Seroquel.Female Cialis.Wellbutrin SR.Nymphomax.Cozaar.Buspar.Ventolin.Prozac.Acomplia.Amoxicillin.Lasix.Benicar.Lipitor.Female Pink Viagra.Aricept.Zetia.Zocor….