Devlog 03 - Making, Breaking, and Remaking


(Before starting: These devlogs are written live as I do things, so if it feels inconsistent or all over the place, that's probably why)

After putting out my latest build and garnering feedback, I decided that this build would focus on 4 things in particular:

1) Getting another core mechanic into the game, something that would set the game apart from others, as well as make it more fun to play around with

2) Decide on a permanent name for the project

3) Finish polishing up my enemies

4) Juice up the game in a way that doesn't create a specific mood before the mechanic is implemented.

That last point may sound confusing, but the core of what I mean by that is deciding things such as the world design, theme, and other things based off the mechanic. An example of this mentality in use was Super Mario Sunshine, where designers at Nintendo created the idea of the F.L.U.D.D, which then made them think of a tropical island, which then ended forming the setting, aesthetic, music, and other things.

What this means is that I don't want to create props like trash cans before I actually create the mechanic, and force myself of mechanics that would feel right in an urban setting.

(For a deeper analysis into this design philosophy, this video goes more in depth. I'm not necessarily going to go 100% into this design philosophy, but I think it's a really solid starting point.

)

Now, I decided early on that one of my wants for this project was shooter gameplay, and that was going to be a core pillar of my games design, so the mechanic would have to work around and be able to interact with that.

Thankfully, I found something pretty early on, and bits of the aesthetic played into that. It would work.

This mechanic is one you've seen before in another game: The ability to bind enemies, almost like Breath of the Wild's Stasis, but somewhat reimagined in a 2D environment. The basic idea was for the player to have the ability to "bind" enemies in place.

After taking some time to modify and tweak some values and follow on some feedback, I got to work on the mechanic. However, this proved to be an interesting test of my abilities because there wasn't really a full tutorial on the subject, which meant I was kind of on my own. The best I found was a recreation of Breath of the Wild's Stasis rune (

), but this was still only a general overview of the process rather than full documentation. However, it did give me some ideas on what I needed to do.

I started by just getting the gun to determine if it hit an enemy, and pop up a message if it did. I got this working pretty quickly, and then started on the second leg: I wanted the "binding shot" to be a charged shot, separate from normal firing. This also, surprisingly, didn't take too long. I could go further and add a recharge time to this shot, but that's for another time.

Now that I know what I hit and a way to hit them, I can now start modifying the object I hit. In this case, I can disable their movement. This, however, will also continue to build up their fall speed, so I need to make sure to reset that.

However, I decided to call it a night there. I wanted to think more about this, and take my time with implementation.

But then I laid awake at 2am, just...thinking about this mechanic, and after further trying to implement it, it just didn't feel fun or really rewarding. It felt like I was forcing a crazy gimmick solely for the sake of it, when it really wasn't needed. I thought about Celeste, which while feeling very Nintendo-like, doesn't really have any crazy gimmicks, just a simple dash that can be used in a variable number of ways. I don't have to necessarily do something new, I just have to do it well.

I started by implementing knockback on my enemies from Yuni's shots, as well as a hit effect that spawns at the point where her gun fires. I accomplished the knockback by multiplying a knockback value by Yuni's relative position to the enemy, normalized to +1 or -1 (which effectively gave us the direction Yuni shot the enemy from, and we'll always know that she'll be shooting from that side since her rifle is hitscan), and then slowly reducing that value over time to simulate drag.

This lead me to find the lerp function, which did exactly what I needed to accomplish the drag.

But then the lerp function bugged out, so I did the stupid solution and coded what was basically the exact same thing

I also tried adding a muzzle flash to Yuni's gun, but it proved somewhat buggy, as it wouldn't move with her, so a bit disheartened I made a footstep effect instead.

And with that, I left the project for another night and got some sleep.

After playing with my list a little more, I realized that I'd both cleared everything from my enemy code that felt critical to get done, and had now been basically working on enemies for 3 weeks in a row now, and with the fact that they felt pretty good for the moment, I kind of just said "fuck it", marked it as complete, and put the rest in a separate list of "things to get done later"

However, a huge bug in the knockback code cropped up, and no matter how I tried to fix it and no matter how far back to the root I attempted to prevent it, the same bug cropped up (basically, shooting someone while they're in the air would cause some part of the knockback code to bug out. I tried preventing knockback from being administered right back from when her shot detects the enemy, but it still cropped up and I can't go any further back than that)

So, I scrapped the knockback code too, and put it on the back burner so it didn't cause cascading problems with other implementation.

By this point, I was running out of big things I really wanted to work on, and hadn't gotten all that much done. So, I decided to try to improve it in a different way.

The thing my project really needed at this point was an identity of its own, so I downloaded a free music program and tried my hand at it, and oh boy, was it overwhelming.

It also came with nothing and wouldn't let me save, and I realized in that moment that the cost bandaid would have to come off at some point

So, there I was at 4am, in my living room, computer on the floor, watching YouTube videos while my computer downloaded a 15GB file with $150 worth of software.

My goal for this was to create even some kind of menu music, or a track that could theoretically go into the game at a later point. The reasoning behind this was that giving my project an identity would help me to better shape what it was and what I wanted it to be.

It's not necessarily a great plan, but I needed *something*

...And then I found out how to solve the knockback bug. Yeah, this whole week is kind of all over the place.

That being said, I still think my other point stands. My project needs an identity.

The music program disagreed, though. As it turns out, a huge chunk of instruments is missing from the files, and the only way to get them is through a complete redownload, and god knows I'm not doing that again right now.

Which puts me back at square one...

I took some time to add a tiny bit more polish, such as an enemy death animation, but the game still felt like it was missing something, and I didn't know what that something was.

I also added a sound effect to the player shooting, even if it's not great, it's still something that at least makes it feel a little more full. Besides, it could be polished later. What matters is that it's a rough idea that's implemented so I know how to iterate on it when the time comes.

I also iterated a little bit on my main menu, fixing a small issue with my currently pointless sliders

And then by some stroke of luck, my mouse completely failed on me. Just wouldn't move at all. Resetting my computer fixed the issue, but still have no idea what happened.

It was at this point that I realized I wasn't getting anything major done before this build was supposed to release, so rather than stress myself out, I decided to take some time to get some small things done and publish the build as it is.

It felt different enough to warrant another build. Not really by much, but enough.

But...I decided to do one more thing before I published it, at least cross off ONE major task I had planned for the 2 weeks.

I present: Endbound.

Now, I don't know what kind of ripple effect this name is going to have with the rest of this project, but I think I might have an idea of at least the general direction (I also have 2 more games to play to nail down the direction I'm seeing, though I would've played one of them regardless)

And, you know what? Sometimes you just have to take a leap of faith. Playing this project safe would get me nowhere

So, postmortem of this build? I'm not really proud of myself on this one, I wish I had more to show and that so much didn't get scrapped and re-added and scrapped again. Like, I pretty much did the same amount of overall work on this project as I did in my previous builds, but the actual net work on this one ended up being minimal.

I'm glad the project at least has an identity to stand on, rather than just being "unnamed project", though. I think that was needed early.

For the next build, I still want to improve combat, which I did a little bit in this one through the addition of knockback and general improvment of enemies, but I can do more.

I'm also going to continue to give some basic polish to what I have, at least get a very general idea of what I'm looking for.

Files

Endbound 0.3.0.zip 18 MB
May 08, 2020

Get Endbound: Prototype

Leave a comment

Log in with itch.io to leave a comment.