Maximilian Schulz

A fan brings Descent to the Unreal Engine, with included beautiful test video

A fan brings Descent to the Unreal Engine, with included beautiful test video

Descent has enjoyed a strong cult following since its 1995 release by Interplay, but the game’s fabled six degrees of freedom have rarely found a home in more modern games. One man is in the process of bringing the game over to the Unreal Engine, and his first test video has received 40,000 views in a matter of days. He’s been deluged with e-mails from people wondering if he’s going to begin a Kickstarter campaign, or to ask if he needs help with the project.

I tracked down Maximilian Schulz (by using the e-mail address on the project’s main page) to ask him about the project, see when we’d have something to play, and ask how tricky it has been to bring this style of game to the Unreal Engine.

The technical hurdles

So has it been hard to get a Descent-like game running in the Unreal Development Kit? “It has not been as difficult as some might imagine,” Schulz said. “For me, it basically started with research; there are a few other people in the Unreal modding community who have tried their hand at making 6DOF work in the engine, and using some of their concepts as a base I just refined the code and kept testing until I figured out all the things I needed to change to make the game behave correctly.” This process took time and often led to frustration, but the end result was worth the struggle.

“Without getting too technical, the main problem is not that the engine doesn’t support six degrees of movement and rotation – it does! But for one thing, there are some limits in place that prevent the player from using all six degrees, and these are pretty much undocumented. So finding these limits, and sometimes it’s just a variable in the code, and lifting them is the first thing to make 6DOF work,” he explained.

What makes Descent special is that there is no “ground,” and no “gravity.” Most games assume there are both, or at least a virtual horizon. Games like Descent that offer six degrees of freedom orient the player using the middle of their own ship, not the environment.

“The greatest challenge is making the player rotate around themselves and also being relative to their own center, not to gravity,” Schulz said. “It’s a different way of calculating rotation, using quaternions instead of vectors, and implementing that is the key. I also added acceleration on every axis, completely rewriting the existing acceleration code. This makes the player feel the mass of the ship; you simply can’t speed up from 0 to 100 in an instant. There is some weight attached and players need to feel that. I took great care to balance it all so it really feels like Descent.”

This code has been documented in a tutorial that anyone can download from the project’s official page.

It won’t be for sale, and anyone can help

People who watch the video keep asking about a Kickstarter campaign, but that may not be possible, or even necessary. “While I don’t seek funding to keep going, and people want to help free of charge, the topic comes up again and again in conversations. The thing is, Interplay still owns the Descent brand and I can’t charge money for a game that’s using it,” he explained.

“Looking at Black Mesa, which is essentially a Half-Life 1 remake that stays pretty darn close to the original, I think the game is fine as long as it’s not called “Descent” and doesn’t use any of the critical original assets such as models and textures,” he continued. “But since these are to be remade with higher detail anyway, just as the Black Mesa team did, I don’t think there should be a problem with Interplay, although I’d like to hear from them eventually.”

The trick is to make the levels and enemies recognizable to players of the original, without simply repeating those designs. Schulz wants everything to be less abstract, so you get a sense for what each room and robot did during mining operations. He also said that the mood may be darker than the original game, although the sense of isolation and claustrophobia will remain.

He’s hoping to have the first release in two to three months, and that will include Descent’s first iconic level and redesigned versions of the three robot enemies from the original. After that anyone will be able to create their own content and add it to the game.

“I want this to be a community project first and foremost, where anyone who has talent and the heart can jump in, make a map, a model or some other addition, and then drop out if they want to,” Schulz said, dismissing the idea of putting together a formal team or studio.

“I will supervise it all and integrate everyone’s work into the product. As for a release date, I think people will have something playable sooner than they might expect. Descent is very modular, based on levels with certain robot and weapon types in them, and you can just add one level at a time, include the new enemies and pickups the map needs, and release that as a package to add to the base game. I think this model would allow for great collaboration between the community too, and not require a deadline-driven way of working such as development studios use.”

The final goal

Ultimately the plan is to re-tell the original story, including all the original weapons and perhaps some new ones, high detail versions of the original ships, including a 3D cockpit for your ship, and “more diverse game play” without losing what made the original so much fun to play.

Schulz is looking for help with the creation of the new ship models and textures, and he plans to release documentation that explains how the game’s code was created and allow others to learn from the work and apply it to their own projects or content for the game. This sort of project often launches with a beautiful video and then fades into obscurity as people lose interest, but we’re hoping this makes it to final release. It’s time for a new version of Descent, and this looks amazing, even in the early stages. We’re keeping our fingers crossed.

Be sure to visit the project’s page to sign up for the newsletter if you’d like to stay on top of the project.