Mr Bomber Man, and the legend of Bomber Creek

Show us what you're working on, (preferably with screenshots).
Post Reply
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

(thats my wip game title)

I started writing a little game. While I was in Europe and without a laptop I was looking at 1 key spectrum games. I found a version of this sort of bomber game and got quite addicted to it. So I started writing my own version.

After 20 minutes I have a game! It spawned a city, flew a jerky plane over the city and you could bomb it. it you hit the building you died. I was pretty pleased that I can now do something like that so quickly.

CSC entry here we come! or so I thought. Then I stopped myself submitting and said, what can I do to improve this and take the 20 minute sketch and make it a better game - the best game I can do. So here it is, a work in progress. I'll update more later about how I started and where I am at now, if people are interested.

Image
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

So the quick version was done in boriel, since my confidence has grown loads with what I can do with it. Using sublime and [mention]patters[/mention] basic highlighter was a game changer. As was the fact I worked through cassette 50's spectrum cross, which has loads of interesting ideas, and even ASM routines. Getting all that to work in ZX Basic taught me loads of stuff, and I picked up more thats the [mention]boriel[/mention]'s documents and forum.

I wrote a quick loop to populate and array of 15 items with random numbers between 1 and 18. This was going to be the basis of my city

Then a loop to print buildings in the middle of the screen, using the array to determine the height. At this point the city was made using '#' rather than any graphics.

I used 'print at' to draw and delete the plane, and I set up a sub called counter to regulate the games speed. The plane stared at the top left, and X was incremented by 1 when the plane got to the left side of the screen

Code: Select all

let time = 3

SUB Counter()
IF t = 4 then let t = 1 : else let t = t + 1 : end if
pause time
end sub
So now I had a city and a moving plane. Time for bombs.

I created a spawn bomb sub that was activated using inkey = " ". That set the bombs x & y to the same x and y as the plane.

Then another sub that prints the bomb as controls its movement. again using the SUB counter() and print at command.

The counter allowed me to have the bomb and plane move at different speeds using if statements.

When the bomb, an "*" was at x = 21 then the bomb was removed.

The use of print at x,y;" " to remove the old bomb position as it fell meant that is already destroyed the city if it was on target.

So now I needed collision detection for the plane. This is where I got really cheap. I used the Spectrum Cross method.

Code: Select all

IF  SCREEN$(x,y+1)=" " then the plane is safe to move. otherwise call a SUB called dead()
Dead() was a sub that printed game over on the screen with a pause 0.

That gave me a playable crap game, and took about 20 minutes to code.

The game worked but it was clunky as hell of course. The SCREEN$ method for collision really slowed everything down and the attribute scrolling was horrible. Also, the sprites flickered - not good. So I knew I had to see what I could do to improve this thing.
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

So the next day I wanted to make the game much smoother. To do this I had to change the collision detection.

So I wrote another sub:

Code: Select all

sub collision()
let y3=y+1
if y3 > 6 and y3 <=22 then
let coll = 22 - buildingheight(y3-7) 
if coll <= x then 
noise()
dead()
end if
end if
end sub
SO when the plane enters the airspace of the city (if y3 > 6 and y3 <=22...) it starts to look at the building height of the buildings. If the building height is greater than the planes height then dead().

this made the game run a lot faster. But I still had issues with attribute scrolling and flickery sprites.
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

I was wondering what to do about scrolling. I'd had an idea ages ago about a simple trick to get 4 pixel scrolling in a basic game. So I decided to give it a go.


Image

so I made a UDG plane that was 2x1 attribute. Then I made a second version of the plane that was over 3 attributes.

Using my counter I used the first plane on frame 1 and 3 and the second plane on frame 2 and 4. On frame 1 & 3 the plane also moved: let x=x-1. That created much smoother scrolling and things were starting to look quite good!
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

Working on an end of game 'boss' fight

Image
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

Ive decided to call this game "The Disputed Territories of Ghotto"

in a vague way the title is a reference to Goto Island of love - https://letterboxd.com/film/goto-island-of-love/

I changed the spelling as I am sure we would all pronounce it 'go to'

The game has 9 levels and 3 difficulty settings.

You take the role of a pilot leading a bombing campaign to recapture territory your country lost in a great war.

The game itself is a 1 button 'on rails shooter' where you must destroy the city so your plane can land safely.

Completing each level reveals more of the story, and the pilots journey through his own thoughts and feelings as he tries to make sense of war, and what he is doing. There are no right or wrongs, only things he see and feels.

The last level is a special is a boss location.

At the moment the game is ready, except for the sound effects and music, which need lots of work and it is not my strength.

I'm really pleased with how this game is looking, the story and the smooth game play. Hope I can complete it soon!
User avatar
RWAC
Manic Miner
Posts: 703
Joined: Sun Aug 18, 2019 9:59 pm

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by RWAC »

Looking forward to seeing this. I've been inspired to try my hand at a city bomber game. Mine's very much in crap game territory though :mrgreen:
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

Thanks! I want to get it released so bad. I'm really pleased with it.

Just trying to sort the sound out now, and a couple to tweaks / bugs and its done.

I think it will be the most ridiculously gilded city bomber game for the spectrum. :D :D :D
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

Image

Here's part of a cutscene.
User avatar
Jbizzel
Dynamite Dan
Posts: 1537
Joined: Mon May 04, 2020 4:34 pm
Location: Hull
Contact:

Re: Mr Bomber Man, and the legend of Bomber Creek

Post by Jbizzel »

Jbizzel wrote: Thu Mar 03, 2022 6:12 pm I was wondering what to do about scrolling. I'd had an idea ages ago about a simple trick to get 4 pixel scrolling in a basic game. So I decided to give it a go.


Image

so I made a UDG plane that was 2x1 attribute. Then I made a second version of the plane that was over 3 attributes.

Using my counter I used the first plane on frame 1 and 3 and the second plane on frame 2 and 4. On frame 1 & 3 the plane also moved: let x=x-1. That created much smoother scrolling and things were starting to look quite good!
Ive also improved this so now it scrolls 2 pixels at a time, and looks very smooth. The bomb fall in the same way.
Post Reply