Home  |  FreeBASIC  |  About


Basic idea is blocks (made of simulated bonded atoms) are dropped from some height and smash against the ground and each other. No real physics. No timer code.

This is a small collection of programs I've made over a short period of time after posting some really old QBASIC code on the freebasic forums. You can check out the original forum topic here: https://www.freebasic.net/forum/viewtopic.php?t=3167

All source code linked here requires at FreeBASIC 0.16 or higher. (Although some programs may compile using fbc 0.15) But you will probably need 0.17 for anything packaged in 2007.

Atoms 2D  -  atoms-2007.06.20-all.zip 156 K

Updated: 2007.06.20 - The download includes the original program but with source modified to use fbc-0.17.

This was actually the last 2D version of this string of programs. It has all the features of earlier versions comes in a zip package, has a readme.txt, and organized source code. Also includes a pop-up dialog for modifying parameters during the simulation using my in game gui.

The links above include source code, and a win32 binary for the gui version.

Here's an earlier version from about 2007.13.12, atoms_source.zip 15 K  -  atomsgui_b.zip 64 K

Atoms 3D  -  atoms3_source.zip 10 K

After taking the 2D version as far as I could, I extended it to handle 3D using FreeBASIC and OpenGL.

This is a screenshot using the sample.ini script showing a blanket dropping over a block. There's a readme.txt with all the keys to press for moving the camera/look position. Sorry no mouse in this one. Also, since this is my first ever OpenGL program, the graphics probably look amateurish. I have to start somewhere I guess.

Atom Smash  -  atom_smash.bas 13k

This is the one that started it.

Ragdoll Smash ragdoll_smash.bas 15 k  -  ragdoll.bmp 4 k

A variant of the one that started it except that it can load start up information from a bitmap. It was called ragdoll smash only because the bitmap looks a little like a dummy. (just barely)

Atom Stick - atom_stick.bas 13 k

Another variant of the one that started it that adds a threshold for bonding atoms together.