The Beginning & First Release
One of my childhood games, was a game called "Overboard!" for PSX. As a kid I loved that game but as time passed more games came out so I forgot about it. From time to time I remembered some of my childhood games including this one, so I decided to create a game that was inspired by it. Truth is that back before games were "Categorized" most of the games were unique since developers back then had to think new ideas because there weren't so many games to copy from unlike today.
So one day I decided to start a ship game which would focus multiplayer at first, since I also wanted to learn how multiplayer works. Ι named my game "Πρόσω Ολοταχώς" or "Proso Olotaxos" in latin which is a greek phrase and translates to english as "Full Speed Ahead".
With zero budget and only by myself, I started making the game with assets I could find for free on web or make some simple ones myself. I chose to develop the game in Unity because it's quite straight forward and allows more flexibility and speed while programming, not to mention that the asset store has tons of assets I could use.
I found some free basic meshes, dropped them in the game and made the basic mechanisms. At first I used low poly models and the game looked totally different than it is today.
Multiplayer - Mechanisms
After setting up the basic mechanisms, I spent plenty of time playing around with Unity's Networking system. Before started making the game I had zero experience with how multiplayer worked, so the development was an educative trip as well!
I learned lots of things on how multiplayer works from behind and I did some more research on what's the best way to create a multiplayer game in Unity. Multiplayer tests were quite fun and something new to me and I have to say playing multiplayer on my own computer against two other myself was quite interesting!
While I was doing my multiplayer research, I came across Photon. Photon engine offers various tool and services based on what you choose, that can help and speed up multiplayer development. At that time I read that Photon Cloud was a good way to go, especially if you had no budget. All Photon tools and services come in different packages(plans) based on how much you are willing to pay, but thankfully it also had some free plans. So I thought that Photon Cloud would be a good thing to try out, since it could offer (the free plan) up to 20 concurrent players and I wouldn't have to setup a server since everything was managed by the cloud including the matchmaking process. So in combination with the Photon Chat service, i removed all of my old Unity Networking code and replaced it to work with Photon.
While Photon is all good and free which is great for testing and making alpha games, having a cloud is obviously not as good as having a custom server. Having a custom server means having lots more work, but in the long term it is certainly the best way to go since it allows your to have complete control over everything not to mention have proper authorization in game.
For example, let's say that a player ship fires a weapon (e.g. cannons). If you have a server all the important logic will be checked there, like if an enemy ship was hit. That way, you can make sure that the damage will be dealth properly and cannot be "hacked" since the server handles it and not the local player. However using a cloud, means that you have to check things locally and one of the player's needs to be the "master client". Master client acts as a server on most things, but obviously it can cause several issues since the player could have a big ping which can cause unpredictable behaviour not to mention that a player could somehow locally alter certain things with proper knowledge.
However, as I said photon cloud offers certain services that make it ideal for starting the game and testing it at least for the first releases and so far all the tests were good and had no lag or any big noticeable bugs in the multiplayer game. Of course over time, if I manage to raise some money I will try to implement a dedicated server system or maybe lan on a custom server but for now I will stick with the cloud. As mentioned before the cloud can only support 20 concurrent players which is the biggest disadvantage is has. Then next plan photon offers (after the free one), is one that supports 100 concurrent connections at the cost of $95 so if anyone is willing to help let me know.
Multiplayer - Gameplay
Aside from all the technical stuff mentioned above, let's talk a bit about the gameplay of multiplayer and what the game currently offers from the player's perspective. In this game version, there's only the ability to play via the cloud by either hosting or joining an existing room in the lobby. The max amount of player's that is currently supported is 6 but in the next version it will be raised up to 8 players. After joining the room, all players can change their flags and their sails color. However only the host can change maps and start the game. There are some maps to choose from depending on the amount of players.
The only multiplayer mode that is currently supported is free for all, so in order to win, you need to be the last standing player.
So enough talking for the multiplayer! Let's talk about the mechanisms the are included so far. The game so far includes several mechanisms, such as an inventory system, a weapon system and 3 weapons. Inventory is implemented in such way that it can be easily expanded in the future to include various weapons and items. As far for the ship gameplay, the ship is currently implemented so that if you increase forward speed, the rotation speed is decreased which means if you want to turn faster you need to stop your ship first. Also each weapons has different cooldowns which means that when you change a weapon, you need to wait for it's cooldown first. Greek fire is currently the only weapon that can fire instantly upon selecting it. Game also includes the ability to change weapon direction (firing sides). You can either fire with the left ship cannons, the right ones or both.
Also there are some big fish roaming around the map just for fun having their own AI so that they don't collide with rocks and stuff!
Game Visual Transformation
As mentioned above, low poly meshes and textures were firstly used in the game. After I had most of my mechanisms setup, I decided one night to change everything visually and convert the game to "high poly" graphics. So that night, I found some higher quality assets, and removed all my previous low poly assets and in a few hours the game looked completely different as it was a totally new game! Aside from the graphics, in the back end gameplay systems nothing changed and all mechanisms remained the same, and that's the reason why the transformation was quickly.
Although I have no idea about a story yet, some basic information is that the game will take place during the 18-19th century around Greece or maybe Mediterranean as a whole. This is mostly important as to what flags, ships and factions will the game include, but we will see how exactly it will progress in the future.
I think one of the most important things is to talk about the future. Although I started developing the game just for fun, I would like to see it expanded in many ways. Here's a list of the things I am aiming to include in the future versions :
- Add more ships, items, weapons, maps, flags and sail colors! Who doesn't like more of everything??!
- Cool features on maps. If you play the game you will see the Whitestone Fortress which is a different kind of map since there are some AI cannons shooting so you will have to watch out for them. I want to add more cool gameplay surprises like this such as falling rocks (if in cave) or having some sea creatures to keep things more interesting and challenging!
- Item pickups. Currently you only start with specific items, but I want to add the ability to pickup items either spawned in specific areas or dropped by enemy ships.
- Improved health and ship destruction system. Currently the player ship has a health value that when you get shot you lose some health. It's a very simplistic system that I want to expand. For example, I want to make the system apart from having a "general" health, each "part" have each own health as well. Let's say you hit the masts or the sails. Wouldn't it be really cool, if masts got destroyed?! That would make things lots more interesting since having less masts or sails could affect your ship's speed and you would have to be more careful not to get shot.
- Better collision damage. Now, each ship receives a specific damage if it collides with anything. Expanding this will mean that if you hit an enemy with the front of the ship you will receive less damage and deal more damage to the enemy.
- Wind. It's a ship game yet there is no wind yet! I want to create a wind mechanism so that it affects your ship speed and force the player to be more careful and tactical depending on the map.
- Sea system! Sea is just a plain thing now and doesn't do anything! I want to further expand it and add waves and more cool water effects to make the game feel more realistic!
- Weather system. Weather is another thing I want to add. I combination with sea waves, it would be really fun to play on different weathers such as stormy or very windy weather and could affect the gameplay as well.
- Voices and sound effects! Game currently lacks voices and only music is playing. This is due to I wasn't able to find any free suitable voices to use like "Fire the cannons!" and etc... Adding such voices would make the game feel more immersive and improve the total atmosphere.
- Multiplayer options. I mentioned above some more realistic gameplay systems. I want to keep the game fun, so I would like to create options depending on the player settings, like the game to be more arcade or more realistic depending on the settings.
- More multiplayer game modes. The first game mode will probably be implementing teams, and maybe another one could implement Coop missions, but I will see with what other gameplay types I can come up with!
- Customization mode. While it's a nice thing to customize sail color and the flag, I would like to expand this system furthermore and give you more in depth customization that could affect the gameplay as well, so that even if you play multiplayer with the same ship, each player could customize it differently.
- Add player leveling system. Although it's not on my priority list, I would like to add a multiplayer leveling system. That means that as you play multiplayer games, you could possibly given player "perks" or some sort of skill tree and maybe more customization options for ships.
- Again not high on the list, some sort of in game currency would be fun so that in order to buy visual upgrades you will have to gather currency by playing multiplayer. Obviously I don't want to make the next EA game with tons on in game purchases to drain people of money and I want to keep things fun and just give a reason to actually play more multiplayer to try and unlock new things and give you a sense of progressing.
- Singleplayer mode. Not high on priority, I would like to add a singleplayer mode in the game. Not sure who it will look but I have certain ideas in mind.
It's been a long article and I hope it wasn't very tiring! The Alpha 1 (first release) will shortly be uploaded. Please keep in mind that this is the first alpha release and there will be bugs so please let me know what bugs you find. If you have any suggestions, questions or found any bugs let me know!
Good Luck Captains!
Gameplay video - Greece vs England (older version)