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.
- The tech is working (video)
- Future City (video) is available for you to explore
- The 0.9 Beta release (itch.io) is available for you to play with
- The website is full of information
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.