[HN Gopher] Dethrace: Reverse engineering the 1997 game Carmageddon ___________________________________________________________________ Dethrace: Reverse engineering the 1997 game Carmageddon Author : mariuz Score : 125 points Date : 2023-04-26 08:56 UTC (3 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | AndrewKemendo wrote: | This was one of the first games that really opened my eyes to how | computers worked in High School. | | IIRC it compiled a collection of ancient text files, and so if | you wanted to mod the game it was as simple as finding the right | args in the right .txt and then modifying the flag or value. Like | I recall the demo had "no blood" but all it did was replace the | HEX for "red" with HEX for "green." Switching that turned on | blood, which of course was a BIG improvement for 1997. | | Anyway, this is super cool and I really wish it was simpler to | mess with games like this now. Incidentally Noita is one of the | few games that you can still kinda do this with, though you need | to know lua :/ | kentrf wrote: | I remember changing the weight of some of the cars in the game, | making Stella a 20 ton beast. | | It was not fun when you played against the modded cars. I got | totally crushed when I forgot to revert the changes | sitzkrieg wrote: | tons of games use lua for gameplay scripting indeed, if there | was one language to learn for modding i reckon that is the one. | | kenshi also has a txt file based modding system and barebones | tools too | canadianfella wrote: | Civilization, OpenRA, Wesnoth. Three of my favourite games, | all use Lua. | senectus1 wrote: | had so much fun getting "Artistic Impressions" in that game | beebeepka wrote: | Had tons of fun playing with 7??? other people on LAN. Non stop | action. The second installment, and everything after that, | didn't have that effect on me. | | Can't say I liked the "campaign". People do dumb, unexpected | shit. That's where the fun is for me. Maybe future bots would | be better | tialaramex wrote: | We had a group from, I'd guess, 1997 to summer 1998, who | played Carmageddon on a LAN in a student house more or less | whenever possible. We whittled it down to a single mode of | the game that we hadn't found a game breaking exploit in, and | we played so tight to the bounds of what was possible that if | you screwed up you were invariably dead - e.g. you take the | correct short cut, you car is repairable, you win, you go a | little early, car is destroyed, you lose, you go a little | late, your car is less damaged but you've lost far too much | time to compete with people who went earlier. We'd play in | teams, one driver, one co-pilot giving directions, like rally | driving. | | I remember playing Carmageddon for a couple of hours after | handing in my final undergraduate project, I hadn't slept for | at least 24 hours, but the adrenaline meant I couldn't sleep | after I finished either so we played Carmageddon. After a few | matches I fell asleep on the stairs and woke up the next day, | but being so young I was actually just fine. | MrGilbert wrote: | I don't think we have to wait that long. The bots of ,,Halo: | Infinite" received a lot of praise, and they are | "handcrafted". See this recent video by Tommy Thompson from | AI & Games: https://youtu.be/4bOsJSRk0i8 | jonas21 wrote: | This is cool, but I'm confused by the licensing. The LICENSE file | says GPL, but then there's also a legal section in the README | that says it's public domain but also non-commercial use only: | | > _Dethrace is released to the Public Domain. The documentation | and function provided by Dethrace may only be utilized with | assets provided by ownership of Carmageddon._ | | > _The source code in this repository is for non-commerical use | only. If you use the source code you may not charge others for | access to it or any derivative work thereof._ | | If you release something to the public domain, you can't place | restrictions on its use, so which is it? | badsectoracula wrote: | According to a comment in the issues the license is GPL3 and | that part of the readme was copy/pasted from another project | that they forgot to remove. | | But then that comment was made in 2021 :-P | jeff-1amstudios wrote: | Dethrace author here - yep, we really need to tidy that up. | The problem is that it's less fun than reversing code :) | dale_glass wrote: | Nice, but bad licensing. Don't invent your own, just slap | something common on it, please. There's plenty to choose from. | | This: | | > Dethrace is released to the Public Domain. | | And this: | | > The source code in this repository is for non-commerical use | only. If you use the source code you may not charge others for | access to it or any derivative work thereof. | | Don't align with each other. If it's public domain, then | commercial use is perfectly fine. | anthk wrote: | This. It happened with Dungeon/Zork. Tons of people it's | ilegally slapping it a bad public domain/or even a stapled | GPLv2 license on custom forks where Dungeon it's non commercial | only until Lars Brinkoff and the rest of Zork creators from MIT | approve it. (they're close). | Beldin wrote: | Hear, hear. | | I saw those two things and was wondering if they really meant | to add additional terms after saying something is public | domain... not a lawyer, still: I don't think that makes (legal) | sense. | doublerabbit wrote: | Watching my older brother play Carmageddon and Dizzy were days I | wish I could just relive. I just don't have motivation for | today's games. | | Even the Windows 95 companion disc with Hover! was seriously fun. | janosdebugs wrote: | I was seriously contemplating creating a Hover remake, but I | feel that the game mechanics probably didn't age well. It was | fun for its time though. | devmor wrote: | This is so cool! Carmageddon was my very first video game. | seattle_spring wrote: | Electro-bastard death ray will forever be the root of some of | my fondest gaming memories | | https://youtu.be/y6SvyDfl8P0 | jeff-1amstudios wrote: | Internally they are called proximity rays :) | | https://github.com/dethrace- | labs/dethrace/blob/e56790388bc94... | mrsharpoblunto wrote: | There's also OpenC1, which is an almost complete open source | remake of Carmageddon. Jeff also has posted a ton of content | around the internal workings and file formats etc on his dev blog | - http://1amstudios.com/projects/openc1/. | systemtest wrote: | I always find it fascinating that games like Carmageddon are made | by a small team in a short period of time. | | Nowadays such an accomplishment seems impossible. | | Page 16 of the manual has a list of all developers: | | https://cdn.akamai.steamstatic.com/steam/apps/282010/manuals... | oblak wrote: | Impossible? Clearly you haven't been paying attention. Plenty | of modern games have been created by a team of 1, let alone 10 | guys. Not everything is AAA | ghusbands wrote: | Carmageddon (and 2) seemed to have a physics engine qualitatively | different to the modern norm, seemingly modelling the time of | impact and the impulse response to that, rather than correcting | everything after intersection has already happened. It also | seemed to have different static and sliding friction and modelled | air friction and wheel dynamics to the extent that a power-up | increasing acceleration and grip could make your car flip up like | a hot rod. | | It made a huge difference to the feel of the physics and made | things far less springy and slippery than box3d, havok and almost | every modern game that uses a dynamic physics engine. | | This did mean that you could sometimes do things that made the | physics take a noticeable amount of time and cause lag, but it | also made things feel far more real than any physics engine I've | seen since. | | Hopefully, someone will be able to reproduce that, now. | | Edit: I believe it even incidentally reproduced the intermediate | axis theorem [1] on cars spinning through the air, presumably as | an emergent phenomenon, which I've not seen any other physics | engine do. | | [1] https://en.wikipedia.org/wiki/Tennis_racket_theorem | JKCalhoun wrote: | From what I have heard about Patrick Buckland (the primary | author of Carmageddon) he was quite into "banger racing" and so | took his joy of the sport very seriously when coding what was I | believe originally supposed to be a banger racing sim. | jeff-1amstudios wrote: | Dethrace author here: I was lucky enough to talk to a couple of | the original engineers. They also thought looking back that it | was the vehicle physics engine that made the game so fun to | play. Once you'd got over the initial excitement of running | over pedestrians at least! | orbital-decay wrote: | This was my immediate thought when I saw this. Car collision | physics seems to be mostly in src/DETHRACE/common/car.c and | src/DETHRACE/common/crush.c. | BrokrnAlgorithm wrote: | Agree, Carmageddon 2's physics still feel modern to this day. I | can't think of any other game except Beam NG perhaps that | achieves the same level. But the impacts in Carma 2 seem to | suprass even that one. | butz wrote: | "Carmageddon: Reincarnation" had even more advanced physics | engine, although game ran a bit slow, so later iteration - | "Carmageddon: Max Damage" used less detailed physics engine, | suitable for consoles. | BrokrnAlgorithm wrote: | I believe Carma Reincarnation used a completely new system, | I believe they talked about that in the dev blog. While the | system may have been similarly powerful in theory, I | distinctly remember it also being less fun than the Carma | 2's system, somehow less reactive. Carma 2's approach | essentially allowed for the car to be crushed into any | polygonal form, best illustrated when you drove the car | into the underside edge of an angled bridge or similar. It | was rad and so much fun, considering and that was 1998 | which still blows my mind. | ghusbands wrote: | I remember trying (and funding) Reincarnation and finding | it hard to really explore the physics, as it lacked set- | pieces and seemed less fun when compared to Carmageddon 2. | It's possible that I played after the big physics downgrade | of maybe 2015 [1], or on a machine that couldn't handle it. | | I do wish there was a way to set up physics demonstrations, | in all the games, for comparison with other engines. | Certainly, the common boxes-made-of-jelly issue [2] is | something I'm sure you wouldn't see from Carmageddon, | though you'd probably see devastating performance issues | with that same test. | | Carmageddon 2 did notably lack (as far as I could tell) | simulations of aerofoils and other surface dynamics and | their effects on handling; cars seemed to be modelled as | near-blocks as far as drag was concerned. | | [1] https://steamcommunity.com/app/249380/discussions/0/343 | 78855... | | [2] | https://kripken.github.io/box2d.js/demo/webgl/box2d.html | msyoung2012 wrote: | Can't wait until we get a good writeup of MegaRace | https://en.wikipedia.org/wiki/MegaRace ___________________________________________________________________ (page generated 2023-04-29 23:01 UTC)