Monday, September 26, 2016

WeeklyUpdate #6

I think these posts should be something different that a summary of my repo commits, but summarizing them seems necessary for commentary. I'm going to try copy/pasting.

- Made Spiraler.cs and Bomber.cs. Changed up how Flyer.cs and AI targeting works. Made solar panels and water hose work with Black Bird.
- Made medicine item. Made harpoon reeling in from dock work. Now it detaches when dismounting bird. Started tump baby boss and created accompanying homing missile with capped velocity. Created blood slider and straightforward big bird hp.

So I've done all this work to get around BigBird.cs and BigBirdManager.cs and instead have Carrier.cs and CarrierManager.cs. Hopefully, when multiplayer is implemented, this work will have been worth it. Other than the broadsides, and removal of the coop, I think I've gotten back to full functionality plus more from the Kestrel version of Big Bird.

I believe I'm getting bogged down with wanting to create new mechanics or tweak existing ones. The current storage system and number displays seems bad and awkward with their flipping. The tail rider station doesn't function like it should. Creating the lance item and balloon shield and getting the electric tether and power bird and net and healing and overheating/freezing player mechanic are all things that I would want to do next, but I believe I need to work on game structure. Tweak the rhythm of enemy spawning, created some reasons to explore off the river, get the store system working, get a few basic bosses, and get the level progression working. Then play test and add in new mechanics.

Anyway, one solid day of work was basically all I got done this week. Some of my new sounds are annoying. 

Peace out.

Sunday, September 18, 2016

Weekly Update #5

Was able to put in 3 good sessions this week. I started implementing a dock prep mechanic where a player charges up each dock so that when a Greyhound docks there, it refills its water supply immediately, vs then having to fill up. It takes much less time to prep a dock than to land a dehydrated Greyhound and then slowly fill it. Although, Greyhounds docked automatically fill up and don't require a player there, atm. This is my imitation of Overcooked coop mechanics. I may, alternatively, switch this to being used for healing an injured Greyhound or player. I had this big idea for player injuries, which will prevent players from always and forever just doing one job. For instance, blindness would prevent...maybe most things, or just steering. Dehydration requires player to stay on Big Bird. Now I just had an idea for fatness, which would require a player to ride a Greyhound for a while. Hm.

I haven't played Overcooked, but I've watched it and it seems like once you've "solved" a level, it wouldn't be too interesting to replay. Hopefully, all the real time mechanics in Flock of Dogs will allow for more emergent "puzzles" that would have greater replayability. I'm thinking that there will just be more of a gradient in skill, whereas in Overcooked you see the pattern of the level, and voila, in Flock you begin to see the needs of Big Bird and can respond in a variety of ways, some better than others, as well as depending on the kind of build you go for. I'm considering structuring the game to guide players toward Big Bird builds. Builds could be focused around lots of buffed Greyhounds, or lots of upgraded turrets, or boarding, or Big Bird mobility (maybe), or resource collection/power ups/spells (maybe spells).

Next, I did remove a bunch of unused Bezier stuff, skybox assets, MJSTY assets, which cleaned up the project folder a fair amount. Felt good.

I made a long, handwritten list of items to get into the game by Friday, my play test night. I then went to the next item, which was item stacking for the storage, and got that pretty much working. Not thrilled with the way I'm currently displaying the number of each inventory item in storage (the item sprite is replaced with a sprite with the number of that item in that slot in storage every few seconds, then the sprites swap back). Also, created the Gem.cs with ruby, emerald, and sapphire type items.

Then I added a bunch of sounds. I don't have a particular principled approach for what to look for in a sound. Just getting free stuff as placeholder. Heard in a podcast that "we didn't evolve to be happy" and I don't wan't to forget that line. I think it better as "evolution didn't select for happiness" maybe. Anyway, also heard in a podcast an anecdote about a sound design lead saying that everything that could have a sound, should have a sound. Start there, then subtract, maybe.

I went to the next item on my list which was "2 types of dangerous environs". I started with spikey versions of Big Tetros. Also, made Big Tetros respond to collisions with damage and sound and causing damage, if spikey. Deciding on damage type, given the idea of player injury, Greyhound injury, and player bucking, is a design issue I haven't resolved.

Wednesday, September 14, 2016

Weekly Update #4

Surprised already at weekly update 4. Anyway, got pretty stressed out earlier this week when, after having not touched the game for a while, the frame rate was around 30. I suspected this was because my laptop was unplugged, which is seldom for my working environment, but I've been trying this coffee shop thing lately. Anyway, I double checked my laptop power settings weren't supposed to be "balancing" or in "light" mode and sometimes, when I'd remove Big Bird or turn off various other game objects, the FPS would jump back up to 60+. I tried rolling back and I had the same issue, which really made me think it was plugging in the laptop. Anyway, the whole thing did go away when I got home and did plug in my laptop, but up until I plugged it in I was getting pretty scared and depressed since if plugging in didn't cure the problem, I had zero idea what was up.

The big reason I had started to pay attention to frame rate was that I had, a few weeks ago, started noticing that every second or two the FPS would dip from ~70 to ~45 for a moment or two. It seems this was due to the number of enemies I had started spawning. I've now reduced that number, or rather, not going to spawn them at the same time spread around the map, the plan is to create spawn triggers at various y values. The Sleeper.cs I don't think helps that much with processing, because the box collider has to stay enabled and be always checked if it's colliding with the Alerter circle collider. I also slightly optimized the Flyer.cs code, spreading out range checks to every 3 seconds or so instead of every update. It probably wouldn't be a bad idea to implement some group AI behavior and go through groups of enemies as a list, rather than have AI attached to each one. This might be termed "flocking" but idk. The bigger thing, for optimization needed now, because I don't want to get bogged down optimizing, would be to just implement the spawn triggers.

I created a HUD for the water and solar energies and got drinking/sweating/shield up/shield down working for a generalized Carrier. Removed some other Big Bird specific carrier code. Worked on the Shop and Shopkeeper stuff and made it work with any general Carrier a bit better. Still some issues with it. Found another issue with spawning the giant tetrominoes and used a much more straightforward ClearRiver approach, which, instead of checking for the river when placing tetros by attempting to box cast their colliders at the correct position and correct rotation, I just have a function on each river dot that clears itself of the specified objects. Much cleaner.

Still didn't spend as much time on the game as I'd have liked.

-Max

Monday, September 5, 2016

Weekly update #3

:(

I think I worked on the game for half an hour this week. Started a new enemy type, Floater, that's intended to be a very big, bulky, slow enemy type. I feel bad about not doing more. I wonder about the effectiveness of accountability. Anyway, I knew it was going to be a tough week for productivity. I moved house. I did exercise 7 days in a row. Looking back, there were only a few blocks of time where I could have gotten some programming done, but I'm overall content with most of my decisions on how I spent my time, friend's birthday party, talking with friend on phone, moving, unpacking/cleaning, day job, lots of exercising, dog, watching Mr Robot. Last night, I watched Twitch for a few hours and I've spent probably a few hours on dating apps this week and maybe a little more time on Facebook than I would have liked, so those are the places where I would have preferred opening up Unity and those are my known time sinks. Just gotta get back at it, I suppose.