Hi there and welcome to the Foppygames homepage! My name is Robbert and I'm from the Netherlands.
Below you can download freeware games that I have written in the
Blitz series of programming languages: Blitz Basic, Blitz
3D, BlitzMax, and Monkey. If you have a question or remark about one of the games, please send
me an e-mail. The page consists of three parts:
Games, Blitz Basic examples
and Links.
Now working on
Grand Prix (started August 2012) is a racing game in the style of
Pole Position and other arcade and home computer racing games from the previous century. The term "pseudo-3d"
is often used to indicate that even though these games draw roads in a three dimensional perspective, the
techniques used are not those of a full 3D engine as seen in other games, which would technically allow
the player to turn around. Instead, 2D drawing techniques are used to mimic what could have
been the result of a 3D engine displaying the same road from the same angle all of the time.
This game is being programmed in Blitz Max. There's a
worklog
on the Blitz Basic website.
Games
To download a game, click on its name or on the download link. (A few games are
hosted on external websites.) The games will run on Windows systems including XP,
Windows 7, and Vista. For Mano Trooper, OS X versions are also available. The
downloads are zip files, and in most cases these contain separate files: you may
want to unpack them into a newly created directory. My newest games, made with Monkey,
can be played directly in the browser as Flash or HTML 5.
Deploy your army of warriors, archers and giant trolls in an attempt to beat the
enemy wizard and reach the other side of the battle field! Launch fire balls and
special wizard attacks to take out the enemy troops. As more of your units reach
the other side, your army will grow bigger. If your wizard makes it across, you win!
This game was programmed in Monkey and is
the sequel to my game from 2004 (described further down on the page). The texts
in Wizard Battle 2 are displayed in the very nice and freely available font
Rapscallion by Ryan Splint.
The development of this game is described in the
Wizard Battle 2
worklog on the Blitz Basic website.
Cars with guns. Prepare for a battle all the way to the finish line. After
the first lap, the guns are activated. Earn extra points by destroying your
opponents, but make sure you finish high enough to continue to the next race!
If you want to compete against others for a high score, I recommend the version
of Battletrack
on Kongregate. (You need to be logged in to your Kongregate account for the
scores to be submitted.)
This game was programmed in Monkey.
Other tools used: Graphics Gale and Paint.net
for graphics, SFXR and Audacity for sound effects, Fruity Loops for music.
For more information on how this game was programmed, have a look at my
Battletrack
worklog on the Blitz Basic website!
This movie of Battletrack was created using Fraps and Movie Maker. Here I play through all of the four tracks
the game has to offer. I almost win, except that my car is seriously damaged in the last race (starting 11:30).
Monkey Pixels is a new version of my 2002 game Pixelwars, playable in the browser.
It was made using the Monkey language. The source code can be downloaded below as an
example of a basic game written in Monkey. The game is similar to its predecessor
in that the player controls a green pixel on the run for red pixels. A new addition
are the blinking pixels; touch them to remove many red pixels, hopefully winning you
some time!
monkeypixels_tutorial.pdf (509 kB)
This tutorial describes the source code of Monkey Pixels (as downloaded above). It explains things about
Monkey as well as some general programming techniques. It is aimed at other users of Monkey, possibly
beginners. Please let me know if something in the text is not clear!
A fire has broken out at the local cat and dog shelter! Help two cats save
the day by positioning the stretcher just right and bouncing the doggies
into the ambulance. Use keys 1, 2 and 3 to move around. Doggy Bounce is
a remake of Bouncing Babies by Dave Baskin (1984), written for my girlfriend
as it was one of her favourite DOS games, alongside Paratrooper. Flash, HTML 5,
and
Android versions were created using Monkey.
In the Android version, you move the cats by touching the screen.
You are a space pilot hired to rescue pilots imprisoned on an alien
planet. After landing you can pickup a few weapons and a medikit from
your spaceship, then move through the door to confront the aliens!
The prisoner can be found in a prison to the North. Press F to tell him
to wait, press F again to make him follow you, back to your spaceship.
Use the keyboard (W,A,S,D) to move, and use the mouse to look around and
fire your weapons. Select your current weapon using the number keys, or
the mouse wheel. When hit you can receive up to three wounds, slowing you down. Using a
medikit (M) will heal all wounds you currently have.
After every mission, a more dangerous mission begins. If you rescued
the prisoner, extra ammo will be available at the start of the next
mission.
Game testers Merlin and Noah having a rest after several hours of non-stop testing
Mano Trooper (programmed in Blitz Max) is a remake of Greg Kuperberg's "Paratrooper" (1982).
Try to set a high score
by shooting down enemy helicopters, paratroopers, jets and bombs. Note that every shot will
cost you one point to start with, so don't waste too many bullets! The two dogs Noah and Merlin
are helping you out by attacking landed paratroopers, but after each attack they have to rest
for a while. Once four paratroopers have landed on either side of the gun, they will create
a human pyramid to take out your gun. Music in this game is by coda
(coda.s3m.us). Sound effects were made using
SFXR. Controls are: arrows left/right
to rotate the gun, and Z (or Y or Space) to fire. Press M to switch music on/off, and press F
on the title screen to toggle between windowed mode and full screen.
Some extra background information: "Paratrooper" is itself a clone of the game "Sabotage" (1981).
On MobyGames you can find an overview of
Paratrooper-style games.
More information on the game that started the trend can be found on this
Wikipedia page on
Sabotage.
The aim of this game is to steer your flying saucer around and shoot down evil saucers that
appear out of nowhere. The enemy will shoot back, but only when they've turned red first. Keep
an eye out for their guns: if they point at you, be prepared to dodge incoming bullets! Two
bonus objects may drop from enemy wrecks: a health bonus, and a temporary fast fire bonus.
Controls are arrow keys for steering and forward/backward, and space bar or Z for firing.
A good tactic is to accelerate a little bit to counter the movement caused by your own gun
when firing. Be sure to start moving around when the enemy takes aim. Most of the sound effects
in this game were created with DrPetter's very nice
SFXR program.
Flyout is a vertically scrolling shoot 'em up written for the
Shmup-Dev Autofire 2007 competition, ending up at a tied 9th place out of 16. You control a ship
flying up into an endless tunnel, trying
to collect as many points as possible by shooting down enemies. As you fly on, enemies will attack in
greater numbers. To keep up you should try to collect the ship upgrades provided by stranded Dutch
pilots! These guys appear around every kilometer unless the maximum upgrade level of 5 has already been
reached. The distance travelled can be seen in the bottom-left corner of the screen. The ship is
controlled using the arrow keys and space bar (alternative fire buttons are Z and Ctrl), music can be
toggled on/off using M. The tunes used in this game are free music loops from
www.deusx.com. Good luck, pilot!
This movie was created using Fraps and Movie Maker and is kindly being hosted by You Tube
Gridfire is a remake of Crossfire.
The original is by Jay Sullivan
and Chuck Benton and was published for the Commodore 64 by Sierra On-Line in 1983. A nice overview
of Crossfire and related games can be found in
issue #14 of Retrogaming Times
Monthly ("The Many Faces of... Targ/Crossfire"). I found their detailed description of
Crossfire very useful. The aim of the game is to destroy creatures that are invading a city,
using a ship that moves and fires in four directions. Collect the ammo bonus once your supply
of bullets is running low. Gridfire was my entry in the Retro Remakes competition of 2006, ending
up at the 20th place out of 76.
Asteroid Buddies is a remake of Asteroids. You control a small space ship and your goal is to destroy
the asteroids, which will fall apart in smaller asteroids when you shoot them. The smaller the asteroid,
the more points you get for hitting it. Scores can be multiplied (up to 4x) when you score hits without
misses inbetween. A special feature in this remake are the asteroid buddies. These blue creatures want
to sit on the biggest asteroids, and will be angry when you make that impossible. They cannot hurt you
directly, but they might accidentally push you into a rock! Controls: use the 4 arrow keys for steering
and thrust, and use the space bar or the right control key for shooting. If you like Asteroid
games you should also try Rocks, a great game by ooeyug.
This game is inspired by Space Invaders and Defender, two classic games. It's
mainly Space Invaders with additional features. You control a cannon to defend
earth against an invasion by aliens. The aliens come in different shapes; some of them
will try to capture the little humans at the bottom of the screen. It is possible to pick
up humans and transport
them to a safer place. There's also a power-up that makes the humans shoot at the invaders.
Power-ups are sometimes released by certain types of invaders when you shoot them. When all
humans are
destroyed the battle is taken into space; this is an idea borrowed from
Defender. Big thanks go out to Damien Sturdy
for allowing me to use his music on the title page, and to Joe
Lesko for testing the game and giving valuable feedback! See the Readme.txt
file and the title screen of the game for full credits and more instructions on how to play
the game.
In this game, you control a very large steel elephant. This machine was inspired by the walkers
in Star Wars, but also by the walkers in shoot 'em up games such as Armalyte on the Commodore 64.
I wrote this game for a competition on the Coders Workshop website (which does not exist anymore)
where the aim was to write a shoot
'em up, and I had to think about Armalyte and how funny it would be to control one of those walkers.
(Although the resemblance with the machines in Armalyte got lost a bit somewhere down the road.)
Controls are as follows: use the arrow keys to aim the gun, and use the space bar to fire it. Try to
shoot the enemy tanks and aircraft, and also the bullets and bombs they throw at you; after 4 hits by
these, the Steel Mammut will, unfortunately, explode.
This game is a simpler version of a 1983 game created by Commodore Electronics and
Hal Laboratories that I played on the
Commodore 64.
You have to steer through the gates using the left and right
arrow keys to steer, and the up and down arrow keys to go slower and faster. It pays
to go fast since after every 15 seconds, the difficulty level will be increased with
more trees appearing, making it harder not to end up against a tree and easier to miss
a gate. The game was written for a 100 line competition on the Coders Workshop website.
The original game has rabbits running across the screen, this game has skiing bears instead.
Inspired by classic 8 and 16 bit fighting games such as the mighty International
Karate, this is an attempt at achieving the same level of fun. There are four different
fighters, as this was a rule of the competition in which this was an entry. They share
many moves though. The music is by Nebula (Cromdesign). Sound effects in this game were made
using a microphone.
This game was my entry in a "one-switch" competition, which means that only one key could be used
to control the game. It's a 1 or 2 player strategy game where the goal is to get a wizard to
the other side of the screen. Different types of characters can be launched using
the space bar. They cost credits, which will be returned to your base when the character is defeated,
or when it reaches the other side, in which case you get double the points as a reward. Sound
effects are from the Maniacs of Noise CD "Video Game
Sound Effects", the wizard's voice actually consists of reversed voice samples from that CD.
There is a website about one-switch games, this is
OneSwitch.org.uk. The site is about how games
can be made accessible to disabled people. Among other things, it has a large collection of
freely downloadable one-switch games.
Minimaster is a chess game. It uses the "minimax" algorithm to decide which move
to play next. All moves of the game of chess have been programmed. The program sometimes
makes rather bad moves, this is probably a bug in my implementation of the algorithm that
I have not yet been able to locate. Still, if you are a beginning player this program
may well beat you if you're not careful!
If you want to play a stronger chess program, check out "Jester" (French and English versions)
on Ludochess. It's a Java program, you can play it in
the browser. If you want to write your own chess game, the minimax algorithm is perhaps worth a
look! Here's an explanation of minimax
on the AI Depot site.
Last but not least, chess enthusiasts who can also read Dutch may well want to check out
this nice blog maintained by my dad:
Alberts Schaakblog
If you think this game is rather stupid, that's OK since it was written
for a "stupidest game" competition! It contains irritating jokes some of which
may only be funny (if at all) to people programming games and using Blitz Basic.
Unlike the other games this one does not have a certain fixed speed programmed
into it so it may run too fast on super computers and/or on screens that have
a really high refresh rate. The goal is to survive for as long as possible in
a world of killer pixels.
Blitz Basic Examples
Blitz Basic is a programming language geared towards game programming. The downloads
below are not executable programs, but pieces of source code meant as demonstrations of
how Blitz can be used and perhaps for use in your own games. The code was written in Blitz
Basic 2D, but this version of the language
is not actively maintained by the developers of Blitz Basic anymore. However, the newer
Blitz 3D does include the full Blitz 2D command set. Other Blitz languages are Blitz Plus, which is
similar to Blitz 2D, Blitz Max, which supports object oriented programming, and Monkey, which has
the capability to create executables of various forms, including HTML 5 and Flash.
Demo versions of the languages can be downloaded from the
official Blitz Basic website.
This shows how a game world that is larger than one screen can be used. The arrow
keys are used to move a dot through this world, and the screen is always centered
around this dot: this results in a scrolling screen. The example does not show how to
create a scrolling "tiled" background. Instead, a number of stars are drawn to show
the scrolling effect. There's also a small radar: this is a scaled-down representation
of part of the world (also centered around the player). Pressing Escape will end
the program.
Many games use some kind of grid on which creatures move around. This grid can correspond
with a tiled background. This way the game world can contain walls (wall tiles) and open space
(non-wall tiles) and the creatures can only walk on non-wall tiles. If you also want to make
it impossible for these creatures to see each other through walls, you need to determine for
two creatures if there exists a line-of-sight between them: a straight line that connects the two creatures
while not travelling through a wall. This program implements this idea. It can be run as a demo:
move the mouse around to change the location of one of the two creatures and watch the line
between them change color to indicate whether there is a line-of-sight. More information can
be found in the source code.
This effect looks like the rippling of water when something falls into it. The effect is
achieved by copying a small part of the screen to a position a bit further on. A number
of these copying actions are performed at the same time on positions that together form
a circle, and the circle moves outwards (and the copying is in the direction of the movement).
The background image used in the demo is a screenshot of the Blitz Basic development environment.
Move the dot around with the mouse, click the left mouse button to create a sonic boom effect.
Pressing Escape will end the demo.
This program enables the user to pick up stones on a board and drag them to
another square; move the cursor over a stone using the mouse, press the left
mouse button, and move the mouse while keeping the button pressed. Then release
the mouse button and the stone will be placed in the square above which the
cursor is at that moment. It looks like checkers, but the program does not know anything about the rules
of checkers, so you can move stones anywhere, except that the square has to
be empty. (This code can also be used for other board games or for card games.)
Blitz Basic has a RotateImage command. It is typically not fast enough to be used in "real-time",
so a solution is to pre-rotate your image and put the rotated versions in an array. Then when you want
to display the image at a certain angle, you retrieve the corresponding rotated version from the array.
This program shows how to do that. The image can be rotated by moving the mouse left and right, and
pressing Escape will again end the demo.
Links
If you want to link to my page you are free to use this image.