Prototype is ready!
Watch the new trailer for GenoTerra right here:
I know it has been a long time since the last blog post to this project. But I can now proudly announce that a playable prototype for the video game GenoTerra is finished (and I graduated with the Master in Design *yay*). I changed plenty of things from the last time I posted about coherent creature design in April, I did a play testing with a couple of people and without further blabla I’d like to tell you everything about the final process up to this prototype. Enjoy!
Master in Integrative Design
As you might know, and I repeatedly keep saying, this game forms the practical part of my Master thesis. I used GenoTerra to research and reflect about the design process using procedural generation in the creation of base shapes that the designer/s in a studio can use to create a more coherent game world.
What was the Thesis about? (Abstract)
“Open World Games" have the potential for countless hours of exploration and fun through their huge game worlds. Procedural generation of game content by computer software is therefore becoming more and more important as a design technique.
Using such techniques can cause problems in the coherence of the worlds that adversely affect the game experience. This work deals with the development and design of an open world game with a high
degree of design coherence.
Short, my hypothesis was:
Generative Design is a new possibility to create a coherent overall visuals language in video games
Some of the terms are hard to translate into English, so for anyone who is interested in the thesis I offer you the possibility to download the whole book (in German). It contains overviews about the design process of GenoTerra as well as research about existing projects that influenced this prototype in the context of entertainment and interactive media. You can also read about procedural generation in general and how my self-developed Shape Based TFFT-Method is being used to create a more coherent visual language in open world games. The only thing I ask of you is that if you use the work or parts of it, you quote properly.
The Mechanic I
To be able to make a statement about the hypothesis in the end, I needed to create the perfect setting for people to answer me some questions about the visual coherence of the world. Therefor it was necessary to make the game’s environment observable from as many perspectives as possible. I originally thought of keeping the 3rd-person view from the very early prototype, but the 1st-Person view would allow me to have way more details of the environment in the focus of the player’s attention.
I was looking for suitable solutions for having both views in the mechanic of the game. I ended up finding photography as the field with the broadest observing qualities, such as looking for a perfect detail macro-shot and at the same time giving the possibility to capture a mountain panorama.
So far so good, but what should the player be doing with this?
The story gave me the answer.
But before I explain the narration, I want to jump back in time when I started building the endless terrain generator. At that time, I wanted to make use of the fact that the terrain was procedurally generated and I could make big changes in the topography by just slightly tweaking some variables according to my needs. I was also obsessed by the idea of creating a serious game like I did with the PrättiApp, but in this particular project I wanted to make people aware of environmental challenges like glacial melting and the rising sea level.
All good ideas I think, but the problem was the needed data to make a reputable, earnest project out of it. Means: The data is available, but it’s mostly raw data, and it’s a ton!!
To make a playable, exciting and scientifically correct game experience out of so many raw data-sets was just impossible in the time frame of just one semester I had. But on the other hand, this fact made me aware of my competence as a game designer.
I am able to create the perfect environment to reflect on my hypothesis. And this was to create a setting, where I can use all the generated shapes, no matter how strange they look and still have them fit the coherence criteria. The solution: Kepler-69c.
This weird sounding name is the one of an existing exoplanet about 2707 light-years from earth. Using a sci-fi setting, I could use all the procedurally generated shapes I will talk soon about, without having to care about accurate, real-life data.
The following illustrations I made, show a very short summary of the story of GenoTerra. The full story can be read in the downloadable PDF:
Year 2300 - Humans didn’t handle earth’s resources well and have now to leave their rotten home planet.
You (the player) are on a mission colonise an Earth-like planet, Kepler-69c, with human embryos, stored at an interstellar space craft. All previous missions with the same goal have failed because not enough was known about the planet’s native life forms and possible dangers from microorganisms.
You are now leading the last mission. You are humanities last chance.
The new Character
Having the story, it was nice using the new main character that looks like an astronaut - simply fitting the overall theme now. To rig and animate the character I could have used of course my preferred 3D-modelling software, but I found an amazing (it really is!) website called mixamo.com. Mixamo allows you to upload a humanoid 3D character and it will rig it automatically after just a few simple steps like positioning the knees, shoulders, etc.
The result is a nearly perfect rig that can be used to apply a big number of already set-up animations from the mixamo website. I still had issues with the character as the astronaut model does not really have a neck - which resulted in some odd stretching when turning the head in some animations. But these were just minor problems compared to the time I saved by using this great recommendable tool!
Additionally, I needed some kind of side-kick that would support the character (introducing the player to the controls or help by targeting important things in the open world). The result was a drone-like robot that speaks to the player. I called it D22 (drone-22) as it resulted from Shape-22 which I will explain later in this post. The idea of a helping instance was indeed present in a very early stage of the concept. Just with other designs.
The Mechanik II
Having the character and the story set, the mechanic was implemented. I decided in the end for a “scan mechanic” instead of an “photography mechanic”. The player has now to find the creatures aka. Aliens of Kepler-69c, change to the scan mode (1st-person view) and scan the alien keeping it centred in the crosshair while pressing the scan button.
Side note: The game is playable on PC and Mac using a Xbox360 Controller
The scanned creature gets added to the bestiary that shows more information and shows how many individuals need to be scanned to complete the mission
Creature Interaction AI
Where do I begin here… Let me go back to the point I quit writing about in the blog. The creature designs. After having created the visual appearance of the creatures that will walk on the surface of this procedurally generated, endless landscape, I had to make them interact with the player. Therefor I wrote a script with several options that one can change to get the best fitting behaviour in the open world.
This results in many different behaviours. Males will try to mate with females, but depending on their temper the chance of the female to join the mating habit is different. Some of the aliens might be warning you to not come nearer if you are inside their field of view. If the player does, it will either attack or run away - depending on its chosen values. Some just ignore the player while all of them do currently look for food in the endless terrain. By default, it means that all the ferns in on the terrain are added to a list. In the future, I’d like to make also carnivores that hunt other creatures. This list contains the position vectors of the fern and let the alien walk from one of them, with an “eat-delay” of x seconds, to the next. This results in a walking path for the aliens.
To not have all of the aliens run towards the same fern at the beginning I wanted to randomize the starting fern. BUT as every alien creature had its own Enemy-AI script attached, all Random calculations spit out the same result. The reason here was that Unity by default uses the same Seed for random-calculations (at the first one executed). A way to solve this issue was to use
to make each seed unique even in the first instance. As not all of the aliens will spawn at the exact same minute, the Seed from terrain chunk to terrain chunk will differ this way.
The Shape Based TFFT-Method
I developed this method out of the Shape Generator Tool that creates black and white shapes the same way, it creates the noise maps for the terrain generation in a procedurally. The Shape Based TFFT-Method built basically a ruleset for designing 90% of the visual content in GenoTerra.
Shape Based TFFT means to take a procedurally generated shape from the Shape Generator Tool (that’s why it’s “shape based”) and use it for:
The Shape Generator creates a black and white perlin noise shape and subtracts parts from it following the same rules as it would when generating procedural heightmaps for the terrain
Such shapes are the base for designers to create creature the Terrain, the Flora, the Fauna and the Textures in GenoTerra.
Furthermore it is used for example in the waves of the methan lakes, the skybox and the normal map that gives the surface of the terrain it's structure as well as many other design elements.
Using this method, I tried to reach a new level of visual coherence in the prototype. You can see it quite well comparing the created landscape with the old landscape-assets without the Shape Based TFFT-Method.
This method could be further elaborated using the shapes also to generate music or a story's tension curve in a similar way. Where the distance from the starting point also determines how far the narration of the game is.
Why doing it this way?
One might ask what the benefits are, using the Shape Based TFFT-Method in a project, because it still relies on many (human) working hands (if the project is big). And that’s exactly the point! Let me compare the workflow of GenoTerra with the one from No Man’s Sky (In a VERY simplified way).
In No Man's Sky, professionals begin by designing several creature shapes that are then processed and recombined by very complex procedural operations. These creatures are then integrated directly into the game. Thus No Man's Sky has the possibility to create an almost immeasurable number of variants, but they don't always fit. In the worst case, designs are created that look ridiculous even though they follow all the rules of the generation process and therefore do not do justice to the context.
At GenoTerra, the process chain works the other way around. The designer already receives a procedurally created base shape, which he/she needs to refine. The competence to find a coherent form for the content is 100% up to the designers and the art director, who finally has control over whether a design is used in the final game or not.
The “swagosaurus”, found in No Man's Sky, is actually a funny example. In my opinion it breaks a bit the experience in context of content coherence of a non-humoristic sci-fi game. I personally see the reason in the AI of No Man’s Sky. It is the last instance of deciding whether a design is “good enough” (aka. Coherent aka. following certain aesthetic guidlines) and not a trained designer.
In GenoTerra I will not be able to make as many variations as in No Man’s Sky as the procedurally generated base shapes still must be further elaborated by human designers, but in the end the art director or designer is the final instance, deciding if the design is "good" (coherent), and will therefor find a role in the final game. And nevertheless it reduces cost and time using the Shape Based TFFT-Method by implementing as many set design-guidelines for the project as possible already in the Shape Generator.
Playtesting - “One of the best experiences I made with this prototype”
Yes. It’s not the first time I did a playtesting with strangers, but this time I got so much qualitative feedback from people that I could directly implement into a series of fixing sessions. The players where all very engaged and really tried to push limits within the possibilities of this prototype. I want to bring a short story here:
The day I did the playtesting not many players were able to finish the tutorial based on unclear instructions, not very well-done tutorial and the intro of the narration was missing completely due to the testing deadline I set myself). After having taken all the feedback into action on the prototype two weeks later, a random dude showed up at our institute. He was helping a former student with the set-up of his project. He came to me saying that the game looks very interesting I was playing and if I he could play the game. Of course I agreed and without further thoughts I passed him the controller and went to get some prints from the secretary. As I returned I saw him playing the game… I asked, “What the f*** are you doing?”
“I am scanning the DNA of this alien right here. Isn’t that what I’m supposed to do? ”, the guy replied.
I was really happy that day. It showed me that all the nights I worked until 4 a.m had paid off. For a protoype, it was finally playable. He even suggested me to put it onto Steam Greenlight, but I personally think it will need still more optimization – it’s just not the right time (yet).
The Future of GenoTerra
GenoTerra is yet in the state of a playable prototype. I designed, programmed and developed this game to be able to answer my hypothesis and came to a point, where it could be pushed further. I really don’t know if GenoTerra will ever be published as a downloadable video game somewhere. In my opinion, it has a lot of potential for other fields of research as well. Let’s take the endless terrain for example. This could be used for game programmers to do research on how such worlds can be optimized (as it’s still a bit compute-heavy). Or the open landscapes could be used in a VR version for the treatment of claustrophobia (fear of being enclosed in a small room/space) or agoraphobia (fear of open spaces). There I also see potential in education. NASA for example has a program where artists imagined the surface of other exoplanets from the Kepler-series. I am aware of the fact that these ideas are currently just future concepts, but somehow seeing this potential makes me motivated and wonder where this journey could lead me with GenoTerra. Maybe up to Kepler-69c.
At this point the development of GenoTerra, and so also the development blog, are finished (for now). I hope that this blog can help some of you dive into procedural generated content for video games. As I had no clue at all what it is, I feel like I became more aware of the possibilities but also the borders of using this great technique as a designer in my projects.
If you should have questions of feedback or just wanna say “hello” don’t hesitate to contact me :)