Spellcaster Studios

Make it happen…

More progress on the arena

Today I created the arenas where the testing will take place, as most of the logic behind it…

Now I just need to add the “queries” at the end of a fight, so that the beta-tester can give feedback like how hard it was, and why did he think that in a category way, so that I can index and measure it properly…

screen325

This query system will be the hardest part… I’m still trying to figure out if there’s a way I can do that without implementing a lot of stuff…

Now listening to Amiga soundtracks

Link of the Day: I was trading game music with a friend of mine on Twitter, and while searching for a link of some song I remembered, I found this video… It brings back a lot of memories!

Test arena

Besides writing, I’ve started the arena system.

The idea of the arena system is to have a mode that I can give the beta testers to test different situations and rate them appropriately, so I have a more objective set of measures to balance the game.

In arena mode, the game starts in an easy difficulty and starts ramping it up, varying the set, weapons, enemies, and timing the player success/failure, so that I can then graph the result…

screen324

Today was mostly the base code… I’m trying to reuse the maximum amount of work, since this is a “test” only situation…

Need to build some actual arenas (this is just a map from the game), which encompass most of the types of the areas the player would find in-game, because a lot of combats are different depending on the situation…

Now listening to “Turrican 2 OST” by “Chris Hülsbeck”

Link of the Day: This is quite an interesting project, combining music and technology to generate visual effects from the movement of a dancer (with a Kinect): http://thecreatorsproject.vice.com/blog/momentum-transforms-the-body-into-an-interactive-sea-of-particles

More writing, and a dash of pirate lairs!

More writing done today, still plowing through the gear/weapon texts, but also added the pirate lairs to the generation of the game galaxy.

Also needed a way to remove all that type of structures from planets where storyline events will take place, to avoid overlaps.

screen323

Now listening to “Sunset of the Golden Age” by “Alestorm”

Writing and debugging…

As end of “Phase Two” is approaching, I ended up with mostly writing and minor bug fixing to do…

So, that’s what I did today… The main target of my debugging efforts was the teleporter… I haven’t messed with it for ages now, so it had a lot of broken pieces in it…

Now you can only teleport to a place where you have line of sight, and that is part of the navigation mesh (to avoid the player going outside of the boundaries of areas). The only problem I have with this system is that it’s now hard to use the teleporter to get out of crags and ravines; I need to check how serious is this and if I can tweak the line-of-sigh algorithm for this to account for it… Conflicting goals: I don’t want the player to be able to use the teleporter to jump to the last room of a pirate lair, for example, but I want him to be able to use it go get out of tight spots (pun intended)…

screen322

To make it more useful for combat situations, if you teleport during combat, the enemies nearby will get “blinded”, to simulate the confusion of the quick player movement. They’ll be like this for 2 seconds, which should be enough for the player to either hide or take advantage…

Now listening to “For Aeons Past” by “Solution .45”

Link of the Day: I’ve linked in the past a Kickstarter for a tool that builds normal maps from different pixel-art images to generate something that can potentially be realtime lit… The only drawback of that solution (specially for someone with my meager talents) is the fact that it required the artist to draw the same frame from different lighting conditions to generate the map… This tool doesn’t provide results as good as Sprite Lamp, but it doesn’t require as much input data as well, which makes it a viable alternative, depending on your art capabilities and pipeline:

Font work

Today I worked on trying to change the fonts of the game… I found a font that looks very good, but when applied to the game gives me mixed feelings. This is the current look of the tutorial text:

screen318

Changing to the new font:

screen319

I’m not sure if it’s readable… Already thought so, already changed my mind…

One of the problems is that you get used to a certain look during development, so anything different looks “wrong”…

This font is way more interesting visually than the other, but at the same time, it may reduce readability…

Also tried to use that font in other places… For example, on the Skydancer texts (I wanted to use different fonts for different characters, besides different colors):

screen320

Think it looks better this way, so I’ll leave it as is for now…

Finally, changed the combat text as well, which I like more:

screen321

Becomes more coherent with the rest of the game, in my opinion…

Also tried using this font on the console, but it didn’t work at all… It just looked terrible, so I’ll either use Courier New (as is) or will have to find another font that works…

Now listening to “Amanethes” by “Tiamat”

I’m Batman!

Sort off…

I’m a man that made bats work in the game, that makes me Batman, right?

screen316

More importantly, I’ve finished the AI refactor! All the AI is now done through the new interfaces and works so much better than before!

This was the biggest task still remaining on “Phase 2”… The rest is mostly game design related stuff, like balancing and writing! Then I can enter “Phase 3: The Polishining!”

Now listening to “Fire of Unknown Origin” by “Blue Öyster Cult”

Stat of the Day: Since I don’t have a link for today, I’ll replace it with some statistics… Currently, Gateway’s source code has 80051 lines of C++ code (including Cantrip source code), 6714 lines of Lua code, 97400 lines of text (that includes some files with lists with adjectives, nouns, etc, one per line), 1311 of strings for dialogues, spread over 363 files!

Rise of the Robots!

Finished the AI of the robotic spawns, which chase the player around and either explode or melee attack…

screen315

I should have invested more on this kind of “swarm” enemies, they’re a lot of fun!

Only one type of AI remaining!

Now listening to “In Existence” by “Beautiful World”

Link of the Day: Another trailer for the game I’d love to love, but can’t! The slots games online trailers are always cool, but this one is not only cool but original: they overlaid on top of the scenes the real voices of players, which is totally awesome!

Overlord of Illusions!

And done, the new illusion system is working properly (and in the process I cleaned up a nice piece of code regarding agro management)… These are going to be good lessons for the future…

The first thought that an agro-based system was simple was really wrong… It’s a powerful system, but it has a lot of difficult stuff to consider, but hopefully this will help me a lot in the future! Smile

screen314

Two AIs to go! Smile

Now listening to “Turning Season Within” by “Draconian”

Master of Illusions

Finished work on the “follow” AI, which is used by NPCs on missions, but also in the Illusion Generator (which spawns some illusions that get attacked instead of the player)…

The AI implementation went great for a change:

screen313

But in the process I found a bucket load of bugs on the illusion system… This is a very old system, and a lot has changed in the meantime…

First, the distribution of agro wasn’t being made, so they were useless! The agro from the player must be transferred to the illusions… This is done now, or it should be… While moving towards a suitable place to test it, I found some more problems…

When the player changes area, the illusions won’t reposition properly… this will be complicated to solve because I have to add something I didn’t have: a bind between the player and the illusions, and that bind must respond to a “change screen” event. That means that when they die, they have to notify the player as well, so it will remove them from its internal lists.

I’ll have to delve into that tomorrow…

Now listening to “Immortal” by “Pyramaze”

Link of the Day: This is kind of porn for coders: a visual representation of sorting algorithms with lists of different sizes and randomness: http://www.sorting-algorithms.com/

Rise again, Shai-Hulud!

Finished the AI refactoring for the sandworm, plus added some more balancing to it…

screen312

Also added a shaking camera effect when the worm approaches, because it’s cool and I can! Smile

Three more AIs to go!

Now listening to “The Nexus” by “Amaranthe”

Link of the Day: This is the first video on a series on the evolution of computer graphics with the history of gaming… Very cool stuff, and a lot of “I remember this!”… Damn, I’m old! Be sure to check the other parts!