Development History

== Mehul / Swirve ==
Utopia's first game engine was essentially a clone of Mehul's previous game Falcon's Eye with many teamwork-type enhancements taken from BRE that weren't implemented in Earth. The engine was written by Mehul Pattel on Delphi with player and kingdom records serialized into text files (i.e., there is no DBMS). It consists of CGI modules running in the IIS webserver, with no separation of data, presentation or game logic. The user interface was based on HTML 4, pre-CSS style HTML is embedded directly into the application code.
Architecturally, it consists of CGI modules running in the IIS webserver, with no separation of data, presentation or game logic. 
Utopia came online in November 9, 1998 after a series of betas (referred to by players as "First Beta", "Long Beta" and "Short Beta"). This code was used on from beginning till Age of Rebirth on World of Legends server, all Ages on Battlefields server and many Ages of Genesis, Utopian Standoff, Great Utopian War and Second Great Utopian War.
At some point before selling Utopia Mehul added CSS libraries.
=== CGI Error ===
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
A most feared message, that used to plague the servers and cause downtime of up to 24 hours at a time. Naturally, this led to quite a lot of dissension especially when people were in the midst of wars.
This mistake was at Old Code, but now is absent in New one.
== OMAC/ JOLT ==
Brian and Sean described one the challenge of trying to understand the intentions behind how Utopia was setup in a 'very cryptic Delphi codebase'https://blog.utopia-game.com/post/10806710629/the-uf-news-interview-with-sean-brian on 07/04/24 Master accounts were setup that were separate to provinces and players had sign up and migrate their provinceshttps://web.archive.org/web/20081227092210/http://forums.jolt.co.uk/showthread.php?t=572228. 
Trading and players invites were added to the old (delphi) code under Jolt. Jolt changed the login algorithm after hacking issues in late 2008https://web.archive.org/web/20081225175435/http://forums.jolt.co.uk/showthread.php?t=576818. 
While the game was still owned by Jolt the developers provided updates and took questions on the code rewrite and future ambitions, including aims to include attack calculators and intel sharing in gamehttps://blog.utopia-game.com/post/10812385440/development-update-and-qa-27-may-2009 on 07/04/24. Rewriting the code base from delphi to python started during this period and the core game logic code was completed in April 2009https://blog.utopia-game.com/page/24 on 07/04/24 (thought not launched until the end of the year)
In september 2009 a wiki was created by a small group of volunteers to provide a guide for playershttps://blog.utopia-game.com/post/10811360396/development-update-and-qa on 07/04/24.
== Front Square ==
Utopia was rewritten to run on Python with Django web framework on an Apache webserver on Linux with MySQL. The user interfacewas based on HTML 4, CSS and Java Scripts.http://wiki.utopia-game.com/index.php?title=Brian_%26_Sean on 07/04/24. They faithfully recreated game logic and rounding, but did change some of the presentation e.g. pages not being presented as frameshttps://blog.utopia-game.com/post/10811293803/development-update-and-qa on 07/04/24. Invites and trading were reworked in the new code. 
In December 2009 the game code switched from Django Templates to Jinja for HTML rendering, the part of the site that created custom HTML on the fly. The Jinja templating engine produced an approximate a 25% server speed boost.https://blog.utopia-game.com/post/10813047337/developer-update-30-dec-2009 on 06/04/24 Ticking was also reworked to calculate changes to all provinces at the start of each hour, instead of updates being calculated as kingdoms and provinces were accessed to improve site performance. https://blog.utopia-game.com/post/10812212114/site-is-back-up-29-dec-2009 on 06/04/24
By September 2010 Brian and Sean considered the new code out of betahttps://blog.utopia-game.com/post/10813108651/the-coming-months-16-sept-2010 on 07/04/24Front Square added taunts and shared prototypes for player profile pages in October 2011https://blog.utopia-game.com/post/12038256901/new-age-features-the-era-of-supremacy on 06/04/24. The prototypes included player stats, however the implemented profile just had banner images and mottos. 
Offense points calculator added to the war roomhttps://blog.utopia-game.com/post/13824502231/new-feature-the-offensive-points-calculator on 06/04/24 to make easier for players calculate how many troops and generals to send on attacks. The calculator updated the number of points in real time as players changed the units entered in the war room. The calculation took into account all offensive factors such as the attack type, building and science bonuses, as well as basic elements like the number of troops you send. 
Front Square added anti cheat measures to prevent more cheating based on IP addresses.https://blog.utopia-game.com/post/13631505930/new-anticheat-measures-going-live-today on 06/04/24
In Age 53 (Feb 2012) work was done to the site's CSShttps://blog.utopia-game.com/post/16971358168/new-features-coming-soon-in-age-53 on 07/04/24 to updates layouts and typography. Premium features were also collected into a shop page and players became able to define how many days to set sitters for. 
The same age bookmarks and royal commands (target locations and short monarch messages on every page you can select kingdoms) were added in March 2012https://blog.utopia-game.com/post/18850864847/bookmarks-and-royal-commands on 07/04/24 The same month a survey was published to gather player views on new features and changes.
In age 54 (May 2012) recruitment features were addedhttps://blog.utopia-game.com/post/24132800812/recruitment-is-here on 07/04/24 to allow monarch's to launch recruitment campaigns in game. This feature aimed to allow players and monarch's to share information about the expereince, activity and knowledge required inititally based on account age and player self-assessmenthttp://forums.utopia-game.com/showthread.php?622364-In-game-recruitment-comments on 07/04/24. This was later changed to be measured scores, though the calcilation method is not clear.
In July 2012 a kingdom wide version of the hostility meter was developed to display for all players on their kingdom and War Room pageshttps://blog.utopia-game.com/post/27333825096/kingdom-wide-hostility-meter on 07/04/24. 
A new version of the Kingdom chat was integrated into the game in July 2012, allowingteams to discuss things in game following player feedback on this being a priorityhttps://blog.utopia-game.com/post/28402938443/kingdom-chat-the-official-release on 07/04/24. The new chat was built as a javascript chat box visible from all pages and showed which players are online and was rolled out slowly.
In August 2012 a recruitment chat was introduced to allow communication between monarchs and new recruitshttps://blog.utopia-game.com/post/28982351874/recruitment-chat on 07/04/24. This feature existed in Utopia for a long time without functioning properly. 
== MUGA ==
A contest to develop a new in game target finder was run in April 2017https://blog.utopia-game.com/post/159588446783/utopia-target-finder-contest on 07/04/24.
Kagge volunteered to develop an official Android app for utopia. The app went into open beta on 22/10/23https://discord.com/channels/398211456174260224/405605576681455616/1165572167472250921 on 23/04/24
MUGa shared a JSOn dump for target finders and 3rd party developers. this was updated to include additional informaiton in July 2022https://discord.com/channels/398211456174260224/405605576681455616/998031207503761428 on 24/04/24. 
APIs
The new intel site waslaunched in April 2023, built largely by volunteers including Spookycookiehttps://discord.com/channels/398211456174260224/405605576681455616/1094027297897590805 om 23/04/24
change discord bot to slash commands
in game features
draft calculator
New rankings pages were released on 20/12/23https://discord.com/channels/398211456174260224/405605576681455616/1187129551256563742 on 23/04/24
Overpop information was added to throne in Age105
Build tool was replaced in age 105, though the cost calculations were only added to the new version mid age (22/03/24)https://discord.com/channels/398211456174260224/405605576681455616/1220690532494344243 on 23/04/24
In Age 105 (30/03/34) Kagge announced work on updating the 14 year old version of Ubuntu the server runs on, planned to be executed in Age 106. 
== Future developments ==
new bot