We Create Worlds

It’s 1983, yours truly is born, Return of the Jedi hits theatres, Pioneer 10 becomes the 1st man-made object to leave the solar system, IBM releases PC DOS 2.0, and the Gariott brothers start Origin Systems, Inc. (OSI). Just over a decade later Origin creates the world of BioForge, and captures the imagination of my young mind. This is the story of my obsession to understand the code of BioForge.

Space, Cyborgs, Robots, Aliens, Puzzles, and future Technology – BioForge has it all. BioForge is an Action-Adventure game centering on exploration and puzzle solving using items, and also fighting and interaction with NPCs. The player takes on the role of a cyborg (Experimental Unit AP-127) who awakens in a cell on an isolated moon with no prior memories. He must unravel the truth about himself, the research station, the bizarre Mondite cult that controls it, and the mysterious ancient alien race that once inhabited the moon. The in-depth plot, extensive voice acting, and immersive visuals combine for a memorable experience.

BioForge uses a software-only 3D engine to draw polygonal objects and characters against beautiful pre-rendered backdrops. Regarding the development of BioForge Ken Demarest (Producer, Director, Lead Programmer) said:

Every aspect of the BioForge was designed with technology in mind. You are on a lonely planet because we could not show more than two to three characters on screen at a time. Your body has been operated on because the fledgeling skeletal animation technology was too stiff to show smooth human animation.

Ken Demarest

The bright coders behind BioForge also pioneered texture-mapped 3D character models with interchangeable skeletons, and real-time pose interpolation. This technique is now common-place in 3D video games. In my late teens I stumbled across a small project with the goal to figure out this system – coined S.A.L.S.A. (System for Animating Lifelike Synthetic Actors). I was intrigued and studied the system inside-out; improving and extending the work to allow me to import the BioForge characters into Maya.

My taste of the brilliant software engineering behind BioForge grew into an insatiable appetite. Circa 2000 I set out to reverse engineer all of the BioForge file formats. With hex editor in hand, lot’s of spare time and patience I was largely successful and shifted my attention to the audacious goal of remaking the BioForge engine to run natively cross-platform. It was at this point that life decided to get in the way, and over a decade later my code remains unreleased.

Update 21-Sep-2019: There has been some renewed interest in this project, so I’ve been using it as an excuse to play with .Net Core. I’m porting my original code to C# (from C++) and I plan to release everything on GitHub in time for the 25th anniversary of BioForge – March 29, 2020 – stay tuned! If you’re interested in the history of this project, check out one of my old blogs on the WayBack Machine – ‘Comportal‘.

Update 29-Mar-2020: BioForge is 25 years old today! I have not yet released my work on GitHub per my previous update, but I have re-kindled my passion for this project, and I’m making good progress again. In the meantime, check-out my presentation from NDC Sydney 2019 on YouTube. I have also been accepted to speak at NDC Oslo 2020 in June (now an online event due to COVID-19), please support by buying your tickets here.

Update 22-Jun-2021: My NDC Oslo 2020 talk about Reverse Engineering BioForge is now available on YouTube. This is an improved version of my NDC Sydney talk by the same name. Over the past couple of months I’ve been focused on game engine architecture, and refactoring to make further progress simpler. I’ve now also painstakingly documented most of the script API, and made further progress on the C# transpiler and API implementation.

Update 19-Jan-2022: Finished moving everything to an ECS architecture and cracked a few more pieces of the puzzle, incl. camera projections, and so levels are loading nicely now. My Roslyn-based script engine is solid so far, but still considering some possible thread contentions. On the audio front (which I had thought was finished long ago), I had ignored some minor clicks and pops in sfx playback thinking it was related to the way I was using FMOD, but I finally investigated and found that I had overlooked another 32 byte header in the PCM data (if you listen carefully to the intro movie at the end of my NDC talks on YouTube you might be able to hear the clicks and pops). Anyway, audio is now buttery smooth, and I’ve also switched to a nice free sound font (rather than gm.dls) which really enhances the music (note that FMOD only supports .dls not .sf2). Currently working on player movement and physics. Things still to go include collisions, waypoints, combat, and polishing the .scp to .cs transpiler.

21 Comments

Thanks for the pep talk Andy πŸ™‚ I’ve actually made a little progress over the past few weeks, more than the past few years!

hi Tim,
I must say I am really glad you are working on Bioforge “Remake”
This game is one of its kind. Great, supergreat story, nice graphics, perfect musical score (I’ve remastered the music, so if you’ll ever need the tracks, I’ll be glad to give it to you) and sounds.

I wish you good luck and free time to work on this project. I bet it will be hugely apriciated!

best regards
michael

What an awesome project! I have fond memories of this game and always thought it was ahead of its time in how it combined action and storytelling. I often wished there was a sequel made. Best of luck with this!!!

Hey there. I found your website from the NDC video on YouTube. At the end you mention a GitHub so I went looking. I found your GitHub but there’s no public repositories.

I’d just like to echo the voice of others and encourage you to publish your game clone on GitHub, even if it is incomplete. Tons of projects on GitHub are works in progress. Not everything has to be complete.

Publishing it now would let people “star” the repository and follow its progress. It would also let people examine code and work you’ve done so far, generating interest. Finally, not sure if you’re looking for help or not, but people could even start helping you out at some point, by reporting bugs (GitHub issues), writing Wiki articles/game documentation (GitHub wiki), etc.

Thanks for listening.

Hi, Thanks for the feedback. Yes, it has taken longer than I expected. I recently was accepted and presented an updated/improved version of the talk at NDC Oslo which should be uploaded to YouTube soon. Ironically, this (+ COVID) has delayed me getting everything ready (to my liking) for GitHub. I’m working on it, and also looking forward to the help! πŸ™‚ Thanks

Nice, good luck on creating your own world!
I have recently been thinkig about if it is possible to change scripts and assets in Bioforge after I found the partly cryptic script files and so on.
Would love to see a mod or a modding tool.

I plan to, but just having so much fun challenging myself to complete the project before unleashing it. Thanks for the interest πŸ™‚

Hello Tim ! How is the work on your Bioforge project going? I really want to play, I hope it won’t be long to wait!)

Hi Igor, Thanks for your comment. Since my update last month I have added player movement and collisions. Walking Lex around the living environment (brought to life by the scripts) is a major milestone, but there is still much more to do! In the meantime, you might want to play a few more times using DOSBox πŸ˜‹

You still working on Bioforge remake?
I have loved that game for sooo long it has always had huge potential!

Hi Jason, Yes I’m still slowly chipping away on the remake. I’ll continue to provide updates here. Glad to hear from another BioForge fan! πŸ‘

Thanks Paolo! Every supportive message motivates me to put in a little extra time… there goes my Saturday! πŸ˜€

I was just google-ing “bioforge remake” and this came up after the videos of bioforge.
This game made me feel uneasy as a kid, probably the whole story, atmosphere, alien environment, everything was harder to distinguish due to low resolution, minimalist audio background loops, voice acting (rare unless it was a FMV kind of game)… but it was an impressive game for it’s time. A remake would do this game justice πŸ™‚

I know how difficult it is to get inspired and motivated to work on a such a thing, especially on your free time, so… no pressure, hope you get enough support to keep you going πŸ™‚

Thanks for the message Tom! Every comment / email / tweet / YouTube subscription typically buys a weekend of motivation πŸ™‚

Over the last few months (which translates to a handful of days) I’ve finished the script transpiler πŸ₯³. Scripts are transpiled to C# and then compiled using Roslyn on launch. My hope is that this will make the BioForge remake fun for modding (it was also fun learning about parser combinators πŸ˜‰) … simply add/change scripts in C#!

I’m now working out a few quirks of the scripts, like what appear to be process and/or function local variables, but … also globally defined/accessible! … weird πŸ€” … I also need to handle dynamic jumps (for in-game monitors) which don’t translate to C#; but now the transpiler is complete, I can easily emit these as switch/goto blocks.

Ultimately the goal of my remake is a drop-in replacement for BIOFORGE.EXE allowing the game to be run on any platform using the original files.

Wow… That sounds very ambitious, and by the sound of it, you have built your own engine around the core game files to run the whole game and added extra effort to fix what was probably left behind with the release of the original game… You are “one man army” πŸ™‚

Also, looking forward to your next video πŸ™‚

Leave a Reply