It’s been a while since our last update — we’ve been really busy, as you might expect. The game has now been in development for 17 weeks, but this week we don’t have a new fully-produced video mainly because we’re running short on time. However, a number of the new animation updates that are in this batch of changes really can’t be described very well with words, so I’ve put together this animation test video that shows off each new thing for you:
Interior Generation
This is something that I posted a lengthy technical post about yesterday, but the short version is that procedurally-generating the interiors of buildings is coming along well. It’s a problem that lots of other people have solved in various ways, but which nobody seemed to have solved in the specific way that I needed.
So I’ve come up with a moderately new approach to the problem, basing part of my work on what an indie working on roguelikes created, and that’s leading to really interesting and varied interior floorplans at this stage. In a month or two, once that’s all further polished I’ll be releasing the C# source code for my interior generator as open source under the MIT license, so that others can make use of it.
Story And Setting
Perhaps the most shocking thing we’ve changed in the last three weeks is the story — the broken-earth setting, former ice age, etc, all remains, but the real-world future setting has been replaced. Instead this is now a purely fantasy world called Environ. Rather than trying to explain all the differences, let me just give you the new intro story for the game:
It is the year 888. Wind-blasted snowfields have covered the world of Environ for centuries. Survivors in this ice age are few and isolated, caged by the bitter cold. If they travel, the world itself seeks to devour them. For most, only the enigmatic Ilari provide any shelter against extinction. Driven by desperation, others ventured into the forbidden lands to unearth and reclaim citadels of ancient and wonderful technology. Wary of the ill-understood machines, some have embraced the talents of magic and telekinesis that have emerged in recent generations despite fear of accepting those powers from the Ilari.
Now the glaciers have begun to recede, and a few brave souls venture forth. What they discover is something no one expected: Industrialized cities from the 5th century lie in just-abandoned ruin, next to far-flung bronze-age towns from the first century of the ancient era, near enclaves of skeletal robots from a time after people. Most people from those fragments of other times are dead, but some live on despite periodic scouring windstorms and roving monsters. These people are as lost and confused as the refugees from the ice age.
This is a deadly new world, and the scattered peoples of Environ must work together if they wish to stay alive. They must thwart the wind, the monsters, and the would-be tyrants popping up. They must explore and scavenge the time-shards to find the materials they need. And they may need to enlist the Ilari to help rebuild civilization. If the survivors can find out what happened to their world, that would seem a luxury. Such massive damage seems irreversible, but some may build what all now dream of: A home free of fear and death. A “valley without wind.”
Why the change? Lots of reasons; this has been building for a while. I think that Keith always would have preferred a more fantasy-focused setting, but I was pushing for the broken earth setting because of lingering attachments to the setting from Alden Ridge. But as we’ve been doing the project, I keep coming to the realization that this or that thing would be more interesting if it was vaguely like the real world, but set in a fantasy world. I talk about that some relating to interiors in particular in the Interior Generator post.
So now we have a world called Environ instead of Earth, and all the peoples and nations are fictitious instead of historical, though some historical influences should be obvious as in many such fictions. Instead of the real timeline of civilization, we have something that goes roughly like this:
The Ancient Era (before year 0, encompassing many things such as the bronze age and so on)
The Major Event (year 0)
The Middle Ages (0-300 or so)
The Modern Era (300-500 or so, and very similar to our 1900-2010 period)
The Ice Age (500-888+)
The Future (not saying, but that’s where the skelebots are from)
And actually there’s a lot more detail to everything than that — ancient Atlantis-style high technology civilizations, etc — but I’m not going to go into more depth at this time for two reasons. First, I think that’s spoiler-y enough just with the above, heh. And secondly, we actually would like to have some divergence in history timelines from world to world. Not saying that will definitely be something we do pre-1.0, but it’s ultimately where we want to take this. So the “major event” might be some bad cataclysm, or it might be some major good event, depending on the world in question. We’ll see.
There’s never a shortage of ideas, though, and going with a more fantasy/sci-fi mixed setting, while keeping elements from the real world, gives us pretty well the ultimate in flexibility. That lets us tell all sorts of stories, which of course is the big goal here.
The Minimap
Visually, the minimap looks the same as it did last time. But functionally, we’ve changed a lot with how that works.
The system we were using before was to have “points of interest” that were these little black doohickeys on the ground with a red glow that you had to walk near to. When you did, the red glow would go out, and you’d get some EXP, and the minimap would reveal a piece of itself that was tied to that POI.
In practice, this made exploration an enormously time-consuming and annoying activity. Finding a little tile-sized POI object in the middle of this giant overworld region was not fun, not fun at all. And the way that the EXP was gained actually had some problems with that as well, but I’ll get into that more next time — some general changes coming with EXP.
So what we did to solve this problem, anyway, was that we got rid of visible POIs but kept their sort of segmentation for the map. So as you walk around the map, whatever segment you happen to be into gets revealed as soon as you enter it. This makes exploration comparably straightforward, and prevents you from ever having to scour around an empty field looking for some tiny object, for instance.
The minimap is so insanely useful because it helps you efficiently navigate; and the new segmenting system still keeps the fun of exploration because on intricate twisty maps you still have to find your way around obstacles, etc. So this works out as a very nice balance, and best of all when we’re playtesting now the exploration just feels right, and feels fun.
Also, as a convenience we’ve made it so that doors to buildings that you (or another player) have previously gone through now show up as green instead of red on the minimap. This is sort of an auto-breadcrumb feature, but we’re also going to have manual breadcrumb features where you can magically mark places that are notable or that you want to come back to (or that you don’t want to come back to, if you prefer).
Lastly, the entrances on the minimap are now actually drawn where the entrances are, rather than centered on the entity housing them. This makes the minimap yet another bit more informative (so you can tell when a building has two side entrances, etc).
Evil Outposts
These aren’t 100% complete yet, but their structure is in there now. Essentially, these are dens of bad guys that harass your settlements or cause other trouble. These are less notable than an evil overlord lair, but still cause a lot of grief to whoever they are bothering. You can undertake to destroy these outposts, or you can actually use friendly NPCs to soften the outpost up before you go in. The mechanics of that we’re keeping under wraps until you get to try it in beta, but we’re very excited about it. Hey, we’ve got to leave some things for you to discover in-game right?
Explorer NPCs
The game now supports NPCs that are explorers, and which will go out looking for things. This is very useful, because a lot of important things in the game aren’t apparent on the minimap until some player or NPC has found them. You can control where NPCs explore by where you place wind shelters, which adds a bit of a strategic layer to this part of the game.
If you’re looking for an evil overlord outpost, or some new settlement to visit, you can have NPCs go and try to at least locate that stuff for you, rather than you having to search completely manually yourself. Or if you’re one of the “kill everyone I meet” sort, you can of course do the exploring on your own time.
Settlement Changes
At one time I believe we were saying that the only survivors in the world would be scattered NPCs that were alone or in very tiny groups. And that any settlements that existed in the world would be ones that you’d create yourself. That’s changed.
In practice, we found that this would just be too tedious. Creating your own settlement from scratch is fun and interesting, but not if it’s something you have to do a lot of times in succession. So our goal is that you’ll want to do that at least once in your playthrough, but that it won’t be a regular thing.
Instead, you’ll get to focus on the more fun mechanic, which is shepherding, customizing, and growing settlements. Getting them started is the boring part. Consequently, there are now smallish settlements (at the moment, about 5-10 NPCs starting out in most) scattered all around the map as you explore. As noted above in the Explorer section, these won’t be obvious as you’re moving about on the world map, so you can either explore deeper yourself to find them, or use the explorer NPCs to make that process quicker (trust me, there’s no shortage of things for you to explore directly, so having the NPC take on some of the grunt work doesn’t lose you anything but a grind!).
Visual Additions
* Many spells and such are now able to ripple grasses and other plants like that as they pass over them.
* When your character has died, a status message at the top of the screen now says “[Name of Character] has perished. Press confirm to choose another.”
* Similar context-sensitive info messages at the top of the screen are now shown when you can pick up a player bag, talk to an NPC, or are standing in front of a door you can go in through.
* Monsters, NPCs, and player characters now have (usually single-frame) hit and magic animations that get played. The hit animations for players usually involve a ducking hand-motion as the player telekinetically thrusts or slashes a glowing weapon. For spells, the pose the character takes varies quite a bit more, which injects some more visual personality into each type of sprite.
** These animations are super fast, well under a second, which is why they only need to be one frame. That makes it so that they don’t take up much time or cause you gameplay lag of any substance, but the positive impact on the feel of the game is really great. It’s a lot more immersive this way. This was another big item that took a lot of code additions to get working.
* Bats now barrel-roll when they hit the player.
* Espers now have a spin visual effect when they are attacking the player.
* When entities die, they now collapse into the ground in a paper-like fashion, making for a much more satisfying effect when trees and other large objects are shot, in particular.
* Extensive, extensive work has been done on “cross chunk transitions,” which basically makes all the objects on the screen collapse into the ground when you leave, and then all of the new ones shoot up out of the ground when you come back. The ground itself is fading in/out to black as it does so, so it’s a very neat look that adds a unique flair that’s only possible with the specific sort of visual style we have going on here. I’d say it looks sort of like a popup book as it does this, but that sounds childlike and un-cool. This is something that looks really fun and that I could just watch over and over again (and have, while getting all this working). This was another really big job, but it makes the game feel vastly more polished to play.
* Added in a new fancy visual effect for when new tiles are discovered on the world map, causing them to swirl around and then settle as they appear.
* The game now supports non-square textures (that are still powers of two on each side), which makes for some slight loading speed improvements as well as some render-speed improvements.
* When player characters pick up something like dropped loot, they now briefly stoop to do so (for a quarter second or so) and stop moving as they do so.
New Spells
* Teleport uses a tracer object that moves quickly for 0.25 seconds, and then teleports the character to the location of that tracer object. Thus teleportation through solid walls and such does not work, but teleportation across chasms and water does.
* Ball Lightning is basically a more powerful fireball that is a bit slower to use and also wider, which is worse for small areas but easier to hit moving targets with. It’s also more expensive to make and has very different (and cool) visuals. It’s not really that exciting compared to other spells I have planned, but the visual effect was something I stumbled across by accident while doing teleport, and I figured this would be a fun “minor variety” sort of spell.
And Lots Of Other Stuff
There were also lots of other bugfixes and internal tweaks and changes, but I won’t bore you with that list. It has things such as accuracy of coming out of doors, not letting energy lances slide around objects, making light snakes not collide with entities, making object collisions multi-source for mob situations, and the list goes on.
I try to keep to the more interesting stuff here, but once we hit beta the lists of changes in each version will be all-inclusive as our AI War fans are used to. But so far there’s just no point in doing that here, as that’s only relevant notes for active players.
You could read Arthur Clarke’s Rendezvous with Rama. There is wonder from exploring a world that is alien, and still finding something that is familiar. It seems what you want in AVWW.