Hacker News new | past | comments | ask | show | jobs | submit login
Denthor's Graphics Tutorials: Why I am a Programmer (alfie.wtf)
89 points by alfiedotwtf on Jan 5, 2015 | hide | past | favorite | 59 comments



I'm noticing a good deal of BBS references lately in HN stories, and I can't help being amused by this...because, as it happens, the company I started in 1989 when I was fresh out of school wrote realtime interactive BBS software.

If you are so inclined, check out page 6 of this "ancient" scan of a newsletter (yes, advertising for online software used to be done by newsletter :) produced around 1993...my company, MagiComm, wrote an online search engine, very nice ANSII realtime interactive games like Sub Striker and Backgammon (with ELO ratings no less), and other pretty cool stuff.

http://pdf.textfiles.com/zines/MAJORNEWS/majornewsv4i1.pdf

Code was straight C, with BTREE tables (no SQL) on 386/486s and, in the beginning, a 640k memory limit.

You may not approve of my development choices but you sure can't say I was behind the times.

Anyway, it's super gratifying to read about kids being inspired by BBS software, knowing I created a tiny part of it.


Nice! Although BBS doors in C could have been risky cough.

> it's super gratifying to read about kids being inspired by BBS software

Inspired? Man... I remember one time I was online and the SysOp initiated chat mode. After a while he told me he wrote some of the doors for his BBS. At first I didn't believe him because he was one person and not a giant company with fancy computers, but he convinced me and I was completely blown away. Programmers were my heroes growing up.


No..it wasn't doors.

This was the MajorBBS, by a company called Galacticomm, which was the only BBS system that allowed realtime interactions and gave developers the ability to access shared memory that stored game state and player information.


Hang on... you worked on MajorBBS? Wow that's cool!

I was fond of PCBoard though because most of the local l33t boards used it and they had PPEs :)

Edit: sorry can't concentrate as I'm minding the kids and being distracted... you STARTED Galacticomm? That's awesome. I'm so happy my post has brought in the big guns to comment :)


No..I didn't start Galacticomm :)

That would be Tim Stryker, a true genius and a friend of mine, who sadly succumbed to deep mental illness in the 90's.

My company, Magicomm, built add-ons and did deep custom modifications of the GC codebase.


Oh I really really want TradeWars to come back somewhere.

Thanks for popping in here - the OP and you both made me nostalgic for the BBS my friend and I ran on an Atari 800XL back in the day, with two acoustic coupling modems. Felt just like Matthew Broderick.


Oh wow, I was thinking of writing a very similar post too. Denthor's tutorials were one of my first introductions to programming, and I too fondly remember typing them all into Turbo Pascal and trying to understand exactly what they did. I've always wondered what Denthor / Grant Smith was up to in the years after the tutorials, and if he ever thought about how many people he might have helped get interested in programming.

If anyone's curious you can actually find Denthor's tutorials here: http://textfiles.com/programming/astrainer.txt

I also searched around a bit and found this good thread that seems to indicate Denthor is doing well these days and lives in England with a family: http://www.pouet.net/topic.php?which=7530&page=1


Denthor, or Grant Smith, went on to build one of the world's first online casinos. He did this with his brother, Dean (I think), in the city of Durban, South Africa. They were tremendously successful and sold their business to a company called Microgaming, who are now the largest privately-owned gaming software company in the world.

Apparently Grant still works for Microgaming but does so for fun, as one of the conditions of the sale was a profit share in all future earnings. His brother Dean retired and is travelling the world.

So, sounds like Grant did OK :)


That's an incredible story! He's touched so many lives and I'm so glad he is happy and found his riches. If he ever was in Melbourne, I'd be the first to buy him a beer :)


Theses tutorials had also been a very important step in my life. I found Denthor's words in a collection of pirated softwares. This was different, this was knowledge given for free and the results were astonishing. It was my first encounter with shared knowledge.

I may have never dedicated my life to open source without denthor/asphixia.

It was the proof of code creativity and that great things could be done by sharing. This was a new way of creating art. A new way of defining cultural exchanges around art, with an open mind.

Infinite thanks.


So say we all.


When I was a kid, I spent a huge amount of time reading everything I could find in the msdos programming archives on x2ftp.oulu.fi: ftp://ftp.lanet.lv/pub/programming/mirror-x2ftp/

Denthor's tutorials were also included in the "PC Game Programmer's Encyclopedia" (also on that site) which collected many useful documents. I had been programming for a while, but Denthor's tutorials were among the first that allowed me to go beyond simple text adventures and graphics with the BGI (Borland Graphics Interface!).

All that stuff had a profound effect on me; not just the technical information, but the idea of communicating that information for free in a way that was comprehensible to novices.


PC Game Programmer's Encyclopedia! Now that was awesome resource :)

With that and Ralf Brown's Interrupt List, you were Superman.


Oh yeah, I loved that FTP site! It was one of the only internet addresses I had memorized by heart.


There were also a ton of stuff on xs4all.nl


Now I'm a bit sad that I don't have a comment system on my blog. It would be awesome to collect these stories!


You could write a post with a collection of these stories and a request for more :).


I found a work around - I added a link to this discussion at the end of the post. My work here is done :)


I started "programming" in the mid eighties during primary school. I made little games, and made the PC play music and that sort of nonsense. As I got older the games got more advanced, I even built a simple graphical OS so my parents didn't have to use DOS.

Strangely I never considered my hobby as a possible career path.

It wasn't until 1997 that I realised I could make a living out of being a developer. At the time I was working in my uncles PC store repairing computers and doing some basic web development stuff (for free) for his customers.

One day my uncle introduced me to a guy in his late sixties. He was a farmer that had taught himself to code and had written a piece of software called FarmBase. He wanted my help to update the application for Windows (until then it ran only in DOS). After talking at length he offered to sell me the software for some nominal fee essentially as long as I promised to "do it justice". At that time he was making good coin off the app, but couldn't keep up the maintenance (he was earning 5-10x what he offered to sell it to me for, so I'd make back the investment in 2-3 months). Sadly, I didn't have the money and let the offer pass.

The upside is that until that moment I'd never considered "writing code" as something that could be a real career. Not only was I inspired to write code for a living, I was inspired to (eventually) run a software company.


Yep :)

I've asked a lot of people throughout the years about how they got into programming. And more than just a handful of people said that they got into programming because of the demoscene, and more specifically, Denthor's graphics tutorials. And only because it was fun and exciting, and something they wanted to emulate. Some pursued it as a career, but a lot didn't (this was pre-Internet bubble so computers weren't something you could get a job with!).


This was the first demo I ever saw:

http://www.youtube.com/watch?v=2suZ1KkZ9HI

Which one of my brothers downloaded via BBS (amazingly, my small hometown had a BBS when few people even had PCs). I had no idea what it was at the time, but in retrospect it is pretty impressive - there were really no popular 3D games at that time that I can recall.

A lot of the Spore (EA/Maxis) team was composed of demosceners - I was later invited to work on it but never took up the offer (after reading some horror stories about EA hours).


Arjan Brussee, the main coder of VectorDemo, went on to develop Jazz Jackrabbit, made a few more obscure games, then founded Guerrilla Games of Killzone fame. He recently rejoined Cliffyb and they are probably building something awesome again. :)

Back then it was interesting to see many democoders try to make games on their own, and fail due to the large amount of (comparatively) boring work required, but Arjan was a pretty strong-willed individual.


While a lot of big democoders went on the start famous computer games companies, it's interesting to specular what happened to all the crackers of that same era? Sadly my guess is that they all joined the NSA.


Didn't you build a racing game around that time, too?


Yeah the ill-named Speed Haste, which unfortunately does not seem to work in the recent Internet Archive DOSBox thing:

https://archive.org/stream/msdos_Speed_Haste_1995/Speed_Hast...

For the record, the source code for the game is available on GitHub:

https://github.com/TheJare/SpeedHasteSrc

We were bit oddballs in the demoscene because we had been making games and professional software for years, and we were 5-10 years older than most sceners.


The demoscene had a lot of influence e.g. Max Payne = Future Crew!

  http://en.wikipedia.org/wiki/Demoscene#Influence


All I wanted to do was play shopkeeper. A kid of 8, I was a happy tester for the inventory control software my dad wrote in the 1990s. I bought items and sold them. I had brand-name goods in my inventory master, with MRPs and re-order levels. Virtual lemonade stand. I still find that idea fun.


Tinkering is where it starts. It's like a drug dealer telling you that the first one is free. You give it a shot, have some fun, and get hooked!


Neat article.

About 20 years ago I saw a demo called 'Ambiance' by Tran (aka Thomas Pytel). I became so taken with it (and the very humble readme file that accompanied it) that I wanted to try my hand at creating something similar. This sent me down a similar path of learning to program first from Denthor's files, and then to a simpler technology I became fascinated by: HTML.

20 years and a successful web-app programming career later I've done some x86 demos for fun, but still haven't recreated anything as magical as that demo was to me. I owe such a debt of inspiration to all the demo crews... maybe one of these days I'll do a WebVR version of Tran's work to say thanks. 360 degree Luminati?

I wonder if these folks know how valued they are to some of us?


Thanks for the comment :)

> I wonder if these folks know how valued they are to some of us?

That's partly why I wanted to write the article - as a thank you to all the people in the scene.

Shout outs to .-=+ The Humble Guys ~X~ Future Crew ~X~ Denthor +=-.


These "tuts" are amazingly nostalgic.

Between this and Fravia I probably learned more about how computers worked than any other course or article. I remember running through most of these to build up my own personal GFX library. Silly things like "draw random lines" versus "draw random lines REALLY FAST" kept me interested long beyond any reasonable attention span. Thanks @tdicola for the link to the texts!

I'm only sad that I've forgotten so much, and that it's getting harder and harder to make cool stuff like this - there are still ways to get a 1:1 array:pixel mapping and have at, but they're all more complicated than MOV AX, 13h; INT 10h; and $A000.


Another gem from those times was "CRACKING 101" and "Cracking On the IBMpc" both by Buckaroo Banzai.

> I'm only sad that I've forgotten so much, and that it's getting harder and harder to make cool stuff like this - there are still ways to get a 1:1 array:pixel mapping and have at, but they're all more complicated than MOV AX, 13h; INT 10h; and $A000.

That's another blog post. Give me time :)


And for those who can't hold on to their hats until that lovely write up:

"CRACKING 101 - part 1": http://www.textfiles.com/piracy/CRACKING/c101-90.000

"Cracking On the IBMpc - part 1": http://www.textfiles.com/piracy/CRACKING/copyprot.txt

The following parts are available at http://www.textfiles.com/piracy/CRACKING/


Besides the Asphyxia Trainers, back then there was also HelpPC [0], PCGPE [1], RBIL [2], and mammon_'s work in ASM Journal [3] available on BBSes and early interwebs.

[0] http://stanislavs.org/helppc/

[1] http://www.oocities.org/siliconvalley/2151/pcgpe.html

[2] http://www.ctyme.com/rbrown.htm

[3] http://mattst88.com/programming/AssemblyProgrammersJournal


How to hook a 13 year old on a life-long love of bare metal:

I actually learned how to code in C and x86 asm mostly from Denthor's tutorials discovered on some local Boston-area. It lead me to GCC (DJGPP), Linux and love for low-level kernel hacking. I went in a different direction career-wise, but what I learned at 13 from those tutorials taught me something fundamental about computing hardware. I made fire. I mean, I made plasma effects by talking directly to the hardware to put it in the mode I wanted, kicking off inline asm to do the twiddly stuff. How fun is that?


Although these days I'm living several layers above bare metal (Linux and Perl), I do miss the DOS days as once you ran your code there was nothing between you and the silicon.


Geez, completely forgot about FILE_ID.DIZ. When seeing it, it instantly brought back heaps of memories!


You don't know how much fun I had writing it. Each paragraph was an instant flashback.


I doubt you could call this programming but I copied my first program from a magazine called Nibble (Apple ][ mag) for a cheat editor (it was either for Wizardry or Ultima, I don't recall) when I was 11 or 12. So many pokes and peeks :-)

Ran a BBS in the 80's and hacked at the software a bit (anyone remember Forum-PC, I think it was written by a 14yo!) that was written in Pascal. That was probably my first taste of coding.


> I doubt you could call this programming but I copied my first program from a magazine

We all had to start somewhere. I bet the typos you made while transcribing from the magazine taught you something about getting your syntax right :)


I still re-read these every few years for fun. At the time, I had two Pascal compilers. Borland Turbo Pascal 2.0, and Microsft QuickPascal (not sure what version).

The code didn't work out of the box in either compiler, someone on a newsgroup showed me how to convert the asm calls over.

Later on I got an Andre Lamothe book and basically stalled out, trying to learn C programming and game programming at the same time. Fun stuff.


Andre's "Tricks of the Windows Game Programming Gurus"... now that brings back memories. I leant it to a friend who didn't know programming... now he's a programmer :)


I learned a lot from Denthor... I even emailed him back in the day and asked him about the first election after apartheid and if he voted (he was South African) and he responded and said that he did. Seemed like a great guy.

I also learned a lot from a book called: Flights of Fantasy (taught you how to build a flight simulator).


That is basically my origin story too... only I was in a different part of the world. I even read through that very same text file.

My story differs a bit in that I didn't have many friends and was making my own games in BASIC on my Amiga 500 before I found BBSs and started my journey there.


These tuts were how I got started too, only a bit later than BBS (I believe I got them from the hornet archive, which I got a LOT of tutorials from). I would never have gotten into coding if it hadn't been for all the awesome demoscene tutorials that got me hooked.


Wow, haven't thought of these in 20 years. At the time, I was thirteen or so and remember being stumped by the use of sin and cos (pronounced as you'd expect a kid to), magical functions that let you draw cubes.


I took all the trig as rote, but stumbled hard once I hit the matrix maths in TUT8.TXT


Since nobody else seems to have advertised it here, there's a demoscene event in San Jose this March!

http://nv.scene.org/2015/


It was always my dream to fly to Helsinki and enter a demo in Assembly:

  http://www.assembly.org
Australia's demoscene is still alive with Flashback (Sydney) and Syntax Party (Melbourne):

  http://auscene.org/


BBS demos also got me into programming, but I started with C even though everyone was using Pascal. I don't recall why. Anyway I never made any BBS demos haha.


I'm willing to bet that a majority of demo coders were using Pascal because they started learning with Denthor (which was Pascal) and didn't know any other language! Meta.


At my first job interning out of college, I named my box Denthor as a vote of thanks to the person who showed me the difference between average and mind blowing.


I got these tutorials on a CD that came with some kind of Book. I found them to be quite inspiring.

It's a pity that nobody can figure out what became of Denthor.


Scratch that... looks like somebody found him.


I think that given that a lot of people have put out the word to find him over the years and he hasn't cropped up yet, he definitely wants his privacy. Because of that, I specifically didn't put a call out to him... but by the sounds of things, he's happy living life. Good on him!


A bit off topic, I really like your website design. What did you design it with?


Ha thanks! I copied it off my Twitter profile, but it's forged with my bare hands in Vim :)


You brought a smile to my weary eyes.

I myself wanted to be a farmer. Everyone has to eat, you see, so I figured I could charge as much money as I wanted to. I'd be rich!


Thanks for the comment.

I had the post almost complete over the Christmas break but that C64 post today made me smile :)




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

Search: