Monday, May 29, 2017

Stopping Power

Part of actually changing gameplay means I get to put puns in the blog titles.

Not a lot changes in this update, but I did act on the feedback I got last week. I changed the orientation of some obstacles in one level to make the solution to that level more intuitive, and I spent a lot of time looking at how I move the player and eventually came upon what I think is the best way to force the player to stop when they let go of inputs.

I tried at first to make acceleration and deceleration be dependent upon time rather than the drag setting on the player's rigidbody, then I briefly considered overhauling how the player moves entirely, but I eventually decided I would limit the player's speed by modifying the rigidbody's velocity directly, which is what I already do in several parts of the game.

The next hurdle was figuring out under what conditions to have the game stop the player. Obviously, when the player isn't entering any input, I need to stop them, but how to detect that got a little fiddly. I use Input.GetAxis() instead of Input.GetAxisRaw(), which means that there's a substantial amount of time where input is "falling off" after you let go of whatever keyboard key you're holding down. I tried a bunch of workarounds until I figured out Unity already had this solved with the Input.GetAny() method.

After I got everything working, I realized that modifying the rigidbody's velocity directly worked, but didn't feel right. Everything was too stiff, it almost gave you an anxious feeling. So I created a drag setting that exists solely for slowing down the player, and now when I want to slow the player, I just set their drag to that number. It seems to work a lot better, and I have a lot of freedom over how stong I want the stopping power of that function to be. Which brings us back to the title of this blog post. Full circle!

P.S. This update caused several bugs, including one which limits your speed if you charge while standing still. I've fixed most of them already, but as this is already a late update, those fixes will be coming next week.

Charging-up sound effect is by Javier Zumer. I use and modify it under this license.

Monday, May 22, 2017

And not an update was made!

Sorry, no update this week. I did, however, take the game to a developer meetup and got some good feedback on some levels. I've looked at redoing player movement before, but I keep shying away from making the player stop on a dime, for whatever reason. The game requires a lot of precision, and for me, I've gotten so used to the movement that it feels precise (or precise enough) to me, but it's really turned off multiple people, and that means I have to look at it again.

Sunday, May 14, 2017

New level, some corrections, and versioning

This week I corrected a sound effect issue, I fixed a UI issue, and I created an pretty interesting new level. I also got my project versioned, which is something I'm very rusty with, having not touched versioning in about two years.

I started out wanting to make a level that used boost plates, but I then decided it would be cool to see what I could do with more of those rotating hexagonal bounce walls. I ended up doing neither of those, but I did make a pretty interesting and challenging level.

The object is to bounce all the way around the dangerous kill wall to attack the enemy there are a few angles you can do this from, which makes the puzzle feel open and flexible. You have to keep an eye on both your bounce angles and those of the enemy projectiles, so despite the fact that the puzzle isn't hard to figure out, you do need to work a little to actually solve it.

The charging-up noise is, again, by Javier Zumer. I use and modify this sound effect using this license.

Sunday, May 7, 2017

One new level

Not much of an update this week. I noticed that warp walls and boost plates still don't get that much love in the latter half of the game, so I added a level that uses warp walls.

I'm also starting to look into finally getting this project versioned. I've been working this entire time without any kind of versioning software whatsoever, which hasn't really mattered to me that much so far, but which may be important in the future. It'll definitely become true if I ever want to contact an artist or sound designer to help finish the aesthetics of the game.

Charging-up sound is by Javier Zumer. I use and modify this sound under this license.

Monday, May 1, 2017

Just some text changes

This week I didn't add anything other than some text to the screen which pops up when you clear a level. It'll now tell you about how many charges you used, and compare that to the lowest number of charges needed to complete the level.

I also created a game object in each level that holds a script which tracks and reports that level's stats. Currently that is only the number of charges the player has taken and the minimum number of charges required to clear the level. I'm sure there's a smarter way to do this than making an object in each level which tracks this, but I didn't want to make some kind of static class which had information on each level because I didn't want to have to keep track somehow of what level index corresponded with what level, especially looking at how often I add or rearrange levels.

This is the kind of change that I really need a playtest for. I can't gauge how well this is working at all until I see how players react to it.

As always, charge-up noise is by Javier Zumer. I use and modify it under this license. I really got to get someone to just whip up a version of this noise that I don't need to endlessly cite.