Friday, January 12, 2018

Simple Physics Engine for jMonkeyEngine

I'm currently developing an open-source multiplayer networked FPS engine, after getting addicted to Overwatch and TF2 and then wondering why there's not a single open-source Java multiplayer source game anywhere.  I aim to fix that, and at the moment progress is coming along nicely; it was never going to be easy but so far it has remained fun.  There's nothing to actually release yet; I'm going to wait until I've actually got a full game working before I release the source.

Anyhoo, the project has necessitated some additional code not directly linked to the project, which I can release.  The first one is a Simple Physics Library for jMonkeyEngine.

jMonkeyEngine comes with an excellent physics engine.  However, it is almost too excellent, and has a lot of features that I don't require which takes up CPU usage.  In addition, a multiplayer networked FPS requires the ability to "rewind" time on physical objects, which the existing JME physics engine can't do.

The full source is available here, which includes an example "first-person walking around" game.

And here is a video showing it in action.

Monday, January 08, 2018

Free Open Source #1 - Tricky Towers

Being a good citizen, I like to give as much as I receive.  So, on the assumption I might one day find some open-source code that is actually any good (only joking) I'm going to post about my own open-source code that is available to anyone that wants it.

The first one is this game called Tricky Towers, which is a simple clone of the game Tricky Towers, which I've never actually played but looked really fun.

It's an up-to-3 players game, where the aim is to be the first to pile blocks all the way up the top of the screen.  However, it is physics-based, meaning unbalanced towers often topple.  It can get quite frenetic and fun when there's 3 of you, especially if one players tower topples into another.

Full source is here.  

Friday, November 17, 2017

The Programming Loop

You need a library that does something. Here's what happens:-

1. Start writing a library, e.g. a networking library for a game.
2. Use Google and ask for help online when there's invariably a problem to solve.
3. Most people suggest using an existing library.
4. Start using an existing library.
5. Realise that this library either has a bug in it, or isn't straightforward to use.
7. Use Google and ask for help online when there's invariably a problem to solve.
8. Decide it's hard work using someone else's code, so start to write your own library.
9. Start again from 1.

Tuesday, August 01, 2017

You're probably best...

...following my Twitter feed to find out what I'm up to.  Who's got time to write a blog post these days? And who's got time to read them?

However, if you're interested, I'm currently developing Killer Crates.

Sunday, June 25, 2017

Physics Platformer

This uses JBox2D for the physics.  This post is just a dump for hosting images at the moment, but I'll add something soon.  Until then, the source is available at

Friday, June 16, 2017

Databases - The difference between MSSQL and MySQL


Windows and MSSQL:-
* Download SQL Server 2016 (the free version presumably)
* Get message that SQL 2016 won't work on Windows 2007
* Install SQL Server 2007 (once you've found the correct link)
* Download MSSQL Management Studio (once you've found the correct link)
* Try and restore database backup
* Get message that backup was created with SQL Server v 10.5 and I am running 10.0.4
* Try and find out how to upgrade to SQL 10.5.
* Download SQL Server 2008 *R2*
* Try and restore database backup
* Still says version number is too low
* Uninstall SQL Server 2008 after assuming it would upgrade and not install side-by-side
* Try and restore database backup
* Profit!

Linux & MySQL:-
* sudo apt-get install mysql-server
* mysql --user me --passwordmypwd  < datafile.sql

Tuesday, June 13, 2017

Multiplayer Platformer

After playing the excellent game Lovers in a Dangerous Spacetime on the PS4, which is a same-screen multiplayer co-op platformer, I decided to have a go myself at making a multiplayer game.

This involved working out how to read PS4 controllers.  Once I'd managed to do this in Java using some source code I found on the internet, I ripped apart one of my old Android platformers and refactored it into a PC game.

To make it even more special, and so that more than one player would stay in the screen, I implemented a zoom in/out feature.

The game currently has two gameplay modes: A simple "race" mode where the winner is the first person to get to the end, and a "race" mode, where the last player standing is the winner; players are elimiated when they get caught by the end of the screen.

Full source code is available here: