Pirate Empires is an upcoming FunOrb game featured in Developer Diaries one, two, three and four.
Development Diary One Edit
Before we start talking about Pirate Empires, it's worth mentioning that this will NOT be the next game we release - in fact, this game may not be released for many months. We will, of course, be releasing other games and updates before this game comes out. For the last few months, Mod Wivlaro has been working on FunOrb's pirate-themed game with Mod Dunk, and he has a few thoughts to share with you below. You may remember that we had a competition on the FunOrb forums to suggest names for this game; unfortunately, the winning suggestion – Pirate Lords – turned out to be already in use, so we’ve had to go with the slightly different name of Pirate Empires.
Most recently, I have been trying to get the network (i.e. multiplayer) code to handle lag better. The FunOrb team is developing a number of real-time multiplayer games at the moment, and doing this in a browser is always an interesting challenge, particularly considering the distances and latencies involved. We have to fight some dreaded lag-monsters! Getting the code to handle ships sailing around in the wind wasn't too tricky, but when you order your crew to "FIRE!", you expect them to do what they're told immediately.
The solution we’ve come up with is to attach a time stamp to every order given by everyone who’s playing. When an order has been sent to our server (which might be subject to lag), the server rewinds the game, inserts the order at the right time, then plays the game forwards again, before sending the new updates to players. While this is happening, the client (the version of the game running in your browser) has to play out any orders you have sent, but which have not yet been confirmed by the server. Phew!
When one player fires their cannons, the server prioritises sending this information to the other players so they're not left behind with what's going on with those crucial cannon-balls! Then, before you can say "Davy Jones's locker", we have to play the cannon-balls’ sound effects; draw them on the screen at (the client’s best guess of) where they should be; animate them flying through the air in a realistic way; and, finally, figure out if they crash catastrophically into other ships or splash disappointingly into the sea. There are so many things to deal with, and they all have to happen in a very short space of time in order for it to look as cool and believable as we want it to! It might sound complicated, but if we do a good job of it, you won't notice a thing while you're actually playing - you'll just be focusing on blasting enemy pirate ships out of the water!
(Pirate beard length: 3mm)
Development Diary Two Edit
Recently, I have been working on getting islands to render properly during sea battles (where islands can be quite large) and in the game's world map (where they can be quite small). It's quite tricky to do with a game of this size, as I have to make sure it all works on older computers as well as reliably over a network. It means we end up doing a lot of our calculations in fixed-point arithmetic. Fixed-point arithmetic means that we use integers (whole numbers) instead of floating-point numbers. Although floating-point numbers allow for more accuracy and can represent fractions easily, they can be slower for the computer to calculate, lose precision and be unpredictable from one computer to the next.
So, the key question we have to answer is: how big is 1? It might be okay for 1 to represent 1cm in sea battles, but if we used that for the world map game, we might only be able to have a game world that’s 1km square - clearly not enough space for a pirate to make a living in. If you make the scale too big, though, animations and camera movements get very choppy. It feels kind of like I've been trying to press bubbles out of wallpaper this week!
Just the other day, I put the game on our internal 'work-in-progress' (WIP) version of FunOrb in order to show it to a few colleagues. I actually only intended to show it to one 'guinea pig', but when there's a new game working on someone's screen, the whole department can get a little excited. Things quickly escalated into a big battle, as other members of the FunOrb development team jumped in the game to try it out!
It is always helpful to see new people playing a game you're working on - it helps you to see the things that are wrong with it, which you have so far been blind to. Even simple things like if you see someone struggling to use your interface can help you to improve the quality of the final game. This 'small' test has given me and Mod Dunk a veritable hoard of little things to fix and improve with sea battles. We have quite a way to go with this game before it meets up to our standards, but we are making progress.
We've also been doing some work on the ports. We have been populating the taverns with a range of sailors - everything from stalwart bonny tars to scum-of-the-earth cut-throats - all of whom you'll be able to recruit for your ship! And we've been making sure that the booty you store in your ship's hold is as 'organised' as every self-respecting pirate would have it: in big piles! (Which reminds me somewhat of my desk...)
(Current grog level: low)
Development Diary Three Edit
Avast, ye scurvy dogs, ‘tis a graphics mut'ny! We're takin' the wheel of this here diary; that lily-livered Mod Wivlaro gets t' walk tha plank!
With many of our games, we start by defining a look and feel to help us visualise the style of the game and how it will play. This is one of FunOrb's largest projects so far, which is the perfect opportunity to get the whole team involved! Because so many people love pirates and have their own ideas of what makes the perfect pirate game, we created a 'mood board' where everyone could pin up ideas, sketches, pictures, underwear (it’s an interesting office we work in), eye patches and anything else that we could think of that would help inspire the project. From here, we narrowed down the ideas and themes until we had a good grasp on the game's style and direction.
When you first play the game, you're asked to choose one of three factions, each of which has its own playing style and range of ships – this was a great place to start with the concept art! I sketched out three ideas for each faction (we voted on which ones best represented each faction) plus the enemy of the pirates: 'The Admiral'. Two of these character concepts were featured in the first part of this diary.
Once we had the characters defined, we moved onto looking at the game as a whole, which is when I created a mock-up based on the ideas we came up with in our brainstorming meetings. I used a mix of Photoshop effects for scenery, custom 3D models and the current game engine items to create an idea of what the game MIGHT look like when it’s done.
Since then, I've been concentrating on screens and items for the game – in particular the port screen. This is one of the most important menus in the game as it's where you can start the game, repair your ship, recruit more crew, and access a whole host of other features.
This meant that there was a lot to get in there - the docks, shipyard, market and tavern. I started out by sketching a rough idea for the layout and chatted through the features with our developers to check it had everything they needed. A few quick changes and one resized sketch later and we're ready to get started.
I prefer to work purely in Photoshop for something like this: sketch, rough colour, add detail – sounds easy, doesn't it? Wink smiley I set up the port as a base and added in some background houses and trees, then got to work on the items. First up was the market, where you can purchase and sell items such as food, grog and other essential items to keep your crew healthy and happy.
To make the market, I started by 'blocking in' the basic colours and shapes. We'd already decided on a style and colour palette for the buildings, so I followed that to create a horseshoe of houses and, from there, added in little details like doors, windows and stonework. After that, I added in some more interesting details (such as little market stalls around a well) to make sure it wasn't all just red and white. I then followed the same process for the tavern, ship sales and shipyard and by the end of the day we had a port!
Senior Artist, FunOrb Graphics
Captain of the Dirty Seagull
Development Diary Four Edit
Yar, 'tis the next entry in this here diary: 'The History of the Pirate Empires (game development cycle)'. Turning to part four this week reveals an entry from Mod Dunk...
As you know, I've been working on Pirate Empires alongside Mod Wivlaro, who has most recently been putting together the world map that joins up the various battles around the map. To avoid the tedious act of sailing to distant islands, players who leave an island will zoom out to see a map of the whole world. From here you'll be able to quickly travel to places you can trade, pillage, bury treasure and fight. For now, here's a little more about those fights.
As the enemy is closing in fast and your guns can't reload in time to stop them, you expect but one thing: collision. It doesn't bear thinking what would happen to the people on board if the ships were to pass through each other – it’d be gruesome, no doubt. Of course, in the real world, pirates can rest easy thanks to the miracle of physics – in the game world, it's a constant worry. This is where simulation comes in.
To begin with, every physical object needs to store a position, velocity and orientation in 3D space. This information is updated every frame according to rules that we write. We put in rules for gravity, friction, wind, etc, but the most complicated is collision.
In real physics, everything is composed of countless tiny particles that apply forces to their neighbours – resulting in the collisions you see every day. Unfortunately, simulating this level of detail for a ship-sized object would require years of computation on the fastest supercomputer, so to achieve 50 frames per second on a normal computer we have to go with an approximation.
To do this, our ships are given invisible outlines that move along with them during the game. Whenever a cannonball crosses one of these lines, we know we have a hit. Likewise, whenever a line from one ship crosses a line from another ship, we have a collision. Now we know the ships have collided, we can move them away from each other and apply some forces (changing our values for the position, velocity and orientation of both ships).
With the right forces, the ships should look as if they're crashing into each other with a believable reaction. Although cannon fire, collisions and boarding are all important parts of a pirate's day, the smart ones know they'll need to do something special to gain the upper hand in battle.
The screenshots show new icons on the left that represent some of the orders you might be able to use in the final game. My favourite orders involve using the anchor. It's not just an essential tool for parking a ship on the coast; daring captains can use it to perform the infamous anchor-brake turn (with the help of a little spring physics simulation).
(Favourite pirate movie: Arrrmageddon)
Why did the pirate think there was something wrong with the triangle? Because it wasn't ship-shape.