Archive for the ‘Game Programming’ Category

SlaughterMage: 3.5 hours in

Saturday, September 12th, 2009

Hello again.  It’s been 3 and a half hours since I started this project and damn do I have a lot done!  The first important lesson is that code reuse is great! I don’t think I’d have as much done as I do now if I had to rewrite everything from scratch.  However, there have been some nasty subtle bugs because of the reused code, so I ended up spending time debugging and rewriting entire sections.  This is mainly due to how entities move in this game.  In UGH, they moved one tile length at a time but “slid” from tile to tile. A lot of the old moving and entity updating code had to go.

So what have I complete so far?

  1. Loading tiles from a .png file (copied)
  2. Loading entities from xml (copied)
  3. Created the entity manager
  4. Draw the PC and the monsters on the screen
  5. Move the PC with the Xbox 360 controller
  6. Move the monsters via their own AI.  There are two types “Aggressive” which will always follow the player trying to hurt him and Neutral.  The neutral AI runs around aimlessly, but turns aggressive it gets hit the PC. (about 50% copied, 50% rewritten)
  7. Created the Monster Catalog. (copied)
  8. All entities do collision detection so that they won’t step over each other.  It’s not 100% perfect and it can lead to weird gridlock issues, but it’s workable for now.  I’ll probably look at it more later.

So, next I’m going to tackle combat. This will mean that a bad guy will try to seek out the player and “collide” with it.  If that happens, the player takes damage.  Then I will implement a way for the player to defend himself by lobbing fireballs at his enemies.  This will new entities spawned and if they collide with any entity, the entity takes damage and the fireball “dies.”  I’m expecting this to at least take a few more hours.

Here’s a screenshot, you’re the red wizard.  There are around 100 entities on the screen and everything is running very smoothly:

screenshot

And so it begins… again

Friday, September 11th, 2009

Alright, I promised that I would update as I got stuff done and so, here we are.

I’ve set up the environment, I’ve got a nice black screen running at 1280×720.  Now the clock starts for real.  It seems that I will be able to borrow more than I expected from my UGH and Zune remake of UGH projects.  This is good as any time saved is useful.

I do feel like a I’m cheating a bit, but then I look at the list of things that needs to be done and I don’t feel so bad any more :) .

I’ll post the next update when I have something running around on the screen!

Paradoxic Glee!

Friday, April 18th, 2008

The best part of working on something you can’t tell people is that you’re usually working on something really cool.  The worse part of working on something you can’t tell people is that you can’t tell people! :(

Pookie Pookie: A Roadmap

Tuesday, November 20th, 2007

Let me begin with a bit of backstory.  In its most current incarnation, Pookie Pookie is written in C#, the thought behind this to allow it to be playable on the PC as well as the Xbox 360 via XNA — and who knows?  Maybe get published on Xbox Live Arcade?  Ahhh…  a boy can dream.

I’d made the decision early on to develop the core internals of Pookie Pookie as a separate DLL and build a console (as in text-mode) based harness to test it out.  This would allow me to be able to quickly make sure that the logic was working properly before spending a lot of time doing the graphical version.  It also makes development and iteration over the code much faster.

Walking into this project today, I already had the board representation down as well as all the logic necessary to process the moves and score.  My focus for today is creating an input model that will work for both human and AI players.  Hopefully, with XNA 2.0, this will expand to both local and remote players.

Once the input model is finalized (it sounds really simple, but it’s more complex than you think), the next step is to create the AI for Pookie Pookie.  In a previous post, I mentioned my thoughts on the AI, so I won’t repeat them here.

Once the AI and input are in place, the core game will be complete and working on the console and it will be time to make that jump to the graphical version.  Much like the Unreal Tournament 2007 team did, I will not be focusing on the graphic assets just yet.  Using simple shapes to denote the pieces, board, etc. will allow me to focus on the gameplay without getting stuck on the assets until the game is ready.

What separates a game, even a good game, from a great game?  Spit and Polish™!  Having the game automatically dump you into a match will simply not do.  In order for the game to look really good it must have the following features:

  • Title Screen
  • Main Screen (this has links to other areas)
    • New Game (Local game 1 to 3 bots)
      • New Game Screen (this is where you choose who is a human and who is a computer)
    • Xbox Live
      • Create a game
      • Join a game
    • Tutorial (Teaches you how to play the game)
    • Achievements (See all your achievements)
    • Options
    • Exit

Clearly there’s a lot to be done by my birthday and not a lot of time to slack off.  During this Thanksgiving week I am to have a lot of this done, namely:

  • The core gameplay (player input, AI)
  • Screen management
  • Multiplayer

This is pretty aggressive, but I hope to kick some ass :P .  I’ll talk more about the are areas when the game is working in its most basic form.

I’ll hopefully have more updates as the project comes along.