Gothic VR is a community project that aims to make Gothic I and Gothic II playable in virtual reality. Do you still remember Bloodwyn forcing you to pay your protection money? You’ll experience it again. And you’ll pay… But this time for real.1
VR offers new ways of being immersed into the world of Gothic. How about crafting a blade with your hammer blow, drawing a two-handed weapon from your left shoulder, or casting a spell with hand gestures?2
This is what the Gothic VR team wants to bring to players. This article is a result of talking with the coordinator of the project – Romeeey. He told me about the history and future of the project and the team that gathered to bring that vision to life.
Update (12.12.2024): The project coordinator in September announced that the project will not continue due to a split in the team. With a smaller team, those who have not left the team are exploring the possibility of implementing a VR mode for Gothic Remaster on Unreal Engine 5.
The beginning
R: I am a big Gothic 1 fan, so I always wanted to do something with the game, modding, a prequel, whatever. I am also a big AR3 and VR4 fan, which is why I decided at some point to marry these two ideas and try to bring Gothic 1 to virtual reality.
As you will see the whole project started as some small experiments of one guy, but it is so much more today. I am very proud of how this idea grew, how many people got attracted and how professional it is today. I might have started it alone but it would not be what it is today without the amazing developers of the Gothic VR team and their efforts and passion.
But let me tell you, how it started and how we got there.
3 years ago I was doing something that is called “Bildungskarenz” in Austria, which translates roughly to “educational leave”. It is a state sponsored training programme to learn new skills. One part of my training was to learn about game development in Unity and I chose to work on Gothic 1 in VR as my training project.
A little side note to that. At that time I had three games in my mind, with which I wanted to experiment. Gothic 1, American McGees Alice and Zanzarah. I decided to go for Gothic 1 because of the broad modding possibilities and the amazing fan community. Also it is my all time favorite game. So it was a natural pick.
In terms of education I am not a developer. My background is engineering and mining. I later worked in the area of digitalisation and augmented reality (“AR” – ed. note.) in the industry as a project manager and server administrator. The video shows what I was working on at that time, so you see I was already in the area of extended reality (AR and VR).
My first challenge was to somehow get the original models and assets out of the game.
I did not have experience with game development and also not all with Unity (the engine on which the project is based – ed. note.). My first steps were basically tutorials on how to use Unity and to get familiar with modding tools. My first progress was to extract assets like 3D models and textures from the original game via modding tools by hand, put them into Unity and make it work.
I started documenting my progress on Youtube (Gothic VR YouTube channel) showing my first success to have the surface and Old Camp landscape model in place with a basic VR controller. Initially I used the native Oculus Plugin, because I was using my Meta Quest 2 (very common VR glasses – ed. note.) at that time. In the next couple of weeks and months I tried out different things like importing 3D models of ambient items like trees and fences etc.
Later on I also inserted regular items that you could grab in VR and fiddle around with. A big challenge was to get NPCs into the game, because they were quite complex in terms of their models (e.g. human NPCs have separate heads, different body and armor models). Also animations in terms of very old formats being correctly handled by Unity.
All these things were hand-made and very experimental. My goal was never to do the full game. I just wanted to try out different things and teach myself game development in Unity.
Unexpected support
R: At the end of my educational leave, I was planning to stop the project and leave it be. I wanted to put my code to GitHub for others to use and move on. But somebody notified Jorgenson, a famous German Gothic YouTuber, who wanted to do an interview with me. I agreed and together we did quite a nice Q&A about the project and my vision.
At that time I realized that there were a lot of people out there who really loved the idea of having a fully fledged Gothic VR game and that it could be possible to realize such a project with good people who share that vision.
The crossover video with Jorgenson and my YouTube video experiments, attracted so many supporters that we decided to form a project team and do a kickoff meeting for a more generalized Gothic VR project. That was the birth of the current Gothic VR project as we know it today.
I like to think of the previous videos and experiments when I was still working alone as a proof of concept for nowadays Gothic VR. The current project that really aims for the entire game (Gothic 1 and Gothic 2) with the development team and a proper technical approach behind it, is simply called “Gothic VR” today.
It is ideawise still based on the early experiments and experiences from the proof of concept. Technically, most of my experimental code was thrown away and transformed into high quality code by our developer team. The project underwent 3 major stages:
- The proof of concept, where I was still working alone.
- The formation of the Gothic VR team and the professionalization of the code base
- The new technical approach to load original game files at runtime
One of the last things I had changed at the end of the PoC (“Proof of Concept” – ed. note.) phase was the change from native Oculus plugin to OpenXR (a VR and AR standard for multiple platforms and devices – ed. note.).
This was a good decision, because it was now possible to not only support Oculus devices, but also a broader variety of VR glasses. Now it was technically possible to run the game on all common glasses.
Project growth
R: In the first kickoff meetings there were like 10-12 interested people, who wanted to join the developers team. In the very early stage one developer called Vince did a lot of groundlaying developer work, especially in terms of meshes of the landscape and general improvements on the project.
In the following weeks and months a team of 5-8 people turned out to be the main / core development team, including also some people who support the project by helping with YouTube videos and doing design tasks or organizational help. One of this core team, called Tyroonis, provided us with a professional infrastructure and know-how / expertise on how to do Continous Integration (CI). We got an automatized way to build software from Unity and Github.
The Gothic VR code is still publicly available on GitHub.
Gamechanger
R: A big gamechanger was another very motivated developer and his visionary ideas – JaXt0r, who decided to do a little side project. We have always thought about getting data directly from the original game files, because going via modding tools meant a lot of manual work. This new approach would mean to have everything available right away once properly implemented.
He experimented with another project that was called Phoenix at that time and which is now known as ZenKit. The ZenKit project aims to re-implement file formats used by the ZenGin (the proprietary Gothic engine). ZenKit includes parsers and basic data structures for most file formats used by the ZenGin (the engine of Gothic – ed. note) as well as a virtual machine for Daedalus scripts (the proprietary Gothic script language) and supporting infrastructure.
This amazing project by a single developer called Luis, who later integrated more and more into our team and works together with us very closely, made it in theory possible to load most original game files and use them directly in Gothic. Another major aspect was to have the core of the Gothic running in our project. We only had to figure out on how to handle that with Unity. JaXt0r did that and grew to be the architect of our new Gothic VR approach.
Despite all scepticism in terms of feasibility and performance, JaXt0r actually managed to load data at runtime from the original Gothic files into Unity. And did that already with quite good performance. Maybe to clarify this for you: our application takes whatever original Gothic version you feed it, extracts the assets and builds the VR experience from it. And all of that when you start it, at runtime.
We discussed this new approach in our team, but it was very soon clear that this was the way to go, if we wanted to do the full game in VR. This meeting was the technical birth of the current Gothic VR project. We had to start from scratch, but could of course heavily use all the stuff from the PoC and the early VR project. Very soon we had the Gothic 1 landscapes, the ambient items, the VR movement and grabbing items again.
A new developer called Frank joined at that time and immediately implemented very cool new features like music and sounds and also a very crucial groundlaying feature, which was world loading.
Where in my experimental PoC big holes were in the world, because I didn’t care to manually insert stuff, we had everything available now. You have to know that there is a gigantic world mesh called surface in Gothic 1 with more detailed meshes like the Old Camp or other areas being inserted. Also there are more hidden areas like the Old Mine or the Orc Temple, where you leave the surface area and enter these dungeons.
In my old PoC a lot of the areas like the Swamp Camp were missing, because I only focused on the Old Camp and the starting area and entering dungeons was not possible at all. With Frank’s implementation we got the proper loading screens and possibilities to change between surface and different dungeons. Of course we had to visit the Old Mine right away to check out that iconic location. It soon turned out, that without ladder’s you are lost there, so Frank implemented ladder climbing in VR and ladder teleportation as comfort feature soon after.
After the new technical approach (we called it at that time unZENity, because of the original name of the Gothic engine ZenGin and a bit of insanity), JaXt0r went over to the loading and implementation of NPCs. As it was already when we still did things manually, NPCs and animations are a huge challenge and also a very time consuming feature.
Major features
R: With a lot of help from Luis, the creator of ZenKit, JaXt0r had some major breakthroughs and good implementations over the last months. We are now very close to being able to load all NPCs into our game and have them do their idle animations and parts of their daily routines. As already mentioned this feature is quite complex, solely displaying a NPC is hard enough with body and head being separate, body weights, different armors, head meshes, mouth and teeth textures, items that they carry, their correct face texture and their correct position in the world.
Having them perform actions by playing animations is even harder with these very old animation formats being used in state of the art software. And on top of all these basic challenges we need to read all the routines and interpret their daily routines, so that they act exactly like in the original game.
And I tell you one thing. Even if we get all of that right, we still encounter bugs and funny behavior that lurk in the original game. It’s really funny to see how the original developers from Piranha Bytes implemented features, when you encounter comments like: “I don’t know why this is working, but I leave it as it is”. It’s very cool to deep dive and see what the founders originally did and thought.
A very important development issue that was also happening behind the scenes was performance optimisation and the implementation of culling. VR standalone glasses like the Meta Quest 2 or Pico 4 are quite weak in terms of hardware. You would imagine that a more than 20 years old game would run easily on nowadays hardware, but the world of Gothic 1 has always been huge and is still very intense if you put it into a new engine.
A living proof to that were the performance issues of the Nintendo Switch version. To run the big old world of Gothic 1 we had to implement some performance features like culling to achieve high enough frame rates, which are recommended and necessary for VR games to avoid motion sickness and of course to provide a smooth gaming experience. We are proud that our applications runs with good frame rates on mobile VR glasses.
Another major topic for us was to improve the atmosphere of our application by adding the magical dome with all the original rules when and how it appears, weather, clouds, rain, sky and day / night changes mostly implemented by Frank. Quite recently a new developer called Thomas joined our ranks and started advising us with his impressive game development expertise.
Very soon he got caught in our discussions and started helping out Frank with his light implementations and single handedly took light and illuminations, which is a very complex topic, to the next level. I dare say that a lot of features like these are already on a level where we compete with professional and commercial game studios in terms of quality.
Democratic project
R: The project is now in the hands of the Gothic VR coreteam. Decisions are made democratically by the team. I am still a team member, I do smaller implementations and of course our YouTube videos and community work. The heavy work is nowadays done by our more experienced developers and experts. JaXt0r, who built the technical foundation of the new Gothic VR project and who is our biggest contributor acts as our lead developer and coordinates our code and contributions.
There is Frank and Tyroonis, who also made heavy contributions to the code and are responsible for amazing features. There is Thomas (light), Adam (NPC pathfinding), Kevin, Noxy and me also writing code and implementing features, whenever we have time. Luis, the creator of ZenKit is always helping us out, when it comes to interfaces and ZenKit implementations and recently provided us with improved music capabilities, which we will soon present to the world. We get a lot of support in terms of videos and community from noxy, ikuma and mihai. Previous and paused members are vince, thogs, dizzy, coldblood and rared.
We are a community project so people are joining and leaving. We have times where a lot of stuff happens. We have times when people need breaks or vacations. But in general we have quite a healthy and stable team and a lot of motivation, know-how and love for the old games and our shared vision.
Modifications
R: Since we work with the original game files we are able to support a lot of the basic mods out of the box. E.g. simply using high resolution textures or modified (Daedalus) script files will work out of the box, depending on what files you feed our application.
In terms of graphic improvements and alterations to the original game a lot is possible. We are using Unity so it is possible to implement state of the art graphics and integrate whatever feature we like. Our vision is to stay as close as possible to the original game, meaning that we will use the original graphics and original features.
But since a lot of people want improvements, we will most probably provide additional features via options and settings. In general our developers are free to implement what they want. We discuss a lot and of course we also have disagreements. But in case that happens, developers are still allowed to implement their feature as optional so that others can experience Gothic VR exactly the way they want it.
Sword fighting and Spellcasting
R: We have not yet started with the two core features sword fighting and spell casting. But there are a lot of ideas and concepts out on how to implement it. Of course VR is perfect for acting out the fighting or casting. E.g. for magic raising your hands when casting teleport magic. The same is true for sword fighting. A lot of people in our community are very curious about how we will implement it. Especially with the skills one handed and two handed.
We haven’t started this feature yet but we were discussing a lot about it and plan the first steps and iterations already. One possibility would e.g. be that you need to follow the combo path of the sword in order to cause more damage. Another idea is to implement a rhythm slashing mechanism. In any case it is crucial that we have sword fighting and spell casting that feels good and natural in VR. It will be one the core elements of the VR experience and it must feel as realistic and dirty as in the original games.
There are things that are easier to implement but show us the way on how to design these features. E.g. opening chests and doors or using a hammer to forge or a pan over fire. All these actions and movements have to be acted out in VR. You really grab the pan and hold it over the fire until the meat starts sizzling. You slash the hammer on hot iron and you grab the door to open it as you would do in reality. These features are currently in implementation. But they show us why Gothic is the perfect game for virtual reality.
The future
R: You might ask: what is to be expected in the future?
We have currently 3 main topics on which we are working:
- NPCs, routines and animations
- Light and Ambience
- VR mechanics
As already discussed we have the basic NPC implementation ready. We will soon show our progress there in new Youtube videos. It is a big milestone for us to have all NPCs present in the game and doing their basic routines. Nevertheless a lot of the animations in the routines are still missing or are broken and there will be a performance issue with all the NPCs doing their things. So the big topic in this area will be optimizing, optimizing and optimizing.
We have made great progress in the light area. It’s an issue that is slowly being worked on in the background to improve the general atmosphere of the game.
In the near future we will focus on releasing VR features like cooking, smithing and maybe even fighting. New developers have recently joined to concetrate on VR more.
Our ultimate goal is of course to make all of Gothic 1 and 2 fully playable in virtual reality. When we have achieved this goal, there are also visions on the horizon to implement or cooperate with other projects on multiplayer features and additional content for our beloved game. But realistically we currently aim for a MVP (minimum viable product) with the world and NPCs available, where you can reach the end of the game. This version might not have a fighting mechanism and dialog options might look basic. But the core game is available. With such a version, we can then slowly work towards a complete game.
Cooperation and contact
We are also very open for new developers joining our project. If you have experience with Unity and C#, you can join our backend team to revive the original game in Unity. If you love to experiment with VR mechanics, you would be a perfect fit for our frontend and VR group. We are looking forward to your ideas and expertise. For all fans, we have a lot of new stuff ready for you. You can follow us on our Discord server, or watch our progress videos on our Gothic VR YouTube channel.
To all supporters and fans:
Welcome to the colony… in Virtual Reality!
- The project’s description on GitHub [Access at: 18-05-2024] ↩︎
- Ibid. ↩︎
- Augmented reality ↩︎
- Virtual reality ↩︎