Site hosted by Build your free website today!


WebSTAT - Free Web Statistics

AMOS Pro in it's lovely box.

Amos Section

I started programming in Amos a long time ago and spent a good part of my childhood tapping away creating stuff. But I'm sad to say that with the power that Blitz Basic 2D provides it's silly not to program in Blitz as its just as easy to use as AMOS was, With the added bonus of not having to optimise all the code you write. I take my hat off to all you AMOS coders who proved that it was possible to create masterpieces with it. Because I had real trouble getting the speed out of AMOS.

If you don't know where to get AMOS, then you had better pop along to (look in Tools/Dev/) where they have all of the versions available, including the 3D extension which I have yet to have a play with.



Many useful functions I wrote cropped up in extensions you can get for Amos, and so my versions were forced out of date. Although this annoyed me a bit it did make me feel good about writing some useful functions!

The extensions also provide fixed and more functional commands. If you have ever tried to get any decent sound effects going you will have noticed that the sound commands leave a-lot to be desired. Use extensions for more control over sounds.

Most programs I've written in Amos will need the following extensions installed.

The extensions I use are...


Now freeware, this one has lots of functions and procedures across many different categories. Graphics, disk access, palettes/colours can all be controlled with this one. The demo that shows what it can do is pretty amazing.

Turbo Plus

This one is also freeware and has fast functions for graphics and other stuff.
I use Version 2.15
Both are available for download from AMOS Factory.

AMOS Source Code ADF or Zip File

Click here to download an ADF disk file or here for a zip file containing Tic Tac Toe and my Tetris game Chock A Block.
This is the first thing of mine I've made available and its by no means spectacular. But they are some of the few things I've actually finished so here you go you might be able to learn something from them. They are commented but not too much.

Tic Tac Toe 
Simple game which everybody has played. Had to make this to prove to myself I could actually finish a project. It features one, two players, and the CPU can play against itself (See war games movie). The board is drawn using simple lines and shapes and can be scaled to different sizes. Keeps track of scores and uses mouse to play. Nothing special but helped me to think about AI in games. 

Chock A Block
Tetris clone. Pretty standard really. About four versions included. Final version plays best and is probably better programmed. Sound effects or music, hi-score table, title screen, pause facility, joystick/keyboard control, difficulty levels and a neat screen shake effect when you complete lines. Entertaining for a while but nothing new I'm afraid.

AMOS source code

--> Download Zip file <--

In this archive there is some useful little procedures such as my spatial sound effects, mini bars, progress bars and some cool collision detection routines for different shapes.

Some graphics/bob images including AJ Marsh my side scrolling platform hero. Level screenshot mockups and other misc bobs.

Definitely worth a look. 


A lot of my programming has been put off at the moment, purely because of required work which is needed to pay bills, buy food, live etc. But every now and again I get the energy to sit and work on a few routines, those routines being...

Particle Systems
The are mainly used in games today for special effects such as spectacular explosions,
effects like rain and sparks. Basically anything that can be made up of lots of individual objects. The visual side of the particles can be anything from a pixel to a line to complete animation sequence. And so particle systems are widely used and are present in most of  the games I see today. So far I have created Rain, Explosions, Sparks and  Fireworks.
I have also implemented collision detection of floors/walls. I think collision detection between each particle would be overkill and wouldn't really be necessary.

Water Splash
Another effect I recently attempted was the old splash in the water when an object jumps
in and out of a pool of water. I think this looks quite good and has been used in games since the SMS I suppose, maybe even before.
I was inspired to try this after playing the game Return of Shinobi on a Genesis emulator,
this was one of the best looking games I can remember from my childhood. Still looks
good today, but then it's still really hard today too! Screenshot

2D Spatial Positioning Sound Effects
This procedure was written a little while ago, with a little help from Jess. This program
plays a sound effect emanating from position SX, SY and the volume of the sound effect
heard is dependant of the distance of the sound from the microphone. It thought this would
be a very useful effect to implement as it allows a great deal of depth to be added to a game
such as Enemies getting louder as they get nearer, A waterfall quiet in the distance, a cop car, speeding by with it's sirens wailing. Loads of possibilities.

Reflection effect
Reflections can be achieved by making mirror areas, these flip and copy the image to create...a mirror image. Might be useful with water. It can copy the area with a mask and so some nice effects can be achieved.

On the subject of mirroring stuff, I am now working on a way to automatically flip and rotate sprites/bobs at loading time. I'm doing this because Amos is too slow to flip sprites in real time for fast games. My way will allow storing the sprite images in one direction and rotate them as necessary on loading, So it saves disk space.

Now here is a section on procedures that I have written. If you want to use any of these functions you can, but try to credit me in your program.
Easy requester - I wrote this procedure after needing and easy way to allow users to select from X amount of options with the mouse and buttons to press.

Future projects 

    • 'Local Objects' i.e. object that can be attached to objects, also animations etc.
    • File loader - Depending on the extension of the filename, load the data correctly.
      This would be useful in making loading files easier.
    • Collision detection. Although collision detection itself is easy, deciding what to do when this happens is a problem for me. Need to look into physics, weight etc. I want semi-realistic collision reaction.
    • Cheat codes - Things like FLY_ON and GOD_MODE etc. level skipping, weapons and item summoning etc. Use in conjunction with console?
    • Credits system.
    • Background Animations. Can be of any size really. Would need to think about using AMAL for icons. or . using bobs for background animations.
    • Instructions screen - shows moves, enemies and scoring, items and credits.
    • Console - In-game input. Useful for testing and having control over the program.
      I did get this working. It parses commands and values and runs the correct command. Commands are registered in console_handler and dealt with there. Console window disappears when not needed. No return values. If command is not registered or recognised then it will just be ignored.
    • Simulate light coronas. Simple enough concept. Fading out too please.
    • Log files. Have code document its progress and dump it to a file when something goes wrong. Could go into as much detail as needed.
    • Create a framework for using text set-up/configuration files. Take a leaf out of my console book and use that method. Use comment-able files.
    • I just read about about a texture manager that controls animating textures and swaps the textures in and out when needed. Could be useful.

The AMOS Ring

[ Join Now | Ring Hub | Random | << Prev | Next >> ]

Last Updated:16/04/2004