System Shock Remastered Edition Update #40

As we've recently learned, the work on Nightdive Studios' remake of the original System Shock continues after a brief hiatus with a smaller team and a tighter focus. The latest Kickstarter update confirms that, shows off some bits of recent progress, and answers a number of backer questions. And for the technically-minded among you, the update also shares the unaltered source code for the original game.

A few snippets from the update:

General Update from Hiatus

Hey everyone, it’s Stephen from Nightdive with the latest update. The last few weeks have been challenging, but at the same time it’s been enlightening. As some of you know I’ve been spending more and more time with the community in Discord answering questions and making reassurances that yes, we are still developing the game. I’ve also been speaking and interacting with many of you one on one so as to better understand how the latest news impacted you and your feelings towards the project. The vast majority of you agree that we are doing the right thing and that what you want is a high quality game that adheres closely to the vision of the original System Shock rather than the reinterpretation that we were previously working toward.

We had a brief respite, and took the time necessary to make some tough decisions which included saying goodbye to some of the developers that you’ve come to know through past updates. What we’re left with is a concentrated team that consists of the original developers who worked on the Unity demo. With that said, let’s take a look at the work we’re doing.

So what does this mean?

It means we’ve gone back to the original vision we shared with you at the start of our Kickstarter campaign - this time with more reliable performance and higher fidelity visuals thanks to the Unreal Engine.

Are we starting over, is this all that’s done?

No, we’re not starting over. We have been able to re-use the majority of work we’ve done over the past year and we’re making significant progress in a very short amount of time. With that said we’ll be inviting our highest tier backers to privately test the game beginning in September at which point we estimate that the game will be fully playable, from start to finish. The majority of the art won’t be finished, but we’ll be ready to start high-level testing.

[...]

Source Code Release!

This first release is the original, unaltered source code that was discovered by OtherSide Entertainment and graciously shared with us a few months ago. It is Power Mac native so will require an emulation tool which we’ve linked in the repo. We have been hard at work updating this code and plan to release a new version of System Shock: Enhanced Edition as well as the code in the near future.

Here are some interesting facts we dug up while working on the code!
  • The game uses fixed point for all the math instead of floating point. However, some blitting functions, after being optimized in the Macintosh version, use floating point registers and operations to speed up copying stuff.
  • System Shock uses the rendering-with-unique color trick (similar to http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-an-opengl-hack/) to detect object clicks and shooting targets. This same trick is used to show nearby objects when online help is on.
  • In order to draw outline fonts, System Shock draws the same string 10 times. First they are rendered in black with a 1-pixel displacement into each of 9 directions, and then the desired color at the center.
  • There are various pieces of code commented out or disabled (using the preprocessor's conditional compilation) meant to deal with a level editor and play testing.
  • Internally, the game usually treats the screen resolution as if it were 320x200 in order to achieve resolution-independent code.
  • The game is mostly written in C, except for the physics library written by Seamus Blackley (EDMS, the Emetic Dynamics Modeling System) and the fixed-point library it uses, which are written in C++, and some Assembly modules.
Grab it here: https://github.com/NightDiveStudios/shockmac

[...]

At this current moment in time, how many things are you planning to change within the game in regards to story, gameplay, and level design?

The story is going to remain unchanged but with the additional logs/emails added in from the backers of the CITADEL CREW MEMBER pledge. Gameplay will be very similar to what you experienced in the original game with the largest difference being the UI which is a hybrid of Shock and Shock 2.

What changes do you think NDS will be making with the remake's direction in terms of its style and feel?

We’re going to be re-visiting the style and feel of the original game. I personally feel as though we hit the mark the first time and by applying what we’ve learned while working in Unreal we can achieve a similar look and feel but with enhanced performance. Our intent with the art direction so far is to bring more of the vibrant colors of the original game while keeping the oppressive atmosphere of a rundown Citadel Station. We’re even incorporating some old school techniques like using sprite sheets for the animated computer screens.

While the remake is certainly getting made, I had the sense that it will be somewhat pared back compared to the original expanded-upon-the-original vision we heard about in earlier updates. Will this mean a game more akin to the original - closer to a 1:1 remake, or will there still be some expansion on the original System Shock's story and concept?

This will be closer to a 1:1 remake with updates to the weapon/character designs but without altering the core gameplay of the original. Expect to see something resembling the direction of the Unity demo.