Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Sadist – An old DOS game from 1998 (github.com/gadzombie)
59 points by nathell on May 20, 2023 | hide | past | favorite | 25 comments


I can relate to the author. First code i wrote was a complete mess also. Variable name in my natural language. I don't hide any of my old code also, it's a testament of improving over time.


Fun! Wasn't on the other submission, a list of retro Polish games. Maybe it doesn't qualify as retro though.


Submitter (but not original author of the game) here.

Sadist (and its sequels) was little-heard of among the Polish gamers of the late 90s and early 2000s, but it did manage to amass something of a cult following. IIRC there was a small but vibrant forum in its heyday, and the game's online fanbook (now read-only) has 700+ entries.

The author, Grzegorz 'GAD' Drozd, was a frequent poster to pl.comp.lang.pascal in its heyday. In addition to Sadist, he also produced many other DOS and Windows freeware games, most of them single-handedly. His site (gadz.pl) is well worth checking out.


Is this the right gameplay video? https://youtu.be/yZi7GF4NsNg


I was wondering what the game looked like. From that video it seems to be "lemmings with the weapons of worms", which actually looks like it would be fun to play, for a bit at least.


It is indeed!


I learned of its existence when someone installed it on all the PCs in my school's computer lab. For some reason it was common knowledge that it was written in TurboPascal, even though back then none of us knew what the hell was a Turbo Pascal.


The code itself is a mere curiosity, but it has two key takeaways.

First, writing code in national languages is mostly a shit idea. Here we can at least recognize and match some words, but what if it was Arabic or Chinese script? Even with source code, you just might've been better off with a disassembly.

Second, don't underestimate Pascal. For all its faults, the language is very readable, and its build and module systems are still more convenient than most of what we have today. I dearly miss the time when you could just download some code, hack on it, press Ctrl+F9 and see the result.


> First, writing code in national languages is mostly a shit idea

Is English not a national language?


That’s not the point. For all intents and purposes English is an international language, and I’ve always had a strong doubt that UNIX, for example, or C, could become as wide-spread if they were based on some other language.


We're not talking about UNIX, it's a personal project.

Saying it's a "shit idea" to choose a particular style for a personal project is a huge stretch, and quite rude to be honest.


it depends on who you are writing software for.

Not every project is open source (this wasn’t originally) and even some open source projects aren’t intended to be used by people outside of a specific region.

Furthermore, if someone is writing a hobby project, particularly to learn to code, (again like this project was) then they should be allowed to code in their own language.


> writing code in national languages is mostly a shit idea

Huh? Plenty of people out there who don't speak english, should they just be excluded?


Having tried to teach a few acquaintances some programming tidbits, I can tell you that they're already excluded. The local programming textbooks are made of cringe, the vocabulary is confusing and the documentation is scarce and out of date and often poorly translated.


[flagged]


How are you being excluded? You can write code in any language you want, and you're not entitled to read any particular personal project written by someone else.


I am excluded because I cannot understand the Github. The entire point of the comment chain was accessibility, and English being the preferred language for codebases from a sheer accessibility standpoint.

Of course I an not “entitled” to read any project, I never made that argument. However, posting a Polish game in Polish code on an English discussion board seems rather perplexing. The majority of readers will not be able to even browse the code, let alone do anything like contribute. It turns the entire discussion away from the code or game, and again, to one of accessibility.


I get your point, but it is not just for Polish speakers. I am not Polish speaker and can understand it because it is more related to my native language than English.


Imagine if we had to write `整数 i = 0`.


> Second, don't underestimate Pascal.

One of the problems with Pascal is that practically nobody used it. They used Pascal-ish languages like "Borland Pascal"™ and "Delphi"™ and other proprietary systems that flat-out don't work on modern operating systems without a lot of annoyance and expense such that it's easier to rewrite the code.

Pascal was a teaching language from the 1960s which was good enough to steal ideas from but not good enough to actually copy.


It was the norm for programming languages to have different dialects. Some languages still do (JavaScript, for example, can have differing support depending on your target VM). Java is another recent(ish) example. I guess those two languages will never succeed either /s

The idea of standardising languages came about because every commercial compiler (remember that the idea of languages being open source is a relatively recent one) implemented their own features. Sometimes it would be even worse than that and the same commercial compiler would have different features for different target platforms (be it CPU architecture or operating system).

It’s also worth noting that a lot of popular modern languages still aren’t standardised and instead we have what’s called “reference implementations”. Go, Python, PHP, C# etc. The standard for those languages is driven by the governing body of their respective de facto implementation.

As an aside, we live in a golden age for programming. It’s never been easier nor cheaper to picking a language and start coding in it. But back when I first started out you had to buy compilers and they weren’t usually cheap.

Also it feels a little weird that you lump Borland Pascal and Delphi as examples Of different dialects. On the one hand they could be argued as different languages (like C vs C++). But on the other hand they were both Borland products so valid Borland Pascal was still valid Delphi (I know this from experience too).


What dialects of Java are there? Not versions, dialects.

(There was a court case to prevent Java from fragmenting, but I guess people around here are too young to remember.)

Also, Go and PHP don't have dialects, either. Not having an ISO standard is irrelevant as long as the actual language is unified.


> What dialects of Java are there? Not versions, dialects.

Maybe things have improved since I last did a lot of Java development but there were a few different JVMs out there and compatibility between JDKs /JREs wasn’t 100%.

> (There was a court case to prevent Java from fragmenting, but I guess people around here are too young to remember.)

I don’t know if this is a dig at me but I remember that era well. At the time I was writing Middleware for Oracle (a low point in my career it has to be said) and I had no end of troubles with differences between Sun and Microsoft JVMs.

But it’s worth mentioning Suns court case was about more than just fragmentation. Microsoft were ostensibly trying a hostile takeover of the ecosystem. There has always been a few different implications because Java was historically proprietary software. Which comes right back to my earlier point.

> Also, Go and PHP don't have dialects, either.

I didn’t say they did. I said they have reference implementations. Though it is worth noting that they arguably do have dialects. There’s an embedded language based on a subset of Go, and there are few PHP implementations not managed by Zend, such as Facebook’s Hiphop (I think it’s called).

> Not having an ISO standard is irrelevant as long as the actual language is unified.

That’s just less precise way of saying “reference implementation” ;)


The "teaching language" adage is misleading. Pascal wasn't made to merely teach programming before moving on to "proper" languages, as this would imply. Instead, it was made to teach proper structured programming, a novel idea at the time.

And it was very practical, too. Apple's Lisa OS and the original Photoshop were written in Pascal. Windows and Classic Mac OS had official SDKs for Pascal. Delphi was very widely used for enterprise apps. Sure, it lost the competition against C in the early 90s, but it was easily in the top three - against literal thousands of dead languages.

Even now, some projects using Pascal are amazing. Take fpPS4 for example: a Wine-like PlayStation 4 runtime, reimplemented in Free Pascal. That's one of the most hardcore things I've seen, period. It proves that Pascal is a competent systems programming language, too.

As for "Apple Pascal", "Turbo Pascal" and the like not being "the" Pascal, well, duh: the original Pascal spec is what, two dozen pages long? Of course it had to be improved over time. We don't use K&R C either.

I won't be rallying anyone to restoring the language to its former glory, but let me say this: it was there for us, and it was great while it lasted.


Apparently not an issue with all the C dialects until 1989.

And it still isn't good enough to compile the Linux kernel.


The sequel, Sadist 2 (2000), has also been open-sourced. It shares many things with its predecessor, but, according to the author, the code is much more interesting. :)

https://github.com/gadzombie/sadist2




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: