[Devlog] Traction Turbo

Update (27th June 2024): Project on hold due to unforeseen circumstances. Not sure when/if I’ll be back.

G’ Morning all! In light of the feedback from my first game, Traction, I’m moving forward with the experience I’ve gained to create a reboot. Allow me to present…

Traction Turbo Title Large

Current progress: 34% finished (roughly!)
Demo progress: 67% finished (approximately!)

This’ll be a diary of the process of making the thing. I’m mainly doing this for motivation - as it’s my first proper attempt at a 100% original game, I’m worried about burnout and falling behind, not to mention procrastination. With this it should be a lil’ more guided!

There won’t be much here as I’m the definition of a novice, but I’ll post a bullet point list once a week, around the weekend, showing progress made in said week, as well as some goals to hopefully achieve in the following week.

I’ve decided to drastically reduce the natter which I usually write - I’m aware no-one wants to read a wall of text, so it’ll just be a list and some other lil’ bits from now on. Apologies if the reams of writing put anyone off before! I’ll put better things, like screenshots n’ such, further down the line. For now, as of writing, it’s too early to showcase too much.

I highly encourage constructive criticism and feedback; I don’t have hardly anyone who’s that interested in gaming, let alone programming and the like, in my meagre circle of pals, so I’m finding it quite hard to improve. At the moment I don’t really have anything to show, as such, so it’s hard to ask for feedback, but I’ll write it here, just in case I forget down the line haha. Many thanks to you for taking the time to write something if you do!

Righty, that wraps up the initial post. Here’s a list of contents of the updates:
Post 2: The beginning!
Post 5: Player controls abound!
Post 12: That’s a lot of systems!
Post 21: Infrastructure engaged!
Post 26: Shop 'til you drop!
Post 27: Sweet but deadly!
Post 28: Levelling the field!
Post 29: Post about computer dying on me.

Divider

Other links:

Traction, the original game which this’s loosely based off of, and my first game:
Traction | Play on gd.games

1 Like

…And here we are, at the starting line of a new project! Let’s get cracking!

Divider

Update 001: 12th May, 2024
The beginning!

Progress:

  • Chose resolution of HD divided by 3 (640x360). Should scale to HD fairly well.
  • Created player ship! Can move with arrows or WASD keys, has thrusters that change based on if left or right is pressed and can change form with the Z key.
  • Not too shabby, considering I started yesterday! (11th May, 2024).

Goals:

  • Create the bullets and graphics for the three main weapons.
  • Code them to work with their respective forms, including trajectory, speeds, gimmicks and off-screen removal.
  • Bonus goal: Hopefully create the graphics for the screen-clearer bomb and/or charge cannon.

Divider

It’s always a blast making the first step towards a new project, but it’s usually quite daunting. It went quite well, so here’s hoping it carries on!

Thats looking dope! Im a big fan of little details like the thrusters getting weaker when you go back, pretty awesome man, can wait to see the rest! Good luck!

Cheers bud! Aye, at least the start’s happened, that’s the hardest part haha!

G’ morning all once again! It’s been a long week, but it’s been fruitful at the very least. Let’s get this show on the road!

Divider

Update 002: 18th May, 2024
Player controls abound!

Progress:

  • All three main weapons have been coded for all their respective levels (1, 2 and 3).
  • Fiddled with a lot of graphics (that’s what took the time haha!) to get things how I like 'em.
  • Created the player’s double charge cannon! Woo!
  • Started on the UI info bar at the bottom of the level’s screen. Much more to do to it though.
  • Started configuring the stats of the ship to allow for shop upgrades down the line.
  • Added gamepad support for the current controls and adjusted keyboard controls.
  • Added a speed toggle switch so the player can go from a faster speed to a slower one at the touch of a button.

Goals:

  • Finish completely the screen-clearer bombs - didn’t get a chance to start on this at all.
  • Make a start on the daunting Life/Health system the game’ll have.
  • Add ‘damaged’ sprites to the player to show damage thresholds reached where applicable.
  • Update UI bar to show damage also.
  • Add a little flash to the exhaust when the player changes speeds.
  • Create the bitmap fonts for the game.

Divider

Quite a lot was done this week, fancied myself a bit of a master at the controls, but they soon put me back in my place haha! Onwards!

1 Like

This game is gonna be a beast of a classic! Cant wait! :smiley:

1 Like

Hey there bud! Aye, even I’m thinking this might be better than my usual twaddle haha! Can’t believe how easy Gdevelop is to work with too! Definitely a brilliant engine! Thanks for the kind words!

1 Like

Let me know if you want some tips on how to make your Health system, im a big fan of rpgs and numbers, so i love that stuff :stuck_out_tongue: …and despite you calling it daunting, youll see thats actually way simpler than you might think.

One tip right off the bat tho, is make the health system yourself, dont use extensions like the “Health” extension, they can be quite bloated and performance heavy. They also become an extra step when trying to save things to variables… making your own system is way simpler, faster and far less performance heavy.

…as a last note… are you making all the assets yourself? That looks kickass!! i specially love the explosions, they look wicked!!

1 Like

Thanks bud, that’s much appreciated! I’m writing a flow chart at the mo and I must admit it’s simpler than I first thought! I’ll be gettin’ on with the bombs for now but it’s awesome to hear I can ask for your assistance if needed, much appreciated!

Ah, I never looked at the extensions that way. You’ve saved me from numerous headaches down the line, seriously thank you for mentioning it! Must admit, over on Traction I had a peculiar bug where the invincibility didn’t register if the player got hit immediately after it wore off - could be because I used the health extension but did the invincibility part myself haha! Will definitely do me own system methinks.

Aye, they’re all hand-drawn - looked up a few tips online, like palette theory and dithering etc but its’s awesome to hear that ya like 'em! There’ll be more explosions to come haha!

1 Like

I also find it easier to add health to enemies with variables instead of adding the Health Behavior to every single enemy…

All you have to do is create an object variable when you create an enemy, like…

Action
Create object “Enemy”
Change number variable “Health” of “Enemy” “set to” “20”

…and ta daa, that specific enemy that was just created now has 20 Health.

…and then to do damage when the bullet hits you just do the action to subtract X value from the object variable “Health” of “Enemy”.

Other than specific behaviors like the Platformer or Top Down movement… i find all the others as sort of training wheels for creating what you want when you dont know how, but once you figure out how it works, its better to make your own programming, that way you can tailor it specifically to your needs :slight_smile:

1 Like

That sounds proper feasible, and a lil’ similar to something rattling around me noggin when I was thinking about it earlier, thanks for the clarification - just finished the initial bomb layout so on Monday I’ll make a start on it methinks!

Agreed on the training wheel approach to the extensions - the ability to fine-tune your own code’s what makes it so darn flexible, I often feel the extensions are a bit over-the-head haha!

1 Like

Howdy all, gonna release this on a Friday for a change as I might be takin’ the weekend easy. Let’s roll!

Divider

Update 003: 24th May, 2024
That’s a lot of systems!

Progress:

  • Made a better title image for the top of this devlog,
  • Finished bombs,
  • Finished the player’s health system,
  • Finished scoring system,
  • Finished lives system for the player, not 100% but most of it,
  • Finished the system for how enemies and their bullets will hurt the player,
  • Made a red caret around the screen when the player’s at low health,
  • Made all pickups, like bomb replenishments and extra lives,
  • Worked on graphical damage updates for the player at differing health levels, and
  • Finished the UI bar at the bottom of the screen.

Goals:

  • Create system to allow player to harm and destroy enemies,
  • Experiment with bitmap fonts for text (yes, I didn’t finish this from last week haha), and
  • Think about character designs for the story.

Divider

Was a lot of work this week; had a few things happen in and around life which made it a wee bit harder, but the momentum’s still going which is a plus point. Let’s keep going!

1 Like

This is a great idea, lets you get feedback from the groundup!

Games looking good bud, keep it up!

This game is gonna be a monster!! I can feel it!

1 Like

That’s cool of ya to say haha, keeps the momentum going! Cheers! I’ll pop the link in the top post.

1 Like

I just gave it a go and it looks gorgeous!!

Love all of it to bits! Everything is so buttery smooth, amazing job!!!

One tip, start adding in sound effects, not only do they have a massive impact but its also good to start weaving them in while your making the systems, this will save you a ton of work down the line.

You can always change your sounds later, make some quick placeholder ones using the in built JSFXR, its super quick!

A good way to go about implementing sounds, is to use the create a variable that will work as sort of Sound Channel ID… sounds facier then it is.

Basically, before playing a sound you add 1 to the variable.

So something like

  • Change scene number variable “SoundID” add 1
  • Play sound on a channel.

Then on the sound channel, you type in your variable, in this case Variable(SoundID)

This is make sure that even if you have 100 sounds being played at once, they will all play properly, useful to do in shoot em ups :slight_smile:

1 Like

Aha, thanks bud, glad to hear it’s working!

Will do - I’ll add it to my list of things to do this week; something tells me I’ll get through the things I’ve posted relatively quickly so it’ll be a challenge!

Thanks for the write-up too, was worried about echo and high volume over repeated sounds but your method should counter both problems, cheers!

1 Like

Ahh, the way to deal with this is different…

Lets say you have something like…

Repeat for each PlayerBullet
Condition
Collision with enemy

Action
Delete Bullet
Deal damage
Change SoundID add 1
Play Explosion Sound on channel SoundID

If for example, 4 of your bullets hit at the exact same time, then you will experience some “loudness”.

The way around this, is to do the exact same as above but change Play a sound for a variable, so like

Action
Delete Bullet
Deal damage
Change SoundID add 1
Change Scene boolean “Explosion” to True

…and then a completely separate event with

Condition
Scene boolean Explosion = True

Action
Change Scene boolean Explosion to False
Play sound on the channel SoundID

You can also do some cool sound variations using this, for example trading the Boolean Variable, with a Number Variable, and on the value do a "RandomInRange(1, 3).

Then make seperate events that say if Number = 1, then play Sound 1, if it say 2 then play sound 2 and so on…

I find these kind of systems a blast to make :smiley:

Let me know if you rather me just shut up with advice and let you figure this stuff out, i know some people prefer to work all this themselfs as part of the fun, so i dont want to take any of that from you :slight_smile:

1 Like

Ah mate that’s incredible! Will definitely use something like this when it comes to the sound design - the multiple sounds too will be a blast to add new dimensions, thanks every so much for taking the time to write this up!

When Tuesday comes around I’ll pop on and start with the week’s tasks, it’s awesome of ya to write this out! Many thanks!

To be fair I’m just winging it so far with the knowledge I’ve built up over thre or four other engines and their failures, but then again thanks to it I’ve got a fair understanding of the core concepts of programming so it wasn’t all for naught. If I run into any problems I’ll be sure to ask if that’s alright!

1 Like

Hey there @Ulqiuo ! Got an idea for ya!

I was thinking about how to work out some stuff in my game and then i thought that this might be something really cool for your game!

Why not add some Roguelike into your shmup game? I cant think of any side scrolling, R-Type, Shmup, Roguelike… it would be hella awesome!

Reason Roguelike elements are so popular in game is because it gives them near endless replay-ability, you dont even need to go too crazy with it, you can use the “Arena Style Roguelike”.

By that i mean that every “Certain events”, the player gets a choice of powes ups to make a “build”.

In your case you could implement something like a Level Up system, and on level up, you get the choice.

So something like…

  • When player kills enemies or picks up power ups, he gets EXP
  • When EXP is full, the Player goes up a Level
  • On Level up, the player can pick a Permenant Power Up out of 3 Choices.

Example Choices

Option 1 - “Glass Cannon” Increases all Damage Delt by 50%, Increas all Damage taken by 50%

Option 2 - “Big-bada-boom!” Enemies create a big explosion when defeated dealing 50% Player damage to all enemies in range.

Option 3 - “Not today” - On Player defeat, revive player with full Health.

Then instead of giving the player “Lives” just make it a one life per game start, the player will have to manage his survival with power ups, health increases, revives and so on, iif the player dies, then back to the main meny screen and the everything will be reset.

This way every time you play, its gonna have a different spice to it, its gonna feel fresh and exciting because you can make a different build, or go about surviving a different way.

Just my 2 cents, feel free to ignore all that :stuck_out_tongue:

1 Like

Mornin’ there @MagicBiscuit! Apologies for the delay in replying, been a busy week!

That sounds like a great idea! I think I’ve only ever seen one shmup rogue-like, and even then it was when I was trawling the Playstation store for games to try out haha. It’s certainly something I might think about in the future!

I’ll be leaving me current project without it though, not only is it coming along relatively well but also I’ve got a clear roadmap; I don’t want to bite off more than I can chew!

Those’re some excellent ideas though, I can definitely see the appeal in it. Many thanks for taking the time to write this up! I appreciate it!

P.S: I like the power-up names haha!

1 Like