MusicMan

Work on Music­Man has been dis­con­tin­ued, as a friend of mine has a far more capa­ble player in the form of Mor­ri­gan, and it is prob­a­bly eas­ier to port the fea­tures I would like to see than con­tinue writ­ing my own client from scratch.

Music­Man is a cross-platform music player and library organ­iser. It sup­ports mul­ti­ple music direc­to­ries, each of which is recur­sively scanned to build your media library. Your library is syn­chro­nised with the actual files on disk each time you start Music­Man. It also sup­ports mass ID3 retag­ging and dynamic search­ing (iTunes-style), where enter­ing a search term reduces your cur­rent playlist to only the songs that match your search.

Music­Man is alpha soft­ware, and is under heavy devel­op­ment. Lots of things (e.g. playlists, Shout­cast) don’t work yet. How­ever, please try it and sub­mit any bugs you find or fea­tures you would like to see on my Man­tis server. I’ve not yet put the source code any­where that peo­ple can eas­ily com­mit to, but if you feel like adding/fixing things in the mean­time, send the source back to me and I’ll merge it in.

Music­Man requires Java 6, and runs on Win­dows, Mac and Linux. It is released under the terms of the GNU GPL v3. It uses the free MP3SPI, JLayer and JAu­dio­Tag­ger libraries.

Down­loads

Screen­shots

War of the Roses

War of the Roses is a 2D strategy/roleplaying game set in the world of my (oth­er­wise pen-and-paper) Changeling game. It is writ­ten in Java 1.5, and cur­rently uses Plan­et­Cute tiles for its graph­ics. It is very early on in devel­op­ment — there’s only one level, for exam­ple, and lots of bugs — but it’s improv­ing almost daily.

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Instruc­tions

Down­loads

You can down­load the game as an exe­cutable JAR file. Please check the Man­tis server and sug­gest addi­tions, or which things I should work on first!

Source code, released under the terms of the GPLv3 licence, is avail­able on GitHub here.

Iridium 9601 Satellite Modem Simulator

This is a spe­cialised ver­sion of CrapTer­mi­nal, cre­ated to make it eas­ier to pre­tend to be an Irid­ium 9601 satel­lite modem. But­tons have been added for send­ing frequently-used strings, and inap­pro­pri­ate options have been removed.

It is impor­tant to note that this is not an auto­mated pro­gram that behaves like a 9601 — it is sim­ply a basic ter­mi­nal app with some but­tons added to send com­mon 9601 mes­sage strings, and a but­ton to send a file’s worth of binary data as the con­tents of an incom­ing data packet.

This is a Java app, writ­ten for JRE ver­sion 6. It requires RxTx, a free ser­ial comms library for Java on Win­dows, Linux, Mac & Solaris. RxTx is not pack­aged with this appli­ca­tion — you can grab the lat­est bina­ries here. (The zip con­tains an INSTALL file which explains where to put every­thing on each plat­form. You must do this before run­ning Iridium9601Sim.)

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Down­load

CrapTerminal

It’s like Hyper­T­er­mi­nal, but not shitty and annoying!

This is a Java app, writ­ten for JRE ver­sion 6. It requires RxTx, a free ser­ial comms library for Java on Win­dows, Linux, Mac & Solaris. RxTx is not pack­aged with this appli­ca­tion — you can grab the lat­est bina­ries here. (The zip con­tains an INSTALL file which explains where to put every­thing on each plat­form. You must do this before run­ning CrapTerminal.)

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Changelog

  • 3 (1 Oct 2010): Back­ported 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 abil­ity to send.
  • 1 (21 Aug 2008): Ini­tial release.

Down­load

Gunboat

Gun­boat is a slow-paced 2D shooter writ­ten in Java and JoGL. It is far from fin­ished, but you can try out the cur­rent devel­op­ment ver­sion any­way. Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Down­loads

Gun­boat requires Java 1.6 and JoGL. Install Java as usual, and make sure the JoGL bina­ries (.dll files for Win­dows, .jnilib for Mac OS X, .so for Linux) are on the sys­tem path. (You can just put the libraries in the Gun­boat direc­tory if you like.)

Down­load Gun­boat itself here, and unzip it any­where you like. Run “java –jar dist/Gunboat.jar” to run the game. Gunboat.bat (Win­dows) or Gunboat.sh (Mac) will do this for you.

You can get the source code (and every­thing else) as a Net­beans project here on GitHub.

Online Ver­sion

I have done some work on an online browser-based ver­sion of Gun­boat. (Requires Google Earth plu­gin.) How­ever, it’s in its very early stages (you can’t shoot, there aren’t any ene­mies…). I’m not sure if I’ll con­tinue with it — one on had, level design has sud­denly 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 ver­sion, as it has many work­ing game­play com­po­nents that the online ver­sion does not.

Game­play

In Gun­boat, you are a small ship tasked to defend your har­bour against an attack­ing Navy. You can move freely around, and enemy ships will arrive in the har­bour in waves. (Some­times, allies will arrive to help you as well.) You must defeat all the ene­mies in each level to progress.

Your ship always appears at the bot­tom mid­dle of your screen. Around it is a coloured ring, which rep­re­sents your health. This will con­tract and change colour from green to red as you take dam­age. Attached to the right side of your ship is a British flag, rep­re­sent­ing your ship’s alleigance. Allies may have other flags, and ene­mies will always have a dif­fer­ent 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 load­out is dis­played. The yel­low ret­i­cle rep­re­sents your currently-selected weapon, though you can have up to 5 in each slot. On the right, your speed, head­ing and radar are dis­played. Speed and Head­ing are fairly self-explanatory. The radar has two modes that you can switch between. The default shows a map of the entire har­bour, with other ves­sels appear­ing on it. Red are ene­mies, yel­low allies, blue crates, and the green dot is you. The other radar mode, which you can tog­gle 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.

Con­trols

The game is played with both key­board and mouse. The con­trols are:

  • Move Mouse: Aim
  • Mouse But­tons: Fire Pri­mary (Left) / Sec­ondary (Right) Weapon
  • WSAD: Change speed / heading
  • Q: Switch pri­mary weapons
  • E: Switch sec­ondary weapons
  • R: Switch radar modes
  • C: Switch cam­era angles (Fol­low, Above, Bird’s-Eye, Bridge)
  • H: Show/hide HUD (Might be use­ful on machines with­out 3D acceleration.)
  • N: Give your­self a Nuke (Cheat mode for test­ing only. Has no icon. Like a hom­ing mis­sile but faster, more agile, instakills, infi­nite 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 nor­mally quite weak, and can carry a wide range of weapons. Yours has spe­cially rein­forced armour, so it has much more health than normal.
  • Marine Land­ing Craft: These tiny ves­sels are very fast, and sneak in close to their tar­gets. Their machine-gun is weak, but left unchecked they can do con­sid­er­able dam­age. They are easy to destroy.
  • MCMV (e.g. Sandown class): The Mine Coun­ter­mea­sure Ves­sel is fre­quently found accom­pa­ny­ing larger fleets. It is weak and poorly-armed.
  • Destroyer (e.g. Dar­ing class): These large ves­sels are tougher than frigates, and have mul­ti­ple weapon mount­ing points. They usu­ally have a com­bi­na­tion of guns, tor­pe­does and anti-air weapons.
  • Air­craft Car­rier (e.g. Invin­ci­ble Class): Air­craft car­ri­ers are huge, heav­ily armoured and largely unarmed. Their strength lies in their abil­ity to launch air­craft. A mix­ture of anti-air and anti-surface weapons is advised for tak­ing out a carrier.
  • Land­ing Plat­form Dock (e.g. Albion class): Much like the car­rier, the LPD’s strength lies in the smaller ves­sels that it can launch — in this case, land­ing craft. It is also more heav­ily armed and armoured than a carrier.
  • Bat­tle­ship (e.g. HMS Van­guard): Relics of a bygone age, these vast ships were designed to take on other bat­tle­ships on the high seas. They are slow and unmanou­ver­able, but have lots of armour and have lots of weapon mount­ing points. (These are boss-type enemies!)
  • Sup­ply Ship: Sup­ply ships are weak and unar­moured, and usu­ally drop inter­est­ing pick-up items. Be warned, though, they usu­ally come with a pow­er­ful escort!
  • Sub­ma­rine: (e.g. Astute Class) Sub­marines lurk below the sur­face, attack­ing with tor­pe­does, anti-ship and anti-air mis­siles. Spe­cific weapons are required to take out sub­marines, but they are lightly-armoured.
  • Heli­copter (e.g. Lynx): The heli­copter, a slow but manou­ver­able air­craft, is gen­er­ally used to drop depth charges.
  • VTOL Air­craft (e.g. Har­rier): The VTOL (Ver­ti­cal Take-Off and Land­ing) air­craft is fast and manou­ver­able, and can launch anti-ship mis­siles, anti-air mis­siles and tor­pe­does. How­ever, it has very lim­ited ammunition.
  • Stan­dard Air­craft (e.g. F35): These air­craft can only be launched from car­ri­ers. In addi­tion to a lim­ited sup­ply of mis­siles, they also have a mini­gun. They are extremely fast, but not very maneuverabe.

Weapons

  • Vick­ers 4.5-inch Mark 8: The stan­dard frigate deck gun, this weapon fires quickly and does a fair amount of damage.
  • Vick­ers .303 Machine­gun: This tiny weapon does lit­tle dam­age and has a very lim­ited range. It fires very quickly, but is extremely inac­cu­rate. It can hit aer­ial tar­gets as well as sur­face ones.
  • Twin QF 5.25-inch Mark 1: This is essen­tially the same as the 4.5-inch gun, except that there are two bar­rels per mount­ing point.
  • Twin BL 15-inch Mark 1: One of the highest-caliber naval guns ever put into ser­vice by the Royal Navy, this weapon fires slowly but over a long range, and the pro­jec­tiles are extremely dam­ag­ing. Not much sur­vives a hit with two 15-inch rounds.
  • Naval Laser Pro­to­type NDEW-1: This exper­i­men­tal direct-energy weapon fires rapidly, has a long range, and deals a lot of dam­age. How­ever, over-use of this weapon will cause it to explode and dam­age your ship!
  • RGM-84 Har­poon Mis­sile Launcher: This weapon, stan­dard equip­ment for frigates, fires anti-ship mis­siles. They are slow, but turn in mid-flight to hit the near­est enemy ship. They deal extreme amounts of dam­age. This weapon has lim­ited ammunition.
  • Tom­a­hawk Mis­sile Launcher: This weapon fires big­ger and bet­ter mis­siles. They are faster, more manou­ver­able, and cause more dam­age than their stan­dard vari­ant, but with even more lim­ited ammunition.
  • Sea Wolf Mis­sile Launcher: This is the anti-air equiv­a­lent of the stan­dard anti-ship mis­sile launcher. Its mis­siles move and home faster, to keep up with fly­ing targets.
  • Naval Rail­gun EMG Mod 0: Though not par­tic­u­larly dam­ag­ing and with an aver­age fire rate, this weapon’s strength is that it hits almost instantly, so there is no need to lead the target.
  • Stan­dard Tor­pe­does: Tor­pe­does are slow and dam­ag­ing, much like anti-ship mis­siles, except that they do not home on a tar­get. Their strength is that they can hit sub­merged tar­gets such as sub­marines as well as sur­face ships.
  • Sting Ray Hom­ing Tor­pe­does: Hom­ing tor­pe­does sac­ri­fice some of their war­head space for their hom­ing mech­a­nism, 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 sub­merged tar­gets — how­ever, any sub­ma­rine that gets lured onto the depth charge is instantly destroyed.
  • DS 30B 30mm Anti-Air Gun: This is the stan­dard anti-air weapon. Much like the 4.5-inch gun, it fires quickly and deals mod­er­ate damage.
  • Flak Can­non: This weapon deals extreme dam­age to air­borne ene­mies. How­ever, its rate of fire is very low.
  • Pha­lanx CIWS: Not strictly a weapon, the Pha­lanx will not shoot at ene­mies. Rather, it is an auto­mated tur­ret that will shoot down any enemy mis­siles within a cer­tain radius of your ship. It only lasts a lim­ited time.
  • Shield Gen­er­a­tor: An exper­i­men­tal device, the shield gen­er­a­tor cre­ates an elec­tro­mag­netic force-field around your ship. It deflects all incom­ing pro­jec­tiles, but it only lasts for a very lim­ited time.

Other In-Game Items

  • Health Crate: Some­times 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 inter­est­ing weapons may some­times leave their weapon behind in a crate. (Sup­ply ships drop ran­dom weapon crates.) Steer your ship over them to pick up the weapon, and add it as an option in either your pri­mary or sec­ondary slot.

Minehunter

Hav­ing spent far too many hours play­ing Minesweeper on Win­dows machines, I fig­ured I’d write a game that bears some resem­blance to actual mine-clearing.

Your vehi­cle is a remote-controlled mine­hunter, with var­i­ous attach­ments and var­i­ous ships to pro­tect depend­ing on the dif­fi­culty level you’re play­ing on. Head to Help -> How to Play… for a three-minute tuto­r­ial that explains every­thing you need to know.

Screen­shot

Minehunter Screenshot

Mine­hunter Screen­shot (click to enlarge)

Down­loads

Down­load ver­sion 0.4.0 (89KB JAR)

Get the source code from GitHub

Require­ments

Mine­hunter requires the Java 6 run­time envi­ron­ment, which you prob­a­bly have already. If not, you can get it from here. Once that’s installed, just double-click on the down­loaded 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 inter­face so it’s not the greatest-looking thing in the world.

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Editor

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

Writ­ten in Python 2.5 and wxPython 2.8, though it might well sup­port ear­lier ver­sions. Icons are from the Tango project. Code licenced under GPL v3.

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Use at your own risk, may make the world explode or var­i­ous lesser symp­toms (such as ital­i­cis­ing YOUR FACE).

You can grab the files from GitHub here.

New in ver­sion 0.1−20080523

New, Load, Save, Save As, About all work. Word wrap doesn’t work, dis­abled for now. Bold but­ton only makes things bold, doesn’t remove boldness.

TODO: Find a way of get­ting the bold but­ton state, so we can unbolden. Make the tool­bar a sep­a­rate wx.ToolBar so we can have font/size drop­downs next to it (or find a way of putting drop­downs in a tool­bar). Fig­ure out if we can save as RTF or some­thing. Move PNGs inside the script?

RPG Dice Roller

This is fast becom­ing my tra­di­tional “learn a new lan­guage by cod­ing this” script: a dice roller for table­top RPGs. This time, I’m learn­ing wxPython!

Writ­ten in Python 2.5 and wxPython 2.8, though it might well sup­port ear­lier versions.

Cur­rent sys­tems sup­ported: Old WoD (all edi­tions), nWoD, Exalted, d20, 7th Sea, L5R and Shad­owrun. Feed­back / sug­ges­tions of new sys­tems to include are appreciated!

Use at your own risk, may make the world explode or var­i­ous lesser symp­toms (such as being eaten by a CR3 Dire Badger).

Get the script from GitHub here

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

New in ver­sion 0.3−20080522

Free Entry mode (under Mis­cel­la­neous) added. Thanks to aefara­dien for sug­gest­ing a bet­ter way to do this. Input is sani­tised, but there’s still no real error han­dling so Free Entry prob­a­bly falls over if you try any­thing too tricky.

New in ver­sion 0.2−20080521

All seems up and run­ning and bug-free. GUI looks nicer. Cou­ple of things in the code could use tidy­ing up, and there’s no real error handling.

New in ver­sion 0.1−20080520

Can’t actu­ally roll dice yet, but the data struc­tures and what­not are in there. How enter­prisey. GUI works but is ugly.

RPoL Thread Reformatter

This script takes a down­loaded thread from RPoL, and refor­mats it into some­thing rea­son­ably tidy for import­ing else­where, e.g. a Dru­pal site.

Writ­ten in Python 2.5, doesn’t require any exter­nal libraries. To use it, find an RPoL thread, click “D/L” at the top right. Keep the default options, and request the down­load. Take the page it pro­duces and save it (File > Save As… or what­ever) in the same direc­tory as the script as input.html. The script will pro­duce an output.txt (it’s not a full HTML page, hence TXT not HTML).

Use at your own risk, may destroy the uni­verse amongst other symptoms.

Issues with this appli­ca­tion are tracked on my Man­tis server, which is open to any­one to sign up, report bugs and request fea­tures. Please report any issues you find!

Get the script from GitHub here