HTML Logger

We're preparing for our first semi-public playtest in mid-April with the focus on our combat system. While half of the team tweaks graphics to make them look as good as possible for the test, the rest of us are pushing forwards with combat design and integration.

Today I worked on a logger that is based on the one over here with the purpose of making easier to view and analyze player actions for game balancing and bug detection. Displaying categorized messages and stack traces with colored, interactive filters and formatting is a great improvement over the default Unity log file with plain text. I also added the suggested screenshot feature.

All in all, it wasn't too bad to implment (involved C# code, hooking up into Unity's log events to grab exceptions, tweaking the javascript and css, etc.), and was pretty enjoyable since it gave me an opportunity to learn about more of the available functions in the Unity API. 


Abilities System Enhancements

This most recent weekend I added some enhancements to the existing abilities system, in addition to starting work on the newest weapon type and fixing a few bugs from the last build.

Awhile back I had mentioned how abilities can have different travel types, similar to casting spells in fantasy rpgs. For example, you might throw a fireball with one spell and see it travel to the enemy, while with another spell you might just see a visual effect surround you then see a similar visual effect on the enemy (e.g. life steal). Another example is an area-type spell with the effect being stationary (e.g. rain falling from the sky).

With the basics are now convered, I will just have to add enhancements as needed depending on what our game designer creates in terms of abilities. Most likely there will be one for a "bot spawn", and I want to do some simple logic that sends some form of bot swarm (either as 3D particle effects or as a group of 3D models) that travels to the enemy then encircles it for a few seconds before applying any effects.

All of this kinda contributes to high production value and thus isn't high priority, so I'm going to hold off on it for a bit longer -- speaking of which, our game designer has given me a set of tasks he'd like done by April 13th for another round of playtesting combat, so I'll be focusing on that. I think I'll have all the tasks done long before that date, so I'll probably spend the extra time polishing a few things up (like hopefully the awesome bot spawn).

Josh showed me some impressive code snippets we can use for our loot table system, which will handle things like generating missions and giving out rewards. 


Xml-Powered AI & Stories

This weekend I've started working on our AI system, which is powered by XML to make it easy for our game designer to edit it as needed. I'm not yet sure if this system will be used for the full range of enemeis or only for only simple ones.

With what I've come out with so far, I'm essentially creating a state machine. The AI is controlled by a series of AI rules per state, which themselves are composed of actions, triggers (what activates the action to occur), and optional conditions for value-based comparisons. For example, an enemy could use their weapon as soon as it's recharged, or they could first use a weapon-based buff then use the weapon.

My main concern so far is handling a series of conditions. I can't think of a good example, but maybe for some reason the enemy should fire their left weapon only if they're not firing their right weapon. I could probably take advantage of bit flags using enums, but I don't want to work on that quite yet. Will be first checking to see how our game designer feels about this new system and what type of features he'd like.Overall, I'm feeling this is a step in the right direction.

Working hard to get a bunch done before tonight's team meeting. I was hoping I'd have enough time to add in a new weapon type, but that may have to wait until next week. On the bright side, I made some nifty new additions to the visuals in combat: blinky icons and red effects on the side of the screen to let the player know something is majorly wrong - aka getting closer to death :)

Aside from my AI work, Josh has been making some awesome progress with the Story Maker program. It won't be long now before our writer can once again start implementing his stories into the game (our writer used to be able to many game builds ago, but it has some major improvements now). I'm really excited about this as stories are going to represent a big chunk of the game, and we'll finally be able to start testing game flow better.

View of the program below. Essentially our writer and game designer will use this program to create stories, items, etc. It'll spit out some xml, and it'll be loaded into the game. The biggest benefit from this is that they won't rely on us to add new content to the game, thus speeding up the development greatly.


New tooltips 

I wanted to change the way tooltip text is generated, which gave me an opportunity to add some improvements to the general look of a tooltip as well as seen below. I drew inspiration from various rpgs for the layout tweaks.

There's still placeholder assets in most areas of the user interface. Our 3D artist plans on making improvements to the UI once he completes his work on the pirate ship 3D models.


1/10/13 Progress

Sprint 2 is almost complete, and I'm planning on making a big push this weekend to finish up as much as possible. A big thing I'm working on is improving our existing modifier (buffs/debuffs) system. Highsight is 20/20, and I realize it needs some upgrades as we started integrating it with the rest of the game. Most of my time these past 2 weeks have sadly been mostly about fixing bugs and making improvements (I love working on NEW features), but on the bright side, the code will greatly benefit from a round of cleaning and upgrading.