What I have worked on
I have an efficient multiplayer isometric shooter game in place, with a master-server/lobby and a system for hosting games locally or on a publicly-accessible server. The map maker works pretty well. The game needs a lot more graphics. However, it all runs nicely and is pretty light-weight in terms of server load so it’s feasible to run lots of game instances on a single physical server.

What I have tried and why they weren’t ideal
The first version (0.1) ran exclusively on a player’s local network rather than on the public internet – I had in mind a LAN game with phones as controllers. This limited the mapsize to one screen, and to be honest is too limiting in terms of maximising the audience… the fact is, most people want to play online, and making a game LAN-only is too limiting.

The second version (0.2) incorporated a multiplayer lobby, larger scrolling maps, and hosted games on my Linux server – so this allows online multiplayer games. Game instances started up on request and the requesting player set the various game difficulty settings, zombie amounts, etc. This worked better, but is still focusing on casual, instanced gameplay and if there’s no-one else setting up a game when you hit the lobby, there’s not much of a reason to stick around. You can download version 0.2 here (Windows only).

Directions?
Casual multiplayer games with instanced servers can be great (think King Arthur’s Gold), and so can casual multiplayer games with a more persistent-world/MMO style (e.g. Realm of the Mad God). It’s important that players get some sense of levelling up/unlocking stuff.

What I’m currently leaning towards is:

a game lobby that gives you a choice of several maps to join – these maps are basically running 24/7 rather than starting on-demand. you’ll get added to whichever team currently has fewest players. Each map will have predetermined difficulty settings. So there’s a mix of maps and settings available to choose from, and it’s very easy to pop in and play with no setting-up decisions.

You unlock characters over days/weeks based on accumulated score (which is scaled by difficulty of settings on map), but you’ll level up each character from zero in each game you join.. dying+respawning loses some of your level but not all. There can be a persistent per-map high score table.

There will probably have to be some AI-controlled characters filling out the teams if there aren’t enough human players. This is quite challenging to implement, however there’s probably no way around it.

there can be a way of uploading maps to run as test zones on-demand, and of requesting that these get added as official maps.

Not an MMO then?
Open-world MMO is cool, although it reduces the ‘just join and play’ appeal. I’m leaning towards *not* adding MMO-like world persistence. I have done quite a bit of work on zone servers etc. so I’d be confident of segmenting a single open-world into zone servers, for everyone to play in one world at once. To take this approach would make the game a larger undertaking, there’d be considerations of equipment, crafting, etc.. it would certainly add a different dimension to the idea. But it would also take away some of the simplicity of play, as well as being a lot more work.

]]>4samhttp://www.psychicsoftware.com/?p=7942015-02-02T14:45:04Z2015-02-02T14:43:34ZJust a quick update on progress. Following some trials of the 0.1 alpha, I have refocused the game on full internet multiplayer, rather than LAN-only multiplayer. This involved a lot of refactoring. I have also (for now) removed the use of smartphones as controllers, and I have replaced websockets with UDP networking – this is important if the game is to run well on the public internet.

Features implemented in the past 2 weeks:
– master/lobby server running on a Linux box at psychicsoftware.com
– nodejs-based gameserver, also running on the Linux server, with game instances spawned on request by the master server
– scrolling map which can be up to about 5000×4000 pixels in total size
– login/game startup/choice of options/lobby chat
– gameplay includes players, zombies, bullets, re-spawning and a basic scoring system

I am also planning to have game sessions hostable by players (rather than only on my server) – I’m looking into NAT-punching in order to get that working from behind players’ routers. These game sessions will be able to use any maps that the players have designed in the game’s map-designer component, or that they have downloaded from the (planned) online maps respository.

]]>0samhttp://www.psychicsoftware.com/?p=7852015-01-19T20:25:38Z2015-01-19T20:03:05ZOK, so there was this biological warfare experiment that went wrong. The head science guy running the experiment was called Zed. Before you know it, there’s thousands of brain-dead infected people swarming everywhere trying to eat people. We call these zombies “Zed’s Dead”.

Zed’s Dead is a multiplayer isometric LAN shooter. The focus is on quick, fun competitive multiplayer play: pick your teams, pick your map, set the game parameters, and go!

Current game modes:
– Survival: teams earn 1 point per second that they have at least one character alive
– King of the Hill: teams earn points for standing close to the Flag.

One person needs to start up the game as Server, and pick a map.
Other people run the game as Client.
Controls: WASD or Arrow Keys to move; point and click with the mouse to fire.
Anyone who doesn’t have a computer can use their Android or iPhone (using Chrome or Firefox) and will get to play using twin joysticks (left joystick to move, right joystick to fire). Just point the phone’s browser to the URL displayed on the game server’s team-picking screen. Phone users can look at any of the computer screens to see the actual game world while playing.

The game runs using your LAN – so you all have to be connected to the same network.

Download the game here [alpha 0.1]: This is an early early alpha. Seeking feedback and comments please!

As you’ll see, there’s also a map-making component. To make your maps usable, they must have 2 player spawn points (one for each team), 1 or more zombie spawn points, and 1 Flag which is used in the king-of-the-hill play mode.

]]>0samhttp://www.psychicsoftware.com/?p=7542015-01-19T18:01:59Z2015-01-13T14:20:20ZI have been working on a multiplayer isometric shooter. The basic idea is that there are 2 opposing teams of players fighting various scenarios on city maps, and the game runs over a LAN. There are also zombies in the game, but they act as obstacles (or opportunities?) during the core player-v-player game, rather than being the primary challenge. One cool thing that will be included is that players can use their smartphones as twinstick controllers: so even if they don’t have a computer available, they will still be able to play – this idea was prototyped successfully in a recent game jam that I took part in.

The current graphics come from some rather excellent artists over on graphicriver.net. I’m actively seeking a skilled pixel artist to work with me on bringing this forward and fleshing it out with more graphics, GUI interfaces, etc.

The core technologies are javascript, pixijs for rendering, node webkit for cross-platform deployment (Windows, OSX, Linux) (and for its extensions adding things that would be impossible in a normal web browser.. such as websocket/UDP server, read/write native files, etc.), and websockets/UDP libraries in nodejs for networking.

I’ve got lots of interesting things to say on the technicalities of how this is coming together, and on the actual gameplay concepts.. but I’ll leave that all until future posts.

]]>0samhttp://www.psychicsoftware.com/?p=7472014-12-01T10:39:13Z2014-12-01T10:39:13ZI took part in a game jam on Saturday, and we won! My main collaborator was artist Niall O’Reilly from local game art company DoomCube.

The game runs using HTML5/Canvas, with a node.js websockets server. The ‘render client’ ran on my laptop and players ran the ‘controller client’ on their phones.. this seems like a really nice way to do casual LAN-style multiplayer games, and it’s a configuration I have been thinking about for a few weeks. I just need to figure out a killer party game idea to use it with!

In “Hittin’ Worlds” Each player plays as a planet, in orbit around a sun. Asteroids are flying about, and players have to use their forcefield to deflect them. By using a virtual joystick-style controller on their phone, they orient the forcefield in specific directions.. incoming asteroids get deflected in that direction. The idea is that players fling the rocks at each other while defending themselves.

We also had a really nice piece of custom music written by a guy called Ian, from Athlone/Reading.

]]>0samhttp://www.psychicsoftware.com/?p=7032014-08-08T20:41:07Z2014-08-08T20:41:07ZI haven’t posted on here in too long, and it’s mostly because I have been very busy working on Darkwind again. The big news is that the game was greenlit in May, for release on Steam around the end of August.

Some of the main things I have been working on are:
– making the game ‘free to play’ with an in-game premium currency (‘Chromes’)
– overhaul of the lobby graphics
– integration of significant amount of functionality in the game client that was previously only available on the web site.

The last point is quite important, as we’ll hopefully get a big influx of new players from Steam, and the new player experience needs to be as good as it can. The split between 3D gameplay and web-based management has always been a bit awkward, so now you’ll be able to do core management of gang and vehicular assets from within the client, and complete management of squads – including set-up, travel, scouting, and multiplayer arrangement.

I have also been working again with Taskmasterpeace, one of the two guys who recorded all the excellent ‘sport commentator’ style vocals in the game. Task has been doing voice-overs for a series of tutorials I’m making about Darkwind.

]]>0samhttp://www.psychicsoftware.com/?p=6862014-01-11T10:59:56Z2014-01-09T20:48:37ZHere’s some footage of a car driving around in the Shiva game engine, using the ‘raycast wheels’ approach. I have found that this gives much nicer results than the demo car that comes with Shiva, which treats wheels as constrained spheres. The problem with modelling wheels as spheres rotating on one axis is that this assumes rigid bodies for the wheels; actually, wheels are not rigid.

The basic idea with raycast cars is that you cast a ray from each wheel hub, and calculate the distance at which a surface is met (if at all). This defines the suspension’s extension, and then you simulate spring behaviour by applying increasingly strong forces as the suspension gets more compressed. There’s also some subtleties such as anti-roll and varying spring strength depending on whether its compressing or extending; but these are mostly tweaks applied to the core idea.

I also found that at high speed the default Shiva ‘spherical wheels’ car would suffer from occasional glitches and speed wobbles, rendering it fairly useless for most games. Sometimes it seemed to stagger sideways at high speed, presumably due to errors on the axis constraints allowing the spheres to role sideways. I assume these problems are caused by over-relying on the accuracy of the underlying physical simulation in order to obtain the required behaviour.

In the video clips shown here, the behaviour of the car in all ways other than spring response has been results-driven, i.e. the desired behaviour (skidding, drifting, tendency to roll, etc.) has been considered and this is used as a starting point for programming the calculations – rather than starting from an accurate physical simulation and expecting realistic/fun results as an emergent behaviour.

This represents very good progress towards what I’d like to have for a major new Darkwind project (Darkwind 2?) that I have started thinking about. Really the ineffective default Shiva car is what had stopped me considering this before now.

Last year I also wrote Musclecar Online. In this the car was entirely results-based, having no accurate underlying physical simulation from which the behaviour emerged. Musclecar Online is actually a 2D driving simulation with 3D models (hence, no hills or bridges) – and it was therefore entirely possible to define the behaviour I wanted first and then to write code to directly produce that behaviour.

]]>0samhttp://www.psychicsoftware.com/?p=6692013-12-05T13:04:57Z2013-12-05T13:04:57ZThrough my efforts to set up a game developers group in Galway in 2012 and 2013, I came into contact with two energetic and enthusiastic game devs, Liam Krewer and Alanna Kelly. Alanna had already run a successful Game Jam earlier in 2012, and it seemed like a natural collaboration to merge the fledgling Galway Games Group (GGG) with her Galway Game Jam (GGJ). So in June and October we joined forces and ran Galway Game Jam #2 and #3.

I hadn’t really been sure of the value of a Game Jam prior to this – it just seemed a bit insane to try to produce something in a single extended session. But the value is now clear to me – by creating very tight deadlines, you immediately make every team member useful.. so those with less experience are in a position where their work is relevant and important, which it would not be if the project had a month or two to complete. Apart from that the GJ is an excellent and fun networking opportunity. It gives a focus and theme to a networking session, which is something that we had already been struggling to manage in our earlier GGG meetings.

The first event, in June, ran for 12 hours. I took on the role of photographer and on-the-day organiser (making runs to the shop and Pizzeria etc.).. I didn’t really want to take part in the competition since I knew I’d only get too engrossed in coding, to the detriment of the other stuff that needed doing.

“We had fun! There were games made! .. mostly with only a tenuous link to the under-the-moon alternative-reality wonderland I envisioned. Apologies for my smart-ass comments and constantly sniffing nose. Also my camera battery died a couple of mins from the end so we didn’t get the wrap-up presentation from all teams.”

The second event, in October, ran for 24 hours (I, like the other more ahem.. mature.. attendees disappeared in the middle for some sleep!).

“Footage of our 24 hour game jam, 12th-13th October 2013, attended by about 25 coders, designers, artists and musicians. The quality of work going on was very impressive, and it was great to see visitors from Dublin and Tipperary this time, in addition to the locals! Thanks once again to the organising team Liam Krewer, Alanna Kelly, and me! I kept my cheeky comments to a minimum this time.. and the music being produced was so good that I didn’t want to muck it up by overlaying any backing track.”

]]>0samhttp://www.psychicsoftware.com/?p=6652013-09-30T14:16:02Z2013-09-30T14:16:02ZHere’s some footage from an endless driving/shooting game I have been working on, for iOS/Android.

There will be 3 game modes:
(1) endless driving (how far and fast can you get without crashing),
(2) endless driving with guns (and armed enemies),
(3) story mode – you’re trying to catch spies in supercars while being attacked by armed cops – complete with end of level bosses in armed trucks, and radio-style narration by Robert ‘Task’ Smith.

Just today I caught up with Task and got him on board. I think the voiceover will be a really cool feature of the game: it will warn you of approaching enemies, let you know when you’re catching up with (or losing) the end-of-level boss that is your main target to complete each level. Task was one of the two voice talents in Darkwind, providing really slick and stylish TV-commentary-style comments during deathraces and arena combats.