Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Light Speed Gunner - An Arcade Cyberpunk Platformer

A topic by RetroVII created Jun 21, 2023 Views: 733 Replies: 10
Viewing posts 1 to 11

A megaman-inspired classic platformer project I have been working on and off, for the last 2 years. It's been on hiatus for the past couple months due to college but I'm planning to start developing it again while this time documenting its progress.

(2 edits)

I was a little bit confused on where to start the devlog and I thought devlogs where gonna be written through blog posts so I sort of made one introducing both myself and this project. So I’ll just reiterate some of the stuff I wrote there, and here is a link to the post if you want to read it.

Game Description

You play as the titular, Light Speed Gunner, and hunt down different mercenaries and criminals for bounty in a classic arcade platformer gameplay.

Title screen of the game for now, I’m planning on improving it

Gameplay

The gameplay structure is basically similar to Megaman where you select a level and each one has their own unique bosses.

Level select of the game

4 different levels of the game I made so far

Tools used

  • Unity 2d for the game
  • Piskel and GraphicsGale for the art and animations.
  • LMMS and Audacity for the audio

The project so far is still rough around the edges, I planned it to initially only have 4 levels since I’m not confident I can do more whilst also dealing with college and the levels are still a bit short but here are a couple things that I’ve made so far:

  • initial version of the 4 levels with background, lighting, and boss
  • title screen
  • game over screen
  • level select screen

I naively thought I could finish this in 1-2 years due to its small scale but even the smallest things in game development can take a lot of time. Here’s a couple of things that I’ve still yet to add in my project:

  • Sound - I already made and added some sound effects like footsteps and gunshots but the themes for the levels and the menus are still to be composed. I made a couple of attempts in creating a synthwave theme for the level select screen but it just didn’t sound like an actual theme so I’m planning to ask a friend to compose probably most, if not all of the music once my project is already almost like an actual game.
  • Game Intro - I also plan on having some sort of cinematic intro for the game, something like in those old arcade games like “Streets of Rage” or “Sunset Riders” which plays when nobody is playing the game yet basically what “Far Cry 3 Blood Dragon” is doing in its intro. It’s something that I would like to try and it also sets the tone of the game.
  • Points System - I wasn’t really planning to add a point system at first since I didn’t really think it would matter, from my experience playing those classic games, all that mattered to me was just clearing the levels and I didn’t really care about the score but a friend of mine recommended adding points and I realized it sort of makes sense because it gives the game a little bit of replayability. Competitive players can repeat levels to see if they can get a higher score from their previous runs by looking for alternative paths or secrets. Additionally, points are also the norm in the old arcade games which this project is definitely inspired by.
  • Player Progression - as of now, the progression of the player is not really saved. Once you finish a certain level, the game sort of stops there as I still have to find out how to code the player’s progress and make sure they can’t select a finished level. I also want the game to reset after 3 game overs, similar to the SNES version of “Sunset Riders”, to make it more challenging and I feel like unlimited continues makes the “game over” less impactful. I am currently working on this one I just finished the art and animations for the level completed screen in the level select. I just gotta implement it.
  • Game Difficulty - Speaking of challenging, I’m having second thoughts on making the game as “classic” as I can since when I let a couple of my friends test the game they had trouble with its difficulty and I’m still not experienced enough to determine whether it’s just my level design or it’s them not used to the old style of games where you really need to repeat multiple times and get used to the controls to overcome the difficulty. I ended up slowing the projectiles for the enemies, again a la “Sunset Riders” but I think it just disrupts the flow of the game since unlike “Sunset Riders”, the player can dash and easily dodge the projectiles. So yeah, I still have to tweak the game and find the right difficulty.
  • Game Settings - this is something I have no idea how to execute so I still need to study this one.
  • Improve Sprite arts - There are a couple of sprites and backgrounds that I am not happy with so I plan on improving and giving more life to them.
  • Clean Code - I’ve been developing this game while also looking up Unity tutorials so I’m sort of learning and practicing at the same time and I realized how inefficient some of my early codes are and I’ve still yet to clean them.

So I think that’s all for the current status of the game and the future plans, I aim to continuously write my updates here in this thread until I finish the project. Comments and feedbacks are appreciated!

I made some progress on the level progression and the lives system today.

I used PlayerPrefs (although I’ve read that PlayerPrefs might not be the optimal way to save player data) to keep track of both of them. Now, the level select screen shows if the player has already completed the level or not and the number of lives persist after a level completion. However, the player can still select the completed levels, I’ve still yet to fix that.

I will also be recording my progress and also to show some gameplay footage, however it’s already quite late so I might just do that tomorrow.

(1 edit)

Was a bit busy with other stuff today but as promised I managed to record some gameplay to show the 4 levels I made. I also like to note that unfortunately, the recordings have choppy framerate particularly in moments where alot of stuff’s happening and that’s on me cause my laptop’s not that great with screen recordings.

So yeah here they are:

I also had an idea on how to prevent the player from selecting completed levels. I have the function and conditions written already but I think I’ll test and implement it tomorrow, since I have to wake up early for tomorrow. I’ll just update if it works or not.

Just another small progress today, the code I made yesterday didn’t work initially but it only needed a small few changes to work out just fine. So now, the player cannot select a completed level and I made sure to add an audio cue to let them know it cannot be selected and I made another sound effect too for changing the screen. I think it doesn’t sound quite right to me yet so it could change but I think it won’t be as noticeable if there was a background music.

I still gotta learn how to make a chiptune sound of an engine starting for the select animation and the next thing I’m planning to work on is improving the life system since for now the player can only have 3 maximum lives which isn’t gonna help with the difficulty. So I’m thinking I’ll revamp the life system then put some 1-ups in the levels and then once those two work well enough, I can then start with the points system.

(1 edit)

Just a quick update, I have been working sporadically on the game for the past few days. I started with the implementation of the 1-ups. It wasn’t really that complicated so it didn’t took me a bit too long

Most of what I did was revamping the code of the health system for the enemy. Before, the value of the life of the enemy and the method that reduces their life were all in the same script which led to the player projectile script looking like this:

every time the projectile hits a gameobject it has to go through multiple ifs to check if the gameobject has a certain script

so I created a separate script for the life management of the enemies and updated all the different enemies and I went through all 4 levels again to make sure they all worked and thankfully the projectile code has now been simplified to this:

After updating the enemy health system. I began the implementation of the score system. For now, there’s a working score system but it doesn’t really persist throughout the scenes even though I’m using singleton for the score manager. I’ll still have to review the code again and maybe watch a couple more videos if I’m actually doing it right. Here’s what the score system looks so far:

So yeah that’s all for my update, once I get the points system working. I’ll probably work on a pause UI and the transitions between screens to finalize the flow of the game.

Just a small update, I managed to get the points system persisting throughout scenes

and I also started working on the pause UI, although the player animation still changes so I might have to update the player script.

I’ve still yet to add the transitions between most of the scenes and then I’ll probably work on the music or the game settings.

(3 edits)

I’ve been working on the arcade intro for the last portion of this month. I was planning on working on the music or the game settings but then I’ve ended up enjoying and getting hooked to the process of creating the intro since it has been a while since I’ve drawn and animated so I just decided to dedicate my efforts to the intro.

Anyways, it’s still not finish, some background art still has to be made but most of it is already done. Here’s a video of my work on the intro so far:

(6 edits)

Hello again, it’s been a while. As usual I’ve been preoccupied with college stuff but now that the semester and my overall college life is ending, I’ve been slowly updating the game bit by bit since my last post. Here is a list of the changes:

Intro Animation for the levels

I added some animation in the intro so the player doesn’t just blink right in

Background Changes

Modified some of the backgrounds I wasn’t satisfied with.

Audio stuff

I ended up composing the music as well and all of the scenes I finished already has an audio. I also finally learned and added the options menu where the user can modify the music and sound effects levels. image.png I created an AudioManager object that persists between scenes.

That’s pretty much it, there are only a couple more things left I need to do:

  • Revamp this level:

maybe add decorations or items on the walls, add doors, and modify the overall structure.

  • Complete all sound effects
  • Ending/Credits scene
  • Re-check scripts

after those, I think the first build should be ready.

(1 edit) (+1)

First build release

After a couple years of on and off development, the first build is finally done! It’s still a bit rough though and there are some little things I still want to add but I think it’s already solid. You can download the game in the game page and feel free to leave any comments or recommendations about the game!

(2 edits)

Build 1.2 Release

After participating a couple game jams, I learned some critical mistakes I made in the previous build which is mainly the screen sizes. Even if the aspect ratio is the same, due to my canvas setting being set to Constant Pixel Size the UI is messed up in every other screen sizes besides my own. So this update is mainly fixing that error and also having the WebGL build so the game can finally run on the browser. One last change I like to note is the camera behavior, before the camera pans up and down if the player aims up and down respectively. Now the camera only pans if you aim down, since there are sections of the game where that’s needed while panning up barely makes any difference.