Versão em Português

3D Hangman Game

A Hangman game I wrote in 1993 to be used in elementary computing courses for kids. Features 3D animation at 320x240 with texture maps, provocative messages and configurable dictionary, anti-aliased fonts and all that with decent speed for the 386s and 486s of the time. And it still runs just fine.

About the game

A design requisite was that the game was supposed to be used in a classroom full of restless children. Because of that, it is deliberately hard to quit the program: when you press F10, the game asks for a password that only the instructor was supposed to know. It's stored in the configuration file and the default is "VON NEUMANN".

The idea was that the game should have a fantastic/surreal visual, so I chose to do it in 3D -- that kind of thing attracted a lot of attention at the time. There was also another pragmatic reason for this choice: my drawing/artistic abilities are nil, so I couldn't create cartoonish cute characters as it was common educational material geared towards children.

The symbol with a sphere and several prisms spinning on the top of the window was the logo of the company that hosted the courses, ITECI. Again, my lack of artistic skill led me to opt for a technical solution. I tried to sell the idea that the logo was part of the game, but some of the execs didn't like the concept of the logo being mutilated as the user made mistakes.

At the time, it was already apparent that children were becoming more and more cynical, so the default message set tries to be rather provocative.

I never delivered any classes using this program nor followed the rest of ITECI's project for bringing computing to children. Quite a few times I saw the program being demonstrated in their stands at some trade shows, which I found quite hilarious.

In one of those coincidences of life that prove that Recife's IT community is such a small clique, one of the instructors that did use this program was Aldo Albuquerque, today one of the most senior veterans at Tempest.

Interesting Techniques

The rendering engine used highly optimized routines that Michael Abrash published in Dr. Dobbs Journal. They performed the linear transforms (rotations, translations, etc.) and drew the textured polygons using only integer arithmetic. The inner loops were written in tight assembly routines.

The font engine and other graphics effects like the background gradient, anti-aliasing, fades and all of the geometric modeling was done by yours truly. At the time I used Borland C++ 3.1 (although most of the program was written in plain C). All that was way before my switch to networking and security. At the time, my fascination was computer graphics.

The game used the then popular placas de vídeo VGA X mode, supporting 256 colors and, most importantly, the double buffering essential to the flicker-free animation.

The program also featured correct handling and display of the accented characters of the Brazilian Portuguese language. This is trivial today thanks to Unicode, but it was something rarely seen at the time. It was an absolute requirement for a program that was supposed to be educational.

The program uses a simple checksum scheme to prevent the first credits screen (the one with my name and the only one that's hardcoded) from being changed by patching the binary directly -- a practice quite popular among the pirates of the time.

License and Downloads

After 15 years, I suspect this program has no value for anyone besides historical nostalgia, so I see no problem putting it in the public domain.

The program messages and default dictionary are in Portuguese, but you can change them all by modifying the configuration file.

I lost the souce code years ago. When I finally found them in an old dusty backup diskette, it gave me nothing but read errors. If someday I manage to recover it, I'll post the code here.

Kiko > SoftwareAndUtilities > HangmanGame3D
Creative Commons License   The content of this site is made available under the terms of a Creative Commons License, except where otherwise noted.
  O conteúdo deste site está disponibilizado nos termos de uma Licença Creative Commons, exceto onde dito em contrário.