15 March 2016

Economics: Part I

Being a strategy game, the economics of the game will be absolutely essential to the evolution and development of players through the lifetime of the game.  Mastering the economics of any strategy game is the surest path to victory, and this game will be no different.  The prime difference between FATES and most other strategy games that you have played is that FATES economy is based very closely on the real world, especially the global financial system.  In mastering the economics in FATES, you will inevitably see the same mechanics at work on the global stage and various wars in the real world that are presently progressing in the shadows of awareness will become evident.

However, for part one of this series on economics, I am going to address simply the fundamental resources in FATES, how they will be acquired and used and how they will be transported and traded.  I will touch on the financial and currency stipulations, but I am going to save the meat of that for part II.

The economy in FATES will operate on five fundamental resources, metal, composite, ceramic, food, and currency.  The metals, composites, and ceramics will be used to construct planetary structures for developing individual colonies and to produce spacecraft for interstellar exploration, exploitation, and warfare.  The food resource will be used as a limiting consumption resource both for planetary populations and fleets based at planets on a per capita basis.  Each planetary population unit and spacecraft crew will eat a specific amount of food per second.  The food will either have to be produced at the planet or transported in from other systems.  There will be storage facilities for each specific resource that can be constructed on a planet surface in order to allow for specialized planetary infrastructure.  There are several types of colonies that we expect to arise naturally, such as food planets, industrial production planets, military outposts, commercial shipping planets, financial centers, and research planets.

Each resource will have specialized terrain features that increase production such as metal veins, springs, etc. that boost individual resource production in adjacent planetary slots.  Each planet will specialise in producing certain materials thus creating a need-based economy among players who will have excesses of certain materials and shortages of others.  These resources will be able to be traded on the Galactic Exchange for fiat currency units.  The Galactic Exchange will operate using each player's fiat currency and automatically calculate exchange rates and display the costs of resources available in the players own currency; however, the cost of resources will vary widely from player to player based on how well they manage their fiat currency.  A player with a very strong currency will be able to buy lots of resources inexpensively but will also be constrained in selling their resources.  Likewise, players who possess weak currencies will be able to sell their resources very cheaply on the Exchange, but will be unable to purchase resources easily or cheaply.

Thus management of the fiat currency will be paramount to successfully competing in FATES: Carpe Moerae.  If you do not wish to manage your currency, however, there will be an Archon available for purchase which will manage it for you.

The resources that are traded on the exchange will be transported and charged transportation fees based on distance from the seller to the buyer.  We have been tossing around the idea of pirates or privateers being able to raid resource shipments, but for now, these will not exist.

I will be addressing more details on the fiat currency system next week, but this should begin to give you an idea of how the economics in FATES: Carpe Moerae will operate.

á na márië,
gumshoe, out.

8 March 2016

FATES and Hardcore Gaming

FATES: Carpe Moerae will be a hardcore strategy game at its core.

What does this mean?  This means that if you lose all of your planets, you will be out of the game.

However, there will be some nuanced mechanics that will help to alleviate the impact on new and developing players to prevent them from being abused by larger and more developed player empires.  I want to discuss some of these mechanics in broader scopes and discuss how they are intended to work.

The primary way that new players will be protected is through the federation system.  There will be statistical mathematics in place that will very strongly incentivise federations -- especially the larger and more powerful ones -- to recruit in lower score players.  This mechanic operates on the basis of comparison of the score distribution of all of the players in a given federation and the score distribution of all players on the server and grant the federation a bonus to resource collection, taxation income, research, production, and construction based on how closely their federation player score distribution matches the servers'.  These bonuses will be the largest in the game -- around a maximum of +30% -- greater than all other factors.  This will discourage federations from stacking all of the best players into one federation, as doing so will yield a bonus of less than +1%, where as balancing a federation with new players and more experienced players will yield larger bonuses.

The second mechanic that will assist new players in developing their empires more quickly is a server birth time-based bonus that will slowly scale upward as the server ages.  This bonus will help to accelerate new players who join later in the life cycle of the server.  This bonus will decay over the span of a few weeks as the new player gains experience and develops their empire.  The server age bonus will allow them to catch up and help to alleviate the disadvantage of starting the game after the server has launched.

The third mechanic that will help to prevent new players from being abused is the galaxy placement algorithm.  This algorithm will seek to place new players as far from well established empires as possible and near any friends that they have indicated ahead of time through friend sharing links.  The galaxy placement algorithm will put some raw distance between new players and large empires giving them more time to develop their empires, awareness and knowledge.

The final presently planned mechanic that will aid new players is the Galactic Council diplomatic immunity or protection treaties.  These treaties will be voted on by a simple for-opposed vote and will take effect if the for votes outweigh the opposed votes.  As such, this mechanism will require the new player to have a sponsor already established in the Galactic Council -- and not have enemies also in the council, and can either be stand alone initiatives or part of larger negotiations.  These treaties will also be temporary and will be enforced by the CETU armada.

 So, while FATES: Carpe Moerae will be a hardcore strategy game by nature, there will be various mechanics in place to prevent new players from being abused.  All of these mechanics will be tested out in beta test phases and are always subject to change.  Hopefully, this post will allay the fears which some players have expressed to me already.

á na márië,
gumshoe, out.

1 March 2016

Technical Mumbo Jumbo

I am going to take a brief hiatus on discussing game mechanics to discuss some of the technical solutions that helped us get to where we are now.

This game runs on a couple of key technologies, some of which have emerged just in the last few years.  The first key technology is Java 2 Platform for Enterprise (J2EE) including the full servlet stack using Tomcat as our servlet container.  The second is HTML5 including the latest JavaScript.  These two technologies make up the backbone of our entire project, J2EE for the back-end server code and HTML5 for the client side code.

Originally, (around 2014) the back-end code relied on a PostgresQL database directly and this worked up until we needed to update millions of resource entries per second, at which point even the batched groupings of SQL statements, like,
UPDATE schema."TABLE_NAME" SET "RESOURCE"="RESOURCE" + "RESOURCE_CHANGE";
were still not fast enough to update all of the resources for every planet, since it was responsible for updating millions of entries.  This project nearly died here were it not for the clever thinking of one of our previous technical people, Cris, who later moved on from the project.  He suggest the idea of using an in-memory caching system, which ended up solving the speed problem completely.

We began by looking at existing caching solutions, such as memCacheD, Java Caching System, EhCache, and Google Guava, but we discarded them for a variety of reasons including excessive overhead, poor output formats, uncertain security, and poor performance in our cloud environment.  Ultimately, I ended up designing and building a customized caching system for this game specifically seeking to accomplish our odd set of goals of simplistic structure, ease of Json output without excessive transmutation, security, and speed.

The system revolves around storing a minimalistic view of the database in a Java object in the RAM of the server.  Surprisingly, the entire database in Java only amounts to about 1.6 Gb of RAM usage for 40,000 stars.

The system has the convenient property of allow us to output JSON without creating any new Java objects for most of the Application Program Interface (API).  The API covers all of the communication protocol between the game client and the server and most of the communication is done with HTTP GET requests.

The game client itself is an HTML5 abstraction that was created using the game development software Construct 2.  This program allowed us to quickly get a demonstration test client up and running displaying 100,000 stars immediately, so we selected this suite over other options like GameMaker, D3, or doing it in raw JavaScript.

So, looking at it altogether, the game stack looks something like this:
The PostgresQL database provides us with failure resistance, the Tomcat servlet container allows us to run all of the multi-threaded servlets and game engines that crunch numbers quickly, all of which are stored in the in-memory cache and fed to the game client via the servlet API.  The actual architecture is a little more complicated than this, but I don't want to bore you all.

I'll address other technical aspects in future posts.

á na márië,
gumshoe, out.

23 February 2016

Empire Expansion

As promised, I wanted to discuss orbital and ground combat in the greater context of empire expansion.  Since FATES: Carpe Moerae is a 4X space strategy game, expansion will be one of the key components of this game.

There will be four primary means of acquiring planets; colonization using colony ships, invasion using transport ships and ground forces, revolt as a result of high planetary discord, and diplomatic exchange deals.

Presently, only the colonization means exists in the live game client at the moment, so I will address this first.   Colonizing new planets requires a ship that possesses a colonization module to be installed on it, as well as a set number of resources and population per module.  Any ship can be equipped with colonization modules, including combat vessels, however, the ship is consumed upon founding a new colony, which needs to be taken into account when designing vessels.  But a combat colony ship, capable of defeating light resistance is very much possible in FATES: Carpe Moerae.  Another consequence of the modularity of the colonization process is that you can create heavy colony ships that deposit larger numbers of citizens and resources to assist in getting the new colony up and running more quickly.  Depending on how large of a ship hull that you are willing to use, it may be possible to completely populate a new planet especially smaller ones.

The second means of acquiring new planets is through invasion of existing planets using ground forces.  Presently, the only types of ground units are the militia and the marines.  The militia are planetary population units who volunteer to defend their home against extra-planetary invaders.  The militia units are automatically recruited from defending planetary population in the event of a ground invasion on their planet.  The marines are population units specially trained and equipped at a military training academy and able to be placed on board transport star ships.  These transport ships can be used to transport marines to other planets in order to invade and forcibly take over that planet.  Each planet in the galaxy is possessed of three orbitals, which must be under control of the attacking fleet before a ground invasion can be initiated or maintained.  The ground combat will consist of several waves that take place over the span of a few hours with each wave requiring positive control of all three orbitals to initiate each successive wave of ground invasion.  Upon the successful completion of all waves of ground invasion, control of the planet will be transferred to the attacking player.

This leads to the third means of acquiring planets, high planetary discord.  Discord is a measure of the planetary population's unhappiness with or fear of the current ruling government.  The discord calculation will be one of the more complex in the game, with a very large number of inputs including fleets present in orbit, number of marines garrisoned on the surface, food rations, employment, subversion agents' presence, counter-intelligence agents' presence, nearby empire sways, cultural influences, economic influences, and diplomatic policies, among other factors.  The discord is measured as a percent from zero to one hundred and a planet with 80%-plus discord is considered to be "in revolt", however the planet does not actually change allegiance until 90%.  However, the player to whom the planet switches allegiance to is not precisely controllable.  The empire that a planet in revolt switches allegiance to is controlled by an equally dizzying array of factors similar to the discord calculation with a bit of randomization thrown into the mix.  As such, causing planets to revolt will be a fairly straightforward process, however, getting them to revolt to a specific player will be much more difficult to control.

The final means of acquiring planets is through diplomatic exchanges.  Since planets are part of an empire's assets, they will be available to be exchanged as part of diplomatic negotiations.  The planets control will be exchanged once the deal is agreed upon by both parties.

Hopefully, this gives you a better idea of the presently planned means of expansion in FATES: Carpe Moerae.

á na márië,
gumshoe, out.

16 February 2016

Some Thoughts on Combat Mechanics

I have had several gamers ask me how the combat in FATES: Carpe Moerae works.  Presently, it doesn't.  The combat is not slated to be in the game until the Alpha 2 which is a long ways out still.

As far as attack and defense mechanics, the current plan -- which is subject to change -- is to implement a rock-paper-scissors damage model using four offensive types: beam, photonic (laser), missile, and kinetic and four defensive types: armor, shields, counter-weaponry, and velocity.  The are three other additional mechanic statistics that will play into combat being: structure, CETU attack, and CETU defense.  CETU attack and defense are special damage and defense types that trump all others.  It is these damage types that give our "all-powerful" AI civilization in the center of the galaxy it's potency.  More on CETU later though.

The combat mechanics will probably boil down to a summation of all allied attack types and allied defense types received by the server during a given second to determine the winner and loser of each second's battle with a black swan-style outcome randomization process.  This means that all of the allied attacking ships that arrive in a specific thousand millisecond time period will be lumped together into one "attack" and will be pitted against all summed allied defensive stats.  It is more-or-less an instantaneous determination based on overarching attack and defense stats.

The "black swan-style" event generator will occasionally (presently roughly one in one hundred thousand) create a loss multiplier on the units lost on each side creating extremely rare and highly unpredictable results, such as a very tiny fleet defeating a vast armada.  Under most normal circumstances (the other 99,999 times) the battle will go more or less as expected, e.g. the armada crushing the tiny fleet.  The statistical models dictating these events scale the intensity of the change with the probability, so a low intensity event will have a much higher probability than a high intensity event.  The highest intensity event that we are presently considering is around a 10,000x loss multiplier.  This will prevent people from creating reliable combat mechanic predictors and also make for some extremely epic tales of unbelievable victories (or losses).

There are a number of other mechanics that are presently planned that will significantly influence combat.

First are the fleet admirals.  The fleet admirals will be automatically created when a new fleet is created with a set of randomly generated statistics taken from the statistic pool for admirals.  The admirals will be transferable between various fleets if you want to boost a particular fleet's combat performance.  The admirals will level up based on their actions in game.  In other words, if your admiral is in charge of a large fleet of frigates, then his combat performance with frigates will improve, thereby increasing the overarching performance of any frigates in the fleet.  The fleet admirals will likely peak at around +20% bonus to combat statistics for ships, so that a very experienced fleet admiral has the possibility of making the difference between victory and defeat.  However, the fleet admirals will be able to be killed or captured.  If captured, depending on their loyalty, they will either resist -- making them unusable to your enemy, break -- making them yield information about your empire to your enemy, or turn -- making them join your opponent's military forces.  So there is a risk and reward consideration when sending experienced admirals into battle.  The admirals have one final way of being removed, which is through assassination.  Your spies can assassinate enemy admirals and vice versa.  When a fleet admiral is assassinated, a new admiral will be automatically created to replace him with the basic statistics.

The second set of mechanics that will influence combat is the technologies.  Ships with more advanced technologies will be more destructive and durable then lower technology ships.  So a smaller fleet of higher technology ships will be capable of defeating a much larger fleet of weaker ships.  The technologies on the ships will be fully customizable based on a space and energy limited system.  Each ship will be capable of housing any number of any type of weaponry or defenses, making player designed ships very important in FATES: Carpe Moerae, especially when used in conjunction with fleet formations.

The third piece of the combat puzzle is the fleet formations.  Fleet formations will dictate combat bonuses for the fleet as well as the loss structure.  The idea behind fleet formations is that you give attack bonuses to the ship types designated as the rear guard and defense detriments to the ship types designated as the vanguard.  Some of the attack fleet formations under consideration are: Fighter Screen, Frigate Line, and Capital Phalanx.  So, if you are running a Fighter Screen in a fleet with both strike craft, capital and super-capital ships, your fighter craft will be dealing less damage and taking more, while your capital and super-capital will be dealing more damage and taking less.  We have no solid numbers for these bonuses at the moment, but it will fall somewhere in the +/- 5-30% range.  The fleet formations will be a combat specific event, such that every time you order your fleet to attack, you can order a different formation.  We also plan on making a rock-paper-scissors type bonus/detriment multipliers between formations, such that the formation chosen for the attack or defense will influence the outcome significantly.  This will do two things.  First, it will allow more variability in the combat outcomes based on the formation that each player sends their fleets into battle in, and it will allow fleet and military intelligence to play a hugely significant role.  For example, if your spies discover what formation an incoming attack fleet is in prior to the attack, you can have your ships waiting in the appropriate defensive fleet formation to counter their attack formation.

All in all, the combat will ideally be mostly fair -- excepting black-swan events -- given that your fleet's admiral, technology, and formation are appropriately arrayed and equipped.

There has been some talk about us trying to do a turn-based, two-dimensional, ship-based, combat system, similar to what the classic game Master of Orion II did, but the issue that I have not fully figured out how to work around is the time element.  Being a Massive Multiplayer Online game, each player involved in combat may or may not be logged into the game when the attack occurs.  We could delay the attack until both attackers are present, but this yields additional strategic issues related to holding battle outcomes and potential abuse of such a system.  So, long story short, we will be pressing into alpha and probably beta using the instantaneously calculated battle outcomes until I can find a balanced and fair workaround for a more interactive combat scenario.

One final note.  There will be planetary combat, both orbital and ground-based, but these two concepts will take more space than I want to spend this week.  So, next week.

This gives you an idea of what we presently have planned for combat in FATES: Carpe Moerae, but these are very rough ideas and subject to change as we move into development of combat models.

á na márië,
gumshoe, out.

9 February 2016

Frame of Reference and Galaxy Details

This devlog is fast becoming a detailed Frequently Asked Questions, but such is life.  The dimensional frame of reference chosen for our game is two.  We chose a two-dimensional reference frame because of the simplicity of the graphics design, -- which is necessary for a four-person team to bring a game to market -- the simplicity of new players to quickly pick up the user interface controls, and the mirroring of some of our model games in the past.

FATES: Carpe Moerae is designed to be easy to learn and extremely difficult to master, and having a two dimensional frame of reference is a significant part of fulfilling the former.  The 2-D frame operates on a HTML5 JavaScript canvas with mouse and mouse wheel-based zoom and pan using mathematics to lay out a galaxy shape with any number of stars.  I kept the generation algorithm as generic and scalable as possible in order to allow us the greatest level of flexibility when tweaking game universe parameters going forward through our testing phases.

As far as star numbers, I have tested development clients using 10,000; 40,000; and 100,000 stars, so at a minimum there will be ten thousand stars with anywhere from zero to ten planets available for individual players to colonize.  So, we are looking at around 70,000 and 1,000,000 planets available for players to colonize.  Assuming players run up empires of 100-400 planets under administration at a given time, we expect to have anywhere from 1,000 to 10,000 players per server.

The galaxy generation algorithm itself clusters stars heavily near the center of the galaxy with stars scattered much more sparsely further out from the center.  We have input parameters that can be tweaked to control variational density each time we generate a new galaxy, so these parameters can be tweaked based on player input.

The stars are possessed of specific colors, which are based on scientific astronomical observations made over many centuries with us utilizing six basic star colors, including: red, orange, yellow, white, blue, and binary.  Each star color has been assigned a set a statistical input parameters that control how each specific star color generates planets orbiting it, such as biosphere, resources, planetary special properties, etc.

Going forward into the future, we will be working more closely with the scientists that the MMOS.ch guys have access to in order to further hone the accuracy of our stellar and planetary models and to help bring awareness of these scientists work to our players.  All of this will take place in future development cycles though, as we continue pressing forward.

This should give you an idea of how the galaxy will be generated and what you can expect from FATES: Carpe Moerae in terms of play field.

á na márië,
gumshoe, out.

2 February 2016

Monetisation: How we plan on monetising FATES: Carpe Moerae

Another question that I have received frequently that I would like to address here is: "How are you going to monetise your game?"

Our current monetisation model is "free to win", implying that if you are willing to spend adequate amounts of time playing this game, then you will be able to win this game without paying any money.

The fundamental idea behind this model is that gamers, and really people in general, have only one of two resources available to them to spend: time or money.  It has been an overriding design goal in FATES to maintain a healthy balance between people who have abundant time to spend and people who have abundant money to spend in order to prevent one type from gaining an unfair advantage over the other in our game.

Our present plan, which is currently unimplemented, is to have "Archons" available for purchase, which are little more than advanced artificial intelligences that will allow you to orchestrate your empire with a significantly smaller time investment of actual playtime.  The types of Archons that are presently planned to be available for purchase in the final game include: Military, Defense, Trade, Finance, Logistics, Intelligence, Diplomatic, Expansion, and Federation.  We may very well add other Archons or subdivide some of these into more precise tasks, but this is a starter list.  Each of the Archons is presently planned to cost anywhere from three to ten US dollars per month, and you will be able to purchase as many or as few as you want.

  • The Military Archon will manage offensive campaigns, scheduled attacks, retaliatory strikes, and other aggressive military actions.
  • The Defense Archon will manage defense fleet shuffling, attack response, construction and maintenance of planetary or orbital defensive facilities.
  • The Trade Archon will  manage buying and selling of resources on the Galactic Exchange, making every effort to buy low and sell high.
  • The Finance Archon will manage imperial finances including creation of currency, issuance of sovereign debt, as well as interest and repayments.
  • The Logistics Archon will manage constructions and development of existing colonies according to player-defined templates.
  • The Intelligence Archon will manage espionage, sabotage, subversion, assassination, and defensive special agents.
  • The Diplomatic Archon will help manage relations with other players and with the Galactic Council.
  • The Expansion Archon will manage scouting, discovery, deployment, and colonisation of new colonies to expand your empire.
  • The Federation Archon will be specifically tuned for Federation leaders and officers with tools such as attack coordination, federation-wide resource management, Moira construction and deployment, and other federation tasks.
We are hoping that this model will allow you to purchase services that will save you from having to spend actual playtime and allow you to take a more hands-off approach to managing your empire.

We will not be adding the Archons until the Closed Beta testing phase, and they will all be available freely to closed beta testers, so there is a lot of time to fully flesh out the free to win model further.

At least this gives you some idea of our currently planned monetisation scheme and a glimpse into the philosophy behind our design decisions.

á na márië,
gumshoe, out.