I started constructing a list of the upgrades that we have talked about as well as thinking thorough the work required to make them possible. The more I think about it the more I realise that it's a much bigger task than it first would appear to be. Single player locally is a very big job as it would require almost every part of the game to be rewritten in some way since it relies on calls to backend where all the work is performed and then returned to client.
As I write I start to think that it might be better to start from scratch and take what code can be taken from current game. Which of course is a huge task as well but would get rid of legacy and an improved design could be set. Phew it's not a small mountain to look at
. It's not something I could do by myself (kids and family these days compared to when we made warbarons)
Here is the list which is not completed but as far as I got before I started to question myself.
SUPER MAJOR
Create a local single player in javascript.
- Requires every action to be updated since they are validated by the server currently and instead would have to be validated if it’s a multiplayer game but not in a singleplayer game.
- AI in multiplayer would still have to be same as now while AI in real singleplayer would have to be done on local machine.
- All the data about the game is stored in our database. For single player games this would have to be stored locally in indexedDB or local storage on client machine to make it possible to play without connection.
-Many parts of the game would need to be written in javascript such as battles or the AI would still not be able to run whiteout contacting our server making it slow and server costly.
-Take current PHP code and turn it into javascript and improve the locally run AI.
*Extra improvement option Ideally a player who press end turn and next player is AI in a multiplayer game could get a “wait for AI” sign and let the improved AI do its thing locally but if player closes client before the AI must instead run the server version to progress the game. Would require a lot of variation work on the server for the local AI.
MEDIUM SMALL
Units gain experience from battle.
-Units would need an EXP data and a levelling ladder as the gain experience.
-Battles would have to calculate exp for each unit after battle.
-Not required but if there would be an option to have the fight order also take exp into consideration which units fight first.
MAJOR
Quest system
-Would require upgrades to the map editor so quests can be designed by the map maker.
-Would require updates in game client to handle quests.
-Could require AI updates to make the AI consider quests.
-Could require work on the replay to store that data and show it during reply.
MEDIUM SMALL
Black map
-Add another layer on tiles with black that is permanently removed as the tiles come into vision.
-May be problematic for creating a decent AI or it can cheat and see the map.
MAJOR
Turning the game into an executable and possible add it to steam and make a phone / pad client.
-Everything except the actual game (community, mapeditor as well as replay) are still generated on the backend. They would have to be rewritten in javascript and separated from the backend to make it a good experience.
MAJOR
Other general improvements to consider
-Replacing our DIV-engine with a GPU based engine such as PIXI would improve render performance and make it possible to do smooth animations of units, sliding the view over the map smoothly.
-Right now real time data is sent using pusher which we pay for monthly. Could be replaced with our own nodeJS, socket.IO server but that requires work.
MEDIUM - MAJOR
-Just like there are resource houses we have art for 1 tile location where units could be produced that does not have a wall or possibility to stack ore than 8 units.
Other improvements that should be done if the rest is done
-Server has not be updated since 2010. Running old software versions with possible bugs. For example after 200 days online it will crash if not restarted because of a bug in linux kernel. Best option is probably to move game to Amazon web service or similar instead of running our own server.
-HTTPS is broken and needs to be fixed to get rid of insecure warnings on browser and to make integrations with Facebook, PayPal and other platforms possible again.
Other updates / improvements that we had written down to work on.
List maps in a better way. Currently its cumbersome to go through the maps.
Easier to find replays of specific maps for example
Give names to resource buildings, towers and watch towers
Coordinate button like there is in the map editor
Allow single player games to be started in odd teams. 1 vs 7 and so on.
AI improvements, for example trying to attack crow on mountain.
Allow you to see a replay of the previous turn that the enemy did when you open your turn.
Market for buying / selling items at a premium
Achievements to show on your page that you get for doing certain things. Like playing 5 games or winning certain number of games or doing interesting things within the game.
Make it possible to unregister from the game.
Instead of NAPs being enforced the way it is now there could be a different system where a NAP could be broken but it would be at a certain cost, either cost in gold that the player agreed on when signing the NAP or ir could be some sort of point system where a player who break NAPS lose reputation points that are carried between games making it hard for a unreliable player to get NAPs.
Make it possible to buy credits for other players.
Make it possible to add photo portraits to make it more personal
Heroes that step on a dock should not auto convert into ship and lose all their move points.