← back to Main Page

Genesis et Civitas

Overview

This game is the combined result of two different student projects working in parallel, each with their own goals and focal points.
Many games have such distinct phases, that they can be considered multiple games in one. This separation is also present in our god game: starting with creating an earth for your creations to live on, before moving on to guide and influence the development of their civilisations. Both phases originate from the same idea: play god and watch your own world form. But with that idea at the core and 8 people on our hands, we decided to split this project into two, each one working on one of the two core modes of our game.


The first phase, created by our sister-project Genesis, was the generation of a world map. Their primary goal was to create a procedural generation where each processing step is more and more dependent on the previous ones. For that, they simulated the individual steps of earth’s creation, from the forming of tectonic plates and their movement, to the influence of ocean currents on the climate and appearing of rivers, forests and animals, all while trying to use as little randomness as possible and instead emulating real geological and meteorological processes in an abstract matter.


At the end of the Genesis phase, a finished world map has been created, which is then is exported with all its parameters: A heightmap, temperature-maps, ground types, flora and fauna. Then, at the beginning of Civitas, this world gets imported and converted to be further be played on.
Our main goal was the simulation of multiple parallel civilisations, which need to compete or cooperate with one another for the resources the land offers in order to survive and thrive. At the same time however, we wanted to allow the player to influence the worlds development, guiding the civilisations to keep them alive and happy.

← back to Main Page

Technical Aspects

Many challenges derived from our separate systems. Although it was advantageous to create player interaction, connectivity with the map and NPC logic separately, we often struggled to bring everything together. We surpassed these challenges by more regular meetings and more communication about git branches and tasks.
Another issue encountered during our work was the intractability of the player. We struggled to strike a balance between simulated civilisation systems and influence from the player. The solution was not only more abilities that the player could use, but also the critical implementation of the saviours as controllable NPCs.
Lastly, we struggled with the evaluation of tasks and the scope of the project. As one of our team members had to unexpectedly leave the project, we had to re-evaluate and prioritise tasks. Splitting the workload from five people to four was challenging but possible thanks to communication and collaboration.

In this project I had two major topic i was responsible for: the creation and implementation of the NPCs, and the import and conversion of the Genesis map data:

  • Genesis data
    • importing world data and generating map geometry from it
    • mapping genesis data to NPC needs (e.g. water->thirst, fertility->hunger)
    • converting continuous map values to a discreet hexagonal grid
    • modifying specific genesis values via player skills
  • NPCs
    • modeling, rigging of NPC models
    • animation of several actions including: walking, tool usage, swimming, sailing, praying, talking, dancing, idling, etc.
    • pathfinding and movement across a hexagonal grid with varying traversing costs
    • civilisation behaviour: seeking resources, settling, splitting, merging, dying
    • modeling of buildings + ruined building variants


← back to Main Page