Its been a bit of a strange time since the last update. I got a really great job offer (from a large TV company here in the UK) and decided after a ton of deliberation to turn it down. I figure that RIGHT NOW is the best time there ever will be for me to make my vision of a game come true. So I wanted to share some of that vision in this update.
First though, I wanted to show you some art work that is currently work-in-progress. This is stuff that Valentin is working on for the early rig. The concept is actually pretty simple, in that when you first start the game, you have one of these crushers:
The purpose of the crusher, is to compact metal into blocks. You've probably seen these things in junkyards compacting cars, its a similar deal. The difference here is that the crusher is fed by deliveries of junk. These deliveries come from another place, are delivered by what I'm calling "barges". These barges are the trade routes of this world, the come and go delivering materials. Here's Valentin's "small" barge:
So these barges simply fly up to the crusher and drop stuff into it. It does its thing and then a block of metal drops out the bottom. You as a player are then tasked with using that block of metal to either trade or refine or craft into something. Of course you have to pay for the original junk delivery, but for the most part that part of the game takes care of itself if you grease the right wheels. The interesting part is that you can make a bit of money, or decide to use the occasional spare block to craft or invest it in something else.
Right now I'm working on the trade systems code. Stuff like making sure that the right barges visit at the right frequency. That trade prices are modeled correctly (other rigs will buy and sell goods at different prices for instance). This is interesting systemic work that will tie a lot of the production/recycling elements together. If you think of the physics-based nature of the game, I view that as one third of the development (and its mostly done). The "systems" stuff is the second third of the game and that's what I'm on with. The final third of the game is the really fun stuff (for me). This is the stuff that gets me really excited as an AI programmer.
Its kind of hard to relate what I'm going to go for with this final third. Because its really not done in games right now. But I think this video of Ken Levine nails what I'm after. The beach scene from BioShock Infinite shows the kind of thing I am wanting to do with the game. Not necessarily the characterization so much as the autonomy of action. I want to make your small rig a little microcosm of humanity, one which is unique to you and reactive to you. This means that it will rely heavily on emergent properties of AI systems. Not cutscenes or scripts, not that we could afford to do that. Its the kind of thing that seems strangely underdone in the indie space.
One of the things I'm trying to be careful of here, is that the game doesn't get too big. The user-created world aspect really helps in that it stops us from having to design levels and put tons of effort into that level design aspect. But the negative of that, is that the AI has to be robust enough to deal with quite a configurable space.
Which leads me on to the final part of this update. I've been looking at requirements for the animation system for the game to be able to drive the characters and one of the things I really need is support for touching and gazing. Touching happens so often in everyday life and yet games rarely model it in characters. So I had been looking at that technology and I came across the SmartBody system at USC written by Ari Shapiro.
The smartbody system is interesting because it has done some really useful work in the area of grasping, gaze and touching. Which is exactly what I needed. So I got in touch with Ari and we're working out a license to use SmartBody in HOPE. You can see the various smartbody videos on youtube to see what advantage that brings.
Anyway, that's all for this update.