I've long thought that more can be achieved through greater cross-pollenation between discipline domains, that people should specialise in a little more than one area, that we should explore the possibilities of mixing techniques together in creative and interesting ways, and do it through the play that using highly interactive tools and flexible, modular architecture allows.

Sunday, 30 April 2017

This Island Apparance

The
Story So Far

Exactly one year ago
Lionhead Studios closed its doors.
Whilst a sad occasion, this set many people on journeys of opportunity,
branching out, putting ideas into action, and creating new things of their own. For me this was the chance to fully apply
myself to fleshing out Apparance. I knew
that I wouldn't have time to finish a game built around it nor would I reach
the point of self-sustainability, but there were several key things I could
achieve during that time. First I needed
to finish proving some of the core technical premises (predominantly around
detail management and scale), I wanted to build a showcase technical
demonstration, and also I wanted to collect together all sorts of information
about the project into a web-site.
Ten-or-so months later and I have pretty-much achieved this and it's time
to take stock of the situation, get it out there, get some feedback, and decide
on the next step.

Hobby
Mode

It's a lofty goal to
build a complete, standalone game engine, especially when there are many
off-the-shelf ones available. There was
always a justification for this though in the unique approaches needed to
support the various goals; entirely procedural assets, runtime generation, wide
detail ranges, visual editing, etc.
Unfortunately financial pressures aren't kind to this sort of academic
adventuring and it's not something I can sustain any longer full-time. I'm now back in paid employment (contracting)
so we can pay the bills, which reverts me once more to spare-time development,
or 'hobby mode'.

I originally spent a long time
in this state, gradually digging away at the project, so I need to adopt a very
deliberate and careful route forward as before.
I found being constrained by time focusses your development effort a
lot. Any work has to be the most useful
work possible to move the project forward, any detours, diversions, or
misjudgements are costly.

This
Island Apparance

Given the
all-encompassing goals and experimental nature of the project it isn't
surprising this has led to an isolated system.
Whilst this has kept dependencies low and the necessary control over the
architecture high, it is costly to develop.
I have built an island paradise of procedural generation, rich with
potential and enticing to others in an idealistic way. However, the practical consequence of this is
that it is a lot to ask of people to set sail towards for its fertile
shores. To encourage a community to
settle around Apparance (and stretch this metaphor further), I really need to
build bridges to other more established lands.

Building
Bridges

There are several
obvious places I could reach out to, each with their own advocates to entice,
and communities to tap into. These are:

Commercial engines (Unity,
Unreal, …)

Assorted 3rd party engines
and projects (Irrlicht, OGRE…)

Independent developers with
own engines

Targeting Unity or
Unreal would connect with a lot of people as these are very popular platforms
for building games. Integration into
other engines or code-bases would involve similar work and allow anyone to
'bolt on' procedural generation to their project. The more fully formed and proven game engines
are attractive because they can provide the missing parts of Apparance and make
it a viable procedural generation platform sooner.

I've long doubted
how well 'conventional' game engines would support the novel requirements of
Apparance, but over the last month or so I've been thinking about the reality
of this. Rather than just seeing the
major objections and sticking points as blockers, I've been trying to consider
it as just another set of technical problems that need solving. I'm sure there are compromises that need to
be made, and changes to the way some of the Apparance systems work, but I think
there is still a lot of value in attempting this. Some important opportunities include:

Accessibility - proc-gen
tools for people within a familiar engine and tool-set

Exposure - an opportunity to
raise the profile of the project among developers

Commercial viability -
potentially an opportunity to generate some revenue

Modularisation - a useful
exercise in tidying up the code-base

Expansion - groundwork will
make it far easier to then port to other engines

Acceleration - This could be
a good way to get my first game built more quickly

Where
To Start

My personal
experience with third-party engines is by far strongest with Unreal, in fact quite a lot of the
time I spent building foliage tools for Fable Legends I was working in exactly
the areas of the engine I would need to work to incorporate Apparance into it. Unreal also has a liberal developer model,
making all the source code easily accessible.
It makes sense then for this to be my starting point and where I should
focus my efforts next.

Requirements

To create a
professional grade integration with Unreal it's important to consider the
workflow and user experience of a developer wanting to use procedural
techniques. I would like to consider the
following scenarios:

Taking a few pre-made
procedural assets a dropping them into your game.

Building game worlds from
lots of pre-made and custom procedural assets.

Using procedural assets to
create large parts of game environment.

Using procedural techniques
to place conventional assets.

Creating massive continuous
expanses of procedural game world.

This means quite a
thorough integration is needed to play to both systems strengths. I will look into this more in a future post.

Coming from a technical and practical upbringing I've always been passionate about computers and electronics; writing programs and building contraptions from primary school age upwards. Studied electronics at university, and working in games development since 1995.