Next Broadcast

Make a game for the GameJam!

Ingendum GameDev DK30 Fall 2022 3 1

Description

Despite being a professional software developer (and part-time game developer on the side) for many years, I’ve never actually made a game myself top to bottom! I have all the skills, tools and know-how, but never got around to just… actually doing it. That changes this DK30!

Recent Updates

Ingendum 3 years ago

Nothing worth making videos about again. I did make some bubbly-blue XP orbs that enemies drop, as well as an XP bar. The pause/inventory screen now pops up whenever you level up, so… the gameloop is almost complete! Sort of.

Suffixes remain the biggest timesink still. The idea is as follows: There’s a number of statistics that a Suffix can change. To have some sort of progression other than pure randomness, I want to generate a Suffix that has an approximate DPS modifier, such that the lower level you are, the “weaker” the Suffixes you get to choose from are, on average.

Now, ideally, this DPS modifier is pretty bogus. I want Suffixes that for example have a high bonus, but also a high penalty in an area that you don’t care about. +Damage, -Burn damage? Yes please, for my damage build. Would suck for a burn build though. That way I have a value I can base frequency of occurence on, but a smart player can make use of supposedly “weak” Suffixes.

I did implement some of this, however the way I had implemented weapon stats didn’t really mix well with this… I want to have a good way to define, for example, how much a stat actually affects a theoretical DPS by. I will have to assign theoretical DPS modifiers for stats that just don’t affect DPS at all, but should still affect the overall strength of a generated Suffix.

Long, technical ramblings! Don’t worry about it. What matters is that progress was made and I am already able to generate random Suffixes that you can drag onto your gun and they do stuff!

Having an actual deadline is really helping. Problems like “How do I best implement weapon stats?” would be questions I want to ponder over and find the best solution for, bringing up arguments like “longterm maintainability”, but I just need something that works. And quick. Different priorities. I can work with that, it lets me be happy with the imperfect.

Ingendum 3 years ago

Steady progress on the UI. Not really exciting enough to make videos of, but the drag/drop interface mostly works! Mostly.

Turns out there are a lot of edge cases and mechanisms that need to work properly. Maybe I can write some words explaining what the heck I am actually trying to do. I’m going to bold each word that I consider a keyword with a very specific meaning

In this shooty game, the core concept is, unsurprisingly, a Weapon. A Weapon has a Trigger, a Weapon Base and a number of Suffixes.

A Weapon Base determines the very basic behavior of a weapon, such as the type of projectile spawned and some base stats. For example, the base I am testing with is a “Peashooter” which is a dinky gun that shoots a single bullet with mediocre stats. That’s it.

A Suffix does all kinds of things and is where the interesting stuff happens. They can range from simple passive bonuses/penalties (such as +Damage, -Range) to more exotic things (such as % chance to set enemies on fire, shoot more projectiles, add heat seeking properties to bullets, whatever I can think up).

A Trigger is what causes the Weapon to actually do weapon things, presumably firing projectiles. This could, for example, be “Left Click” or “Parent weapon killed an enemy” or “Parent weapon set an enemy on fire” or some other condition.

What’s a Parent Weapon?

Well, you can decide to glue a second weapon onto your main weapon. It needs a separate trigger (hence the “Parent weapon does X”) and then it does stuff when that condition is met, originating from the target that fulfilled the condition.

And all of these things can be tinkered with, reconfigured and moved around. They’re all separate modules that you can drag around in the UI to your heart’s content. Every level up, you get a few random choices to add to your arsenal. Or not. The only limitation is the amount of slots you have to store things in, so you may want to add extra weapons for the sole purpose of providing storage space. Or maybe not use your Right Click weapon at all, to store random things in there. If that turns out to be too annoying, I wouldn’t be opposed to having a proper inventory, but we’ll see.

Either way, lots of focus on UI functionality here to make this work. UI is not something I’ve done much before, but… so far things are working! I can already drag triggers, weapons and suffixes around. The weapon behavior doesn’t update after things are moved around yet, but that should be easy. I hope.

Ingendum 3 years ago

Now that the work week is over and the long weekend has begun, I can get back to making serious progress. I’ve managed to marry the UI and the weapon system, although I spent perhaps too much time doing UI animations and just playing around instead of the important game mechanic bits, but fun is important. :D Never really done much UI, but I am pretty proud of this spiffy transition from game to pause/inventory screen (which I’ve decided to rework completely. Aiming for something more… minimalistic).

The weapon is no longer just a dummy “press button spawn bullet” test script, but is hooked up to the proper system(!!) which means… once I add more functionality to the UI, like actually being able to drag modules into your weapons, the weapons will adjust their stats and everything should work just fine! Of course it only works for very basic stats yet, like recoil, damage, range. Still missing the complicated interactions, like triggering more weapons when an enemy dies/is set on fire/frozen/etc. But the framework exists and works! Huge weight off my shoulders to see it all just plugging together like Legos finally.

Tomorrow, I will probably go find some icons for my weapons and modules, then implement the drag and drop system to modify your equipped weapons. Then… probably actually get modules procedurally generated. It’s coming together.

What I should also mention here is… that last UI I showed off? Not just reworked. Scrapped. Hated it. Opting for something more dynamic, like you can see here. Expanding, moving elements, rather than Menu windows. I am digging the minimalistic feel of it and seeing the components expand and contract has an unintended Transformers-vibe to it. Somethings you just need to start from scratch and try something else. I am confident it was the right call, even if lost work feels bad.

Ingendum 3 years ago

Progress has slowed, as expected. I am reaching the areas that I am either unfamiliar with (UI design), or areas that are just actually new and unique (core game systems).

First of, UI: One big part of the game is meant to be a screen where you can tinker with your gun. You have the actual weapon, which is a reward for leveling up, but also prefixes and suffixes, which can modify weapons. Easy enough to display in a UI so far, but… The other big part is that I want weapons to trigger from all kinds of things, so if you shoot “Peashooter”, it may, on a hit, trigger “Big Explosion” which has a chance to burn enemies, and burnt enemies then trigger “Chain Laser”. I want it to be mad, explosive and most likely GPU destroying. We’ll see. Balance comes last.

I am not an art person, so I am relying on assets I get elsewhere. I had a UI one that seemed alright, but now seeing it in big, I am not sure anymore. HOWEVER perfectonism is the enemy of progress, so I am going with this for now, bulldozing aside concerns until they either disappear, I run out of time or everything that was higher priority has been handled.

Also visible: Different fonts, because I haven’t decided on which one yet.

Second part is the work on said weapon system. I want it to be generic to allow for all kinds of procedural item generation. The (hopefully) cherry on top will be procedurally generated names. I want, for example, a suffix that mostly increases burn chance and damage to name itself “Conflagratory Burninator”, or other silly names like that that hint at the theme (or: more likely just the two most prominent modifiers) of the suffix/prefix.

Here’s a picture of some editor shenanigans I did to test the system without having it integrated yet.

Ingendum 3 years ago

Admittedly I am a bit worried about premature burnout, but on the other hand all this progress may just be more low-hanging fruits. I am noticing that… I have done all these implementations before. Just never in a single project, but spread out over many years. Much of it is like riding a bycicle so far.

Done more work on graphics and animations, hooked up the health system so enemies can damage you. Started some UI stuff that doesn’t do anything yet.

Horrible quality gif since I wanted to show a bigger screen. Better quality video here https://www.youtube.com/watch?v=RAdcZVLB94w

Ingendum 3 years ago

Day 2 started early with some low-hanging fruits. Replaced the white square as the protagonist with a lil’ tank from a free sprite sheet I found on https://zintoki.itch.io/space-breaker . I am not an art man, so using a sprite sheet of some sort is a necessity and this one looks pretty neat! Also added shooting. As expected, didn’t take more than a few minutes to at least add a basic framework. It will need a LOT of work once I want to implement the actual systems, but it’s enough to get a feel for things for now.

Here’s a progress gif.

Ingendum 3 years ago

Day 1 was very productive. I already had a few possible concepts to work on that had plenty of thought, so the brainstorming process was very quick.

The game I will be making is a Vampire Survivor-esque reverse bullet hell, focusing on procedural weapon drops that can be modified with all kinds of effects and triggers, hopefully leading to some fun experimentation and combos. For example, you could make the bullets of your peashooter fire a laser on impact, which then explodes. Weapons should also spawn with Prefixes and “affixes”/attributes, for example a “Heavy Peashooter, burning broken explosive” has the Prefix “Heavy” and the attributes burning, broken, explosive. Later you may find a thing to slot into that weapon that amplifies or reduces affixes, so you can make that “broken” less bad and that “burning” better. I’ll write more about the details once I… figure them out.

For now, I got the basics started. Character movement, camera, infinite backgrounds, enemies moving about. Here’s a gif!

Estimated Timeframe

Oct 19th - Nov 19th

Week 1 Goal

Set up. Develop a concept. Start work.

Week 2 Goal

Finalize concept 100%, don’t change important parts of the game anymore. Do work

Week 3 Goal

Approach a playable game! Playtest!

Week 4 Goal

Since I will inevitably miss the week 3 deadline of having a playable game, do the rest. More playtesting. Figure out how to release.

Tags

  • GameDev
  • Rise of the Machines