Modding has been a huge part of Amnesia. For instance, over the years The Dark Descent has accumulated over a thousand mods and addons on ModDB. This flood of user content has been amazing to see and we are extremely grateful for the whole community surrounding it all.
It is time we gave something back!
So today we are releasing the full source code for Amnesia: The Dark Descent under GPL v3:
The code release contains all the game code for both The Dark Descent and A Machine For Pigs. It also contains all editor code.
Very important note: This doesn’t mean that the game is suddenly free. It just means that people are free to use the source however they want as long as they adhere to the GPL3 licence. The game and all of its content is still owned by Frictional Games. Just like before.
Think of the release as “free speech”, not “free beer”.
It feels like we could have released this source code a long time ago. Unfortunately there has always been something else we had to attend to instead. But now that Amnesia: The Dark Descent has had its 10th anniversary and Amnesia: Rebirth is less than a month away, we just couldn’t wait any longer!
We are all really excited to see what comes out of it! The modding community has been incredibly creative over the years and it will be fun to see what it can do with the full source code at its disposal.
I also hope this release can be of help to anyone wanting to create their own engine or just wanting to learn more about game programming. While the code is not the greatest in places and the tech used is not the latest, it is a fully contained game engine in a fairly easy-to-understand package. It is also a testament that it is possible to do this sort of thing, even with a very limited team.
Noteworthy features include:
- Shadow mapping with soft edges.
- Realtime visibility culling system that also works for dynamic objects.
- Automatic render batch system of static objects.
- Deferred shading system.
- A full editor with lots of interesting feature that such as picking algorithms and view fitting.
- Very simple state machine AI that still gives rise to fairly interesting and intelligent agents.
- Fairly advanced system for physics sounds.
- Physics based interaction system.
- Own sound system implemented using OpenAL
- Lots of other basic rendering and gameplay tech all implemented in an a coherent engine structure
Obviously, all these things are decade old and nothing new. But I think they can all be quite interesting for anyone learning gamedev, or that are just curious how Amnesia worked under the hood.
Again, thanks to everyone who has created Amnesia-related stuff over the years, it has been a blast to witness!