Day 60: Today, it’s late. Way too late. It’s 01:56. I’m tired, so tired. I’ve been working since 10:00… But I need to. I’ve been selected to show my game at IndieCade Europe in the Show & Tell. So this mean crunch time! Crunch is actually fun after the third glass of coke. It’s been a long day, and I’m repeating myself. So today:
Organized the rooms. I’ve put all the prefabs in the appropriate folders. And I checked that everything works correctly.
Fixed the enemies collectible sound. I did this manually, it was faster than my enemy update script.Put a check at the end of the dungeon generation to verify that the size is acceptable (50% of max rooms minimum). If it isn’t big enough, I just redo the generation. Since the graph algorithm only takes 5ms, it’s completely affordable to re reroll it.
Fixed a bug with the collectibles. There was weird behaviour that the coins were attracted and then stopped. This was weird, since the code to attract them is really simple. It turned out that the coins were colliding with themselves. A simple collision matrix configuration change fixed the problem.
Received my first ever business cards. I felt so pro having those! I posted on twitter to show them. If you want one, you’ll have to bump into me at Indie Cade!
Does it feels like all I want is to go to bed, and therefore I try to be as concise as possible and avoiding any jokes? Maybe. But It would be a shame, since it’s when I’m sleep deprived that I wrote the best stupidities. Banana.
Put the life UI in a bar instead of a text. Much better. But still really ugly. I really don’t have any graphical talent.
Went frenzy on the UI. I did a lot of small changes. Reorganized, resized etc… The main change is the mini map, it’s much smaller now. It’s still not responsive though. But since I’ll demo the game on my PC, I know the resolution ;) Now don’t tell that to anyone. If you do that, a baby panda will be sacrificed to the lord of lost socks.
Worked on the game feel / juiciness / anything you like to call it. I did a number of stuff, most are taken directly from The art of screenshake” and “Juice it or lose it”. In detail:
Big explosions. After all it was in the pitch, and for now the explosion were… disappointing to say the least. So I quadrupled the size and added some white and black frames (to flash). It looks much better now (sorry for the epileptics).
Added a possible muzzle flash to bullet fountains. I use it only for the player weapon now, but it can be added to any. I just added a sprite that appears for one frame at fire. I’d like to take this moment of you attention to complain about those juiciness features. While this might seems really trivial to make (and it is). It still takes a huge amount of time to make it right (or at least passable). For example for the muzzle flash, I had to try tens of flash sprites/colors. Had to make it appear for the right amount of time, at the right place. And every stuff is like that, I spent an absurd amount of time doing it. And when it’s over I’m all like “meh easy”. But in the defense of these features, it’s my fault, I should be better at doing this. Also it makes the game looks cooler which is nice.
*Made a “bullet explosion”. That way, when they it something, they don’t just disappear. Again it’s a simple sprite showed for a short amount of time. But once I managed to make a good explosion sprite, it looks great! More satisfaction to blow things up (or just shoot the walls).Upgraded the death animation. Now when you die, the times slows down, there’s a HUGE explosion with a HUGE screen shake (no flash though). And then the screen slowly fade to black. And there’s a HUGE “YOU DIED” text in red that appears. It’s much better.
Added more bass to the player weapon shot sounds. Actually I made a new asset from scratch (like 10 min in bfxr). Now it’s better (trust me on this). Also in my git commit it’s written that I “fixed some sounds”. So it must be true, but I can’t remember what it was.
Upgraded the player hit feedback. Before you simply turned red, and it was as cheap as a homeless wine. Now you get a big screen shake, and you have shield that appears around you. It’s still cheap, but this time like a 5$ wine bottle (not magnificent, but does the job well enough).
Redid the player animations. For a lot of time I had this animation were the ship would turn. And it was not based on the rotation so it was awful. I ditched all that and replaced it with a thruster anim. Now your thruster depends on your speed (relative to your direction). It kinda bugs, but it kinda works too (at least enough to maintain the illusion).
Added random in bullet patterns. Now I can add a random angle to each bullet. This makes the shots less precise, but more diverse. I also made the player bullets bigger to make it more easy to aim (and to look cooler).
Read all that I could find on how to make game trailers. Yeah I need to do a trailer for Indie Cade. I thought I could postpone that until apha but I was wrong. So I read a lot of interesting stuff on the net. If you’re looking for articles, I suggest you go to reddit gamedev and search for “Trailer”. I also looked at alot of trailers on steam. I quickly realized it was too much artistic to my taste (and more importantly skills). But I had no choice but to do it. And so I went back on Unity to capture gameplay moments. But it was then that I stumbled upon a mighty and fierce bug (hear WTF). I’m sure you’re dying to now what it was. Well fear not loyal reader! For I the magnificent Bobo will tell you the tale in vivid details (magnificent Bobo was just for the sake of the joke. It can’t in no case become an affiliated nickname. All attempts in doing so will thus result in angry mails with images of me angry).
Got stuck and a zurhnguphzghuhzhru*ghazurhbnghsdbvbzrhg (that’s the Umbrant word for fucking) bug. Just a little backstory to make you understand the nightmare I lived through: Monday night 22:00. The sky is black. I’m full of hopes. Capturing gameplay footages shouldn’t take long. I build a first version. Run it and remembered that I didn’t reset the game state. But that’s not enough to take me down! No I react quickly and do a small tool to do that. Boom problem solved. Wrong. Problem hits back. I’m baffled with incomprehensible darkness as the game hopelessly stays empty. No dungeon in sight. But my debugging experience helps me to slay this bug. I fixed the Knight player configuration. And fustigate my past self to not have made a more robust code. But it matters not as I have slain the mighty bug. Or so I thought! Oh! the disappointment I felt when I realized it was but an appetizer to the real bug. The master bug. The screenshake was more than two time powerful in the builds! No error what so ever. Everything worked in the damned Engine! I searched, I tested, and I raged. But mostly I said WTF. I did developpement builds. I check the values. I tried different resolutions. Overwhelmed by despair, I even tried to lower the shake values. But nothing worked, the master bug was there mocking me! More than one time I thought about giving up. I thought of the goats I could raise in a mountain somewhere. But there won’t be said that I Count Urk is a coward! No. I kept trying. Until light started to shine. There was a moment where everything was fine! I didn’t changed anything. I thought I was going crazy. And that the master bug was in no place but my own head. But when I rebuilded a production build. The perfid bug was here once more. But he had made it’s last mistake. For I had two situation with small differences. Galvanised by this discovery, I set on to discover the root of all evil, and to finally cleanse myself from the master bug. I pinpointed it. A Debug Log made everything work. This was most dubious. And then it hit me. The divine understanding. Suddenly everything was so clear. Frame Rate!! I disabled V-Sync long ago. Alas in the builds, my code was running simply too fast. At 4000 thousand frames per second the shakes was done way too much time. But it was invisible since logging said shakes slowed the frame rate! Finding than my arch nemesis the master bug was so tiny and weak took a toll on me. I felt deeply ashamed. But it was no time for despair. I had to do my duty. And so by making the shake time dependent, the master bug was no more. The end.
Ha! You thought this was over? Fool! Game development is never over! I had to redo all the shakes configuration to work at any frame rate. And sleep deprivation made that difficult. Had struggled getting the level of juiciness I had before. I’ll pass on the stupid iterations. But since I know you’re shivering with details of the extent of my stupidity. I thought 0.16 meant 16ms while actually it meant 160ms. No wonder that it was fluid at all! In the end I just discarded the scene changes, and went back to the previous configuration. I put a shake interval of 10ms and everything was fine again. 4 hours (including bug slaying) all for adding a simple interval variable. After this, I wasn’t the same. It was a real lesson of humbleness.
Had my roommate playtest the game. Yes at 01:30. He found some bugs. But compared to the master bug, they were nothing.
Fixed the bugs. It includes a few, but I’m too tired to write them. Seriously I spent an hour writing stupid things that I’m sure no one will read. If you’re reading this you win a copy of all my games past, present, and future (limited to the first 10 person). Just email me with the pass phrase: The llama eat pudding only on full moons (and also link to the blog post because I’ll forget the phrase).
0 comments