PORTFOLIO testes DIVINITY ORIGINAL SIN

Larian Studios

Larian Studios is the biggest independent game developer in Belgium. They were founded in 1996 and became internationally known for their Divinity series, from which the first episode made place 74 in the top 100 games of all time in PC Gamer magazine. They have been independent since their latest release of Divinity II - ego draconis in 2010. Larian Studios was also the first Belgian game developer to produce an educational game that is embedded in the educational program of many primary schools.

Divinity Original Sin

Larian goes back to its roots with a prequel for the Divinity series, that made them internationnally known. It's a medieval party-based turn-based combat RPG with an isometric top down camera.

They have got an in house engine and the editor for making DOS will be shipped with the release so the community can make their own mods.

What I Did

In short:

  1. Mainly gameplay programming.
  2. Engine programming if features required engine extension.
  3. UI-programming (iggy -> flash)
  4. Character spells
  5. Save/Load
  6. Fx-artwork
  7. Implement behavior scripting language for designers
  8. AI-grid generation (editor) to support pathfinding.
  9. Client/Server data syncing (it's a co-op multiplayer game)
  10. ..and many more..

I got to work on a versatile number of things such as editor programming where I implemented serveral tools that improved the creative workflow of the level designers. As an example I introduced the concept of prefabs and groups into the editor so the level-designers would have an easier time putting e.g. fire-torches or groups of bushes all around. I also did some FX-artwork in FxStudio, the in-house tool Larian uses to develop particle effects, to accompany several character skills I programmed.

However, the main focus lay on gameplay programming, and some user-interface programming. I expanded an existing state-machine and added several skill-states that would be used prominently during combat in game. I received a lot of responsibility during what was actually the start-up phase for Divinity: Original Sin (then still called: Project E) and I must say it gave me a lot of new insights into state-machine programming and programming in general.

Other tasks include the implementation of tools for the game editor (that will be shipped with the game) such as an AI-grid painter that allows the artist to overwrite generated AI behaviour (e.g. make a walkable area into a non-walkable one).

Afterwards I got to work on implement the save-load system where we decided (due to the massive level-scale) to only save dynamic data and not always reload static data. For the level-designers a scripting language was implemented to introduce local-ai behavior or enemies and all other npc's.

The developing was done in C++ (and CLI for the editor programming). Unfortunately, due to contract reason, I am not allowed to elaborate more about this project until the shipping version is released.

On DOS I’m learning how to write extremely performing code. Since DOS is a multiplatform game, where every platform has its own limits and issues, my code was written to have the least amount of memory impact as possible and to work fast in any give circumstance.