Before I start to really work on the final boss, balancing it and adding the last gameplay mechanic, I’m going to work on the final cutscene, while the boss only takes a few shots to kill… This way I test the logic and I won’t have to play the hard version of the boss each time I want to tweak the cutscene (and I average about 40 runs to get a cutscene more or less right, depending on length).
No screenshot because of that, because I forgot the game autosaves when it goes back to the Skydancer, and the last part of the cutscene takes place on the Skydancer… Now I have to play since the last savegame I have, just outside the end area… Oh well, not a big problem…
Now listening to “Blackwater Park” by “Opeth”
Link of the Day: This one is for animation programmers… I actually had this idea for some time now, never had time nor the actual knowledge to implement it. It leaves out some stuff that would be useful to see his approach (the collision detection with the actual meshes), but it has great stuff there: http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/real-time-cloth-simulation-with-b-spline-surfaces-r3814
Just finished the final boss introduction cutscene… It came out quite alright, one of my favorites so far!
Now to get pass the boss fight at the end… I might be a bit underpowered for it (hopefully the player will have amassed much more gear at this point). The problem is that if you haven’t, this fight becomes impossible, and unlike the rest of the game, you don’t have a way to go back, unless you have a save game… Still need to think about on how to go about this, to be honest…
Anyway, I got my work cut out for me, since the boss is quite hard and imposes a new gameplay mechanic (from the AI side).
Now listening to “Masterplan” by “Masterplan”
Link of the Day: This movie seems interesting, a cross between “I, Robot”, “Blade Runner” and “Almost Human” (can’t believe they cancelled that, it was so awesome!):
Working on the level design of the last area of the game, and it’s really slow going… The problem is that I’m measuring difficulty with my own skill set, which is very high for this game at this point…
On the other hand, I don’t want to make it easier than I have to, since this is the last area! The player should feel he just had a huge achievement, but not feel frustrated until he reaches it… Not easy at all, at least for me…
Some people just seem extremely gifted in this (John Romero was before he want insane, as Edmund McMillen is another), but for me this is really hard and not as much fun as gameplay mechanics design, or story-telling (even if I hate actually making the cutscenes, but I love envisioning them!).
Obligatory censured screenshot:
Now listening to “Shatter Me” by “Lindsey Stirling”
Link of the Day: Back when I was doing seminars on game making, I often got asked on my opinion on game development for kids… I’ve always had the idea that game development is a great way to get kids into technology, science, math and logical thinking, and could be an excellent educational tool… On that note, I’ve found this great link for a Guide to Getting Kids Started In Game Development on the Game From Scratch site: http://www.gamefromscratch.com/post/2014/09/16/GameFromScratch-Guide-to-Getting-Kids-Started-in-Game-Development.aspx
Well, at this rate I won’t finish the story part by Sunday, but sometimes playing with effects is so much fun…
Today, I kind of lost track of time working on the background effect of the last area, which led to a very interesting effect, which lends the whole area a completely different tone… So, all in all, totally worth it!
Here it is, appropriately censured (no, the stained glass effect is not part of the area, although….).
Now listening to “Act of Stamina” by “In Element”
Link of the Day: I’ve never been too interested in Tolkien-based games, for some reason, although I love the lore, books, movies, etc… Anyway, the new “Shadows of Mordor” game might be interesting, and this live action clip inspired in it is very cool:
Today I mostly struggled with a bug on my editor.
I’ve added a shader to one of the voxel materials, to give it a special effect to the end zone, but when I tried to add some alpha to it, it wouldn’t display anything…
After an hour or so of searching the wrong place, I finally found the issue, which was quite simple! This is annoying, but that is a coder’s life sometimes!
Now listening to “Fireworks” by “Angra”
Link of the Day: I haven’t put many links of the day, mostly because I haven’t gone to the internet that much lately, since I’m very busy with DayJob™ and the game development stuff, and the little time I have left, I’ve spent playing “Assassin’s Creed IV: Black Sails”… Anyway, here’s an interesting post on voice acting on “Tales of the Rampant Coyote”: http://rampantgames.com/blog/?p=7881. It sums up some of my feelings on the topic, and makes me wonder when we’ll have such good sound synthesis as we have graphic synthesis, so we can sidestep these issues… That would be sweet!
Today I worked a bit more on the last area of the game…
Deliberately blurry so I don’t spoil anything…
Anyway, because of the transition and the fight going on in the previous area, I found a silly bug, which is quite recurrent in all systems I built: references.
Basically, the Lua threads that are running to animate stuff aren’t bound to the area, which means that if we transition an area and the thread deletes an object (for example), it will delete either an un-existent object (not that serious, but sloppy), or an object in the new scene with the same name (which is a no-no).
So, I had to code in a “bind to area” feature for cutscenes, etc, which means the threads will stop running if the are they’re bound to is destroyed. It’s implemented a bit sloppily, but it should be enough for this game, which has quite simple dependencies.
This is something I run quite often… Languages like Java sidestep this issue by keeping reference counting and garbage collection, but that’s inefficient and you’re really just shifting the object management to an entity that knows nothing about the way you actually want to manage the entities…
Spellbook (my main engine) uses a combination of reference counting and explicit deletes, but the reference counting is more used for debugging purposes than anything else: basically, if you try to delete something that’s still in use in some other part of the system, you’ll get notified. If you exit the application (or if you call explicit calls to check it), and there’s still caught references, the system will warn you as well… These two small debug hooks are mostly enough to keep the system well behaved, and if they’re not enough, I can always finish a tool I was building some time ago that will dump to a socket when an object was created/deleted/referenced, etc, so I can put that into a tool that will show me the info and enable me to keep track of the entities…
Now listening to “Kiske-Sommerville” by “Michael Kiske & Amanda Sommerville”
Back from the IBC in Amsterdam, and into the cutscenes!
Since this is the last few cutscenes of the game, and the last setting, I’m keeping it under wraps…
Working cutscenes is a bit hard sometimes… Text and dialogues don’t flow on demand, and it takes multiple iterations to get right (at least to my standards, which admittedly aren’t as high as they should).
Hopefully I’ll have this part of the game done by Sunday, which means I only have to add the equipment screen and some pieces of gear to the game for it to be playable from beginning to end (barring bugs)… Then I can start work on the second pass, which includes a lot of small details and one big one: the random missions!
Now listening to “Deceiver of the Gods” by “Amon Amarth”
Finally finished the tentacle, including the death state!
This is the last time I go beyond the “design document”… This was way more work than it was worth!
Now I can start scripting again (and since I’m in the last scene of the game, it’s classified! Got to save something for the players!)
Now listening to “Epilogue” by “To Die For”
Next time I have the brilliant idea of adding a new enemy to the game, because “it’s simple, it’s just an extrusion of a Bezier”, shoot me…
I had no idea that there isn’t a simple way to determine the distance between a point and a bezier (or the closest point on a ray and a bezier)… This really made it harder (and slower) to do the collision detection for the shot…
And I still have to make the death animation… That’s not fun…
So, I’m just missing the hit, the damage on the explosion (the damage from the puddles is done), and I have this enemy done and I can move on with the scripting of the last scenes, and finish building the last area!
Now listening to “Eternity” by “Anathema”
The effect part of the tentacle attack is now done… I’ll probably revisit some of it during polish stage (drool on the tentacles, etc), but for now it’s good enough for my purposes…
The fiery column of particles will deal damage to the player if he flies overhead… That’s my next stop: damage system for the tentacle and for the player hit by tentacular stuff!
Now listening to “Deggial” by “Therion”