Spellcaster Studios

Make it happen…

Bugs on the editor

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!

screen232

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!

The endless reference bug…

Today I worked a bit more on the last area of the game…

screen231

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 to cutscenes…

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…

screen214

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”

Death sequence

Finally finished the tentacle, including the death state!

screen230

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”

Bezier hit

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…

screen229

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”

Fiery column

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…

screen228

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”

And dripping…

Finished the hit/drip effect on the tentacle. When the tentacle hits, it will do a small explosion effect, and then a drip will stay in the ground, which will damage the player…

The damage part isn’t done yet, since I’m still missing the “column of light” effect necessary (to avoid the player using he jetpack to avoid damage on this), but the rest works like a charm:

screen226

screen227

There’s also a small camera shake when the tentacle hits the ground, which really adds to the effect!

Now listening to “Dead End Knights” by “Katatonia”

Link of the Day: Now exactly a link, but I found this “funny” tweet from thread involving someone with no idea on how game development works and Tim Schafer: http://twitter.com/SilverSam88/status/509645858066169856

AND ATTACK!

The tentacle now attacks correctly (finally!)… I changed the gameplay mechanic (because this one was too easy if you kept moving), so now the tentacle leaves a patch on the ground which damages the player when stepped on:

screen225

Not the final visuals, though…

I also want to add a “column” to it, so that if you jetpack on top of it, you’ll also take damage… Yep, I’m that evil… Open-mouthed smile

This effect is still ongoing… I played with a lot of variations (radius, etc), but none of them looked nice (tended to build a kind of pointy edge, which looked terrible in motion).

Still have a lot to go on this one, but time has been at a premium, and my motivation hasn’t been soaring has it had in the last few months…

It seems the closer I get to the end of the game, the slower I get, and there’s still a lot of stuff to do:

  • Procedural missions (side quests)
  • Equipment missions
  • A lot of text
  • Balancing
  • Mac/Linux port
  • Bug fixing
  • Graphical polish

 

So… Still a long way to go, and I’ve been having neat ideas for other games as well, which doesn’t help the motivation!

Preparing to attack…

Not much going on, DayJob has been taking its toll and I haven’t had much time to work on the game…

Tomorrow, I’m flying for the IBC in the Netherlands, so I won’t have any time to work on the game (I have some posts to cover that time, so you’ll have fresh updates, even if not a link of the day).

Anyway, still working on the tentacle animation… I dropped everything I’ve done so far on it and started from scratch, adding a “before attack” position:

screen224

This way, the player has some warning before being ravaged by them!

Next step is to add the attack itself…

Now listening to “Thy Kingdom Gone” by “Flowing Tears”

Argh!

Still working on the tentacle animation… There are so many things that can wrong on planning the path, I’m getting really frustrated with it!

Every time I think I’m close to a solution, I find some new fringe state which screws everything up!

screen223

About 15% of the time, the tentacle overshoots the target position, and I want to make the tentacle to have a “almost attacking” pose beforehand, so the player has a chance of avoiding it…

I’m almost giving up on the whole “attack by stabbing” thing, switching it up for a “here’s my beam, eat it”, approach! But even that wouldn’t solve the issue of making the curve really point towards the player!

I’ve been at it for 4 hours now, so I probably need a break…

Now listening to “Upon Haunted Battlefields” by “Thaurorod”

Link of the Day: Do you like math and nitpicking?! In that case, you’ll love this article on the space rendering of “Elite Dangerous”: http://www.thetenthplanet.de/archives/4062