Rocket Run - Multi-directional shooter, collect-em-up

Rocket Run

Some of us older guys remember Thrust and Thrust II from the 8-bit era. The player’s aim was to manoeuvre a spaceship by rotating and thrusting, as it flies over a two-dimensional landscape and through caverns. It’s roots can be traced back to Atari’s Gravitar and Asteroids.

Rocket Run is a new take on the concept of piloting a little ship around an environment shooting enemies and collecting items. The core of the game is learning to control the ship accurately through increasingly narrow tunnels.

Having tried various graphical styles, I’ve opted for limited palette pixel art graphics. 8-bit games Starquake, Underwurlde and the more recent Axiom Verge have been my main influence. I’m not really an artist so need plenty of good source material to draw inspiration from.

For the first time in a Defold game I’m implementing parallax scrolling. There’s a simple repeating background that scrolls more slowly than the foreground to create the illusion of depth. Right now, it’s not possible to place game objects between tilemap layers so the background is just a repeating sprite. Hopefully in future releases of Defold, it will be possible to have a foreground and background implemented within a tilemap.

As of this evening, the game has a single map and the player can fly around, bump into the scenery and shoot.

On the to-do next list is:

  • Static enemies that shoot
  • Fuel cans and other items to collect
  • Add tractor beam to ship

That’s all for now. Thanks for reading!

9 Likes

Nice! :thumbsup:

I love this game genre! I actually started working on a similar game a while back but abandoned it to pursue other ideas: https://britzl.github.io/Gravitywars/index.html

I’m eagerly going to follow the progress of your game! Good luck!

1 Like

@britzl very cool! You got quite far along with it. Are you using a dynamic object for the player? I tried that but couldn’t get it very playable so ended up using kinematic instead.

Yeah, I decided to use a dynamic object. It works pretty well, but I think you might be able to get more of an arcade game feeling if you do your own physics.

New Stuff

Rocket Run now functions as a very basic cohesive game. The level is populated with various items, good and bad. Extra fuel, energy and artefacts are there to collect. Automated sentries lurk in dark corners waiting to take a pop at you as you float by.

There’s a landing pad to find and touching down there finishes the level (once all 4 artefacts have been collected)

A beginnings of a front-end are also in place, waiting to be expanded upon. This is quite a simple game though so no need for complex menu systems or many screens to navigate through

Playable Demo

Play a one level demo in browser here (HTML5)

I’m undecided whether to continue development on this right away. I feel the demo gets the overall idea across well enough.

As always, thanks for reading :slight_smile:

6 Likes

Nice! I love the graphics! Personally I feel that the ship feels a tiny bit too heavy (which obviously is realistic, but harder to control). Very promising nonetheless!

2 Likes

Very nice! :heart_eyes:

May I ask some irreverent questions? :grin:

  1. How are you taking note of the damage and the fuel?
  2. Do you use a variable in the gui script or in you game object?
  3. And when the damage messages you game object, do you message the gui?
  4. Or does the damage message directly the gui?
  5. How do you re-start the level? with a proxy?

I am sorry if I seem extra curious, I am about to get into that part :sweat_smile:

Anyway, very nice game! :thumbsup:

2 Likes

@Edgaronfo Thank you!

To answer your questions:

I’m using a lua file to hold a few global variables (energy, fuel, level number, number of artefacts collected) so that they are accessible any time by the gui. You could pass these through the messaging system but I’ve found this generates more code and it’s easy to miss something and end up with the gui showing the wrong thing.

Each level is in it’s own collection including a common collection that contains all the stuff that’s relevant across the whole game. Each of these level collections is handled by a ‘loader’ game object containing collection proxies to all the level collections.

I’m not great at explaining technical stuff so you might be better off checking out the Rocket Run code here.

Good luck and thanks for the kind words.

5 Likes

@benjames171 thank you for sharing your code!

It is very much appreciated! :grinning:

The guys here at Defold have done a great job making a lot of very nice tutorials, but I haven’t found one that addresses this subject yet :confused:

I still don’t get it very well on the matter of collections, loaders and proxies, but I haven’t reached that part of development yet :stuck_out_tongue_winking_eye:

On the other side, to handle those values (energy, fuel, etc.) as global variables is a nice approach, I was kind of figuring out that I would have to do something like that, because I am messaging a lot between game objects! :rolling_eyes:

I guess too much messaging affects performace someway…

Thanks again for code! :wink: :thumbsup:

2 Likes

Continuing to develop Rocket Run into a ‘proper’ game. Having played the demo quite a bit, I found it good fun - normally I don’t enjoy playing my own games - so I felt it deserved some more levels and being taken as far as I can.

New stuff:

  • Added a new tileset for level design, this one is a blue/green theme
  • Tidied up the in game on-screen display and added little icons
  • Status line added to keep the player informed what’s going on
  • Adjusted the physics to make the capsule a bit more responsive
  • Added an item drop when sentries are destroyed
  • Destructible walls on some levels to shoot through
  • The usual tweaks and fixes

Stuff still to do:

  • Dynamic enemies moving around the levels
  • More levels
  • Possibly some other items to pick up and use
  • Front end menu needs finishing

Thanks for reading :slight_smile:

Play demo in browser

4 Likes

Excellent! Getting better and better!

2 Likes

Looking good! Would be fun if you took less dmg if you point your landing gear against the walls you hit. Because sometimes you need to move while shooting so it would be handy if you could use the landing gear as bumpers.

4 Likes

Nice. I used to develop games in the 80s on the C-64 and Apple II. This reminds my of those 8-bit classics. Keep up the good work.

4 Likes