Sunday, October 28, 2007

Pre Eurocon Tuning

Last session before we leave. I've added a bunch of levels and realised a new feature where I choose whether or not the players can share items. It adds a whole new dimension for strategy. It's clear to me the level design is a real exciting time. I've put in about 25 for now, but I will reconsider for the final release. I also added the game over test! (So it stops when some wins.)

So this is it for Eurocon 2007!

I've sent the ROM image off to be EPROMed. (My programmer is offline at the mo.) Hopefully I've get half a dozen to demo/sell at Eurocon. This will be a pre-release, which if we consider what happened to Joust, might be well worth buying! :) Seriously I'll check out the gameplay with the Euroconners, tweak it when I get back, add the 1P mode and look to release it end of November(2007.) I've enjoyed playing it today, so I want to take the time to get it just right.

If you're in the Netherlands 2-3-4 November pop by and say "Hello!"
If you're not, then add a comment to this blog! :)

Eurocon link:

Compiled code size 9,946 bytes

Saturday, October 27, 2007

Twice the fun!

2 days before we leave for Eurocon 2007. I've just cloned all behaviour to Player 2. So now the game actually plays! Normally this is the point where I release I've shared a variable or been lazy with my ASM labels. Fortunately it went smoothly, I guess I've learnt enough lessons from the past (especially Art of War.) This was the first time I could actually play it 2P and a few things occurred to me. I've discovered a nice game variation by limiting how far the player can move up the field. I also speeded up the energy recharge. I found a effective limit on the number of objects, I'll look at this again later, but for the moment it's capped to 12 which is plenty I think.

Tuesday, October 23, 2007

8K barrier passed

Few more hours on Solar Wars today. I built upon the previous sessions level loader by producing a few levels, and added a level select feature. (Which forced the title screen too; below) I tried some fairly complex scenery which enabled me to encounter the accumulative error shown below (the beam on the left should bounce off the mirror.) I've improved this so it doesn't occur any more, but I'm not convinced its perfect yet, and will test further another time.

The 3 screen shots below show some aspects of game play. The left frame is the P2 laser firing into some fixed scenery, the centre frame shows the P1 laser firing into the same scenery but with a single mirror object present, and the third frame shows the orignial P2 laser bouncing on the same mirror in the same position. (Emphasising that the same mirror can be used by both players independently.)
The next session will involve fully cloning the P1 functionality onto the P2 joypad (and disabling the debug scope that shows along the bottom and is controlled by the P2 joystick at the moment.) Then some two player game testing will commence!

Compiled code size 8535 bytes

Wednesday, October 17, 2007

Taking it up a level

Quick entry today. Found a few hours to progress Solar Wars. Nothing visual to show really so I'll describe what I added. The level loader is now present, I can write an Nx8 byte array to control the layout of each level. Clearly some levels have more objects than others hence the ragged length N. The objects that can be defined are:
  • Standard mirrors (placement, orientation, ownership, starting condition)
  • Really Big mirrors (placement, orientation, size)
  • Blockers (placement, orientation, size)
  • Splitters (placement, ownership)
  • Prisms (placement, ownership)
Yep, I added big (fixed) mirrors, I think this will make the levels more challenging (read dangerous) on later levels.

Now I need to sketch a few. This won't be a big deal as they are really just a few hurdles to provide variation for the players. I imagine in the 2P mode there will be favourite levels that will be played repeatedly. At the moment I'm not sure whether to allow the player free selection of the levels or to unlock them progressively like in Spike's Circus.

I've also been pondering the AI off-line. To respond to cNp's query: it always depends on the game and what heuristics the programmer can devise. The Joust AI was really easy to write, even the skill levels of the various CPU opponents and their personalities. On Solar Wars it's a little harder since there are literally more dimensions to consider. I have figured a few methods for the CPU AI, but first I'm going to finish the 2P version and study how real humans play against each other (to get a bit more variety in style.) At Eurocon I'll do some 2P play testing and then add the AI ready for the full release shortly afterwards.

Monday, October 01, 2007

Putting the game together

A few more hours today, all went rather well. I'm pleased that the code let me add the odd test/branch here and there to begin shaping the game play. Today was really about behaviour and adding constraints to improve the player experience:
  • added energy bars to the solar emitters / players
  • added damage to the mirrors
  • added visual bars to show their status
  • switched the object indexing from integer to pointer based
  • enforced cursor switching
  • restricted moveable objects to those owned by each player
  • restricted moveable objects to those not being fried by a laser
  • restricted object movement to when the player has sufficient power
  • out of bounds collision detection for the cities
  • status of cities
  • mirror destruction
  • mirror spawning
  • All 4 buttons mapped and functioning.
The screen shot shows an energy bar for solar emitter and separately for the specific mirror at P1's cursor. Some of the P2 cities have been destroyed.

Oh, and I finally got around to moving the sun into ROM, freeing up about 100 bytes of RAM!

Next step: Designing Levels!