MusicMan

Work on MusicMan has been discontinued, as a friend of mine has a far more capable player in the form of Morrigan, and it is probably easier to port the features I would like to see than continue writing my own client from scratch.

MusicMan is a cross-platform music player and library organiser. It supports multiple music directories, each of which is recursively scanned to build your media library. Your library is synchronised with the actual files on disk each time you start MusicMan. It also supports mass ID3 retagging and dynamic searching (iTunes-style), where entering a search term reduces your current playlist to only the songs that match your search.

MusicMan is alpha software, and is under heavy development. Lots of things (e.g. playlists, Shoutcast) don’t work yet. However, please try it and submit any bugs you find or features you would like to see on my Mantis server. I’ve not yet put the source code anywhere that people can easily commit to, but if you feel like adding/fixing things in the meantime, send the source back to me and I’ll merge it in.

MusicMan requires Java 6, and runs on Windows, Mac and Linux. It is released under the terms of the GNU GPL v3. It uses the free MP3SPI, JLayer and JAudioTagger libraries.

Downloads

Screenshots

War of the Roses

War of the Roses is a 2D strategy/roleplaying game set in the world of my (otherwise pen-and-paper) Changeling game. It is written in Java 1.5, and currently uses PlanetCute tiles for its graphics. It is very early on in development – there's only one level, for example, and lots of bugs – but it's improving almost daily.

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Instructions

Downloads

You can download the game as an executable JAR file. Please check the Mantis server and suggest additions, or which things I should work on first!

Source code, released under the terms of the GPLv3 licence, is available on GitHub here.

Iridium 9601 Satellite Modem Simulator

This is a specialised version of CrapTerminal, created to make it easier to pretend to be an Iridium 9601 satellite modem. Buttons have been added for sending frequently-used strings, and inappropriate options have been removed.

It is important to note that this is not an automated program that behaves like a 9601 – it is simply a basic terminal app with some buttons added to send common 9601 message strings, and a button to send a file's worth of binary data as the contents of an incoming data packet.

This is a Java app, written for JRE version 6. It requires RxTx, a free serial comms library for Java on Windows, Linux, Mac & Solaris. RxTx is not packaged with this application – you can grab the latest binaries here. (The zip contains an INSTALL file which explains where to put everything on each platform. You must do this before running Iridium9601Sim.)

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Download

CrapTerminal

It's like HyperTerminal, but not shitty and annoying!

This is a Java app, written for JRE version 6. It requires RxTx, a free serial comms library for Java on Windows, Linux, Mac & Solaris. RxTx is not packaged with this application – you can grab the latest binaries here. (The zip contains an INSTALL file which explains where to put everything on each platform. You must do this before running CrapTerminal.)

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Changelog

  • 3 (1 Oct 2010): Backported a bunch of changes from Iridium9601Sim. Ported it to use RXTX not JavaComm.
  • 2 (26 Feb 2009): Fixed the printing-one-character-every-two bug, Added ability to send.
  • 1 (21 Aug 2008): Initial release.

Download

Gunboat

Gunboat is a slow-paced 2D shooter written in Java and JoGL. It is far from finished, but you can try out the current development version anyway. Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Downloads

Gunboat requires Java 1.6 and JoGL. Install Java as usual, and make sure the JoGL binaries (.dll files for Windows, .jnilib for Mac OS X, .so for Linux) are on the system path. (You can just put the libraries in the Gunboat directory if you like.)

Download Gunboat itself here, and unzip it anywhere you like. Run “java -jar dist/Gunboat.jar” to run the game. Gunboat.bat (Windows) or Gunboat.sh (Mac) will do this for you.

You can get the source code (and everything else) as a Netbeans project here on GitHub.

Online Version

I have done some work on an online browser-based version of Gunboat. (Requires Google Earth plugin.) However, it’s in its very early stages (you can’t shoot, there aren’t any enemies…). I’m not sure if I’ll continue with it – one on had, level design has suddenly become very easy! On the other hand, ick, Javascript. Source code for it is here on GitHub.

The rest of this page largely refers to the offline version, as it has many working gameplay components that the online version does not.

Gameplay

In Gunboat, you are a small ship tasked to defend your harbour against an attacking Navy. You can move freely around, and enemy ships will arrive in the harbour in waves. (Sometimes, allies will arrive to help you as well.) You must defeat all the enemies in each level to progress.

Your ship always appears at the bottom middle of your screen. Around it is a coloured ring, which represents your health. This will contract and change colour from green to red as you take damage. Attached to the right side of your ship is a British flag, representing your ship's alleigance. Allies may have other flags, and enemies will always have a different flag to yours. Every ship has both a flag and a health ring.

At the top of your screen is your HUD. On the left, your weapon loadout is displayed. The yellow reticle represents your currently-selected weapon, though you can have up to 5 in each slot. On the right, your speed, heading and radar are displayed. Speed and Heading are fairly self-explanatory. The radar has two modes that you can switch between. The default shows a map of the entire harbour, with other vessels appearing on it. Red are enemies, yellow allies, blue crates, and the green dot is you. The other radar mode, which you can toggle to at will, is a close-in radar. This only shows ships close to you, and thus gives higher detail. “Up” on this radar is in front of your ship, as opposed to the map view, where Up is always North.

Controls

The game is played with both keyboard and mouse. The controls are:

  • Move Mouse: Aim
  • Mouse Buttons: Fire Primary (Left) / Secondary (Right) Weapon
  • WSAD: Change speed / heading
  • Q: Switch primary weapons
  • E: Switch secondary weapons
  • R: Switch radar modes
  • C: Switch camera angles (Follow, Above, Bird's-Eye, Bridge)
  • H: Show/hide HUD (Might be useful on machines without 3D acceleration.)
  • N: Give yourself a Nuke (Cheat mode for testing only. Has no icon. Like a homing missile but faster, more agile, instakills, infinite ammo.)

Ship Types

  • Frigate (e.g. Type 23): This is the player's ship, although you will encounter this ship many times as both ally and enemy. It is fast and normally quite weak, and can carry a wide range of weapons. Yours has specially reinforced armour, so it has much more health than normal.
  • Marine Landing Craft: These tiny vessels are very fast, and sneak in close to their targets. Their machine-gun is weak, but left unchecked they can do considerable damage. They are easy to destroy.
  • MCMV (e.g. Sandown class): The Mine Countermeasure Vessel is frequently found accompanying larger fleets. It is weak and poorly-armed.
  • Destroyer (e.g. Daring class): These large vessels are tougher than frigates, and have multiple weapon mounting points. They usually have a combination of guns, torpedoes and anti-air weapons.
  • Aircraft Carrier (e.g. Invincible Class): Aircraft carriers are huge, heavily armoured and largely unarmed. Their strength lies in their ability to launch aircraft. A mixture of anti-air and anti-surface weapons is advised for taking out a carrier.
  • Landing Platform Dock (e.g. Albion class): Much like the carrier, the LPD's strength lies in the smaller vessels that it can launch – in this case, landing craft. It is also more heavily armed and armoured than a carrier.
  • Battleship (e.g. HMS Vanguard): Relics of a bygone age, these vast ships were designed to take on other battleships on the high seas. They are slow and unmanouverable, but have lots of armour and have lots of weapon mounting points. (These are boss-type enemies!)
  • Supply Ship: Supply ships are weak and unarmoured, and usually drop interesting pick-up items. Be warned, though, they usually come with a powerful escort!
  • Submarine: (e.g. Astute Class) Submarines lurk below the surface, attacking with torpedoes, anti-ship and anti-air missiles. Specific weapons are required to take out submarines, but they are lightly-armoured.
  • Helicopter (e.g. Lynx): The helicopter, a slow but manouverable aircraft, is generally used to drop depth charges.
  • VTOL Aircraft (e.g. Harrier): The VTOL (Vertical Take-Off and Landing) aircraft is fast and manouverable, and can launch anti-ship missiles, anti-air missiles and torpedoes. However, it has very limited ammunition.
  • Standard Aircraft (e.g. F35): These aircraft can only be launched from carriers. In addition to a limited supply of missiles, they also have a minigun. They are extremely fast, but not very maneuverabe.

Weapons

  • Vickers 4.5-inch Mark 8: The standard frigate deck gun, this weapon fires quickly and does a fair amount of damage.
  • Vickers .303 Machinegun: This tiny weapon does little damage and has a very limited range. It fires very quickly, but is extremely inaccurate. It can hit aerial targets as well as surface ones.
  • Twin QF 5.25-inch Mark 1: This is essentially the same as the 4.5-inch gun, except that there are two barrels per mounting point.
  • Twin BL 15-inch Mark 1: One of the highest-caliber naval guns ever put into service by the Royal Navy, this weapon fires slowly but over a long range, and the projectiles are extremely damaging. Not much survives a hit with two 15-inch rounds.
  • Naval Laser Prototype NDEW-1: This experimental direct-energy weapon fires rapidly, has a long range, and deals a lot of damage. However, over-use of this weapon will cause it to explode and damage your ship!
  • RGM-84 Harpoon Missile Launcher: This weapon, standard equipment for frigates, fires anti-ship missiles. They are slow, but turn in mid-flight to hit the nearest enemy ship. They deal extreme amounts of damage. This weapon has limited ammunition.
  • Tomahawk Missile Launcher: This weapon fires bigger and better missiles. They are faster, more manouverable, and cause more damage than their standard variant, but with even more limited ammunition.
  • Sea Wolf Missile Launcher: This is the anti-air equivalent of the standard anti-ship missile launcher. Its missiles move and home faster, to keep up with flying targets.
  • Naval Railgun EMG Mod 0: Though not particularly damaging and with an average fire rate, this weapon's strength is that it hits almost instantly, so there is no need to lead the target.
  • Standard Torpedoes: Torpedoes are slow and damaging, much like anti-ship missiles, except that they do not home on a target. Their strength is that they can hit submerged targets such as submarines as well as surface ships.
  • Sting Ray Homing Torpedoes: Homing torpedoes sacrifice some of their warhead space for their homing mechanism, and thus deal less damage.
  • Depth Charges: These weapons are dropped near your ship rather than fired, and they do not move. They only hit submerged targets – however, any submarine that gets lured onto the depth charge is instantly destroyed.
  • DS 30B 30mm Anti-Air Gun: This is the standard anti-air weapon. Much like the 4.5-inch gun, it fires quickly and deals moderate damage.
  • Flak Cannon: This weapon deals extreme damage to airborne enemies. However, its rate of fire is very low.
  • Phalanx CIWS: Not strictly a weapon, the Phalanx will not shoot at enemies. Rather, it is an automated turret that will shoot down any enemy missiles within a certain radius of your ship. It only lasts a limited time.
  • Shield Generator: An experimental device, the shield generator creates an electromagnetic force-field around your ship. It deflects all incoming projectiles, but it only lasts for a very limited time.

Other In-Game Items

  • Health Crate: Sometimes enemy ships will drop health crates when they're destroyed. Steer your ship over these crates (marked with a red H) to restore some of your health.
  • Weapon Crate: Enemy ships with interesting weapons may sometimes leave their weapon behind in a crate. (Supply ships drop random weapon crates.) Steer your ship over them to pick up the weapon, and add it as an option in either your primary or secondary slot.

Minehunter

Having spent far too many hours playing Minesweeper on Windows machines, I figured I’d write a game that bears some resemblance to actual mine-clearing.

Your vehicle is a remote-controlled minehunter, with various attachments and various ships to protect depending on the difficulty level you're playing on. Head to Help -> How to Play… for a three-minute tutorial that explains everything you need to know.

Screenshot

Minehunter Screenshot

Minehunter Screenshot (click to enlarge)

Downloads

Download version 0.4.0 (89KB JAR)

Get the source code from GitHub

Requirements

Minehunter requires the Java 6 runtime environment, which you probably have already. If not, you can get it from here. Once that’s installed, just double-click on the downloaded JAR file and it should run.

Bugs and Features

As far as I’m aware there aren’t any bugs in this game, but it never really got tidied up and given a nice interface so it’s not the greatest-looking thing in the world.

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Editor

More wxPython-learning. This time, a text editor!

Written in Python 2.5 and wxPython 2.8, though it might well support earlier versions. Icons are from the Tango project. Code licenced under GPL v3.

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Use at your own risk, may make the world explode or various lesser symptoms (such as italicising YOUR FACE).

You can grab the files from GitHub here.

New in version 0.1-20080523

New, Load, Save, Save As, About all work. Word wrap doesn't work, disabled for now. Bold button only makes things bold, doesn't remove boldness.

TODO: Find a way of getting the bold button state, so we can unbolden. Make the toolbar a separate wx.ToolBar so we can have font/size dropdowns next to it (or find a way of putting dropdowns in a toolbar). Figure out if we can save as RTF or something. Move PNGs inside the script?

RPG Dice Roller

This is fast becoming my traditional “learn a new language by coding this” script: a dice roller for tabletop RPGs. This time, I'm learning wxPython!

Written in Python 2.5 and wxPython 2.8, though it might well support earlier versions.

Current systems supported: Old WoD (all editions), nWoD, Exalted, d20, 7th Sea, L5R and Shadowrun. Feedback / suggestions of new systems to include are appreciated!

Use at your own risk, may make the world explode or various lesser symptoms (such as being eaten by a CR3 Dire Badger).

Get the script from GitHub here

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

New in version 0.3-20080522

Free Entry mode (under Miscellaneous) added. Thanks to aefaradien for suggesting a better way to do this. Input is sanitised, but there's still no real error handling so Free Entry probably falls over if you try anything too tricky.

New in version 0.2-20080521

All seems up and running and bug-free. GUI looks nicer. Couple of things in the code could use tidying up, and there's no real error handling.

New in version 0.1-20080520

Can't actually roll dice yet, but the data structures and whatnot are in there. How enterprisey. GUI works but is ugly.

RPoL Thread Reformatter

This script takes a downloaded thread from RPoL, and reformats it into something reasonably tidy for importing elsewhere, e.g. a Drupal site.

Written in Python 2.5, doesn't require any external libraries. To use it, find an RPoL thread, click “D/L” at the top right. Keep the default options, and request the download. Take the page it produces and save it (File > Save As… or whatever) in the same directory as the script as input.html. The script will produce an output.txt (it's not a full HTML page, hence TXT not HTML).

Use at your own risk, may destroy the universe amongst other symptoms.

Issues with this application are tracked on my Mantis server, which is open to anyone to sign up, report bugs and request features. Please report any issues you find!

Get the script from GitHub here