News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Morri

Coolbox [New Game in Basic]

Started by Morri, 10:53, 19 June 16

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Morri

Hi All,
I have been working on a basic game for the last few months. Let me introduce "Coolbox", a puzzle game in the vain of Block Dude the old calculator game.
This game is completely written in Basic, no machine code or loaded files. It has multicoloured sprites, scrolling and in game music (thanks to Mr Lou for the tunes).

I was going to enter it into the CPCRetroDev2016 comp but I have failed to get it to work in Basic 1.0. Initially the sprites caused me some problems. I fixed that only to have the scrolling give me issues so I've given up and decided to release it as Basic 1.1 only. However if someone wants to have a go at making it 464 compatible, please be my guest.  ;D

Hope you guys have fun and give feedback here.
Keeping it Kiwi since 1977

AMSDOS

Quote from: Morri on 10:53, 19 June 16
I was going to enter it into the CPCRetroDev2016 comp but I have failed to get it to work in Basic 1.0. Initially the sprites caused me some problems. I fixed that only to have the scrolling give me issues so I've given up and decided to release it as Basic 1.1 only. However if someone wants to have a go at making it 464 compatible, please be my guest.  ;D


Would of been happy to give it a crack, you should of PM me earlier with it.  ;D
* 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

Morri

Quote from: AMSDOS on 11:39, 19 June 16
Would of been happy to give it a crack, you should of PM me earlier with it.  ;D
You still can mate, it would be great if 464 owners get to have a chance to play it.  8)
Keeping it Kiwi since 1977

AMSDOS

Quote from: Morri on 11:48, 19 June 16
You still can mate, it would be great if 464 owners get to have a chance to play it.  8)


Yes I can, I just meant it might be a bit difficult to submit it for the compo now.
* 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

ronaldo

It's a great game, @Morri , congratulations :). It is not easy to make a great playable game in BASIC.

I've tested it and mostly works on BASIC 1.0. The only problem seems to be with your s$ strings. You are using control chars directly there and seems to cause some kind of problem with BASIC 1.0. I think that changing that sequences into CHR$(xx)+CHR$(xx)... instead of directly placing characters may solve the issues.

It's a pitty you haven't asked earlier. It could have been a very competitive game for the compo. You may still reuse some ideas to make a similar but different game and submit it to the compo. Just make sure that games are different enough :).

VincentGR

This is fantastic!!!!

Thank you.

arnoldemu

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Phantomz

@Morri

Thanks a lot for this great little game.  :)

Just had a quick go and got to level five, out of interest, how many levels does it have?

I'll play it some more later on my GX4000  ;D

Morri

Quote from: AMSDOS on 11:56, 19 June 16
Yes I can, I just meant it might be a bit difficult to submit it for the compo now.
Submitting is not an option now but that is OK. I was never doing this for anything other than fun anyway. ::)

Quote from: ronaldo on 12:16, 19 June 16
It's a great game, @Morri , congratulations :) . It is not easy to make a great playable game in BASIC.
Making a fun game in BASIC was the idea so I'm glad people are enjoying it.
Quote
I've tested it and mostly works on BASIC 1.0. The only problem seems to be with your s$ strings. You are using control chars directly there and seems to cause some kind of problem with BASIC 1.0. I think that changing that sequences into CHR$(xx)+CHR$(xx)... instead of directly placing characters may solve the issues.
Yes BASIC 1.0 and use of control codes is very limited. I have a version where the sprites are fixed in BASIC 1.0 and it wasn't too bad to fix, however the next bug I encountered was a scrolling bug using the OUT commands. The screen moved OK but the sprites would not stay on the screen. This one proved too much for me and I just couldn't bear working on it anymore.

Quote from: Phantomz on 17:57, 19 June 16
@Morri

Thanks a lot for this great little game.  :)

Just had a quick go and got to level five, out of interest, how many levels does it have?

I'll play it some more later on my GX4000  ;D
Good going. It has 9 levels and I even put in an ending. 7 and 8 are real ball busters though.
Keeping it Kiwi since 1977

Kris

Great realisation, especially in Basic.
I really like gfx and gameplay: a nice & addictive game  ;)

Phantomz

Quote from: Morri on 19:39, 19 June 16
Good going. It has 9 levels and I even put in an ending. 7 and 8 are real ball busters though.

@Morri

Cool.  8)

Is it ok to upload the cpr for plus users to use and a version for the GX4000 where I've changed the controls ?

In the GX4000 version I've made it push down to pick up and drop cube, Button 1 to turn music on / off, and Button 2 to restart the level, the console pause button goes back to the main menu.  ;D

I've only tested it in emulation at the moment but appears to work ok.  ;)

Morri

Quote from: Phantomz on 20:07, 19 June 16
@Morri

Cool.  8)

Is it ok to upload the cpr for plus users to use and a version for the GX4000 where I've changed the controls ?

In the GX4000 version I've made it push down to pick up and drop cube, Button 1 to turn music on / off, and Button 2 to restart the level, the console pause button goes back to the main menu.  ;D

I've only tested it in emulation at the moment but appears to work ok.  ;)
Yeah of course, my first GX4000 game.  8)
Keeping it Kiwi since 1977

Phantomz

Quote from: Morri on 20:21, 19 June 16
Yeah of course, my first GX4000 game.  8)

Cool.  8)

I don't know if there is any highscore table to get stuck on.  :laugh:

Here is the cart with controls unchanged and one for the GX4000.  :)

HAL6128

Very good and impressive BASIC game!
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

SRS

#14
nice game !

Tried to BASCOMPILE it to get it on 464 but if gives me syntax error in line 80.

"ENT -3,=1000,60,=3000,40"

wondering why this works on emulator but bc does not like it

||C|-|E||

It is very cool! I was playing it for a while and the only thing I miss is being able to face left or right without moving the main character :)

Morri

Quote from: SRS on 22:35, 19 June 16
nice game !

Tried to BASCOMPILE it to get it on 464 but if gives me syntax error in line 80.

"ENT -3,=1000,60,=3000,40"

wondering why this works on emulator but bc does not like it

I'm not a sound person but I believe the equals sign is a hardware direct call from basic used for more advanced sounds. Removing this line would affect one of the sound effects but should be OK.

Quote from: ||C|-|E|| on 23:24, 19 June 16
It is very cool! I was playing it for a while and the only thing I miss is being able to face left or right without moving the main character :)
I thought about this feature and whether or not to do it (Block dude allows this). I decided not to as it makes the stages slightly more challenging but was careful to make sure all the levels can be passed.
People are free to edit the code as they wish and adding this feature should be fairly easy.
Keeping it Kiwi since 1977

AMSDOS

Quote from: Morri on 19:39, 19 June 16
Submitting is not an option now but that is OK. I was never doing this for anything other than fun anyway. ::)
Making a fun game in BASIC was the idea so I'm glad people are enjoying it.
Yes BASIC 1.0 and use of control codes is very limited. I have a version where the sprites are fixed in BASIC 1.0 and it wasn't too bad to fix, however the next bug I encountered was a scrolling bug using the OUT commands. The screen moved OK but the sprites would not stay on the screen. This one proved too much for me and I just couldn't bear working on it anymore.

Good going. It has 9 levels and I even put in an ending. 7 and 8 are real ball busters though.


I noticed one of your Coolbox dude wasn't displaying itself where they should on the title screen, so loaded the program, I put an end statement at 1051 (sorry I renumbered it), run the program, when I press any key to begin the program ends and did this test:



for x=1 to 30:locate x,10:print s$(1);chr$(22);chr$(0);:next x



sure enough the XPOS of the character gets to 19 and then it bellies up. So it's a similar problem to the one you had earlier with the FourXs. I was checking the length of your s$(1) and found it was 25 characters in length, but when I counted the BackSpaces in it, this brought that back to the 19 figure.


So it looks like the difference in string management on the 464 which is causing those problems.
* 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

Morri

Quote from: AMSDOS on 01:05, 20 June 16

I noticed one of your Coolbox dude wasn't displaying itself where they should on the title screen, so loaded the program, I put an end statement at 1051 (sorry I renumbered it), run the program, when I press any key to begin the program ends and did this test:



for x=1 to 30:locate x,10:print s$(1);chr$(22);chr$(0);:next x



sure enough the XPOS of the character gets to 19 and then it bellies up. So it's a similar problem to the one you had earlier with the FourXs. I was checking the length of your s$(1) and found it was 25 characters in length, but when I counted the BackSpaces in it, this brought that back to the 19 figure.


So it looks like the difference in string management on the 464 which is causing those problems.

That was the conclusion I came to as well. BASIC 1.0 doesn't like the backspaces. I solved it using techniques we discussed in the previous threads and had everything working until the screen scrolled using the OUT &BC00,XX command. Then I started getting a whole new host of display bugs and I lost heart after that.

When I get home from work, I'll post the dsk image of the BASIC 1.0 code I had so far so you can see the issue. Maybe someone better than me can see the issue and fix it.
Keeping it Kiwi since 1977

AMSDOS

#19
Sorry I was following your comments, unfortunately I thought I was playing with the 464 attempt.

I noticed your scroll routine I'll have to go back to the one made earlier, I think it works with basic 1.0.


EDIT:Not to worry about the scroll routine I made earlier, seems to work differently from the one you've made.
* 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

Morri

Here is an updated dsk file with my best 464 code so far. Quite a few additions to the original file in my 1st post.
I think it still works OK in BASIC 1.1.
Keeping it Kiwi since 1977

AMSDOS

Quote from: Morri on 07:50, 20 June 16
Here is an updated dsk file with my best 464 code so far. Quite a few additions to the original file in my 1st post.
I think it still works OK in BASIC 1.1.


Yes it's still working fine with BASIC 1.1, unfortunately I haven't been able to pinpoint the source of the trouble. I think the Scroll is working fine, but in BASIC 1.0 when the scroll has been carried out and new scenery is redrawn in Window 3, your character is ending up there as well. I just presumed all the PRINT & LOCATE statements without any Stream numbers refer to the main window, and altered them accordingly, but I'm still getting that result.  ::)
* 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

ronaldo

It's curious that it only happens at the start of the scroll. Once you go 5 or 6 steps into the scroll, everything works again.

I still think it could be due to some kind of bug in the implementation of control codes in BASIC 1.0. Have you tried using no control codes? What about a drawing subroutine instead of a control-coded string? It may work.

Dagger

I finished all the levels, good game, very addictive. Please do some more levels
Life's a bitch. You marry one or two then you die !

TFM

Nice little cool game!  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod