Thursday, April 14, 2011

AVWW Pre-Alpha #9 Video -- Bats, Espers, Burowers, New HUD, and Weather

It was just three days ago that I wrote the #9 preview for A Valley Without Wind, and mostly that's still the best source for the goods on what all is new this  time around.  However, the big thing we were missing last time was a video, because of a few technical difficulties with the first version of the video.

This video has been worth the wait, however, as our PR guy Erik is now doing them, and so the artistry in the video itself has jumped way upwards.  Without further ado:



What's New?
For the most part the video shows off exactly what I was telling you about in that #9 preview (linking again to it for those who skipped down), but there are a few things that have actually changed in the last three days.  So we've not only put up yet more new screenshots, but I have a few new things to add to our prior list:

Revamped HUD
Perhaps the most immediately noticeable new thing is the new visual look for the game's HUD and GUI in general.  Gone are the AI War-like dark buttons and such, and in are a new, higher-quality fantasy-looking style based on the Necromancer GUI for Unity.

It makes a huge difference in the feeling of polish for the game, from the loading screens to the main menu on down to the actual in-game HUD itself.  Note that the character select screen hasn't been fully updated yet, so it looks a bit off still.  I'm particularly fond of how much nicer the minimap looks, along with the ability bar slots at the bottom of the screen.

Lots More Sound Work
As always, Pablo is hard at work on the sound and music for the game, but the last week or so he's been working on sound effects in particular.  Mostly we don't include those in videos of this sort, but towards the end of the video you can here one of the wind sound effects, which is pretty cool.

New Ground Graphics
One thing that is shown in some parts of the video, but not others, is the new ground graphics that are now in use.  I had only managed to update some of them before Erik was taking the video, but you can see the difference in the outdoor grasslands areas, in the small town areas, and in the lava area.

We previously had maybe 5 ground layers, but now we have a whopping 29 of them.  There are five different kinds of lava alone, five different kinds of full snow, two different kinds of thawing snow, new pine needles and rocky grounds, and so on.

Between this and the HUD, the difference in the latest versions is pretty dramatic when you're actually playing.  You'll be seeing more of these in future videos of course, but this week's has a first taste.  The big change is that these grounds are higher quality and more interesting, which really brings the scenes together better.

Revamped Damage And Melee Models
Now when players or monsters take damage from enemies, they flash red for a brief second or so, and are invincible during this brief window.  This prevents a lot of things, such as enemies swarming players and insta-killing them, or players overkilling enemies with area damage that was "cooking" the enemies over time rather than just hitting them with one damaging blast.

In the video the only real evidence of this is the flashing red on occasion as the bats hit the characters or the character hits the enemies, but in actual gameplay this feels much better for close combat.  In general Keith actually redid the entire melee model, as the other one felt a bit clunky and that was part of the reason I haven't wanted to show it yet.  Now swords are actually a worthwhile thing and a viable way to take out espers or whatever else.  I still have work to do on the visual effect for the sword before we show it, but gameplay-wise it's now ready to go, which is a big step.

New Weapon: Gatling Gun
For our first gun, I wanted to pick a particularly challenging case to inflict on Keith, so the gatling gun was it.  This required a ton of new gameplay subsystems that we'll be able to use for various other weapons in the future, so it was a nice test case (despite some things that are unique to the gatling gun, of course).

The gatling gun has a spinup time while you hold down its fire button, then starts spraying bullets in a line, going faster and faster the longer you hold it down, until it overheats and has to go through a lengthy cooldown.  Or you can let go before it overheats, and the cooldown is correspondingly less.

The gatling gun also makes it so that you can't turn, but you can still move around -- so you wind up spraying bullets in the direction you were facing when you started using it, which can be phenomenally useful against, say, swarms of bats.  Even better than the energy lance.  You can see the ability icon for this next to the sword icon throughout the video, but I still have some visual work to do on this before we show the gun proper.

Until Next Time!
There were actually other internal things we also did in the last three days like the addition of tilesets for outdoor areas, and some first work on some very cool crafting stuff, but I'll wait to share those things with you when they're a bit further along.  Suffice it to say, we're very pleased with how things are coming along!

Monday, April 11, 2011

AVWW #9 Preview: Characters, Monsters, and Weather (Video Coming Later)

We're transitioning the video creation duties from myself to Erik, and in the process of that we're having a few technical difficulties that are requiring some updates to his machine and so forth.  So that's delayed the video for our progress report #9, but I wanted to go ahead and do a written update (and we have new screenshots) in the meantime.

Ideally we'll have the video ready sometime later this week, but no promises as yet.  So what's new?  Let's hit some of the cool new technical stuff -- skip down if you're not into that sort of thing.

Sprite Dictionaries
Previously, the game used individual images in sequence for animations, instead of sprite dictionaries (with texture offsets into a single image, in other words).  This is consistent with AI War and Tidalis, and it has the advantage of being easy to update and easy to code to (and with SlimDX's wrapper of ISprite3DX, it was the only way to do sprites).

However, it has two disadvantages: first, being slower to load off disk, and second being more wasteful of VRAM and RAM, and thus minorly hurting performance if you have a lot of animations on different frames all onscreen at the same time.  Now we're using sprite dictionaries, which I'm creating using a handy GDI+ helper program that I've been working on to let me manipulate AVWW-specific PNGs in various formats.

Proper Character Animation Offsets
This is another Big Deal thing that I did with the GDI+ helper program I'm talking about.  The problem is a bit tough to explain, but bear with me.  I'm rendering characters such as Darrell in Poser, and using three different cameras to do so; one for front, one for back, and one for the side (which gets mirrored in-game).

Each camera is at an arbitrary distance from the character, but showing the whole character, and the characters are rendered very large, at 400+ pixels instead of 128px like they are shown in-game.  Then I have to shrink each frame down to 128px in another program, and then I've got my animation frames.  In the past, I had been doing a simple Trim operation in a Photoshop script, and then scaling them down to 128px by height.

Problem?  That makes every frame of the animation exactly centered, and exactly 128px high from the bottom of the character's feet to the top of their head.  But your feet rise and fall as you run, and your head bobs up and down.  For that matter, your weight shifts from left to right, and thus the overall sprite is not perfectly centered in each frame (if any of them).

That's what should have been happening, and what I was exporting from Poser, but my Photoshop script was normalizing it all out so that the animations looked subtly wrong in-game.  Using my GDI+ program, I've now got an automated way of analyzing an entire batch of frames from one camera for one character and using the resulting data to fit the character in 128px square roughly centered and with the proper head bobbing, feet rising, and weight shifting.  The difference is dramatic.  I look forward to showing you that in the video when we get that out.

More Character Animation Frames, And Animated Shadows
Previously we only had 12 frames per side on each character, which was still a total of 39 frames per character (including the three standing poses).  And we only had one static shadow image.  Why?  Because it took long enough to export 39 frames from Poser, and because I was worried about RAM usage and disk loading times in AI War, when all those images were separate.

By adding the capability to have sprite dictionaries, this also let me feel comfortable with upping it from 12 to 30 frames per side per character (so 93 frames in all per character), as well as adding in animated and directional shadows (so another 93 frames for the shadows, too).

The result is that not only do the characters now look correct (see above), they also look wonderfully fluid in their movement, as do their shadows.  At a full 60fps or higher, it really looks particularly nice.  I also figured out that I can just render a "movie" in Poser to a series of PNGs, which saves me from (d'oh) exporting each frame one by one to the Queue Manager.  Poser is new to me, but I'm getting a much better handle on it lately now that I'm really sitting down with it more.

In-Game Shadow Skewing
Know how the shadows in the game come out of the back of things and skew off to the upper left?  Previously, that was just a flat prerendered image.  That had two major disadvantages: first of all, it takes up an absolutely enormous amount of image space, and thus uses way too much RAM.  Secondly, because of the way I was handling that via yet another automated Photoshop script, it didn't always look as good as it could (big and small objects tended to fade differently over distance, for example).

Now I've re-rendered all the shadow images in the game using the same Photoshop script of mine, but not bent to the side.  The AVWW engine now has the capability to skew sprites, which is new to our engine, and it uses that for the shadows to get an effect that is very similar to what we had before, but way more friendly to RAM, nicer looking, and compatible with even older cards that don't support textures larger than 1024 in size (no guarantees on performance on a card that old, but it will at least work).

The other cool thing I did with these new shadow images was that I shrunk them all by 60% in their base images, so that they fit inside the same size image as their original source -- so if Darrell is 128px square, his shadow will fit inside that now, too.  Previously, his shadow was in a 512px square, which is why there was no way I was going to try animating that -- too much RAM!  The game scales the shadows back up so that they look normal, and there's no quality loss at all because of the fact that... it's a shadow!  It's supposed to look diffuse and fuzzy at the edges.  The fuzzier the better, actually, given the style of shadows we're showing here.

New Character: Dawn
So we finally have a new character in addition to Darrell and the Neutral Skelebot!  She's the first woman in the game, but there will be tons more character sprites for players to choose from, and to encounter as NPCs.

My private goal from a while back had been 60 such sprites, but I was iffy if I could hit that because Darrell took me about 6 hours to create (when I was still learning so much about Poser).  Now, with all the various process improvements I've made in the last two weeks, and the automation tools I've added via my GDI+ helper program, I estimate that each character will only take about 30 minutes from start to finish.  So 60 character sprites is looking quite feasible, and maybe I can even exceed that; that would be nice!

Re-Rendered Characters
Because of the need to have full 30 frames on all the other characters and monsters, all of the existing ones have been re-rendered.  I also improved their visual look quite a bit when it comes to the skelebots in particular.  Now they have one arm and leg larger than the other, for instance, so that you can actually track them visually while they are moving.

Before it looked like their animation was half the length it was, because having their left or right legs forward looked far too much the same!  Now they look a bit more stylized, as well as just much higher quality animated in general; you'll like the video.

Weather!
The game now has a lot of different kinds of weather.  In non-windstorm times, we have: sunny (well, we always had that), light snow (in the snow areas, mainly), light rain (the junkyards are a great place to find that, but also other places have a small chance of having it), and blowing sand (in the desert, but not always).

During windstorms (every four tiles as you move, see the counter in the upper right of the world map), you get the following kinds of weather: snowstorm (in any of the snow areas), rainstorm (in most sunny or light rain areas), sandstorm (always the desert), and firestorm (always the lava flats).


Windstorms are such a huge part of the game, but now is the first time we've had an actual visual component to them.  Plus just having calmer weather at other random times is a favorite thing of mine to do, anyway.  We obviously don't have any weather in space in AI War, but that was something we did a lot of in Tidalis.


Main Menu Visual Improvements
Until now, we've only had a basic main menu that was just a rip from AI War with slightly different graphics.  That was always to be temporary, but it's surprising how much more polished the game suddenly feels by having a proper main menu (including story scroll).  That scrolling story from the main menu is now included in the main AVWW page, by the way.

The main menu shows as a background a randomly-created chunk of world, which is pretty cool to see the variety right even in the main menu every time you load up the game.

Related to this, we also now have the ability to create and load multiple worlds via the interface, which is quite nice.  There's no limit on the number of worlds you can create, but it will show 10 per page.

New Objects, New Hands On Deck
We've also got a ton of new objects in the game, although most of them aren't being seeded in yet.  I think 9 miscellaneous objects are in, then we have 9 flower sprites of various sorts, and we have something like 33 new vehicles, including some futuristic ones from the ice age time period.  All broken, of course.

Erik, our PR guy, is also now helping out with some of the actual game development work, and so that's helping me out in a major way to be able to do more art faster, and then having him "wire them up" to have proper collision boxes and other metadata through a handy in-game tool we created for that purpose.  So that's been a big help for our creation process, although we're just getting started with that.

Six New Enemies!
We are finally getting into adding more enemies, and we added a ton of them: bat, fire bat, ice bat, sniper skelebot, esper, and desert burrower.

Bat, Fire Bat, and Ice Bat
These all have the same basic movement characteristics: they fly, they swoop and dodge, and tend to flock about you in swarms.  Fighting them is a completely different experience from fighting the skelebots.

The regular bats are bad enough, but the fire bats set you on fire for about five seconds (which does damage over time -- and stacks from each bat that hits you), and the ice bats freeze you for about five seconds (which slows you down slightly -- and again stacks from each bat that hits you, which can all but immobilize you, though you can still fight).

An Aside: Region Level Gating
The bats also brings up the fact that we have level gating for various "population patterns" of enemies.  Each chunk that is generated is assigned a population pattern which includes one or more enemy types in various concentrations and in various numbers relative to the size of the chunk.  Some of these are demonstrably harder to deal with, no matter what your level is versus the other enemies.

So, the game introduces things to you gradually -- everything, really.  The harder population patterns, the more complex crafting materials, and so on, aren't available in the lower-level regions.  Every few levels you go up, more and more stuff is appearing around you.  Of course, you can strike out into higher-level regions while you are still low-level, that's just pretty hard.

Skelebot Sniper
The regular skelebot is fast and a melee fighter, as anyone following this game knows (tired of skelebots much?  Not more than me), but the sniper variant is slower and doesn't chase you at all.  Instead of you kiting it, it kites you, intentionally keeping its distance and firing fireballs at you.

Sure, it's just a recolor, but the behavior is completely different and running into yellow and red skelebots at once is pretty interesting.  In general, my goal with this game is to have a ton of variety by having a lot of base concepts (bats, skelebots, etc) as well as a good number of variants of each thing.  People who are familiar with AI War and how crazy huge it is will know just what I mean.

Esper
The esper is a magical being that hardly moves at all, and which fires quite strong lightning attacks at you.  Your own magic attacks are extremely weak against it, so you'll need to resort to melee weapons, firearms, or other physical types of attacks to take these out.

In motion, these look particularly cool.  Both these and the fire bats also act as light sources, which makes battles with them in the dark forest particularly exciting-looking!

Desert Burrower
These were just added today, so we don't have any screenshots of them yet, but they are nearly-invincible enemies that live only in the desert and which roam around at high speeds underground.  They don't chase you at all, but if you come too close to them they will strike out at you for substantial damage.  The desert really is a dangerous place!

Magic is ineffective against these as well but you can strike at them with melee attacks and kill them if you dare to get close enough.

New Name Dictionaries!
We now have new sets of names for Darrell, Dawn, and the Neutral Skelebot.  There are literally a few million possible combinations of first and last names each.

And that's only with three characters; by the time we have 60-some sprites, we'll have north of 50 million possible unique character names, I think -- that's enough that you'll likely never have two characters named the same thing for as long as you play!

Lots More Coming Up!
We're in progress on melee attacks, on a new and awesome-looking HUD graphics set (based on the Necromancer GUI skin for Unity), and we've got some very cool things up our sleeves for ground-level regions and underground regions.  After that we'll be hitting a lot more crafting materials, weapons, etc, and then I'll finally be circling back around to more interiors.

It's exciting times -- things really are flying now.  Keith has been sick and busy with his other job, which has slowed him down, and all the work with redoing all the shadows and all the characters and enemies in the game really slowed me down on the new content, but even so this has been a huge number of leaps forward in the last two weeks.  I also finally sat down and learned how to do rigging in Poser, and the bat animation (only part of which is shown above) is the result.  I'm quite excited by the possibilities that this simple new skill opens up!

Anyway, stay tuned for our #9 video hopefully later this week or else definitely next week if we run late.  Enjoy!

Wednesday, March 30, 2011

First Public Version of A Valley Without Wind To Be Beta, Not Alpha

It pains me to say that we're delaying the first public version, but Keith and I spent a good while talking about it today, and we agree it's for the best.  We've decided to scrap the idea of a public alpha, and instead are going to start with a public beta. 

In practical terms, what does that mean?  It means that instead of having a version for preorder/demo in 3-4 weeks, our timetable is shifted to "we don't know."  It might be May or June, or it might be even further along.  We don't have a crystal ball, but things are proceeding well so far, and we'll know when we see it.  In the meantime we'll keep you as informed as possible about both our progress and plans.

The Obvious Question: Is The Project Behind Schedule?
Not in so many words, no.  It's simply lopsided.  We have an awesome engine at this point, but not a lot of actual game so far.  We've been focusing on the technical aspects, and the construction of this infinite world itself, and multiplayer, and the basic systems for gameplay such as crafting and item use and combat.  These were the bits we were most unsure about, and the bits that underlie everything else.

In many respects, we're a lot further along than I'd expected to be at this point.  It's also high quality work: the worldbuilding code that is there is practically final, and we just need a lot more layers on top to really make a truly varied world; the parts of combat implemented so far are also really solid, and work in multiplayer, and most importantly are fun.

But that's not an entire game yet.  To put it bluntly, what we have at the moment is this fairly repetitive world that is nevertheless infinite, and which has very repetitive gameplay due to simple lack of content.  Skelebots chase you, and you fire spells at them, and that's about it.  This tiny scrap of gameplay is fun, but most people would wear it out after 20 minutes or so

Why Didn't We Start With The Gameplay?
A few people have asked why we didn't start with the gameplay first, as they've heard game designers should.  The answer is that we did -- in terms of what we designed.  In terms of what actually gets implemented first, that differs from project to project, even in AAA games.  In order for us to prove out interesting gameplay for this specific game, we had to prove we were capable of making an interesting, dynamic world to house it.  So that's what we've done.

We also had to prove out that we -- I -- could do the art in a way that looked good, and that was reasonable in the amount of time it would take.  I've done the art for some space games so far -- Light of the Spire and AI War 5.0, mostly -- but doing all the art for a game of this sort was a new challenge that took a lot of figuring out.  Until we had that sorted, we couldn't be sure we could really make this game, given our very tight budget and staff constraints.  And I think that's been successfully demonstrated at this point, as well.

We also had to implement a whole new networking model -- this one fell entirely to Keith, to my great fortune -- and we weren't sure we could do that in any reasonable amount of time.  Or what sort of refactoring it would take if we waited until later.  So we hit that up early, too, and it's working quite well if not fully optimized (aka, no smoothing or prediction).

When starting out with a brand-new project, especially a large one, you want to start with the bits that are worrying you.  The bits you aren't sure you can pull off.  If you can reassure yourself that those bits are feasible, then you can proceed with confidence on the entire rest of the project.  If you leave those uncertain bits until the last, you might be in for a nasty surprise, and the whole project might fall apart.  As of a few days ago, we've now hit all the big points of uncertainty -- lighting was the last of the brand-new things that we weren't sure about.


All Projects Start Small, Then Accelerate
The description of the gameplay two sections back might sound lame, but at one point AI War was just a game with fighters, light starships, and engineers.  I guarantee you every other game started out the same way.  At some point Chrono Trigger must have been just some empty-ish fields and a couple of repetitive  battles with one or two playable characters.  Forget all that story stuff, time travel, variety, and interesting locales. 

I remember screenshots from what turned into Ocarina of Time when it was for the Nintendo "Ultra 64," and all it involved was Link fighting a single Stalfos.  They were soooo excited about the revolutionary new "Z targeting" system they'd invented, though they didn't call it that yet. 

And they were right!  Boy was that revolutionary.  They made some amazing engine strides, and were able to do something that no game had done before.  The entire game rest of the game was designed and built around what that one mechanic -- everything from camera angles to boss fights.

But it wasn't a game yet, or at least not a very fun one.  This is more or less where AVWW is at these days.  We have a working prototype in hand, it's all sorts of unprecedented, and we're super excited about it.  But this is the game-lifecycle stage of videos and screenshots for a reason, when it comes to larger companies.

Why Were We Promising A Public Alpha, Then?
This was my error.  See, we've been doing AI War expansions and engine upgrades for the last 9 months.  The last full game we did was Tidalis, and puzzle games are necessarily smaller in scope than most other kinds of games.  The last time I was this early in to a project the size of AVWW was about two years ago, with AI War's alpha versions.  Consistently, what I had at that stage was an overgrown prototype.  I should have remembered this!

But we've been doing all these expansions lately, and that was fresher in my mind.  When you do an expansion, a funny thing happens: you can do one day of work, make a new ship or something, and then put that out as a public beta on preorder/demo.  This is no problem, because the fans already have this huge game to play with, and they are happy to get that 1 extra ship added in and see what it does.  Then every day as we do more work, we release more betas quickly, and everyone stays happy.  Before you know it, a few months have passed, you're doing balance testing and polish, and you release.  Success!

I think that this led me down the wrong path, paired with thinking about how Minecraft spent so long in alpha (and I think I read it went into alpha after only one week of development, if I'm not mistaken).  Minecraft is another one of those special cases: it has an enormous creative component, so players could have fun in the sandbox of the game even when all you were doing is digging up dirt and rearranging it into houses or whatever other patterns.  Minecraft could start out extremely primitive in its first versions because of its very nature, but you can't build anything out of skelebot corpses; there has to be more of a game here right from the start.  It's not better or worse, it's just a different kind of game.

Why Not Release A Public Alpha For Those Who Really Want It?
We were criticized for releasing our first footage and screens of AVWW too early, in too raw a state, and I'm still on the fence about whether that criticism was entirely correct.  Some of our fans were really salivating for anything we could show them, and in the end it turned out we got some really useful feedback that helped us to improve our graphics in a way I might not have thought to on my own.

Regardless, I'm increasingly coming to feel that it would be a colossal, perhaps unrecoverable mistake to release any playable build of the game "too early," whatever that subjectively means.  The obvious reason is that the press, and people with a passing interest in the game, might download it and not like it in an early, unpolished state.  But even when it comes to the fans who are most excited about the game, there's this problem: an alpha could never live up to their expectations. 

The press would actually probably be more forgiving, because they at least are used to seeing early builds of game software -- they know how the hotdog is made, so to speak.  But when it comes to the hardcore fans, they want what we've been promising -- but it isn't done!  They want settlements and to see a big interesting world that you can explore around in, and they want NPCs that they care about, and intriguing bits of story, and goals that actually matter.  They want to be able to affect the world in ways that are lasting.

So... should we hand them a game with a few enemies, basic sketches of interiors and exteriors, no real overarching goals, and no memory-of-deeds system?  That's insanity.  Those fans that have been around us a long time, and have seen us develop games before, know the process and would probably give us the benefit of the doubt that we'd make a good game.  In their view, we've done it before.  But the excitement would be gone.  It wouldn't have done them or us any service.

So Is The Project On Schedule Or Not?
Oh, yes, it's very much on schedule.  Our goal is 1.0 in October, and that seems imminently hittable.  The engine is vastly further along than I thought it would be at this time, and we're finally getting into the vertical development phase of the game in several areas.  We have all the basics of the explore/craft/combat trio down, and those are fun and simple.  We even have the very basics of NPCs.

What we need before we start showing this around in a playable format, though:

1. A lot more content of all sorts.  We've already been planning that for the next 3-4 weeks, and those plans haven't changed.

2. For the game to set dynamic goals that the player actually cares about, in terms of them being able to help out other NPCs, or find the lairs of bad guys and kill them, or whatever.  We don't presently have this at all, and there's no way we cold do this in 3-4 weeks on top of #1.

3. For the game to remember past events in a meaningful way, so that the whole benefit of the perma-death system becomes clear.  This in turn feeds back into #2, and there's a cycle of complexity here that we need to sort through.  The engine is ready and waiting for this, as is most of the design, but we have to actually put this in place.

4. Ways that the players can strategically affect their world.  As of today we have the basics of the wind shelter system, which is a great stride forward, but that isn't enough (and it isn't even fully finished yet).  What we really need are settlements, as well as the more complex interactions with NPCs that are related to #2 and #3.  And that also requires more crafting and other forms of content from #1, to really make it so that the player has enough choices for there to be any strategy to it.  See how this all interrelates?

5. More ways for the game to set up obstacles for you, that you can then overcome.  Even simple things like locked doors provide a surprising amount of  interest, because those represent something you can't do until you solve whatever puzzle is associated with the door (find the key, or the lever, or whatever).  That's a superficial example, but a lot of this also comes back to having notable arch-foes and the hopes of characters that you can work toward solving... again, speaking to #2  and somewhat #4.

When all of those things are in place, what we will have is a "broadly feature complete" version of the game.  In other words, all the major points of horizontal development will be done.  We'll still have loads of work to do in terms of adding yet more content and fun stuff to do, plus plenty of polish, and I'm sure other subsystems and points of interest will come up if there's time.  But when we hit those milestones, that will be a game that is varied and interesting for at least a few hours, if not far more.

That's when we'll start needing player feedback and content.  Right now the code changes enough that we don't really want custom content that will all just have to be changed, anyway.  That stuff needs to stabilize before we invite in a ton of people.  If I was a player giving feedback on this current version of the game, my feedback would be summarized by the above blog post.  Those are the largest "problems" with the game, and they all are simply factors of it not being done yet, like with the Stalfos battle in the Zelda prototype.

Players can't give us meaningful feedback until we actually have things a bit further along, I'm realizing.  Otherwise the incompleteness of the current builds masks everything and adds way too much uncertainty.  That's a new thought for me.

Just Sum It Up, Please: How Is The Project Going?
It's actually going really, really well.  The engine works and is in excellent form, and we've got the beginnings of content development going on.  What's there is cool and fun, but it's not yet nearly enough for anyone to really have a good time with it yet.

It's going to be a while yet before we hit that critical mass.  There's always a tipping point when a game goes from "promising prototype" to "this is an non-final build of a really fun game, and it's already fun."  We'd be stupid to release something that wasn't in the second category; I don't know how the press would react, but I know our biggest fans would be really let down.

What Comes Next?
It's quick for me to do textual posts, and to some extent screenshots or at least sprite samples, and I'm going to try to do more progress reports along those lines.  Videos are vastly slower, and are something I don't think I'm going to try doing any more regularly than biweekly.  Erik, our PR guy, may start doing some videos before too long, to take some of that burden off me.

In terms of when we will hit public beta, the answer is that we don't know.  It's really up in the air.  I would be really surprised if it is in May, honestly, but you never know.  I also would be really surprised if it is in August or after.  My best guess is maybe sometime in June, but that's too far out to really have any degree of accuracy.  We'll know we're ready for beta when we see it; it will have to meet all the criteria on my list above, and then I'll be happy.  Right now we're just chipping away everything that doesn't look like an elephant.

I can't wait for folks to be able to see this game, but we do have to be sensible about these things.  If it makes anyone feel any better, I've been on the anxious-player side of things my whole life.  We're telling you now because we didn't want to string you along with "oh, it will be next month" every month.  As a player, I always found that supremely annoying.  I never quite understood the dynamics of what the developer was going through until lately.  Live and learn! 

A Valley Without Wind: What's The Deal With Perma-Death?

When it comes to the perma-death mechanic, the one thing I want to make most clear is that this has no bearing on the difficulty of the game, despite what some folks might expect.  In most games with perma-death, that means that the game is very hard.  How difficult or easy this game is depends more on how far you push out into the unknown, how many risks and such you take, etc.

No Do-Overs
Rather, the perma-death here is basically just taking away that convention of "oops, you messed up, time for a do-over!"  There are no do-overs in this game, except in the sense that there is in real life.  In real life if you lose your job, it's not like you can never get another job -- you can.  And you might even be able to get your old job back, under certain circumstances.  What you can't do in real life is say "oh, actually, I went back in time and now I never lost my job in the first place!"  So in real life you have the ability to try to correct past mistakes in various ways, but you can't erase them from existence.

That's very true also in AVWW, in terms of the general design of the game.  There is no way to save your game -- things just get persisted to disk as you play, and as you exit, etc.  So that's important because you can't just reload your last save if something happens that you don't like.  As with Minecraft, you can back up ALL your world files if you want to be able to save-scum, but it's really a lot of files and not something we make at all convenient.  That's counter to the idea of the game.

What Does Death Really Mean Here?
Going along with the above, death is the biggest mistake of all, of course.  You did something that wind up getting "you" killed, and now "you" are dead.  End of story for that character.  But you-the-player of course continue on, and so does the world around your character.

You aren't even particular punished for losing that character: their inventory is right where they died, so you can go get it if you want.  No rush, even.  It will sit there without disappearing for as long as the game world goes on.  In general, loot drops and other dropped items in this world never disappear unless someone picks them up.  Because of the fragmentary way we save the world, this is easily possible while still keeping memory requirements quite low.

That's what I mean by persistence: even that little scrap of wood that came out of a tree that you can use for crafting will sit there in the world forever, until somebody does something with it.  No fading-out of drops after a few seconds here.

Anyway, back to the death thing.  So you do lose your inventory, but it's really not lost, because you hopefully know where you died.  In terms of experience points you've gained, and the level of your character, however, none of that is lost.  All experience and levels are actually larger than your character, anyway -- in multiplayer, all players share experience and levels between them, it's a global thing not a per-character thing.  All the neutral-or-allied-to-you NPCs also share all this (monsters, obviously, do not).

So when you die, you choose a new character, and that's that.  They come back with some basic equipment appropriate to their level, as well as the same level as the character that died.  If your character was using some good equipment, you can go get it at your leisure.  If you have a stash of equally-good equipment closer by, you can just take that instead.  Equipment gets obsolete before too long anyway (since it has levels as well), so you're always building newer and better spells, weapons, traps, etc.  Losing some equipment in the middle of some bad guy's lair isn't a crisis by any stretch, if that's what happened to you.

This Is A Really Forgiving Game, But Death Is Everywhere
There is no way to lose in this game.  As in, there is no way that "the world ends and you can't play anymore."  You can lose -- and boy, will you -- when it comes to smaller and larger objectives you might find.  Attacking some bad guy's keep might lead to a real pile of graves in your graveyard, and a real depopulation of your NPCs as you take each one over, try to kill the bad guy, and die (probably you should get yourself stronger before going after that specific bad guy, apparently).

Most players will die as much as they level up, if not more.  It's a really tragic sort of scenario here, for a lot of the characters.  But it really depends completely on how you play, which brings us to...

The Difficulty Is Self-Tuning
The world of this game is normally a really dangerous place, but if you stick close to home, and stick to regions that are at or lower than your level, it's actually not that dangerous.  But the rewards are smaller there, and what's the fun in that!  Most players that are looking for challenge will go out... looking for challenge.   And they will find it!

But for those players that are cautious, or less skilled, or just want to have a more relaxed time, you can do that, too.  You can just hang out in Kokiri Village the whole time in Zelda if you want, and you hardly get attacked.  But that gets boring pretty quick, because there is not much to do there.

In AVWW, you can opt to level up without engaging in combat (based on exploring instead), and you can just stick to the relatively safe areas, which have all sorts of interesting nooks and crannies, if you like.  And as you level up, more of the world becomes "relatively safe" for you.  So to extend that Zelda example, it's like if you had a very large Kokiri Village that had some low-level monsters, and which got bigger the more you explored around.  You could play the whole game that way if you want, and it's a slower, more peaceful, less stressful way to play.  It's perfectly valid!

Then again, I think most hardcore players are just absolutely happy when they get out of Kokiri Village the first time.  I know I was itching to get out.  If "Kokiri Village" is large and ever-expanding in this game, that's absolutely dwarfed by the dangerous parts of the world.  And that's where all the really interesting rewards are, too.

Most players will, I think, strike some sort of balance between the safer regions and the more dangerous ones.  The specific balance will depend on the player and their preferences -- even how they are feeling on a particular day.  Sometimes I'm spoiling for a fight, other times I just want to explore around and find some useful smaller goodies, as well as do a bit of crafting or something.  You don't have to play the same way each time you sit down to the game.


The World Lives On
I've mentioned before that the goal here is that you can only play with one world for as long as you're in the game, if that's what you want to do.  Some players want to have multiple worlds, and that's perfectly fine and supported.

But there should never be a point where the world says "okay, that's it, you're done and you need to start a new world now."  There also should never be a point where the player says "okay, I want to play with feature X, but I need to start a new world to do that."  You can do anything in one world that you can do in another, no matter what the history of the respective worlds is.

The cool thing about having a world that is long-lived is that you build up a history there.  Not some random facts about the backstory of that world; that's not that interesting.  Instead, you build up a history of what you did in that world since you got there.  Players of AI War know pretty much what I'm talking about.  Know how some planets there take on a significance to you alone, because of one (or more) epic battles that were fought there?

In AI War, of course, all of that is in the player's mind.  The game doesn't really keep track of the history of each planet, because that's really just not the focus of that game as a military strategy title.  With AVWW, however, it's all about the world and the characters in it, and what those characters do.

If you have some character who was really accomplishing a lot and then died, the other characters will react to that.  We're thinking about adding funerals into the game, for several good reasons I won't go into here (you don't have to attend with your new character if you don't want to).

Similarly, if you've been going around murdering lots of good NPCs with your character, and that character is really hated, then there might be a celebration that the evil guy -- you -- is dead, rather than a funeral.  And your new character has their own past, and isn't really associated with those evil actions you took while in control of your prior character.  The slate is wiped clean.

In that sense, you really are sort of like a puppet master.  You're one character at a time only, and the only way to change characters is for your current character to die.  But while you are "in character" for one individual, you can do whatever you like.  Do bad deeds, do good ones, and the game will remember.  The narrative of the world gets built up through what happens in this sort of fashion.

Many Of These Features Are For Beta
Just one note of warning: a lot of the features having to do with the hopes of NPCs, the deeds of player characters, and basically the narrative of the world in general, are all what we're targeting for beta.  In early alpha, our focus is completely on the exploration and combat and crafting and all that sort of thing, which is a large enough topic by itself.

Perma-death is already there, and works as described except that there is no memory of what that character did (and no graves quite yet).  But this game is being built in layers, and the first layer is the physicality of the world and how you interact with it.  The second layer is the narratives that get told in that world.

Just so there's no confusion when it comes time for alpha!

Tuesday, March 29, 2011

A Valley Without Wind Pre-Alpha #8 -- New Lighting Test



This video is just a simple lighting test showing off our new way of handling light in AVWW. The older method, using the z buffer, is still available for lower-end graphics cards and computers, but this new model looks way better, and on most computers won't use that much more CPU/GPU!

What We Were Doing: The Z Buffer
The problem with the Z Buffer method is that it winds up with very pixelated edges.  That buffer doesn't support anything except binary write / don't write data, and that's not super conductive to having high quality lighting.  The plus side is that it's super compatible with older graphics cards, and it doesn't use much at all in the way of GPU power.

The #7 video was using the z buffer, but was also using a trick for the "eyesight" part of the view to make it look like a gradient when the z buffer doesn't really support that.  The trouble there is that you can't do that with anything that overlaps in the z buffer; so I could do that for eyesight, but not for lights.

What We Tried Before The Z Buffer
Why not just use the normal 3D lighting model that most 3D games use?  I tried it, but the problem is that this is a 2D game being rendered using 3D quads.  That just really didn't work out, because pixel lighting is incredibly expensive on the GPU, and not supported by every card, while vertex lighting is incredibly coarse and looks really bad.

To make matters worse, the way that we draw things in Unity 3D is by using their Graphics.DrawMeshNow method.  Supposedly that supports lighting, just not certain kinds of lighting, but my experience was that even vertex lighting was fraught with errors.  Based on the materials in use, I'd get random aspects of the lighting shutting on and off in various parts of the scene.

I tried using Graphics.DrawMesh instead, but that in turn doesn't support things that I need to do with uv animations and such for textures.  As I discovered with Tidalis and AI War, Graphics.DrawMeshNow is basically the only possible solution that has any substantial speed for the number of sprites that we need to draw, while also supporting all the functionality we need in terms of fancy texture mappings.

So that meant that a traditional lighting model was basically out.

The New Method
The new method is actually conceptually simpler than any of the others, and doesn't really do anything new technology-wise.  I thought of doing this from way back, but never thought it would look very good or perform very well.  After the #7 video, and some prompting from long-time Arcen community member eRe4s3r, I decided to at least give it a shot.

What I'm actually doing for perfect darkness is rendering an array of big black circles with fading-to-transparent radial gradient edges to them.  These circles are about 256 pixels in outer diameter, but on the pure-black internal diameter they are about 64 pixels.  Each one of these is rendered in a grid that is screen-aligned and 64 pixels per grid tile.

Talk about an inefficient way to draw blackness!  But the cool thing happens when you start "carving out" blackness where there is a light source.  Every frame, each light source writes into that big screen-aligned array if it is providing some light to it (in a framerate-independent manner, of course).  Also every frame, at about half that rate, each tile loses light.

The longer the light is in one location, the closer towards perfectly-invisible that black circle on all the tiles near it get, until they disappear and it seems perfectly bright.  Since the images drawn in each tile are so much larger than they need to be, their gradient edges "hang over" into the nearby tiles.  I also have each image pulsing by about 10% on a 4x speed sine wave, which makes the edge of the darkness seem to pulse in a living, threatening manner.

The other effect of all this is that when you turn move a light source, it takes a minute to fade.  About half the time it took to create the light source in the first place.  This means that things like the fireball, which flicker and sputter in a seizure-inducing fashion if there was no slowdown, instead look graceful and almost liquid.  This is darkness with substance, which is a pretty neat stylistic effect, and in keeping with the visual style and themes of the game.

How Does This Integrate Into The Game?
This new effect adds a lot of extra draw calls into the game, and so on some very old GPUs it might stutter some.  These would be the same computers that would need to turn shadows off in the game, and might even need to turn foliage down.  To make sure those sort of machines can still play the game, we now have a settings option where the lighting model can be chosen.

The z buffer method is functionally equivalent to this new one, it just looks worse, but it's more efficient.  For people with astronomically large screen resolutions, they may also prefer that, as the cost of this lighting model gets linearly higher with the number of pixels in the screen resolution.

On our test machines, we haven't found this new approach to be very heavy at all, though, so we suspect most people will leave this turned on by default, as they will shadows, foliage, and so on.  If you can comfortably run AI War, you can comfortably run this, too.  But in terms of netbooks and other smaller computers that can run Tidalis but not AI War, let's say, we also wanted to have options for them with AVWW.  So far it seems we do!

Friday, March 25, 2011

A Valley Without Wind Pre-Alpha #7 -- Lighting, Lava, Deserts, and Interiors

Here's the latest video:



The latest screens are collected on the A Valley Without Wind page.

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!

Horizontal vs Vertical Game Development Phases

This is going to be a three-post day, to hopefully. make up for having neglected the blog for three weeks.  In the last post, I talked about the design process for A Valley Without Wind, at least at a high level -- that's a complex topic, so I might write more on that in the future.

One particularly interesting concept that Keith and I have adopted in our design lingo is a delineation between "horizontal" and "vertical" types of game development.

Horizontal Game Development
When you're developing horizontally, you're adding new classes of features.  In Tidalis, a new horizontal feature was when we added the ability to have items, or to have an adventure map.  With AI War, a new horizontal feature was when we added the ability to have minor factions, or "event attacks," or campaign types.

In AVWW, examples of horizontal features we've done so far are having multiplayer, having enemies, having the world map, having building interiors, having regions and all the effects those on the character, having crafting at all, and so on.

Horizontal features are major game-changers, as they add whole groups of new functionality to the game that were not there before.  Another way to describe them is that they are scaffolding: in AVWW, we added "the ability to have enemies" weeks ago, but we only added a single enemy, the Skelebot.

Vertical Game Development
When you're developing vertically, you're still probably adding little bits of scaffolding here and there, but that's not the core focus.  To use AVWW as an example again, when we finally get to adding more than a single enemy, that will largely be vertical game development.

Horizontal game development can be the most exciting thing for some designers, and from looking at some indie games it always makes me wonder why there wasn't more vertical development (awesome ideas packaged in a really short game without a replay value is a bugbear of mine).  But vertical game development is just as critical to the game, overall -- AI War is fun and varied because there is so much to explore and to discover in the galaxy.

As an example of just how important vertical game development can feel to players: The Zenith Remnant is our best-selling expansion for AI War, and it's pretty much 80% vertically-developed.  It added a few horizontal things -- golems and minor factions, most notably -- but the bulk of that expansion is more content, more to explore, more to make each galaxy feel like a living and unique place.

Side Note: Indies Vs. The Big Boys
I don't want to name any names, but I think that if more indie developers focused on a vertical development phase after their excellent horizontal work, that they'd really be even more competitive.  There's something to be said for a highly polished, focused, finite experience, of course -- and I'm in no way advocating simply "padding out a game" with repetitive stuff.  But when you have an awesome new concept, it just seems to me like a waste not to explore it fully, in all its permutations and variations.

Truthfully, we never would have been able to make three expansions for AI War had we just been running on the strength of the ideas that I had, though.  I had enough ideas for part of one expansion, but not even for that full thing.  Players, though -- man are they a font of ideas, and that's what made the expansions to AI War possible.  It's something I'd be delighted to see more indie developers doing in general.

A Valley Without Wind's Pre-Alpha Horizontal Development
With AVWW, we've been doing a ton of horizontal development to get all the various subsystems in the game working and proven out in a broad sense.  That's why you see one enemy, and why we have multiplayer but not yet any prediction or smoothing, and why I had planned not to include shadows for a while (until I was overruled by players).

This mostly-horizontal period of development has taken up most of our time on the game so far, but thankfully we are nearing the end of that process -- my favorite part of game development is, as you might guess, actually the vertical.  We still have more to do with the general mechanics of crafting, NPCs, and the like, but in terms of what we're doing before alpha, the list is actually pretty short. 

Things like Settlements, "Hopes" (our version of "Quests"), and Deeds (the game remembering your past victories and losses in a meaningful way) are going to be our primary areas of horizontal expansion during the alpha phase, and having all three of those in place and fully the way we want will likely mark our transition to beta.

In the meantime, once we get our last push of horizontal development done here, we're going to really be pushing into the vertical, trying to get as many enemies, traps, spells, craftables, general objects, characters, weapons, consumables, buildings, floorplans, dialogues, and so forth into the game before we hit alpha in another 3-4 weeks.

By now we have this amazing skeleton, but we need to start focusing on getting some meat on them bones.  For those that have worried that the game is going to be about "kiting" enemies, for example, that's a fear based out of our simply having implemented one prototype entity, but the reality is even that one enemy won't continue functioning in that simple manner by the time we hit even alpha.  Lots to do, and for me this is the fun part -- we've built most of our toolkit, and part of a world, and now it's time to start really building a world using that toolkit.