Saturday, 31 October 2015

Level it up

25th - 31st October 2015

Another week has flown past, and yet more progress on the project 'Vortex Crystals' has risen. Alf Yngve has mailed me seven brand new levels, and another 3 aliens for me to play around with. Most of the hard work was done today (Since I have been doing more SEUDS 4 work in between).  Last time I got the player to be able to pick up objects that was spawned from aliens. What now? Well, a bit on level setup and some sprite/character collision.

Last night I captured each level screen from the SEUCK workfile in VICE, and compressed each level separately using Exomizer V2.09. I also imported Alf's new sprites into the game sprite data as well (These will start to appear on levels 5-16, but I have 7 levels at the moment and Alf hopes to finish those over the weekend.).

First of all today, I imported the new game sprites into the source, and also setup some more subroutines to form three new enemies, which I have called:

Squidroid: The Squidroid is a robotic squid like alien, which will be able to move left/right, up/down at a 2x the original enemy speed. It will also be a hard alien to battle, since it will have 10 lives. The airborne enemy will appear in later levels.

I-Droid: An alien droid, which is armed with an eye camera. This alien will be moving at 2x the original enemy speed, but will have 5 lives to kill it.

Robot: The robot is ground based, and will walk left/right at 2x the enemy speed. It will have 8 lives to kill it. The enemy will appear in later levels.

I was very happy with the result of the first level and the framework, in general, so now it is time to setup some more levels. Before I did that, I added a Level Complete tune and well done text on to the central panel. Then called for the next level to increment one byte and jump straight back to the main game loop code (Which sets up the level data and decompresses the next screen).

Most of today I have been working on some byte tables to setup each sprite type, sprite position, colour, background colour settings and low + high bytes of addresses where to de-compress the level data. Then I programmed a simple timer loop, which will setup the current table position, and setup the actual level. Unfortunately not all levels displayed correctly. I was scratching my head to find out what may have caused this. Each screen did de-crunch, but the display for each EVEN level was exactly the same as the previous ODD level. I carried out a little investigation to find out why this happened when running the game maps workfile, saved as Sideways SEUCK 'Finished Game State'. It turned out that double-buffering was used. So I recaptured each screen in VICE, exported the colour + screen data and then compressed the level screen data again. Then I imported the data into the game's source code folder. Assembled, compiled, and executed the game project again ... It worked much better.

Now the level screens were correct it was time for me to add a little more code to the conveyor belt chars. If the player moves (or jumps) on to a conveyor belt. It should travel. So I added a subroutine which pulled the player backwards or forwards on the belt. ROR + ROL charset animation was also added to the conveyor-belt chars to give the same sort of effect, pushing/pulling the player as it tries to move.

Finally, I played around with the level tables, for levels 1 - 3, I setup the enemy sprite type, re-spawn position, background+multicolour and a few other things. Now I have 3 working levels, and the result is quite pleasing :)

I still have other levels to setup, but that can be done from Monday - next week. Stay tuned to hear more progress with this platform Shoot 'Em Up.

No comments:

Post a Comment