17 ms·
System Shock 1 source code released under GPL
- TheForumTroll 9y agoYet another reason I'm not backing on Kickstarter any more. Only good thing to say about Kickstarter these days is that at least it isn't fig.co
- pete23 9y agoI can’t believe Github’s renderer fails on ^M.
- deleted 9y ago[deleted]
- diamondo25 9y agoYea they could emulate the carriage return and only show a mangle of lines...
- mrpippy 9y agoI sent a feature request in 2016 to GitHub to support Mac line endings, it was "passed to the team for future improvements". Not holding my breath.
- ClassyJacket 9y agoThis doesn't bode well for my wish to list file sizes...
- shmerl 9y agoVery interesting. So native Linux version is possible? Thanks Nightdive!
- fwip 9y ago// We need a hack for inner bridge. Inner bridge? But I just met her! The best part is always the comments.
- maksimum 9y ago// When we pretend that we're dead (pretend we're dead)
- knodi123 9y ago// woo hoo, watch me pull odds out of my butt
- _asummers 9y ago// Hey Rocky, watch me pull this constant out of my butt!
- EvanAnderson 9y agoThe comments are awesome! I love that there's a typedef "Pelvis" (something to do w/ models, I'd assume). In lots of places in the code, then, you can have "Pelvis elvis;". Yay!
- davismain 9y ago// its okay to kill in the name of democracy // they're all talking bout, beatles songs // written a hundred years before they were born // yea they're all talking bout, the round and round // but whose got the real, anti-parent culture sound https://www.youtube.com/watch?v=QtPKO1DHo2w https://www.youtube.com/watch?v=QtPKO1DHo2w lots of punk rock references. Neat.
- ChoGGi 9y ago// Returns whether or not in the humble opinion of the // sound system, the sample should be politely obliterated out of existence // look around at all my playthings // eighteen percent a year, for nothing // when all the leaves have fallen and turned to dust // will we remain entrenched within our ways // indifference, the plague that moves throughout this land // not in any way the right way to fix this bug, except // that it is the fastest way. Doug says go. Ask TJS.
- damck 9y agoDunno if just mobile problem, but most code has ^M instead of linebreaks; hard to browse oneline source
- jsheard 9y agoIt's because the code was written on classic Mac OS, which used CR newlines rather than the LF or CRLF styles used today.
- shmerl 9y agoWell, they could just apply a minimal cleanup for end lines before posting.
- pvg 9y agoThen the people who want to compile it rather than complain about it would have to go through an extra hoop to fix it again. They published it the right way.
- Skunkleton 9y agoPlus, if they replaced the ^Ms, what would we have to complain about? This truly is the best way. People can complain, and people can compile.
- pvg 9y agoThat is an excellent point although I suspect your question is going to be answered in spades when people notice who the developer posting the code is.
- Skunkleton 9y agoI don't know anything about this developer?
- 9y ago
- sandov 9y agoHow difficukt would it be to port it to linux?
- duskwuff 9y agoNontrivial. There's a significant amount of Mac-specific code in the application, including some PowerPC assembly.
- steinuil 9y agoNice! I can only hope the same will be done for Thief 1 and 2 (and SS2) someday. The Thief games still have a very active community that regularly produces high quality fan missions, and one of the original engine developers has started releasing unofficial patches to make the games run on modern systems a few years ago. I'd love to read the games' full source code and to be able to play them on Linux without bothering with Wine
- jeffbax 9y agoSad that this never went anywhere: https://github.com/volca02/openDarkEngine/ https://github.com/volca02/openDarkEngine/ Amusingly, a lot of source was found in an old Dreamcast dev kit: https://www.rockpapershotgun.com/2010/12/14/shipping-receiving-dark-engine-source/ https://www.rockpapershotgun.com/2010/12/14/shipping-receivi... Would love to see Dark Engine games get the treatment Quake games got, or something like OpenMW
- PyroLagus 9y agoThere is a really good Thief clone called The Dark Mod, but unfortunately, it's not compatible with the original games. http://www.thedarkmod.com/main/ http://www.thedarkmod.com/main/
- steinuil 9y agoThe community hasn't really warmed up to The Dark Mod as I thought it would. I guess everyone's more comfortable with how the original games look and feel, and I can't say I don't understand it. Thief still plays great thanks to its minimal controls and UI (much unlike System Shock 1, which feels horribly outdated) and looks nice thanks to its amazing art direction (just look at some of the screenshots in here https://twitter.com/thiefbsp https://twitter.com/thiefbsp), so I don't think people would feel the need to move on to a clone unless it was that much better.
- sparq_beam 9y agoThief controls are still great, they feel "crisp". I think System Shock is fine too, I even like using a mouse pointer to aim and interact with the world. Ultima Underworld I find a bit harder to play.
- tibbon 9y agoI wish more older games would have their source released, even if not under the GPL. I worry that for many games the source is simply lost forever. At least put it out there for preservation in some way!
- deleted 9y ago[deleted]
- ChrisSD 9y agoA lot of old games have had their source code lost, unfortunately. Much source code of the day only existed on the hard drive of the developers.
- Thaxll 9y agoUsually you can't because of third party library ( physics ect ... ). Like many many games rely on Havok, you can't distribute that to the public.
- KozmoNau7 9y agoHow much work would it be to replace Havok with something like Bullet?
- Iv 9y agoAnd their artwork! Often the code source is released but is more or less useless and obsolete while the images and sounds are still copyrighted.
- khedoros1 9y agoThe difference there is that you can usually find a way to buy the game itself to get access to the game media. The source code here will be of limited use until it's heavily reworked to compile on modern systems. It's a lot of work, but not as much work as reverse-engineering the game and building an engine implementation from scratch, and this source seems like it has most of the Mac-specific stuff under a separate directory, which would make it easier than otherwise.
- seany 9y agoGlad to see GPL3
- hguhghuff 9y agoFor context this is the outcome of a failed Kickstarter. It’s disappointing that they didn’t stick to the goals of the Kickstarter which was a straight update of the original. https://www.google.com.au/amp/s/www.polygon.com/platform/amp/2018/2/16/17016744/system-shock-reboot-hiatus-nightdive-interview https://www.google.com.au/amp/s/www.polygon.com/platform/amp... https://www.kickstarter.com/projects/1598858095/system-shock/posts/2115044 https://www.kickstarter.com/projects/1598858095/system-shock... This is probably the next best thing to completing the Kickstarter since clearly they’ve run out of funds. I’m not angry that the money is gone but it is s classic software engineering error for scope to blow out and the budget to disappear as a result with inevitable project cancellation. So it’s my money, and the money of the other Kickstarter backers, that gives you this source. You’re welcome. To the credit of Nightdive, this is the most likely path through which system shock 1 will be cleaned up and updated, hopefully with usable controls as opposed to the flat out unusable controls of the original.
- Cau5tik 9y agoYou're sure that this is the source of the rebooted game and not a release of the original SS1 code?
- reificator 9y agoI don't understand your question. Because they've been unsuccessful in completing the reboot, releasing the sources is a way of apologizing. Since the instructions mention a PPC requirement to build on Mac, I'm assuming these are fairly old.
- stupidcar 9y ago> Because they've been unsuccessful in completing the reboot, releasing the sources is a way of apologizing. Where are you getting that this release is an apology for the failed Kickstarter? Can you point to source at Nightdive saying this, or are you just speculating?
- 9y ago
- elipsey 9y agoAwesome. I've been wanting to finish that, but I scratched my CDROM. True story. Also, I don't have Windows 95 or an optical drive anymore. Is this one of those deals where the art assets are removed?
- jsheard 9y agoYes, you have to bring your own copy of the assets. They are legally available on GOG: https://www.gog.com/game/system_shock_enhanced_edition https://www.gog.com/game/system_shock_enhanced_edition
- amatecha 9y agoIf you scratch a CD, as long as the scratch didn't scrape off the "label"/data side, you can just buff the surface of the disc with Brasso (brass polish) and a lens cloth. I'm not even joking -- you basically smooth away the scratches. I've done this to restore so many scratched discs. Just make sure it's the clear/thick side of the disc you're buffing, NOT the label (as the data layer is just underneath the label).
- khedoros1 9y agoWell, their build instructions are for PPC MacOS 9 (and the game has a bunch of PowerPC assembly code in it). One of their stated requirements is also "The original Mac System Shock data", so it's not clear to me if your CD-ROM would've helped or not.
- megaman22 9y agoIs there a particular reason this is only the Mac source code?
- MrRadar 9y agoIt's quite possible that's the only version of the original source code that still exists. Many game studios didn't use source control even through the 90s and once a game was considered "done" there wasn't much perceived value in keeping the source code or original assets around. Consequently, many games from that period only exist in release form. Edit: I stand corrected on Starcraft.
- duskwuff 9y ago> For example, Blizzard only has the source code to Starcraft because someone found a backup CD on eBay and returned it to them This is a myth. Blizzard was already well on their way to releasing StarCraft: Remastered when that CD was found -- it's very unlikely that the found CD contained anything unique. https://us.battle.net/forums/en/starcraft/topic/20757605637#post-5 https://us.battle.net/forums/en/starcraft/topic/20757605637#...
- arnioxux 9y agoI hope http://fabiensanglard.net http://fabiensanglard.net will do a code review for this!
- kelvin0 9y agoCodewarrior => worse IDE I've ever had to use. You literally want to break something/someone once you've used it for any extended period of time (PS2 Game console developement).
- hoistbypetard 9y agoReally? I never did PS2 development, but I liked it for Mac stuff in the '90s and Palm stuff a little bit after that. My recollection is that it was much nicer to use than Think C, and absolutely blew the doors off Visual C++ 1.5 and 4.0, which were the other IDEs I had to deal with at/around the time I first picked up CodeWarrior. The Apple Code Fragment Manager (PPC dynamic loader) made me want to break things sometimes, but for its day CodeWarrior was a breath of fresh air, as I recall.
- kelvin0 9y agoWe were shipping the games on 3 different consoles, shipping on the original XBOX with it's superb integration to Visual Studio was such a breath of fresh air, and allowed you to debug directly and step through your code on the console. Not so much for PS2 and Code Warrior, which was a pain to use and was integrated as an after thought to the PS2 SDK. So maybe using CW on Mac worked well (at the time), but targeting some other machine than the one running the compiler was painful at best with CW. Sorry to ruffle any CW fans out there, but until you've used it to do PS game dev, you won't know the atrocities our team went through.
- mrpippy 9y agoOoh more source code for classic Mac games! Most of the big PC games that have source releases (like the id engines) just came with DOS/Windows source, not the Mac ports.
- chimeracoder 9y agoI haven't played System Shock 1, but this sounds like great news - I'm excited to check it out. System Shock 2 is the precursor to the more recent Bioshock franchise (Bioshock, Bioshock 2, Bioshock Infinite). They're not part of the same universe, but they share some of the same lineage, and the themes of the game are similar. To be honest, I didn't know there was still interest in System Shock 1. Normally, Bioshock fans say to skip System Shock 1 and go right to System Shock 2, but maybe that's just because the themes of the first wouldn't appeal as much to Bioshock fans.
- jandrese 9y agoThe timelines are so different they could be in the same universe. Assume plasmids died out when those sea slugs were harvested to extinction or something.
- toufka 9y agoand then the new Prey from last year. It's name really confused its issue, but it's very much in the same theme, if not world.
- AimHere 9y agoNot so much the themes but the game interface. SS1's interface predates a lot of modern FPS idioms, so it feels very clunky and difficult to use compared to more modern games. Thematically, it fights right in with the Bioshock/Prey/Thief/Deus Ex lineage - all of them exploring the theme of megalomania in one way or another.
- opencl 9y agoThere's also a fan remake that's been in progress since before the kickstarter. https://github.com/JosiahJack/Citadel https://github.com/JosiahJack/Citadel
- bananarepdev 9y ago"This source release does not contain any game data". Can somebody explain what they mean by that?
- DominoTree 9y agoIt doesn't contain art assets or audio and that sort of thing.
- khedoros1 9y agoIt just has the game engine itself, without any of the images, sounds, maps, etc that make it System Shock. GOG has a System Shock: Enhanced Edition, which also includes the original version of the game. I have no idea if that version of the data would work with this version of the engine, though. The engine is for the PowerPC Classic Mac OS version of the game.
- Kristine1975 9y ago>I have no idea if that version of the data would work with this version of the engine, though. IIRC the Mac version doesn't use the original data files, but converted them to use the Mac's resource file format. And judging from a quick look at the source code it doesn't contain support for the original data files. So: no, you'll have to use the Mac version's data files.
- khedoros1 9y agoThanks. I suspected as much, but haven't had the time to actually look at the source code. Looks like another bump in the road in getting this thing running on e.g. Linux. It'll be interesting to look at reverse-engineered System Shock file format info, and see if anything but the data-loading functions would need to be changed, to use the more widely-available PC data. From other comments, the sections in PPC asm and the actual I/O APIs would have to be dealt with too.
- DominoTree 9y agoThis is probably my favorite game of all time and I really hope somebody does something cool with this!
- anonfunction 9y agoLove this comment: // yeah yeah, goddamn, gotta fix this.....someday....soon....i promise....really
- skandl 9y agoToo bad you can't read any of it with the garbled ^M rendering on GitHub.
- Kristine1975 9y agoUse this fork with changed line endings: https://github.com/ToxicFrog/shockmac https://github.com/ToxicFrog/shockmac
- Kristine1975 9y agohttps://github.com/ToxicFrog/shockmac/blob/master/ShockMac/Game%20Src/BlitLargeAlign.s https://github.com/ToxicFrog/shockmac/blob/master/ShockMac/G... inslwi r0,r10,16,8 insrwi r11,r10,16,8 rlwimi r0,r10,16,24,31 How I missed this!
- anc84 9y agoHow can they be "Copyright 2015-2018, Night Dive Studios, Incorporated."?
- deleted 9y ago[deleted]
- dfan 9y agoThis is a trip, seeing code I wrote 25 years ago. It's actually kind of scary how identifiable my style is; in a lot of ways I am still the same coder, although I tend to work at a much higher level of abstraction now. There was a certain craft to weaving all sorts of linked lists back and forth all the time and maintaining invariants that looking at my old code makes me a little nostalgic for, but I can't say I really miss it much.
- marvin 9y agoIt is so incredibly fascinating to know that people who wrote legendary, old-school software are still hanging around, in this community no less, and contributing to software discussions decades later. Awesome :) I was barely walking under my own power at the time you worked on this, by the way. Probably the same for many others who have fond memories of old games and get to meet the people behind them. (Side note: Did anyone on HN happen to work on Jedi Knight? Modding that game was my first under-the-hood exposure to computer software, from modding to hacking around the asset checksums to cheat or do other shennanigans in multiplayer on MSN Gaming Zone).
- BlindGod 9y agoI found this fascinating https://blog.acolyer.org/2018/03/16/when-coding-style-survives-compilation-de-anonymizing-programmers-from-executable-binaries/ https://blog.acolyer.org/2018/03/16/when-coding-style-surviv...
- stiGGG 9y agoThese are the type of comments I love hn for!
- angersock 9y agoWhat was the EDMS business? Also, any good stories from your origin days?
- dfan 9y agoEDMS = Electronic Document Management System? Like source control? I honestly don't remember. These source files all have rcsid tags so probably we were using CVS? In our previous project (Ultima Underworld) our computers weren't even networked and I would go around grabbing floppies with changes from coworkers and merging their code into the master by hand. Here are some of my Ultima Underworld stories: https://dfan.org/blog/2011/02/20/the-dangers-of-self-modifying-code/ https://dfan.org/blog/2011/02/20/the-dangers-of-self-modifyi... https://dfan.org/blog/2011/02/21/ultima-underworld-bugs/ https://dfan.org/blog/2011/02/21/ultima-underworld-bugs/ https://dfan.org/blog/2011/03/17/one-more-ultima-underworld-story/ https://dfan.org/blog/2011/03/17/one-more-ultima-underworld-...
- xedarius 9y agoI like is the fact the game is written in fixed point maths. It's easy to forget that when this game was written computers either a) didn't have an FPU or b) the FPU was so slow it was useless. I bet if I searched through the code long enough I'd find a sin/cos lookup table too :)
- DINKDINK 9y agoCodeWarrior, now there's something I haven't thought about in ages.
- BlindGod 9y agoLove SS1. Will never forget the elevator music after relief after being chased by some monsters.
- latte 9y agoWow! One question I have wanted to ask for a long time - why is the source code for old games often released under a free license, but artwork and other assets are not? What are the incentives of the publisher in this case and why are they different for the source code and for the asset?
- Tloewald 9y agoI have a copy of _System Shock_ for Mac somewhere. I played it on the PC but never finished it and picked up the Mac version later at a discount. I was very disappointed to discover it had a crashing bug mid-game for which I could find no workaround.
- wlesieutre 9y agoNow that the source is published you can go back and fix it! ;)
- Tloewald 9y agoWhich sounds like a lot of work. Oh, … and find an old mac to run it on … Oh, and a copy of the right version of CodeWarrior.
- amatecha 9y agoNightdive has posted an update[1] which talks about the source code and clearly says they are back to development. Most notably: "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." [1]: https://www.kickstarter.com/projects/1598858095/system-shock/posts/2135868 https://www.kickstarter.com/projects/1598858095/system-shock...