News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Morri

Let's Go! [First Major Release]

Started by Morri, 05:18, 12 July 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Morri

Quote from: Axelay on 07:54, 25 July 15
If you have used some sort of map or grid for detecting platforms and ladders, you could perhaps use the same grid for enemy collision detection, but it might be too coarse.  Another way would be to use bounding boxes.  Here's a crude example of the bounding box approach in BASIC, use the cursor keys to move the player about:
Oh man, it's so easy when you know how! Cheers @Axelay, this works perfectly and I only needed to add 5 lines of code.
I had a faint idea it needed to be something like this but I just couldn't quite nail it so this has saved me heaps of trial and error.

Now to add a death sequence...
Keeping it Kiwi since 1977

mr_lou

This game is progressing fast!  :)

Nice work!

Morri

#27
Quote from: mr_lou on 06:22, 26 July 15
This game is progressing fast!  :)

Nice work!
I'm in the groove now!  ;)
Just uploaded the latest version with collision detection and death sequence, so the game is basically complete gameplay wise.
All that's left to do are more levels and more enemies, load up screen and music. But I'm going to save those for when the game is complete so that it's more of a surprise.  :P
Keeping it Kiwi since 1977

Morri

Let's go is continuing to progress well. I have successfully added another enemy and have it working well (animation and collision).

Just to change it up a bit I decided to have a go at adding music and I've run into a lot of trouble.
I have tried to use starkos with cpcbasic3 and they don't seem to want to play nice. I tried both the basic and the interrupt versions and loaded them within the recommended area around &9000, but when I called them from the compiled cpcbasic3 code I just get a few beeps (no crashes), no music.  :'(

Has anyone managed to use a music program with CPCBasic3??? Am I missing something or doing something wrong?
Keeping it Kiwi since 1977

McKlain

Have you tried the Arkos player instead?

Morri

No, not yet. I'll give it a try this afternoon.

Sent from my SM-G900F using Tapatalk

Keeping it Kiwi since 1977

mr_lou

If the music was created using STarKos, then playback should work fine using the supplied routines for STarKos.

But a STarKos track won't playback using the Arkos Player routines.

I had to load my STarKos track into Arkos Tracker and export it from there before it worked with CPCtelera (because CPCtelera has Arkos player routines). Otherwise it gave the same symptoms you're describing.
(I thought the two formats were compatible too, but apparently not).

Gryzor

Just saw this. A one-button game for the CPC! Looks great, and is very promising... I think it may be too fast or -alternatively- I'm getting too old, but I'm really looking forward to watching this progress!

Morri

Quote from: Gryzor on 17:25, 16 August 15
Just saw this. A one-button game for the CPC! Looks great, and is very promising... I think it may be too fast or -alternatively- I'm getting too old, but I'm really looking forward to watching this progress!
I'm glad you think it's a bit fast as I was worried it may have been too slow and therefore too easy.  ;)

Progress on Let's Go is a bit slow ATM as I optimise, space save, bug-fix and try and figure out level design. I've almost run out of space if this is going to stay a 64Kb game and have seriously thought about making it a 128Kb / disc multiload game so we'll see where that heads. Obviously if it does I wouldn't be eligible for the retrodev competition but that's OK as I'd rather release something I'm happy with and not stripped down just to suit.
Keeping it Kiwi since 1977

Neil79

The latest in Indie & Retro News!!! IndieRetroNews - Indie Retro News on twitter

Morri

Update time!

As I just mentioned in another thread I have made the decision to make this a 128kb disc game. I tried to keep it within the 64kb limit for the gamedev competition but it just became too big and while it would have been possible, I would have only had 3 - 4 stages which is far too easy. I am currently up to 9 levels with more being added. I am hoping for at least 30 by the time I'm finished with different themes and enemies.

I have added heaps of sound effects, a loading screen which also plays a tune and nearly eliminated all flickering.

The game looks and plays really well but I've still got heaps to do.

Wishlist:

       
  • Add a hiscore table of sorts - If you pass 3 stages within the time limit, you are given a "ranking". I was hoping to save these to disc but CPC BASIC's use of the OPENIN / OPENOUT commands is really bloated. One line of code including these commands equalled 4kb of compiled code. Too big!!!
  • Play a starkos tune within CPC BASIC 3 - I have a tune playing from basic during a set of loading screens, but I still can't get that same tune to play from CPC BASIC 3.  :'(
  • Add more levels and enemies.
If anyone can help with 1 and/or 2, I would be grateful.
Keeping it Kiwi since 1977

TFM

What's about using Exomizer for compression? Maybe this would leave enough space in RAM.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Morri

Quote from: TFM on 00:27, 19 September 15
What's about using Exomizer for compression? Maybe this would leave enough space in RAM.
I don't know anything about compression tools  :-[
What exactly do you do? I assumed it compressed the size of the file but once decompressed it took up the same part of the memory. Am I incorrect?
Keeping it Kiwi since 1977

||C|-|E||

I was trying the game for a little bit and I really like it! Good work!! You only need to add many more levels  :D

Morri

Quote from: ||C|-|E|| on 00:43, 19 September 15
I was trying the game for a little bit and I really like it! Good work!! You only need to add many more levels  :D
Wish granted.  8) Currently up to 9. Aiming for 12 levels per "theme". With sprites already made for 2 themes so that's 24 planned levels.
In a perfect world, I would like 4 themes of 12 levels = 48 levels. That would be awesome.
Keeping it Kiwi since 1977

ervin

#40
I'll try putting together a little exomizer guide for you very shortly.

We should be able to figure this out.

TFM

Quote from: Morri on 00:40, 19 September 15
I don't know anything about compression tools  :-[
What exactly do you do? I assumed it compressed the size of the file but once decompressed it took up the same part of the memory. Am I incorrect?


That's about it, but what you can do is to compress single levels and only decompress temporarily the level you need. The Exomizer decompression routine is only 140 bytes long (iirc). And it usually saves 50-70% of space, sometimes even more.


So you start with having everything compressed and then you decompress what you actually need. In the next level you decompress other data (can overwrite previous decompressed data).


The CPCWiki has a nice article about Exomizer.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Joseman

yes, compression is very important, you need to use this sometimes if you want to achieve memory requeriments.

I've made a 1 side disk / hdd working copy of un squadron that could be achieved only using compress data in no way i would achieve that without compression,  impossible.

||C|-|E||

Even our text adventure (also WIP) is compressed, but not the interpreter, just the database  :D

AMSDOS

Quote from: Morri on 23:53, 18 September 15
Wishlist:

       
  • Add a hiscore table of sorts - If you pass 3 stages within the time limit, you are given a "ranking". I was hoping to save these to disc but CPC BASIC's use of the OPENIN / OPENOUT commands is really bloated. One line of code including these commands equalled 4kb of compiled code. Too big!!![/l][/l]
I guess if you had the Firmware available, you could save & load the Hiscore data if you have the Start Address & Length of it. Otherwise I guess the information (e.g. Start address) could be obtain in Debug mode


To save the Data it could look like this:


[/list]
ld b,11 ;; Length of the Filename
ld hl,filename
ld de,&0040 ;; buffer space?
call &bc8c
ld hl,<start address> ;; Origin of the Hiscore table
ld de,<length> ;; Length of it = end address-start address
ld a,2 ;; File Type - 2=Binary (suitable for that means of information)
call &bc98
call &bc8f
ret
.filename db "HISCORE.DAT"



To load it back



ld b,11 ;; Length of the Filename

ld hl,filename
ld de,&0040 ;; buffer space?
call &bc77

ld hl,<start address> ;; Origin of the Hiscore table
call &bc83
call &bc7a
ret
.filename db "HISCORE.DAT"



I was also wondering, if it would be better to have the game as a multi-load for loading the levels in as DATA, though it would become tricky when dealing between 64k & 128k systems.
APB seems to be one of the few games I've played that detects how much memory the system has, which then either determines to load the entire code in, if memory is available, or to load the level code if a 64k system is being used during the game. Obviously the later would have to call the appropriate routine, move the data if a 128k system if being used, or load the data in if the system is 64k.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

ervin

I just remembered that you are using CPC BASIC 3, and I have no idea how to include assembler in that...
Consequently, I don't know how to help.

If anyone can help with this, here's what has to happen:

- deexo (the exomizer decompress asm routine, or the compiled BIN version) is made resident in memory somewhere.
- all data for level 1 is compressed into a binary file using exomizer. That .exo file is somehow loaded into a particular location in memory.
- all data for level 2 is compressed using exomizer, and loaded into a location in memory.
- etc.
- at level transition, the appropriate level's compressed file is uncompressed into the "live level data" area. This can be overwritten again and again at level transition.
- this is done by putting the source data address into HL, the destination address into DE, and then calling the memory address where deexo lives.

And that's it!
But because I'm not familiar with loading .BIN/.EXO files using CPC BASIC 3, I'm not much more help.

Singaja

Couldn't the asm opcodes for the decompressing routine be loaded through DATA or POKEs like in regular basic?

ervin

Quote from: Singaja on 13:11, 19 September 15
Couldn't the asm opcodes for the decompressing routine be loaded through DATA or POKEs like in regular basic?

Yes, I think you are correct.
:)

AMSDOS

It should be possible to poke data from the program that way, or I normally just load the binary bits when loading the main program, but not from the main game (cause it won't work!).


The loading/saving routines could be treated in the same manner as the sprite routine, they could be modified to allow strings & values to be passed to them. If RSXs are already being used extensively, then they could still be "CALLed" from CPC BASIC 3 with the parameters following after it. If strings were to be used, it would be better to pass them through a string variable (for 464 compatibility).
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Singaja

You're right, since CPC Basic 3 generates a binary , the place to load the decompressing routine is in the Amsdos  ;)  basic loader prior to loading the game cpc basic 3 binary output.

Powered by SMFPacks Menu Editor Mod