Monday, November 27, 2017

Procedural Future is Now

I’m really excited to be pursuing new opportunities. For a while now one of my passions has been procedural content creation. For some people this is a holy grail, for others it sounds like a fool’s quest. I admit there are a lot more examples of failed procedural content systems than successes. I think there are a couple of things that are fundamental game changers.

One is available compute power. The amount of easily accessible compute is huge these days. Via AWS or Azure you have access to a tremendous amount of compute at a reasonable price and with a lot better control and support than the bad old days of pulling together a VM or worse a pile of last year's computers to build your farm.

The other is the conceptual shift I see in a lot of examples ranging from Frogware’s Sinking City,  Esri’s CityEngine, and my experience with the canceled World of Darkness MMO from CCP Games. What I see in all of these, even if it isn’t explicitly stated is that, rather than totally delegating the process to a black box system, these are white box people accelerators. In all of these the rules for population aren’t trapped as an intrinsic property of the generation system. The rules are tools given to people to allow them to guide, drive, and control the generation process.

Frogware’s tech demo was interesting to me because of how similar some of the techniques are to what we used:
  • Different rulesets at different detail level, e.g. floor, building, block, district
  • Population along a spline based on selection heuristics
  • Population for a building face based on selection heuristics and adjacency info
I even think they are doing area and volume based population based on some of the clutter and court yard populations you can see in the video. This is something we had plans for, but didn’t see completed.

You can also see similarities between the street layout tools from the Frogware demo and the CityEngine examples. City engine goes a bit further with what they can do for elevation variations, but you can see where people are converging on similar ideas.

One of the things that you can see in the building populations from Frogware (and where I think we probably got a little bit further) is the quality of the result. Because the system is artist driven (not programmer driven) you have a really good quality result. You don’t look at the building and think “a machine did this procedurally”. And the quality is so scalable based on how much content you feed it.

There are certainly still lots of challenges in a system like this. Performance, lighting, asset management are all real problems. But you can see that this is a problem whose time has come. We’re going to start seeing good quality tools for building environments with computer assist. And once people have these tools in place, we can use the same tools for more than just environments and expand into “environmental storytelling”.

It is such an exciting time.

Tuesday, July 20, 2010

Prototyping is SCRUMptious?

Something that has been floating in and out of my awareness for a while now was driven home recently during a round table after a viewing of Kent Hudson's 2010 GDC presentation The AI of BioShock 2: Methods for Innovation and Iteration. It is primarily a process talk - and the process is, roughly speaking, prototyping with SCRUM.

Thursday, April 15, 2010

Thoughts on Scripting - You Can't Always Get What You Want

After looking at motivations for scripting, visual vs code, and a few script archetypes, I am going to look at some considerations you might have if you were going to start on a new script system tomorrow.

Monday, April 12, 2010

Thoughts on Scripting - The shape of script and other stuff

So far I have looked at motivations for scripting and the visual vs code approaches to scripting. Now I am going to talk about some of the specific formulations I have seen. Most of these can work either as visual or code implementations, and I have seen functional versions both ways.

Tuesday, March 30, 2010

Merging! Git thee behind me!

Okay, obviously I like Git enough to be talking about it. However there is one thing that I hate about Git. It's GUI tools are ugly. Seriously, seriously, eyes-bleedingly ugly. And this I don't understand. For love of Mike, git is the official CM system for Qt, the goto GUI api people. I ask the interwebs: can some happy Qt guru make a lovely Git GUI? Please? Really.

In the meantime, probably the first this you'll want to do after installing Git is to set up your merge and diff tools of choice. At least diff-ing will look the way you want it to.

To commit, Perforce, to Git

"ZOMG! Not another git for noobs!" you say.

Well, yes. But mine is special.

I think most people get to git through svn, whereas I have been using Perforce for yonks. While I fell for git pretty quick, there were somethings that took me a silly amount of time to adjust to. So here is a flying introduction to git, through the lens of Perforce.

Monday, March 29, 2010

Thoughts on Scripting - To see, or not to see

Last time, I talked about some motivations for using script in games. For at least the next two posts, I'm going to talk about some of the possible representations for script that I have seen, and about some of the pros and cons with each.