Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(6 edits)

Intermediate update to show I'm not dead, and since "make level 2" is a bit ambitious of an update goal.

Level 2. Issues with the UI not being properly laid out, and not having good overlays that separate each element are very apparent here.

Level theme is going to be primarily an Amtrack-like train running through a shopping plaza (it'll be more apparent once I start working on backgrounds). Kinda like Tower City, except with a color scheme like out of the 1920s. Enemies: Placeholder sprites are placeholder (lol they're just the old enemy placeholder sprites from before). Enemies this time around are going to be parkour/dancers that jump at you from the sides, either on scenery or from the spawned rails. I think it's funny to have the mall ninjas be the enemies on the rooftops and the parkour freaks be enemies in the mall. Since the last batch only really had the "Hoppers" that test you dodging by weaving under/around a threat, these ones teach you about going over/under. "Railspinners" (the mobs with the poles) don't spawn after the boss threshold is met. They're pretty much set as far as behavior is concerned. I think I forgot to give them health. The "kickflippers" (the other ones) are majorly broken right now. I screwed up their player detection. The idea is that they lunge towards you, similar to the Railspinners, except instead of always being a threat, they only activate their attack after they get very close to you, then spin backwards and into the air to try and nail you for carelessly running forward. They can linger after this attack, that's fine, but I overlooked adding in a "reset" for after they ground once they've made their attack, and them spawning multiple hurtboxes is just a major oversight for more reasons than just being able to tear the player apart (there's one part in the gif where you can see two of them just juggle the player). Should probably remove the rotation altogether since that's a bit ugly.

Building spawns are completely busted. I screwed a bit with adding in an alternate way to randomize everything other than Unity's default random function, since I was unhappy with how many times it was just giving me lowrolls (read: ~70% or smth of building spawned were just the first option, and spawns followed a similarly bad odds (BO-RING!)). The chaos at the beginning is not going to survive into the final game, at least not this early into the level, since the only reason it's there is because of a screwup with building spawns. That's going to be my primary focus for the next bit of dev work, with kickflippers being second. Reason being that after I get that finished, since I have a lot of this initialization crap fresh in my mind, I'm going to just get placeholders made for the other 5 stages, since scene templating was a bust, and I have some notes nearby for how to actually re-tie the prefabs together. Next update will be proper.

Lastly, I know I mentioned that I was going to fix the spawning spacing issues, but, honestly, I don't really need to at this point. More spacing around a spawn point doesn't make it much less boring. Why spawn 1-3 enemies around 1 spawn point for each one, when I can change each building to have 3 spawn points that each spawn 0-1 enemies? Save me some work, and help diversify the placements a little better. The "robust" answer would be to have each spawn point become a spawn "range" or sorts, but honestly that seems like overkill for this type of thing.

Level 2 is in a playable state.

Brief display of some more hectic spawning. Seems like it's all-or-nothing with the way these work. Fixed segments (the pillar buildings with the pink 'dropslashers' need more spacing in order to not "pop in." Also have an annoying glitch with the one railspinner (grayshirt) not shooting off. Don't know what I'm doing with the sprite on that one; sweater and khakis just doesn't seem fitting. Need to go full emo instead. Kickflippers (green shirt blue hair) are as harassing as I expect, will probably reuse them for a later level.

Snippet of boss fight against 'Davus.' Didn't realize that GifCam wasn't recording when I did most of the fight. AI is a combination of both enemies, basically. He starts out idle, then when the player gets to close, he attacks. When he attacks, he moves to the left, then when the player gets within his 'near detection,' he starts moving back to the right and launches knife-looking projectiles for a very short duration, then sets a recalibration point to the right of camera. When he gets to that recalibration point, he gets the player's expected y position at the far-read trigger, and moves up/down accordingly (I have code for spawning a rail object when he does this so it looks like he's sliding up/down it, but I'm not worried about adding it back in). If the player moves too far ahead, he shoots to the right more rapidly.

This can be a pain, especially with the kickflippers harassing you when you jump over his attack, which, due to the rapid nature of it also keeps him under you, but it's nothing that can't be managed. Railspinners are set to not spawn when Davus is out. 

I'm just going to vary some of the spawn points a little more and start working on the next milestone, since I'm getting tired of looking at green, and I really want to get to "the Furnace."

TODO:

-Screen transitions (enter level, exit level, intermediary, exit to menu)

-Rework in-game menu

-Rework main menu and level select

-Rework timing for button inputs to make three-button combos more forgiving with default setup.

Endgoal:

Be able to transition a player through the first half of the main game without awkward 'jutting,' as well as utilize what they unlock within.

Very important update.


Foremost, in terms of control, combo input rework.

In the options, I set the attack delay to a full .5. You can see the delay with the first input after the unpause. This is normal. The updates come from a special bit with the input logging. For a while, potential moves are logged with a recursive comboTree class that logs an input key, children for next combos, a moveID, and lifetime for the move input

Here's a crude diagram of what's set during level 1 (not counting the shield key tree).


Any check against inputs starts at the base of the tree, then, for each key entered in the input queue, moves down a slot if it's available. If there isn't anything, then return the selected ID, and execute the move associated with it. Before, I was (stupidly) just leaving it up to the expiration timer, which meant that if you did something like continually press attack over and over, you wouldn't actually attack until the entire queue was ready. "Why wait on something if the queue is ready?" This behavior was altered to split the lookup into a more simple function that gets called in the input and timer expiration. Now, whenever you press a key, one of three things happens: (1) if the move in the input tree has potential children the player could execute, wait a delay before executing, (2) it's the last key of a branch, and immediately executes that next move, and (3) if the pressed key does not have any associated moves 'down the branches,' execute the current one. All three are in display in the gif in order after unpause (I pressed up on the third one to get it to attack immediately).

Second important update, level transitions:


The coroutine is a bust for now. It was working fine a moment ago, but then I got smart and added in some checks to the fade to black, and suddenly it wants to shutter now. I'll need to get that sorted out. The important thing here is that all levels are mapped (I'm not going through the full display right now) with their place in the build order and 'next' selection, and basically just need to be 'filled in' with enemies, bosses, and platforms in order to be functional.

After buying, the player is able to buy into the level select now. Fading to black in order to access the end-of-level screen nets a credit, beating a boss gets another. I think I'll leave the test-credit in there since buying stage 1 after beating it makes more sense than beating two levels to get the privilege of starting at the first.

Haven't really messed with any options yet since there's nothing to customize. Hating the way these placeholder menus look.

To-do:

-Level 3

--Enemies (3)

--Platforms (3)

--Boss

-Rework platform spawning to be more randomized (hating how many sections repeat)

Endgoal:

Playable level 3 with substantial platform variety.