Hello!

My name is Christian Perfect and this is my website. Here I upload the various things I make.

If you want to email me, you can! My email address is christianperfect@gmail.com. Like most people, I am especially open to receiving friendly emails.

cp

mathjax-beta-webfonts

mathjax-beta-webfonts.html

all squared dc

all squared dc.mp3

domregexp

domregexp.py

gannet garnet
bluepoint blueprint
splint sprint
repaint reprint
faint feint flint
paint point print
saint stint
dread dryad
lead load
glad goad grad
tread triad
bead brad
read road
scad shad
bread broad
leaf loaf
ragbag ragtag
shag slag snag stag swag
medal metal
modal moral
menial mental
carnal carpal
caudal causal
denial dental
fecal feral fetal
regal renal
dismal distal
optical optimal
anneal annual
material maternal
spinal spiral
abysmal abyssal
cabal canal
viral vital
postnasal postnatal
tonal total
deal dial dual
banal basal
internal interval
veal vial
opal oral oval
verbal vernal
pedal penal petal
local loyal
nasal natal naval
ma'am madam
clam cram
scam seam sham slam swam
ream roam
team tram
lean loan
bean bran
mean moan
molluscan molluskan
clan cyan
scan span swan
paean pagan
tear tsar tzar
uprear uproar
sidebar sidecar
scar sear soar spar star
char czar
bear boar
rear roar
solar sonar
afar agar ajar
peat phat plat
teat that
bleat bloat
scat seat shat slat spat stat swat
chat coat
gnat goat
beat boat brat
feat fiat flat frat
splat sprat
meat moat
threat throat
claw craw
lobe lube
robe rube
bobby booby
ceca coca
scorch scotch
leach leech
larch latch
torch touch
lunch lurch
crunch crutch
lech loch
crotch crouch
mulch munch
reach retch
bleach blench
beach beech belch bench
welch wench
birch bitch
bunch butch
coach conch couch
broach brooch
breach breech
parch patch
peach perch
pinch pitch
poach pooch porch pouch
hunch hutch
winch witch
each etch
march match
stanch starc.....

1-1000

the
of
to
and
a
in
is
it
you
that
he
was
for
on
are
with
as
I
his
they
be
at
one
have
this
from
or
had
by
hot
word
but
what
some
we
can
out
other
were
all
there
when
up
use
your
how
said
an
each
she
which
do
their
time
if
will
way
about
many
then
them
write
would
like
so
these
her
long
make
thing
see
him
two
has
look
more
day
could
go
come
did
number
sound
no
most
people
my
over
know
water
than
call
first
who
may
down
side
been
now
find
any
new
work
part
take
get
place
made
live
where
after
back
little
only
round
man
year
came
show
every
good
me
give
our
under
name
very
through
just
form
sentence
great
think
say
help
low
line
differ
turn
cause
much
mean
before
move
right
boy
old
too
same
tell
does
set
three
want
air
well
also
play
small
end
put
home
read
hand
port
large
spell
add
even
land
here
must
big
high
such
follow
act
why
ask
men
change
went
light
kind
off
need
house
picture
try
us
again
animal
point
mother
world
near
build
self
earth
father
head
stand
own
page
should
country
found
answer
school
grow
study
still
learn
plant
cover
food
sun
four
between
state
keep
eye
never
last
let
thought
city
tree
cross
farm
hard
start
might
story
saw
far
sea
draw
left
late
run
don't
while
press
close
night
real
life
few
north
open
seem
together
next
white
children
begin
got
walk
example
ease
paper
group
always
music
those
both
mark
often
letter
until
mile
river
car
feet
care
second
book
carry
took
science
eat
room
friend
began
idea
fish
mountain
stop
once
base
hear
horse
cut
sure
watc.....

piwords

mean happy case million fruit left deep lie pattern took wave column self land voice ten get stream duck valley happy ever rub fall fish school neck law we planet told came long reply same my sail room above view who suit push forest past start blood step cry just ran came inch began work office condition ice get lone beat hill arrive sheet mass lay share front compare instant consonant rope tail just stead sense story provide bone large mile stand thank boy sense sky experience decide king seven stay short sense plant rain metal ease north mean car
oil weather is solve body month such throw general forward glad clock white call join interest verb prepare bear early was question pick believe stream system ice slow old parent total arm push green about until reach whose finish division first house came lay band paragraph fruit get show believe look deep toward glad gentle board best molecule practice oil broad tree condition kind was master form major age west minute son lie my at rule double govern let equal again receive men term smell receive human region four act cut act practice slow section famous busy speed fly think
the joy through boy always leg chief imagine history told protect capital push high roll ask rise test minute death let division week old fraction bright table which danger took iron walk experience probable they favor little form at chord shoulder we field end bell bit expect history list chord speak die still space poo neck travel populate she parent then.....

cmi-mode-test

cmi-mode-test.zip

faveletters

faveletters.py

Each letter's favourite words

a (6): astragalocalcaneal, calcaneoastragalar, taramasalata
b (4): beblubber, beerbibber, bubblebow, bubbybush, bumblebomb, flibbertigibbet, gibblegabble, nabobrynabobs
c (6): micrococcocci, pneumonoultramicroscopicsilicovolcanoconioses, pneumonoultramicroscopicsilicovolcanoconiosis
d (5): disdodecahedroid, dunderheadededness
e (7): electrotelethermometer, ethylenediaminetetraacetate
f (4): chiffchaff, cuffuffle, cuffuffled, giffgaff, niffnaff, riffraff, tufftaffeta
g (5): huggermuggering
h (4): chichihaerh, choledochorrhaphy, chromophotolithograph, dichlorodiphenyltrichloroethane, hochhuth, ichthyophthalmite, ichthyophthiriasis, ichthyophthirius, ophthalmophthisis, phenolsulphonephthalein, photochromolithograph, rhamphorhynchus, shihchiachuang, thymolsulphonephthalein
i (9): floccinaucinihilipilification
j (4): jajawijaja
k (4): akiskemikinik, kakkak, knickknack
l (6): llullaillaco
m (4): dynamometamorphism, hamamelidanthemum, immunocompromised, mammatocumulus, mammectomies, mammectomy, mammiform, mammilliform, mammogram, mammondom, mammonism, mammothermography, mammotomy, melammdim, mercuriammonium, mesembrianthemum, metagrammatism, metalammonium, methylenedioxymethamphetamine, mohammadanism, mohammedanism, monoammonium, muhammadanism, multimammate, mummiform, mummydom, tetramethylammonium, thalamomammillary, theomammomist, thermometamorphism
n (6): nonannouncement, noncondescendingness
o (9): pneumonoultramicroscopicsilicovolcanoconiosis
p (4.....

posty

posty.zip

Posty, by Christian Perfect

This is a game about sorting post. I think it's quite a calming activity, reading addresses on letters and separating them into piles.

The game generates a random network of villages. Some of them are big and have lots of people in them, while others are tiny hamlets.

People send letters to each other every now and then. It's your job to get the letters to their destinations.

Right-click and drag to move around the map. Use the mousewheel or PageUp/Down to zoom. Click on a dot (representing a postbox or sorting office) to see its letters.
Drag letters into piles in the top half of the screen based on where they're going. Right click a pile to move the whole thing at once.

Press space to send the letters on their way. Vans will carry a pile of letters as far as their last common stop.

When looking at the map, you can hold space to speed up time.

----------------------------------------

This is an idea I've had for a few years, and this code has sat about for a long time. I've just added some graphics and fiddled with the controls a bit this weekend.

I think what I want to do with it is to limit your actions to sorting offices that you have bought, and to limit the number of vans. Delivering letters brings money in, while buying more offices and vans costs money.

At the moment you can't directly control where vans go with a pile of letters - they just go as far as they can until two letters need to go in different directions. I think this.....

the word problem in group theory

the word problem in group theory.pdf

happify

happify.py

happify.gv

uno

's
am
be
be's
bly
bs
d's
dal
dder
dder's
dders
di
ds
el
el's
ella
ella's
gged
gging
gs
hs
il
ily
la
la's
lan
lan's
lana
le
le's
les
lita
lita's
ll
ll's
lt
ma
ma's
mbles
mbril
mbrils
me
me's
ms
n's
na
na's
nabatable
nabdicative
nabiding
nabidingly
nabidingness
nability
nabjuratory
nabortive
nabortively
nabortiveness
nabrasive
nabrasively
nabridgable
nabrogable
nabsolute
nabsorbable
nabsorbent
nabsorbing
nabsorptive
nabstemious
nabstemiously
nabstemiousness
nabstract
nabstracted
nabstractedly
nabstractedness
nabusive
nabusively
nabusiveness
nacademic
nacademical
nacademically
nacceding
naccelerative
naccent
naccented
nacceptance
nacceptances
nacceptant
naccepted
naccessory
naccidental
naccidentally
naccommodable
naccommodating
naccommodatingly
naccommodatingness
naccompanying
naccomplishment
naccord
naccordant
naccountable
naccredited
naccrued
nacculturated
naccumulation
naccumulative
naccumulatively
naccumulativeness
naccusing
nacidic
nacknowledgment
nacoustic
nacoustical
nacoustically
nacquaintance
nacquiescent
nacquiescently
nacquisitive
nacquisitively
nacquisitiveness
nact
nacting
nactinic
naction
nactionable
nactivated
nactive
nactivity
nactual
nactuality
nacute
nacutely
nadaptability
nadaptable
nadaptableness
nadaptabness
nadaptive
naddicted
naddress
nadept
nadeptly
nadeptness
nadherence
nadherent
nadhering
nadhesive
nadhesively
nadhesiveness
nadjacent
nadjacently
nadjoining
nadjournment
nadjudicated
nadjunctive
nadjunctively
nadjustable
nadjustably
nadjustment
nadministr.....

prefixchange

no u 4245
d r 3063
re un 2858
pr r 2800
b c 2323
b p 2251
c s 2168
b m 2135
c p 2117
b r 2078
b d 2077
c t 2072
m p 2068
d m 2031
b t 2028
p t 1926
b f 1899
s t 1893
b g 1872
c m 1847
i u 1844
p s 1823
b s 1794
de re 1792
l m 1738
d t 1718
l r 1707
in un 1691
c g 1686
m t 1671
m s 1663
c d 1649
b l 1616
h m 1613
d l 1601
f p 1589
b h 1586
c f 1560
r s 1545
m r 1542
d s 1532
d p 1507
l s 1476
g p 1468
l t 1463
r t 1460
h p 1449
g t 1440
p r 1424
l p 1423
h t 1413
c h 1403
h s 1400
c k 1398
f m 1397
f s 1386
d h 1385
h r 1370
c l 1368
h l 1360
co i 1346
d g 1344
b w 1326
c r 1318
g m 1301
in re 1297
f g 1255
f t 1251
t w 1242
g s 1215
d f 1182
a e 1177
c w 1171
e i 1142
p w 1135
s w 1134
g l 1120
g h 1091
m n 1091
h w 1087
b st 1085
f h 1084
m w 1072
g r 1060
f l 1057
i no 1055
st t 1038
f r 1029
k s 1023
p st 1015
c n 1011
d st 1007
d n 1006
n r 1005
f w 996
d tr 995
l n 988
r w 983
b n 981
a ma 979
d w 968
k m 964
n p 964
n s 963
b tr 959
n t 957
l w 952
a co 929
g w 923
c st 919
k t 907
b k 902
d pr 897
h n 897
k p 885
b ch 883
br r 861
d k 850
c ch 850
a ca 849
l st 848
k l 848
a o 841
ch m 839
h st 835
b j 835
r st 831
e u 829
de un 826
sh t 808
s st 807
b sh 806
br l 805
b sp 798
ch h 790
j m 789
c sc 789
h k 783
be un 780
ch p 780
p sp 779
ch t 777
m st 776
ch l 773
g st 771
j r 770
co re 762
d sh 758
a re 758
s sh 753
j l 748
g k 745
j t 742
ch d 738
gr r 737
p sh 734
be re 730
m sh 726
g j 724
ch s 722
b br 721
r tr 721
g n 720
ma pa 719
a ha 719
st w 719
d j 718
cr r .....

prefixchange.py

words

a
a'asia
a'body
a's
a'thing
aa
aa's
aaa
aaaa
aaaaaa
aaal
aaas
aaberg
aaberg's
aachen
aae
aaedon
aaedon's
aaee
aaee's
aaerially
aaerialness
aaerope
aaerope's
aaf
aag
aagr
aagr's
aah
aahed
aahing
aahs
aaii
aal
aal's
aalborg
aalesund
aalii
aalii's
aaliis
aaliyah
aaliyah's
aals
aalst
aalto
aam
aamsi
aandahl
aandahl's
aani
aani's
aao
aap
aapss
aaqbiye
aaqbiye's
aar
aar's
aara
aara's
aarau
aarc
aardvark
aardvark's
aardvarks
aardwolf
aardwolf's
aardwolves
aaren
aaren's
aargau
aargh
aarhus
aarika
aarika's
aarogramme
aaron
aaronic
aaronical
aaronite
aaronite's
aaronitic
aaronitic's
aaronsburg
aaronsburg's
aaronson
aaronson's
aarp
aarp's
aarrgh
aarrghh
aaru
aaru's
aas
aas's
aasvogel
aasvogel's
aasvogels
aatech
aatech's
aau
aaup
aauw
aavso
aavtech
aavtech's
aax
ab
ab's
aba
aba's
ababa
ababa's
ababdeh
ababdeh's
ababua
ababua's
abac
abac's
abaca
abaca's
abacas
abacate
abacaxi
abacay
abaci
abacinate
abacination
abacisci
abaciscus
abacist
aback
abacli
abaco
abaco's
abacot
abacs
abacterial
abactinal
abactinally
abaction
abactor
abactor's
abactors
abaculi
abaculus
abacus
abacus's
abacuses
abad
abad's
abada
abadan
abaddon
abadejo
abadengo
abadia
abadite
abadite's
abaff
abaft
abagael
abagael's
abagail
abagail's
abagtha
abagtha's
abailard
abailard's
abaisance
abaised
abaiser
abaisse
abaissed
abaka
abaka's
abakan
abakan's
abakas
abakumov
abakumov's
abalard
abalard's
abalation
abalienate
abalienated
abalienating
abalienation
abalone
abalone's
abalones
abama
abama's
abamp
abamp's
abampere
abampere'.....

kleinsteroids

kleinsteroids.monkey

Asteroids on a Klein bottle!
(or a Moebius strip or a torus)
Click here to play

.....

calculatorwords

b, b's, bb, bb's, bbb, bbl, bbl's, bbls, bbs, bbs's, bbses, be, be's, bebe, bebe's, bebel, bebless, bebog, beboss, bee, bee's, beeb, beeb's, beebe, beebe's, beebee, beebee's, beebees, beeish, beele, beelol, bees, beg, beg's, beggs, beggs's, begiggle, begloze, bego, begob, begobs, begoes, begs, behl, behl's, beige, beige's, beigel, beigel's, beigels, beiges, beisel, beisel's, bel, bel's, bele, bele's, belee, belees, belg, belibel, belie, belies, belili, belili's, belis, belis's, belize, belize's, bell, bell's, belle, belle's, belles, belli, bellies, bellis, bellis's, bello, bello's, bells, bels, bes, bes's, besee, besees, beseige, beseleel, beseleel's, beses, beshell, besiege, besieges, besigh, besighs, besoil, bess, besse, besse's, bessel, besses, bessi, bessi's, bessie, bessies, bez, bezel, bezel's, bezels, bezes, bezil, bezil's, bezils, bezzi, bezzle, bezzles, bezzo, bg, bge, bh, bhel, bhel's, bhels, bhil, bhil's, bhili, bhl, bi, bi's, bib, bib's, bibb, bibbie, bibbie's, bibbies, bibble, bibbs, bibi, bibi's, bibio, bibio's, bibl, bible, bible's, bibles, bibless, bibless's, biblheb, biblheb's, bibliog, bibliologies, biblos, bibos, bibs, bie, biebel, biebel's, biegel, biegel's, biel, big, bigg, bigg's, biggie, biggie's, biggies, biggish, biggles, biggles's, biggs, bigos, bigos's, bigoses, bigs, bil, bil's, bilbe, bilbe's, bilbi, bilbie, bilbies, bilbo, bilbo's, bilboes, bilbos, bile, bile's, biles, bilge, bilge's, bilges, bili, bili's, bilio, bill, bill's, bille, bille's, bil.....

calculatorwords.py

provinces

provinces.bmx

kruskal_spanning_tree

kruskal_spanning_tree.exe

kruskal_spanning_tree.bmx

draw_dotty_lines

draw_dotty_lines.bmx

asteroids

I set out to make a simple asteroids game. I added proper collisions and angular friction and stuff.
Click here to play.
.....

asteroids.monkey

circles

circles.monkey

Click here to play


.....

circles7.jpg

circles5.jpg

squarecircles

squarecircles.monkey

squarecircles4.jpg

squarecircles3.jpg

squarecircles1.jpg

squarecircles2.jpg

extern

extern.zip

warp xbox input

warp xbox input.exe

warp xbox input.bmx

mowtheplanet

mowtheplanet.exe

mowtheplanet.bmx

mowtheplanet.jpg

towers

towers.bmx

antiasteroids

antiasteroids.debug.exe

antiasteroids.debug

antiasteroids.bmx

newscorm

newscorm.zip

graph

graph.pdf

oldones

oldones.bmx

oldones1.jpg

horsey

horsey.exe

horsey.jpg

positionbased

positionbased.bmx

I found a nice paper a few days ago called Position Based Dynamics, by a chap called muller and some other dudes. It explains rather clearly how to implement a dynamics system that can handle pretty much whatever sort of rules you want to put in it.
This is great, because physics is something that everyone seems to have trouble with beyond simply moving particles about, without resorting to those wrappers for things like newton or ODE. I certainly do, so this is going to stick around for a good while in my how-to-do-stuff folder.
So, I had a go at writing this system in BMax, and here it is. I hope someone finds it useful!


Position - based dynamics (Muller et al 2006)

HOW IT WORKS
There are objects , which are collections of vertices and constraints on how those
vertices act.
So you create an object , add a bunch of vertices , then add some constraints
Constraints can set the distance between vertices , make sure something doesn't bend too
much, make sure an object retains its volume, whatever.
The update function then moves everything about for one timestep then finds an arrangement
for them to be in that satisfies the constraints

That's it!

You can make sure a vertex isn't moved by the solver by setting its inverse mass, w, to 0.
(For example when you've attached it to something)

Adding different kinds of constraints requires a little bit of maths and know - how ,
which you can find in the original paper:
http:/ / www.matthiasmueller.info / .....

httpserver

httpserver.zip

sketchgame

sketchgame.zip

blitz

blitz.js

museum

museum.bmx

museum.jpg

bigboots

Big Boots

Clanging, banging, shooting robots roam the countryside. It's a bit like war of the worlds!.....

bigboots.zip

bigboots.exe

surroundemup

In this game, you have to create a path along the network of points.

You do this by left-clicking on the points connected to your current
point (THE BIG RED ONE), to move to that point.

BUT: You can't visit a point twice, apart from the one you started at.
SO: If you get stuck, right-click to destroy your path and start again.

The aim of the game is to get back to the point you started at (THE GREEN ONE).
Doing this gets you points. You get more points for a longer path,
And lots more points for enclosing other points within your path......

surroundemup.exe

surroundemup.bmx

waterdrops

WATER DROPS!

Instructions
------------

There's water falling all over the shop. It must be raining or something. The rain gods are pleased when you keep the rainwater in jugs, especially thin ones, they're very fashionable rain gods.
You can move the buckets about by left clicking on the circle in the centre of a bucket and dragging it about, but it can only move within a certain range from where it started.
The buckets will disappear after a while so you need to move the water about with pipes. To create a pipe draw a line with the left mouse button. You can grab either end of a pipe and move it about if you need to. To pump water, grab the crank in the middle of the pipe with the left mouse button and swing it left and right as fast as you feel like. To remove a pipe that's getting in your way right click on it.

The game ends when the water level reaches the top of the screen. When that happens you'll be given your score......

waterdrops.zip

rowing

Rowing boats and jellyfish.
A really rather pleasing scene of rowing boats going out to fish for jellyfish......

rowing.exe

rowing.bb

origami

I was going to wait until I'd got this perfect and then wow everyone with it, but as usual my mind's wandered elsewhere.

So for the last couple of weeks I've been thinking about how to do a simulation of that thing where you fold a piece of paper up lots of times, then cut it into the shape of a little person, unfolding to give a whole chain of little people.

So here's a why-can't-I-concentrate-for-longer-than-5-minutes-on-something EXE.

You can cut the bit of paper by clicking first outside of it, in the black space. Click on another point outside the paper to make a clean cut along that line, or click inside the paper to make an incision. Make another incision to the same point to cut a chunk out of the paper.

You can fold the paper by doing a normal clean cut, but right clicking instead of left clicking on the second click. You can cut folded paper, and unfold a fold by right clicking on it.

The folding doesn't completely work all the time yet because I haven't put the layering in. I know how to fix it, but can't be bothered today.

Anyway, hope someone likes this, I'm quite chuffed with myself for working out all the geometry and algorithms, but a bit disappointed I couldn't find the motivation to finish it properly......

origami.bmx

origami.exe

origami1.jpg

schizoman

I've made a game.

It's called Schizophrenic Pacman.

It involves popping pills to keep your sanity in a maze of twisty passages that only vaguely makes sense.

Try it out! .....

schizoman.exe

schizoman.bb

clockworkshooter

The Clockwork Shooter!

A story, why not?
---
So someone finally got the Swiss angry, and they've conquered the known universe, prompting every Heroic Little Dude to climb in his spaceship and head for Lake Geneva. It's your job as the Swiss master watchmaker to build the clockwork machinery of destruction that will defend your beloved alpine nation from the villainous forces of liberty and imprecise timekeeping. Connect the cogs together, shoot the Heroic Little Dudes, eat some cheese with holes in it.
---


An explanation, because someone's bound to ask:
Link cogs together by clicking where you want them to go. The large pegs on the cogs are what push the other cogs round. Red lines on cogs show where they will shoot when turned. The bullets from ships either shoot out the large pegs, or damage the cogs. Cogs turn red the more they get damaged, but repair themselves when they are turned. There's no end to the game, I can never be bothered to put an end in my games......

ClockworkShooter.exe

ClockworkShooter.zip

ClockworkShooter.bmx

clockworkshooter1.jpg

worlds

Worlds!
The beginning of an idea that didn't become playable. A little world where stuff happens. The idea was to have one on the bottom of the screen and one upside down at the top, and they'd fight each other......

worlds.bb

colourpicker

colourpicker.zip

groupsmultiplayertest

groupsmultiplayertest.zip

groupsfullscreen

groupsfullscreen.zip

beards

beards.zip

beards1.jpg

eugottabeclidding

Another diversion, which I'm considering making into a surveying / charting mini game.
It's a virtual ruler and compass set, for making geometric constructions. I've also spent a frustrating evening making it calculate the area of arbitrary polygons, even with holes in, albeit very slowly. .....

eugottabeclidding.bmx

eugottabeclidding1.jpg

masala

masala.zip

charsets

charsets.bmx

regexp

regexp.bmx

unicycle

unicycle.bmx

unicycle.exe

sausages

sausages.bmx

sausages.exe

schroedingersghost

schroedingersghost.bmx

Schroedinger's Ghost

HOT DAMN this is a good idea!

It's like your common or garden Pacman, but the ghosts are wave-functions: Until you observe them, they have a probability of being everywhere. This probability is shown by the board lighting up with each ghost's colour where they are likely to be. If you observe a square, there is a probability that the ghost will appear there and start chasing you. Cripes!
If a ghost does start chasing you, try and get it out of your sight, where it will fade away until it becomes a wave-function again.

Cursor keys to move, objective is to pick up all the pills, yadda yadda yadda. There's no need for the super pill things, because you can just hide from the ghosts......

schroedingersghost.zip

trains

trains.bmx

trains2.jpg

trains1.jpg

wobblymen

wobblymen.bmx

wobblymen.exe

trader

For ages I've wanted to make a game where you control a trading empire, like in Anno 1602 or any number of other German games, but you don't have a god-like overview of the whole world. Instead, you are confined to your banca in whatever port you reside in, sending ships full of letters and goods to your agents in foreign places for them to use.

There were two main problems with this idea - the first being that you need to have a simple, intuitive way of writing letters that can be interpreted by the game, but don't take too long to write and look plausibly like a person wrote them. I had a brainwave about how to solve that, so I could proceed to the second problem - that I would have to create an incredibly complex world for there to be any interest in the game - repeatedly doing the same thing over and over is only fun when there are pretty graphics to go with it.

So, the letter writing system.
I've made a system that works like predictive text on your mobile, but with an added grammar constraint that interprets what you're writing as you write it, and suggests what you might want to next write while correcting any mistakes you make. You could feasibly write out whole sentences and have the game interpret them, but most of the time it's only necessary to type the first couple of letters of the word or phrase you want and then press tab or enter to automatically complete it. It's rather clever!

And now the game world. I've arranged the world as a set of towns, all inter-c.....

trader.zip

trader.exe

trader2.jpg

trader3.jpg

trader4.jpg

trader5.jpg

trader1.jpg

lettering

lettering.bmx

snakes

snakes.zip

snakes1.jpg

group theory

group theory.bmx

penpals

penpals.zip

penpals1.jpg

keycodes

keycodes.xls

duel

duel.exe

boids

boids.exe

boids.jpg

fiftween

fiftween.exe

bubbleworlds

bubbleworlds.exe

Following on from the effect I made for this thread, here's a pleasant little game.

It's a game that requires patience, because everything happens quite slowly. Use the arrow keys or a joystick to move your little circle about and navigate the worlds. The jewels will be attracted to you and can help push about the bubbles......

bubbleworlds3.jpg

bubbleworlds2.jpg

bubbleworlds.jpg

fascinating

fascinating.debug.exe

fencing

fencing.zip

fencing1.jpg

3dwongo

3dwongo.exe

crazysanta

crazysanta.exe

crazysanta4.jpg

crazysanta2.jpg

crazysanta3.jpg

crazysanta1.jpg

gilliamoid

gilliamoid.zip

knnniggets

knnniggets.exe

gilliamesque

A Gilliam-esque animation program. Press Space to play, I think......

gilliamesque.zip

swirlograph

A nice effect based on a carefully broken law of gravity......

swirlograph.exe

gibboon

Keys left-to-right to swing, up or down to adjust rope. Click to shoot tail / detach. .....

gibboon.exe

poption

GROUPS OF LITTLE THINGS
or
Poption

Instructions
------------

So these little things keep popping up all over the place. You have to sweep them up by holding down the left mouse button and making a sweeping motion, then pop the little things by tapping the left mouse button on one of them. Who knows why, but you get more points for popping lots of them together.
If you leave the little things to their own devices too long they might pop of their own accord, especially if they're in large groups. It's a mystery why, but you don't get any points when this happens.
Some of the little things are red and flashing. You can't pop them, but they might pop themselves and anything else near them, earning you no points.
Yet others are blue and flashing - they scoot about dragging the other things in their wake. You can't push them so your best bet is to try and pop a group when they're passing by it.
Finally, the last kind of thing sucks the other things towards it, popping them for no points when they get close. You'll just have to do your best until one of these things disappears after a short while.

After however long, your time is up and you're given your score, for whatever reason. After that you can start the game again, if you like.

Level Editor Instructions
-------------------------

You can click and drag points and triangles to move them about
Hold down shift and click on an edge to toggle whether it's drawn
Hold down control and click in three places to make a triangle.
Ho.....

poption.zip

poption1.jpg

platespinning

So I've had a revelation - there is a God, and He has a plan for us all....
His plan for this little dude is for him to spend eternity doing a cosmic plate-spinning routine. God works in mysterious ways.

Anyway, you control the dude's fate! Asteroid-ish controls for when he's flying: arrow keys provide turning and thrust. Fly into a plate to send it spinning, then press the up key to spin it more. When you want to get off, point the mouse in the direction you want to go (there's a line drawn from the centre of the plate to help you) and left-click. The dude will detach from the plate at the right point. If that isn't fast enough for you, right-click to detach right away.

The aim of the game is to get every plate spinning so it's pure red. Plates go dark when they're not spinning, and yellow when they're spinning too fast. If the plate the dude is on is spinning too fast, he'll be thrown off.

There's an editor. Press E in the game to get it......

platespinning.zip

platespinning1.jpg

hamstrograph

HAMSTROGRAPH!
The objective is to be holding all of the weights at once (those white boxes for now)
Press left/right keys to roll right/left. Press space to pick up any weights you roll over. Let go of space to drop what you're carrying (you will need to do this!)
Press up to go up a ramp when you roll up to it, and down to roll down a ramp similarly......

hamstrograph.debug.exe

hamstrograph.exe

hamstrograph.bmx

hamstrograph2.jpg

hamstrograph.jpg

yousosceles

Isosceles, Yousosceles.

A game where you have to arrange triangles into closed groups, in order to score points. A triangle is a shape with three sides, and here each of those three sides could have a wall on it, which appears as a thick white line. Each triangle also has a colour, which it will mix with adjacent triangles if there's no wall between them. A triangle is always attached to your cursor. Right-click to rotate it (don't worry if it rotates of its own accord, it aligns itself to the tile you're hovering over) and left-click to place it in an empty square. When a triangle or group of triangles is completely surrounded by walls those triangles are removed from play and points are awarded based on the number of triangles in the group, the number of turns taken since you last scored, and the group's colour - if the group is a pure primary colour or pure white, you get more points than for any other kind of group.

The game has no end, and I hope to add hexagons to it later. For now, enjoy the mindless grouping!

Yrs sncrly,
cp.....

yousosceles.zip

yousosceles1.jpg

trenchant

trenchant.exe

trenchant3.jpg

trenchant2.jpg

trenchant.jpg

swooshes

swooshes.bmx

trees

trees.zip

swoshnessosityink

swoshnessosityink.htm

tdict

TDict.zip

pictureballs

pictureballs.zip

santas

santas.zip

magical bork

Magical Bork.doc

littledoggy

littledoggy.mp4

magics

magics.bb

juggling

juggling.bb

la comédie de fixed erreurs

La Comédie de fixed erreurs.doc

la comédie d'erreurs

La Comédie d'Erreurs.doc

hilton

Dear Mrs Hilton,
I've just heard your good news. Congratulations on leaving teaching! Will there be a party to celebrate your retirement? Are you invited? Do you need an after-dinner speaker? I could talk for hours about your skill, determination, and natural talent as a golfer, but you can't afford my rate.

I hear you're going to start a business teaching old people to use the internet. I'm glad to hear you're finally picking on someone your own age! I'm sure you'll have at least three, or maybe four years of happiness reminding senile vegetables what 'an internet' is before you drop dead.

I suppose the tercentenary year is a good time to leave the school you practically built from the ground up. I hear the school you were at before Dame Allan's was founded is having an anniversary next year as well.

I wish you the best of luck in your endeavours, though I've recently become a Buddhist so I can't sincerely say your chances look good, what with kharma and everything.

Yours duplicitously (note that the word 'Yours' does not constitute a contract),
cp

ps. I kid, eh? :).....

hippo

Chez moi, il y a un hippopotame. Je l'appelle Henri. Il s'appelle Jean, mais Jean n'est pas un bon nom pour un hippopotame.
Un jour, Henri (ou Jean, si tu préfères, mais j'ai déja dit que je l'appelle Henri) est allé vers ma porte et, à cause de son immense poids, je n'ai fait rien à l'arrêter......

groupboard

groupboard.html

google8c11b615f116c7f1

GOOGLE8c11b615f116c7f1.html

gilliamesque-dist

gilliamesque-dist.zip

flies

flies.exe

flies.bb

cubeys

cubeys.bb

face

face.bb

dada3

dada3.pub

dada2

dada2.htm

dada2.pub

dada

dada.pub

cp clean

cp clean.ttf

cats

cats.scr

cats.bmx

catmullrom

catmullrom.bmx

bouncynumbers

bouncynumbers.zip

bouncynumbers.exe

boots

boots.zip

boats

boats.scr

boats.exe

boats.bb

blitzmax

BlitzMax.chl

blitzkeywords

Abs After And Before Case Const Data Default Delete Dim
Each Else ElseIf End End Function End Select End Type EndIf Exit False
Field First Float For Forever Function Global Gosub Goto If Include
Insert Int Last Local Mod New Next Not Null Or Pi Read Repeat Restore
Return Sar Select Sgn Shl Shr Step Str Then To True Type Until Wend
While Xor
Abs
Abstract
ACos
AllocChannel
And
AppArgs
AppDir
AppFile
AppTitle
Asc
ASin
Assert
ATan
ATan2
AutoImageFlags
AutoMidHandle
BankBuf
BankCapacity
BankSize
bglAdjustTexSize
bglCreateContext
bglDeleteContext
bglDisplayModes
bglDrawText
bglFixedFontBitmaps
bglSetMouseVisible
bglSetSwapInterval
bglSwapBuffers
bglTexFromPixmap
BigEndianStream
Bin
BindSocket
Byte
Case
CasedFileName
Catch
Ceil
ChangeDir
ChannelPlaying
Chr
ClearList
CloseDir
CloseFile
CloseGNetHost
CloseGNetObject
CloseGNetPeer
CloseSocket
CloseStream
Cls
CollideImage
CollideRect
compress
compress2
Confirm
ConnectSocket
Const
Continue
ConvertPixmap
CopyBank
CopyBytes
CopyPixmap
CopyStream
Cos
Cosh
CountGraphicsModes
CountList
CreateAudioSample
CreateBank
CreateBankStream
CreateDir
CreateFile
CreateGNetHost
CreateGNetMessage
CreateGNetObject
CreateImage
CreateList
CreatePixmap
CreateRamStream
CreateSocketStream
CreateStaticAudioSample
CreateStaticBank
CreateStaticPixmap
CreateTCPSocket
CreateTimer
CreateUDPSocket
CueSound
CurrentDate
CurrentDir
CurrentTime
D3D7Max2DDriver
DebugLog
DebugStop
Default
DefData
Delay
Delete
DeleteDir
DeleteFile
DottedIP
Double
DrawImage
DrawImageRect
Dra.....

battles - leyendecker

Battles - Leyendecker.mp3

arrows

arrows.bb

Other Images

xi.gif
mathjaxtinybadge.png
3dpeg.gif
mathjax-bad-span.jpg
sc-2.jpg
y-is-1.jpg
single-digit-y.jpg
mathjaxbracebug.gif
mathforever.jpg
letter-transfers.jpg
picaresque5.jpg
picaresque4.jpg
picaresque3.jpg
picaresque2.jpg
picaresque1.jpg
cat.jpg
voronoi.jpg
diary post appears in.gif
projectline2.jpg
projectline3.jpg
projectline4.jpg
projectline1.jpg
wobbly man.jpg
zapem.jpg
windermere.jpg
waterdropsscreen.jpg
Victorian_squalor.gif
watercolours1.jpg
vbkey.jpg
tuxmonkey.jpg
squirrel.jpg
tautology.jpg
title.jpg
swishguy.jpg
swishguy copy.jpg
smallsnowman.jpg
sockmonkey.jpg
smallgrinningcat.jpg
snowman.jpg
snowsatan.JPG
slidingvectors.gif
smallrobin.jpg
smallgrinningcatlines.jpg
smallchompcolours.jpg
sketches2.jpg
sketches.jpg
sentientbanana.jpg
scribbleabouttikibirds.jpg
mopbg.jpg
mopbg.gif
scribbleaboutfood.jpg
screen3.jpg
screen2.jpg
screen1.jpg
runaway.jpg
Mr spiffing copy.jpg
monk1.png
quandfermiersattaquent.gif
quandfermiersattaquent.jpg
Rolf.jpg
robin.jpg
ragdollbenderscreen.jpg
present.jpg
polar.jpg
oohfireworks.jpg
piratemanhead.jpg
pirateman.jpg
peacewithmybear.gif
panda.jpg
monster.jpg
onque.jpg
my hamster.jpg
old man.jpg
mobsterwallpaper.jpg
mobsterbot.jpg
lostballoon.jpg
hey.jpg
liger.jpg
lastmanonearth.gif
lamp.jpg
kkey.jpg
kittensleep copy.jpg
KIF_0524.JPG
IMAGE_075.jpg
IMAGE_076.jpg
igbrokenupload.jpg
jam.jpg
jambw.jpg
happypanda.jpg
hamtaro.jpg
hamster.jpg
groupsscreen.jpg
grinningcatwallpaper.jpg
grinningcatlines.jpg
greys_monument_to_baltic.jpg
goggles.jpg
fruitcabaret.gif
flyingsantas.jpg
flying monkey.jpg
crismus_bonus.jpg
flatmap.jpg
failuresongsmall.gif
eurrgh.jpg
elficon.jpg
enterkey.jpg
elficoncolours.jpg
eh.jpg
demon.jpg
eeep.jpg
DSCN0564.JPG
discoturtle.jpg
didntwetakethebus.gif
de10eb86.jpg
clowns.jpg
catandblobwallpaper.jpg
chompcolours.jpg
chompbirdbig.jpg
chat perché.gif
card.jpg
bongo.jpg
bobgoestoplob.gif
bloke.jpg
bloke vector .jpg
blob splodgebig.jpg
blob splodge icon.jpg
big hamtaro.jpg
bearwithme.gif
bear.jpg
awaaaaycolourssuper.jpg
awaaaay.jpg
apologeticmeatshake.gif
angryblob.jpg
amucha30.gif
alloftherubbish.jpg
acomplimentarydrink.gif