Chip Off The Old Blocks: Voxel Quest
World Builder
I've spent half an hour of my afternoon watching the Voxel Quest March update. It's only fifteen minutes long but I went back in for a second viewing as soon as it finished because I realised I must have nodded off during the most important bit. The video shows a delicious voxel engine, capable of showing fantastically splishy-splashy water as well as lovely, warm cottages and trees which display their age rings when they're bisected. It's extraordinary to look at and developer Gavan Woolery talks about Dwarf Fortress, roguelikes and narrative elements in a soothing, world-weary tone. But when I got to the end, I didn't know who I would be in the game or what I would be doing. I felt like I'd been on quick tour around a world that I might have no place in.
Embarrassingly, my second viewing didn't clarify very much. I ended up being lulled into a state of inactive calm by the changing scenery and mustn't have been listening when Gavan was describing what it's all about. It's an RPG - I think I heard that at one point and the word 'Quest' is a strong clue - but I don't know if I'll have a party, or if I'll be running around biffing orcs rather than performing quiet acts of dendrochronological research.
To the official Voxel Quest website, then, so we can find out more.
Like most roguelikes, the game is designed for relatively quick playthroughs: level fast, die fast, no grinding. I was inspired by many card games (similar to Magic the Gathering or Hearthstone) and a few nontraditional roguelikes such as Spelunky and Desktop Dungeons. Seemingly, the best games change your circumstances and push you out of your comfort zone via different permutations of a familiar set of rules (Chess, for example, has very few rules, but each board arrangement is kind of its own mini puzzle, and there are countless permutations for any given game).
Every single game mechanic is deterministic - there are no dice rolls or random chance (which makes my company name a bit ironic I guess). I made this choice because I wanted a game in which any scenario was based purely on skill, rather than depending on chance rolls like critical hits. It also makes the AI a bit easier to implement as there is less need for fuzzy logic or probability calculations. The one area that is ruled by random chance is world creation - you might get a world that is generated in your favor or not, but either way there is a deterministic path to cope with whatever you are up against.
YES. This sounds good. A lot of the discussion about AI and its importance to the game is covered in the video but you should read these next paragraphs anyway because they might just make you dance with delight.
To be clear, I am not building an "ultimate" AI that can comprehend English and so forth - the AI will actually be very crude.
These include such things as score maximization (used for pathfinding, planning, and traversing action trees), reconnaissance/knowledge gathering, deduction (propositional logic, queries, backwards chaining), and collaboration. The AI operates under a unified mechanism that basically attempts to maximize the NPCs "score" on any given turn by maximizing their comfort, wealth, social standing, and so forth - directly or indirectly, using some combination of their skills and existing knowledge.
The AI can and will do everything you can do, including pursuing artifacts, conversing with other NPCs to attain knowledge, and even lie, steal, or kill. This is by no means a perfect AI, in fact, it is very crude. The key is abstraction - a minimal set of rules are abstracted, and the AI makes new and surprising deductions based on this rule set (if you are familiar with languages like Prolog, you already know how this works -- if not, Google it). Since the entire world is procedurally generated, it is ideal for the AI - it understands that a room is part of a house is part of a city block which is part of a city. If a model were imported from an external program, it likely would have very few properties that describe the characteristics of the object beyond the placement of vertices, normals, and texture coordinates.
Going beyond this, I have something that I think will make VQ truly stand out: I have come up with a method of abstracting traditional storytelling mechanisms into gameplay mechanics, which is actually mostly a result of the way the AI is setup.
I'll leave you to check out the rest for yourself.
Super exciting. One last snippet.
VQ is 100 percent procedurally-generated at this point - the only trivial exception are some heightmaps from NASA, but even those are fed into a procedural generation algorithm to produce new and unique terrain. In the future, many entities will likely be manually generated in external programs, such as items and possibly characters. The entire program is only a few megabytes in size, which is mostly libraries that it uses.
Dropping the NASA bomb.