Friday, March 25, 2011

What's New In This Video
This is the game after 10 weeks of development -- we missed a few weeks in there for videos because we were really tangled up with it! Quite a number of the things in this video are worth pointing out, so read on below (note that the screenshots shown don't correspond to the actual video stills -- you'll need to watch the video itself to see that).

0:03 -- you can see the new lava flats region, although I'm thinking about adjusting some of those dead bushes so they're a bit nicer-looking. You can also see the new Neutral Skelebot character, who works as an NPC or as a player-character (as all NPCs in this game do). You might also notice that the enemies in this region are level 517, while the civ level is only 33, so it's pretty much instant-death if they catch me. And my fireballs do approximately nothing, too -- this is an EXTREME example of playing at a higher region level than your character is supposed to be able to.

0:14 -- This is one of two tilesets for ice age interiors, but it's just a testing floorplan that I was using to verify all the ceiling stuff works well and is easily scriptable. That was a huge amount of work in the last few weeks, but it's finally easy to define custom floorplans via our chunkscript system. This makes it so that players can design their own floorplans which get randomized, too. Unfortunately I never did have time to actually start populating anything IN the buildings in terms of objects, furniture, etc, which is part of what delayed the videos; I really wanted to show that, but in the end other things were more pressing. That's coming soon!

0:15 -- Notice the Neutral Skelebot standing there? That's an NPC that I can talk to, and he'll say something to me as well as craft bear traps if I ask him (he's a Trapmaker profession character). Still lots more to do with the crafting interface, which isn't shown, and obviously we need to be able to craft more than bear traps, but it's coming along! A lot of the more involved NPC reactions (Hopes, Settlements, and Deeds are all based on that) will be our big focus of alpha; for now they're mostly about crafting, and you can take them over when your current character dies.

0:18 -- The reason the light faded to nothing is because the new "flash of light" spell had been cast right before this segment of the video, and so it was going back to the normal state of complete darkness after the flash. Most buildings will be quite dark inside, and what you're seeing at this point of the video is the extremely dim "eyesight view" that you always have as a bare minimum inside. Realistically, you won't want to play in that eyesight-only mode in dark places much, so you'll light up the darkness with actual lights of various kinds.

0:22 -- Case in point, here's a "moon lamp," which is an ice-age future lamp that never goes out and requires no power. It creates a pulsing circle of full brightness that is fairly midsized as far as lights will go. You can see that in my inventory I happened to have 10, and I was placing them like I would a bear trap or other deployable inventory item.

0:30 -- The world map has even more regions on it now, and the graphics for this we're now starting to do in a more vibrant, less-painterly style. The conversion isn't complete for all tile types yet, but it is for the ones shown here, and the effect is much more dramatic and HD-looking.

These little tiles are just too small and full of detail to have a painterly effect; we leave that to in-game areas, now. You'll also notice that there are now numbers on each tile -- these are the new "region levels," which control how difficult the area is, and the level of all the monsters in that region. You'll also notice that movement between the different map tiles is now smooth.

0:33 -- This is the new desert tileset, at least in its current incarnation. All of the tilesets will be getting more varied and detailed with more objects, plants, and other variety as more work is done on them. The four new regions -- desert, lava flats, temperate deciduous forest, and temperate evergreen forest -- are all "hostile" environments, which means two things. One, they are twice as large in terms of general space compared to normal non-hostile regions.

And two, every time your character steps into one of the hostile tiles on the world map, you get sucked into them even if the wind counter has not yet reached zero. By building wind shelters, you can move across even these hostile spaces with impunity, so you can essentially build "roads" of a sort through the deserts and forests. The lava flats are pretty much always small enough to easily go around them, but they will have valuable things you can find in them, so that's a good incentive to intentionally visit them from time to time, hostile or no.

0:47 -- This is showing one of the Small Town regions, which is not new, but which is much improved compared to past weeks. A lot of work has gone into improving how buildings are populated near to one another and other objects, and so things tend not to jumble up like they once did. You can also see some of the new vehicles here, such as the giant bulldozers and the smaller sportscars. The old Jeep is now gone; that was the one object that I'd based on a photograph rather than a 3D model, but now everything is based on 3D models originally.

0:53 -- We're back to the world map, and you can see a bit more movement around here because I'm moving around as a "ghost," which doesn't get sucked into regions involuntarily. Ghosts are mainly something we use for testing, and I don't think they'll be playable in the public versions of the game. You might notice that the "thawing ice age" region tiles still have the painterly look rather than the newer crisp look. I think those are the last ones I haven't yet updated.

Normally all those dark forest and desert tiles would be hostile, remember, so my movement would either be a lot more circuitous or would be a lot more fraught with peril and side-tracks. You won't normally move so quickly and so far on the overworld until you've spent a bit of time building up a wind shelter network. So in a more established world, of course, you'll be able to move around just precisely this quickly.

0:59 -- Back to the lava flats again, this time a bit of a different view. I'd like to point out the lava effect in particular as being something that's really cool that I'm proud of. It comes across even better when you're looking at it in full-quality in-game, especially if you're not also moving. Very dynamic.

1:07 -- Back to the ice age building interior again, to show off a different lighting effect. When you cast light-emitting spells, they have this crazy, slightly-cartoony lighting effect around them. I'm using ZWrite to accomplish the faux-lighting effects for the game, so I can't do smooth gradients that blend together; so hence the more cartoony look instead, which I think looks cooler anyhow. It took a lot to get this working right!

That reminds me -- the "eyesight effect" is something that only applies for your direct character in multiplayer. You don't get to see your friend's line of sight, so if you are both tromping around in the dark, it remains just as dark as it would in single player. That said, of course true light sources (like the fireball or the moon lamps) are seen by everybody just the same. As I mentioned before, running around in the total dark isn't something you're expected to do all that often. And since the power is just about universally out, most buildings that have roofs are pretty dark to say the least.

1:12 -- Now we see the dark forest for the first time; this is the temperate version. This isn't full darkness, you might notice, but instead is just very dim. You can still see the eyesight view from my character, although he's running fast and it's only dim instead of completely dark, so it's less noticeable.

What is more noticeable is that there are a couple of damaged skelebots chasing after me, and the regen effect that they are using on themselves also glows like the fireball. A new skelebot that suddenly joins the chase would have no such giveaway, though...

1:15 -- That's me using the "flash of light" spell, which is that second icon on the bar (I've toggled it to bar 2/3, which has that, the bear traps, the moon lamps, and the shrink spell, which I'll talk more about later).

1:19 -- It's only showing "Lvl 5" so obviously about that new skelebot because I specifically switched to targeting him, FYI. If I hadn't seen him, he could have caught right up to me quickly there.

And that's what's new in this video -- it's a packed video this time! But there were even more new things that weren't visually shown here. Read on for details on those.

What's New, But Wasn't In The Video
These are in no particular order:

Process Improvements
There's been a ton of internal improvements, for one thing. Previously, after the graphics were all done for a new building or object, it was taking me 20-30 minutes to get all the code values tuned and in place in the game, which was super annoying. Now we've put in a new developer menu that can be opened with F7, and which lets me tune all of those things directly. That often brings the process down to 30-90 seconds on average per object, I'm finding (though more on buildings, which needs doors placed, etc, but still not long.

The floorplans definitions have also been hugely improved so that the ceiling definitions (where corners, etc, are -- and what direction external doors far facing are) are now way more dynamic. All that pretty much happens automatically now, and in most cases the chunk script simply needs to say "put a wall here" or "put a ceiling here, with little other info. The first prototype I did had something like 20+ different definitions, so even I was making floorplan errors left and right, and it was a really tedious process. If we want a lot of floorplans, this has to be easy to use!

Actually, that pretty much goes for all of the "process improvement" stuff that we put in place; the only way to get a large volume of stuff into the game is to make it easy to add said stuff. A solid week of this last three week period has been working on process improvement stuff, so that will pay off big time next week and so on, but that's one of the reasons we didn't have more art content from these last three weeks themselves (though, looking back, there's more than I thought).

Actual Character Stats

Previously, we had only really temporary and non-properly-increasing stats for the characters for things like magical attack and defense, health, etc. This has been internally completed now so that it's actually like it will be in the final game, although the stat balance will inevitably see a lot of tuning between now and 1.0.

Each individual character has their own unique "roll" however, as in a lot of RPGs, so every individual is unique in their stats. Right now there are only two visual looks for them, but that will also be increasing in volume before alpha, and after.

Dynamic Character Names
Previously, characters didn't even have names in our working versions, but now they're pulling a first name and a last name from files that are per-graphic, and combining them at random. So if you have 100 skelebot last names and 100 robot skelebot names, for instance, then that's 10,000 different unique skelebot names, and that's just for the skelebots.

As the "planet names lists" have been really popular with players in AI War, hopefully these character name lists will also prove popular with AVWW, and we should have just ridiculous numbers of character names by the time we hit 1.0.

Many, Many Region Improvements
The generation scripts for all the regions in general have been improved, leading to more varied and interesting regions even with just the assets already in place, and faster generation times particularly on really densely-packed region types like the junkyards or the grassland shanty towns.

Crafting!
The crafting interface and base mechanics are now in place. Right now you can just craft bear traps out of scrap iron (actually, at the moment an NPC has to do it for you), but a lot more on this is coming soon.

Our system for crafting is really simple: in the crafting menu, you have a list of craftable materials, and you can select one to see all the possible recipes that involve that material, and whether or not you have all the scrap and any other craftable materials needed to make them.

Scrap doesn't have levels, but craftable materials do, and are more rare. When an item is created from a recipe, it has the average level of all the materials that went into it (often that's just one single material and a collection of level-less scrap).

This will include a lot of variations so that you can really customize your loadout based on what sorts of craftable materials you find (that way your loadout is a bit more self-directed compared to games like Diablo or Borderlands where you just get what the game gives you), but it's not completely open-ended in the way that something like Magicka is. And none of the recipes are secret or involve any fiddling with the interface, unlike Minecraft.

All of those other crafting systems are really awesome and work well in the contexts of their games, but we want to keep the focus on the adventuring itself. It's possible we might have a system for slightly customizing individual crafting recipes in the future, but we're not sure. That would probably be an alpha or a beta thing at the earliest, though.

Inventory Is Now Icon-Based, And Items Have Names And Descriptions
Getting our inventory from being base functional to actually having good usability. I'll show screens and/or video of it once I have time to make it pretty, but it works quite well and is very quick to work with, which is a big plus.

NPC Dialogue
Think of how it is to talk to NPCs in Final Fantasy 6, or Chrono Trigger, or Zelda 2. This is basically like that. Each NPC says one single thing, and that's it. If you come back after time, they'll eventually have changed to say something else. In some cases, they'll say different things to different characters based on the context.

There won't be actual dialogue interaction of a significant sort (nothing in the Western RPG tradition), but once we are into alpha and we're working on the Hopes system, you will be able to hear more about the desires of an NPC, and help them out with those if you so choose. And of course later interactions involving inviting them to Settlements and all that sort of thing.

Right now it's just the basic chat with them, and they can do some crafting for you, and that's probably what our end target for pre-alpha is going to be, as there's a lot of other more gameplay-centric content that needs development before we get into the more advanced NPC systems.

Perma-Death
Our system for perma-death is now fully in place -- when you lose one character, they are gone forever although their bag of inventory is dropped where they died. Experience gain and civ level is global, and survives past any character. After one character dies, or at the start of the game, you choose a new character and from then on are them (until they die).

At the start of the game you just get a trio of random characters to start with, and at the moment that's what happens after death, too, but later you'll be able to assume the roles of actual NPCs you've interacted with. You'll also get permanent graves and such later on, but to some extent that's the very first part of the Deeds system, which is going to be one of the three foci of our time in alpha.

Improved Particle Effects
All of our particle effects have been altered and improved, particularly when shown against light-colored backgrounds. They now include under-layers that let them work additively, but without "whiting out" against backgrounds that are too light. In snow areas and inside ice age buildings, the effect is quite dramatic.

New Music
As always, there's a bunch of new music. The new track from the video is the lava flats theme. It's really good stuff!

Shrink Spell
One thing that we want to allow players to do, if they are inclined, is to customize their world. You can't reshape terrain or raze buildings, but there are a ton of destructible objects (trees, shipping containers, broken vehicles, lamps, etc) all over the place. You can destroy these... but what if you want to rearrange them?

That's where the shrink spell (pictured right) comes in. It doesn't work on enemies or on indestructible objects (like buildings), but for any smaller objects it lets you shrink them down and put them in your magic bag.

They then show up in your inventory as "Grow Gems," which you can use to re-inflate the object at a place of your choosing -- another region, inside, whatever, so long as it follows the normal placement restrictions for that type of object (trees can't go on tile floors or on roads, straightforward things of that nature).

Right now the grow gems are a bit imprecise to use if the object can't be placed right in front of you based on those restrictions (it just moves to somewhere nearby in that case), and equipping a bunch of grow gems from your inventory would be a pain of a process to go through, but otherwise it's fully ready to go.

Later on probably in alpha, we intend to make a specialized placement mode and streamlined interface specifically for the shrink/grow process that will make that easier to do. Bear in mind that this is a completely optional, aesthetic sort of activity to undertake in the first place. But we know some players will really like this (and we think it's cool, too), so we want to make sure it works as easily as possible.

Shadow Improvements
In past weeks, players have still been complaining about two things related to shadows: that shadows cross other buildings, and that shadows would protrude into the sky. I had thought that the first problem couldn't be solved at all, and that the second one couldn't be solved except by keeping large shadows away from the sky.

As it turns out, in the process of figuring out a lighting engine (I'm using the Z Buffer instead of using actual lighting, for various reasons), I also figured out a way to make shadows not fall on buildings at all, and also not to fall on the sky at all.

I'm not sure how well these specific screens show any such cases where that would happen, but I'm sure the video must. I'm quite pleased how this unexpectedly turned out! I didn't know anything quite like the Z Buffer existed -- well, I knew it existed, but not exactly how it could be used in the context of a 2D game like this.

Bunches Of Other Engine Improvements And Extensions
We have entrances to buildings, which is harder than you might think. We have better scheduled saving of regions and "chunks" to disk, preserving performance and data. We have a bunch of new shaders to support the faux lighting engine. We support a bunch of new things that let us do the lava clouds. The way that the world map is seeded is now quite a bit better. We added preliminary support for having multiple floors in a building, but haven't finished coding that in yet. A lot of collision stuff was extended or improved.

And so on. I know I'm forgetting a bunch of things, but those are at the very least the highlights. I've spent a lot more time than usual on programming this past three weeks, but I'm going to be going into a bit of an art-creation kick for the next week or so, and then working tons more on the interiors. There's still a lot I need to do there to really get that where I ultimately want it to be, with multi-floor buildings of various sorts with basements and all sorts of fun things.

What's Next?
I'm working on tons more art, as I just said, but also on the interiors still; those are the last big worldbuilding area where we have a significant chunk of "horizontal" development left to do.

Keith, in turn, has some more inventory and crafting horizontal development to do, as well as adding support for a few new things like firearms and physical weapons (swords, etc), as well as adding passive "augment" gems that will function in place of armor, improving various stats while you wear them (we're cutting the former idea of armor in favor of this).

Beyond that, I think it's mostly into vertical development for us all the rest of the way from here until we hit alpha in another 3-4 weeks. There are tons and tons of traps, enemies, characters, dialogues, floorplans, objects, tilesets, spells, consumables, weapons, and so forth that we want to get in place even before we hit the first public alpha release, so it's going to be a hugely busy few weeks. We have some really cool and unusual enemy designs that I'm quite excited about, so it will be fun to share those as we're getting to them. Stay tuned!

Oh yeah, we've known from the start this would be an open alpha for people who preorder, or anyone who wants to try the alpha demo. Basically like all our other games in beta, but this is starting in alpha. :)