New Game: Escape from Colony 8

edited January 2015 in Brand new software
I can't really tell what happened, when they first attacked our base or where they came from, but Colony 8 is lost. My only chance is to get to hangar and escape from this nightmare. I just hope my combat suit will be strong enough!

Escape from Colony 8

title.png

ingame.png

The game targets the ZX Spectrum 48K and it should play nicely in any later model.

Default keys are o, p, q, a and space. Hold fire for some seconds to load a missile (requires ammo), release fire to launch it. Use backspace to exit the game and 'h' to pause.

This is my second spectrum game. Although it is technically "better" than The Legend of Traxtor (mostly works, but it uses a very naive approach in a couple of places), I think I failed a little bit scoping the game. I love the background graphics and the sprite animations are cool, but the maps are quite expensive. Also Z88DK + SP1 don't help much in keeping your code small. So basically: I run out of memory and I had to cut things out. The game is a little bit short, although exploration and mastering may provide a reasonable challenge and hopefully some fun!

I've used this type of perspective before and I like it a lot, but it's true that it hurts precision when aiming targets with your weapons. I made adjustments and hopefully it shouldn't be too bad. I also added code to "help" the player to not get stuck in corners (the enemies use that code too, beware!).

Developing this game has been a blast, although refactoring over and over again to get some free bytes is quite exhausting. So enjoy!

Game website: Escape from Colony 8 (get the .tap!)
Post edited by reidrac on

Comments

  • edited November 2014
    Great game. Having a blast with those scorpion aliens.
  • edited November 2014
    Fun game!
    A bit too short and easy.
    I hardly needed the rocket, this weapon would have been fun with more enemies. For the sequel, you may want to try the framework FASE which allows up to eight enemies on the screen 48k and twelve on 128k.
    I wonder if generating maps procedurally could have been useful in this game to save memory.
  • edited November 2014
    Loving the graphic style! I'm doing a top-down game myself at the moment and, for sure, creating top-down graphics with some perspective it's way harder than side view!

    Very playable, too. Congratulations and thanks!
  • edited November 2014
    hikoki wrote: »
    Fun game!
    A bit too short and easy.
    I hardly needed the rocket, this weapon would have been fun with more enemies. For the sequel, you may want to try the framework FASE which allows up to eight enemies on the screen 48k and twelve on 128k.
    I wonder if generating maps procedurally could have been useful in this game to save memory.

    The game manages up to 10 sprites comfortably, even in 48K; I could have used more if I had more RAM ;).

    I think my map design is probably part of the problem. I was aiming at 24 screens and I could only fit 16 in. Also one type of enemy, the map is "open" and not level based (not good for multi-load), the map renderer was too complicated to rewrite it in ASM, etc.

    Well, I'm glad you all like it. Thanks for your comments!
  • edited November 2014
    I played a few minutes.

    It's nice, pleasant to eye and not so difficult if you learn the maze and enemy positions.

    But the enemies are a bit boring, aren't they? ;) Is there any other type of enemies besides these scorpions?

    I noticed the comment about memory lack and I fully understand it.

    If it was me facing it, I would probably sacrifice music for some more varied gameplay. Doesn't such a tune with player take 3kB or so? It could be used for several new types of enemies. But it's just me thinking loud.
  • edited November 2014
    There's a huge 12k data table, (53770-65535) what on earth does it do?
  • edited November 2014
    MatGubbins wrote: »
    There's a huge 12k data table, (53770-65535) what on earth does it do?

    That's SP1 lib for you (from 0xd200 to 0xefff is used for the update array of the screen, followed by the tile array up to 0xefff and horizontal rotation tables from 0xf200 to 0xffff).

    The music is 1537 bytes, including the player, intro music and game over tune. That could have been used to add more enemy types and some extra screens. Fair enough.

    I don't feel like writing my own sprite engine, but with better planing I could have put more content in. I'll do better next time ;)
  • edited November 2014
    Ah, yikes, didn't know it took SP1 lib took up so much memory.

    Keep the music. When you feel confident, start writing a sprite routine and regain that 12k!
  • edited November 2014
    look forward to trying it
  • edited November 2014
    MatGubbins wrote: »
    Ah, yikes, didn't know it took SP1 lib took up so much memory.

    Keep the music. When you feel confident, start writing a sprite routine and regain that 12k!

    You do pay a bit in memory but you get a lot of things simple sprite routines won't get you. For example, the sprite engine and game code are completely decoupled -- you can run your program as fast as possible, draw when you want and never worry about syncing with the interrupts. There will never be any flicker no matter what you do. It also does clipping (to any rectangle) , makes it easy to do background animations and can do foreground sprite elements, though you rarely (if ever) see these features used. Sprites are any size and type, are easily animated, feature attribute masks, and can be software-rotated.

    It deliberately went in the direction of adding value to end up with something rarely (if ever) done before, knowing that anyone can write a simple routine that does the bare minimum if that is all that is needed. It is very convenient to use - a few lines of code and you have sprites moving around - but the costs (in memory and some sacrifice to speed) may be high if the feature set is not made use of. I would personally always think '128k' if the game is going to be at least mid-size and that is a decision you have to make early on as it completely changes the program structure.

    Having said all that there are things you can do to reduce memory use. For example, you don't need to use the entire 32x24 display. The internal structure to model the display for a full size screen is 32x24x10 = 7680 bytes. You can reduce that to, say, 24x24 characters for 5760 bytes. Those characters do not have to be placed rectangularly on screen - they can be placed anywhere, including with gaps between them. You could pattern the display in a checkerboard and have the graphics appear only on the checkerboard (maybe only recommended for impressing your friends :P ), take a row of chars and line them up vertically on the right for scores (printing to those chars horizontally will appear vertically on screen), and otherwise arrange the remaining chars into the shape of your play area, whatever that might be. The point is you can look at how many chars you need the sprite engine to manage and then place them on screen as your game needs them. This is again a feature that is never used.

    You can reclaim the area used by the horizontal rotation tables. If you preshift your sprites you can reclaim the entire 7*256 = 1792 byte area. There are even functions inside sp1 that will dynamically preshift your sprites into available memory (eg, maybe at the start of a level you would do this) to help you get rid of these tables. Or, if you decide to only move by two-pixel increments, you can reclaim memory from half the rotation tables.

    The tile array is 512 bytes (two bytes per ascii char holding a pointer to graphics for each char). If you don't use 256 tiles on screen, you can reclaim some of that memory too.

    sp1 is not that well documented so when the mood takes me I might end up writing drivel like the above. Sorry about that :)

    Trying your game now, so far it looks good :)
  • edited November 2014
    sp1 is not that well documented so when the mood takes me I might end up writing drivel like the above. Sorry about that :)

    First of all thanks for SP1. I spent a month (of my spare free time) making this game and that was partly because... there's not documentation for SP1! hehe ;)

    Well, the source code is there and is easy to read, so no complaints now that I understand how it works (more or less; and it wasn't easy!).

    I tried to speed up things writing my own assembler code to manipulate SP1 internal structures, and turns out I couldn't get any speed gain, so... well done!

    Thanks again for your work in SP1. It's brilliant!
    Trying your game now, so far it looks good :)

    Thanks for your comment!

    Someone posted a walkthrough to RZX Archive and turns out I'm rubbish playing my own game. The player got hit *once* and finished the game like a boss.

    I'll try to make the next one harder :D
  • edited November 2014
    Hhhhmmmmmmm, a very good game.
    ZX81/ZX Spectrum/Amiga/Atari music: http://yerzmyey.i-demo.pl/
  • edited December 2014
    reidrac wrote: »
    First of all thanks for SP1. I spent a month (of my spare free time) making this game and that was partly because... there's not documentation for SP1! hehe ;)

    What do you mean no documentation? :p

    AA has written a lot of stuff, mostly as posts here on WoS, and I've also written some. This post at z88dk shows some links as well. The links point back to WoS so no worries.

    If you need some help to get more screens/memory out of the game I can show you some tricks I use for my own games. Memory is always a premium when using z88dk + sp1 on a 48k machine, but Forest Raider Cherry got 25 (full) screens out of it, with plenty of code left to do other pretty stuff.

    PS. I haven't yet played the game but I like the style. Perhaps I should release something like that soon too. :)
  • edited December 2014
    it seems well programmed.]

    One major flaw seems to be that the man can walk faster than the bullets.

    The range of the bullets is small and the delay between shots is quite long.

    I understand the game would be too easy if the bullets had longer range and fired quicker.
  • edited December 2014
    nice game!! I especially like the fact taht the enemies actually "see" you and do not just go up and down or left and right like dummies
    ;)
    Find my (mostly unfinished) games here
    https://www.facebook.com/groups/1694367894143130/
  • edited December 2014
    Good game, thanks. Just played it through.

    I like the scorpion AI as well. You mention they use the same corridor alignment code as the player but a number of times they align close to the walls and your bullets are unable to hit them. It made it a bit unfair in a few places in my opinion.

    The size is fine for me, much bigger and I would be likely to give up due to lack of time. A few more challenges would have been good though, for example interacting with/destroying the control panels (tv screens) to e.g. turn off a laser gun*.

    *Argh I've caught hikoki-itis!
  • edited December 2014
    Thanks for the feedback.

    In my original idea the screens where used to show you messages related to the framing story, but I had to cut that out. I left the screens though, they're cute :)

    Regarding the bullets and the walls, I think you're right. It's hard to get top-down perspective right :(
  • edited December 2014
    Hi Juan, finally I managed to have a proper try at your game. I like it - it feels nicely programmed but I believe it's a bit thin in the gameplay department - some more variety, for instance different weapons and/or enemies, or some task to achieve, would have been welcome.

    On the positive side, the enemies' "sight" is the feature I appreciate the most.
  • edited December 2014
    Tried this game when it came out, Juan, and I liked some details and in general. The fact that the enemies chase you is something not seen very often in the Spectrum. The graphics are quite good, well drawn althought a bit of more variety will be great. Even if it has been cut due to programming constraints, it looks good and I can see you are in a very good way to cr?ate games for the Spectrum! I will try to beat it in these next Holidays :)
  • edited December 2014
    Great game.
  • edited January 2015
    I have just finished the game. I liked it a lot.

    Okay, it might looked small and doesn't have lots of variety, but it's pretty good.

    And considering you're using sp1 it's absolutely not bad. :)
  • edited January 2015
    Timmy wrote: »
    I have just finished the game. I liked it a lot.

    Okay, it might looked small and doesn't have lots of variety, but it's pretty good.

    And considering you're using sp1 it's absolutely not bad. :)

    Thanks for your kind words :)

    I learnt a lot with this game, but after the n-th time I realized I was doing it wrong it was too late to start over again. Micro INC is simpler and less risky ;) but being in the same style of my first game, I can tell all the effort making "... Colony 8" paid off!
  • edited January 2015
    As featured in this week edition of MicroMart magazine (Sainsburys, WH Smiths) for a copy, but get it quick!
  • edited January 2015
    MatGubbins wrote: »
    As featured in this week edition of MicroMart magazine (Sainsburys, WH Smiths) for a copy, but get it quick!

    Wow! Thanks for the heads up!
Sign In or Register to comment.