Friday, March 09, 2018

Laser Squad in 3D

Laser Squad was probably my favourite game on the Spectrum, and I played it for hours at a time back in late 80's (one reason why I created Stellar Forces).  Now that I'm developing a multiplayer FPS engine in Java, an obvious candidate for a game is a realtime version of Moonbase Assault, one of the original missions in Laser Squad.

In that mission, one side had to defend a moonbase from attack by the other side, who had to destroy the moonbase computers.  My realtime version is a long way off yet, but here's a preview showing me walking around the moonbase.

For those who remember the game really well, you should recognise the layout of the map and be able to follow it as I go.

Wednesday, February 21, 2018

Java Open Source Multiplayer FPS Engine - Preview

"SteveTech1" is my code name for my new Multiple FPS Engine for Java (a name in tribute to Id).  Obviously, the only way to prove that my Multiple FPS Engine "SteveTech1" actually works, and is useful, is to create a game with it.  Here is a preview of that game:-

It's called Undercover Agent.  In a nutshell, all the players (and scenery) look exactly the same.  The aim of the game is to find the enemy players before they find you.  Since everyone looks the same, the way to identidfy them is when they move.  But then you have to move to find them!  Aargh!  In this level, everyone is a snowman, surrounded by inanimate snowmen.  Did I see one of them move...?

Once I'm sure that SteveTech works, I'll be releasing the source.

Wednesday, January 31, 2018

Why do software publishers change software for no good reason?

"If it 'aint broke, don't fix it"

Since the dawn of time, 95% of desktop GUI's have a toolbar with a minimum of File, Edit and Help.  If you wanted to open a file, e.g. a Word document or Eclipse project, you went to File and selected Open.  If you wanted to know what version of software you were running, you could rely on a "Help | About" menu option.

Now I challenge you to find out what version of Word, or any of the MS Office suite, you are using, on the more later version.  I don't know which versions, exactly since I can't see how to discover the version number I am on, but the ones where, for some unexplained reason, they've removed the Edit and Help menu, and clicking on File takes you to a whole new window.  It also makes it much harder to Google for the solution, since you can't search for what version of Word you are using, so 90% of results still say "Go to Help | About".

As well as that, they've also redesigned the file dialog; now it's impossible to go directly to any directory on your computer.  You can only go up or down a level, although if you click on the right area, it brings up the original classic file dialog!  Why is this hidden?  I can only assume it's so they can keep people paying for the MCSE certificates, or whatever they're called these days.

The latest culprit is Firefox.  What is the point of Firefox's "Other Bookmarks"?  If a user bookmarks a page, wouldn't they want it to appear under Bookmarks, not in some obscure folder that hardly anyone even knows about?  I imagine new users abandoning Firefox since their bookmarks don't seem to be added, which was my first thought.  They changed this feature a few months ago.  Why??  Was it too straightforward and logical?

Tuesday, January 30, 2018

Free Quality Open Source #2: Space War!

Everyone remembers Thrust don't they?  Or Gravity Force?  If not, they were some of the first gravity/physics games, and great fun.  So that's why I wrote SpaceWar.  The full source is available here.  It's in Java, and should "just work".

The game uses jBox2D in order to do the physics.  This means that all values can be easily edited, such as mass, acceleration, gravity, bounciness etc...   The gravity also comes from the masses of the object rather than "down", so players will gravitate around planets etc..

For the multiplayer aspect it uses the keyboard and as many gamepads as you can plug into your USB ports.

Since it's fully open-source, you can do whatever you want with it.  Please let me know how you get on.

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 Java 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.