Tuesday, February 1, 2011

Alpha

One of the reasons I'm posting today is because we marked Feb. 1st on our calender as "First Alpha Build" day. That means, no matter what, I was supposed to get some sort of a prototype ready to present for today. Well, after some setbacks, and a lot of caffeine, I'm pleased to say that we're well on our way towards that goal. What I have for you all today are some screenshots of the alpha in progress.

Now, let me first make the disclaimer that what you will be looking at is a work in development. (Actually, it's basically a bunch of art placeholders for the code I've been churning out here.) Most of the hard work over these past months is going on under the hood, and that will continue to be the case for quite a while, or at least until we start paying for some more replacement assets. All existing art assets you see in these screens belong to their original owners, and I won't claim any rights over anything I didn't make specifically for this game. Same goes for any music you might hear in any videos -- I'll try to give proper credit where I am able, and make sure all this stuff's in the realm of fair use.

Now, onto some screens !




This screen represented one of the very earliest stages of development with FaeSaga. In fact, this screenshot doesn't even come from FaeSaga, but an earlier project I had worked over a year on at that point called "Faerie Tales". This game sadly has not yet seen the light of day, but what began with FT became the basic framework for which the engine FaeSaga is based on. My tile engine was the product of that effort, and on top of the engine, I spent a long time creating an editor for the maps in the engine. Its file format is INI-based, rather than XML or JSON, and was heavily specced out by the time we decided to put FT on the backburner and start FaeSaga.




This screenshot more accurately represents what FaeSaga looked like for much of its very early life.  Basically, what we have here is a template which represents how enemy objects were created, and how they would be unified into one "Generic" enemy object so that they could be incorporated into my tile engine later on as enemy patterns, without having to re-use common code for each enemy.  This is more important the larger the game's scope gets, but early on I was aiming for a game which had a reasonably-sized scope, with a reasonable number of enemies.  Some basic AI was written up for this template and it was put aside to be used at a later date.



This screenshot is what the player control and enemy behavior templates looked like after they had been composited together.  Map loading had yet to be implemented into the FaeSaga engine, and in fact was a separate piece of code altogether until very recently.  At this point, we were still calling the game by its codename, IAG, or Indie Adventure Game, a very generic placeholder name for sure.  The name FaeSaga was also a recent development, evolving from Faerie Saga which was one of the final names we had settled upon.  Faerie Saga just happens to be a mouthful, so eventually I got to calling the project FaeSaga for short.  It happens to be easier to type (and would probably also be easier to trademark, lol)..





In between the time the last snapshot of the game was taken and this one, I had been doing a lot of work on some of our tools used to build the game (which I'll talk about in a later post), and also experimenting with pixel shaders.  One of the shaders I created specifically for this game is a generic shader that we could call again and again, and mix different effects into the pipeline rather easily, which will be important for people who aren't familiar with the codebase to be able to leverage.  This screen is demonstrating the shader effect on the main background and sprite layers, to create a bit of a "Dream Fog" effect.  I found out later on that it also simulates a great underwater effect, when combined with one of the other features I coded later...





Here is a much more recent development, the addition of tilemap loading into the alpha engine, as you can see.  It also features the underwater effect I mentioned before.  The discovery of the effect was a bit of a fluke, as without the shader, the undulations actually occur beneath the background layer itself.  These undulations are a variation on a technique known as "truchet tiling" which those of you who follow me on YouTube probably saw an early demo of.  It was eventually incorporated as a water glistening effect for my tile engine, as the tiles are static and that's kinda boring all by itself!



In the current state of the alpha build, map loading works, the game can play BGM, our player can walk around and slash, and enemies can be dropped onto the map.  However, I have yet to re-implement the map-changing code from my earlier FT builds, as the way maps are loaded has changed drastically from those days, and a new tool has been created to link maps together which is different from the old tool.  I have yet to build a tool to bake enemy locations into the map, which will require a new tool as the patterns will vary depending on specific in-game conditions.  My goal by next alpha is to have map changing working, and more polish linking the toolchain together to make it more convenient for others on our team to help contribute.

Please Share


No comments:

Post a Comment