7 June 2016

First Alpha Test Push

We are closing on the alpha test and Kickstarter launch, so I am going to cease regular posting on the blog for a bit during the final push to the first alpha test phase such that I can focus on finishing the product.

á na márië,
gumshoe, out.

31 May 2016

Our Web Portal is Encrypted Now!

This week has been consumed with upgrading our servers to use SSL.  SSL is required to keep your usernames and passwords secure from hackers in transit between your computer and our servers.

We are using the new service "Let's Encrypt!" which offers free SSL certificates for any website. 

 The Let's Encrypt service has a Linux program that is installed as a service and updates the SSL certificate every 90 days automatically in the background.  I am quite happy that this service exists now, and thank all of the people involved in making Let's Encrypt a functional reality.

á na márië,
gumshoe, out.

24 May 2016

Game Development: Player Design Control

Today I wanted address some of our plans and ideas for including player input while maintaining prudence and suitability.  We firmly believe that player input as a whole is necessary to guiding design decisions; because as much as we are building a game that we love, we want the players to love it too.

However, being of sound mind and prudent judgment, we want to avoid a Boaty McBoatface or TayTweets scenarios where the internet trolls come out in force in order to trivialize populist initiatives such as this.  So, as you might imagine, we will not be giving players complete control of the direction of our game.

We have put a considerable amount of thought into this problem and presently have three major solution archetypes.

1. Structured Voting Application: Something akin to what Game2Gether at Amplitude Studios has done with their voting process, where the developers choose all of the voting choices and the players vote for it.

While this structure has promise and is a sure way to avoid issues, we also want to avoid creating an overly controlling referendum-type issue.
 (To any Russian readers, this is a gag meme and not reflective of reality.)

The structured voting application also fails to tap into the infinite creativity of players and leverage that to make new and innovative mechanics.  While I am confident in our team, there are only four of us and there will be thousands to millions of players.  The likelihood of a player having a brilliant idea is considerably higher than the likelihood of one of us having the same idea.

2. Voting Shares Experience Application: The second archetype that we came up with is a share-based voting system where everyone who has a verified email gets one vote, while people with accrued playtime will get additional votes.  This system could either be structured or unstructured as far as voting options are concerned.  This would allow more experienced and loyal players with seniority to have a greater say in the direction of the game, while still allowing new players to have input.  This system has more flexibility also in that we can reward people for reading the forums or blogging about FATES.  I hate to include Twitch in this list, but there are apparently Twitch chess channels.

3. Up-Down Voting Shares Application: The third paradigm that we considered is a Reddit- or StackOverflow-like system where you get both up-votes and down votes.  This system would be unstructured and allow anyone to input suggested developments, while still allowing for people to knock down silly ideas.   We would use a voting share system with this one also, likely in order to give active, long-time players more say into the direction of the game that they love.

We will probably end up using all three of these voting systems at various times during development, starting with the Structured Voting Application in alpha phases where to ambiguity of on the part of players is high and slowly migrating to an Up-Down Voting Share application when we are fully established and have a player base.

All of this will be subject to testing and development as we move forward though, but these are some of the ideas that we have been tossing around behind the scenes.

á na márië,
gumshoe, out.

17 May 2016

PostgreSQL 9.5 Upsert Capability

Our data permanence relies on PostgreSQL for its failure resistance.  So, far this week has been spent upgrading our Amazon Web Services relational database system to the new PostgreSQL 9.5.2 to include the Upsert capability.
Upsert, you say?

Upsert is a technical term for an insert or update of a data row rolled into a single transaction.  Prior to this I was jury rigging a solution in Java on the layer above the database, but now I can use the upsert to avoid all of the excess computational power required to juggle things in Java.

Why did take so long for PostgreSQL to implement, doesn't Oracle and MySQL do it already? 

Yes, MySQL has an INSERT OR UPDATE capability, but it doesn't care about concurrency issues, namely race-conditions and thus data integrity is not preserved in a MySQL INSERT OR UPDATE transaction when you have multiple threads interacting with the database at once.  The problems surrounding the insert or update are described very playfully in this post.  Oracle does atomically, thread-safe upsert already, but it is not open source, so to have an enterprise-level open source database include upsert is a big deal.

However, translating the upsert from Java to PostgreSQL has had an annoying and unforeseen consequence.  Heretofore the primary key assignment responsibilities lay in the PostgreSQL's 'bigserial' data-type which causes PostgreSQL to automatically create a sequence to increment the primary key.  However, the upsert statement in PostgresSQL does a conflict check that requires the potential key to be input into the statement like:
where the Primary Key field has to be included in the INSERT statement, otherwise you end up inserting ad infinitum because there is no conflict when you don't have a primary key that you want to insert.

So this precipitated a change in how keys are assigned on the server-side software, namely that primary key assignment now falls to the data cache rather than the bigserial of PostgreSQL.  It is annoying, but necessary to gain the atomic, thread-safe upsert that is completed in a single transaction.

á na márië,
gumshoe, out.

10 May 2016

Pace of FATES

The pace of a game plays into a lot of factors, and today I wanted to briefly discuss the pacing of FATES.  The pace of the game describes how quickly or slowly the game plays out.  The pace determines how tense the game is or how much thought can be put into playing it.  Many games are very fast-paced and require reaction more than proactive thought and strategy and FATES will fall very much into the proactive thought and strategy category.

FATES should, if our design plays out appropriately, play like a very expansive, very convoluted version of chess.  Most of the major players will be federations each vying for territory and influence in the Galactic Council and economic arenas, however there will likely be a whole host of smaller federations and single players who will fill the gaps in between the large factions potentially even serving as strategic buffers between major powers or even as mediators.

From server initialisation until someone wins should take around 6 months to 1 year, although there are parameters in place that can be tweaked to modify the pacing of the game.  This should produce a pacing appropriate for both busy people who can only devote a few minutes a day to playing and the retired or other people with copious amounts of free time to play.  Players will have plenty of time to consider moves and counter-moves and the only wrinkle that is presently foreseen is the timezone issue, where you have players who can execute actions during night time for other timezones thus limiting the response times for certain players.  We have been tossing around ideas such as standing substitutes and war masters for federations, but nothing is decided yet on whether this issue needs to be addressed or how.

The goals of the alpha and betas tests will preclude a long duration game and thus the pacing will be modified such that alpha and beta games (except for open beta) develop much more quickly and reaction time will be significantly less due to testing constraints.

All of this will be subject to testing and user feedback however.

Later, I will be ready to discuss our plans for how we make use of user feedback and how we will collect it.

á na márië,
gumshoe, out.

3 May 2016

Startups and Passion

So, I am going to take a random dive off to left field this week, and discuss some of the challenges that our company has faced throughout its existence and thank the solid team that has forded ahead regardless.

I have had people ask me, "How are you surviving?"  I work.  Connor works.  Adam works. Amy works.  This company is our passion.  We are all pouring time and energy into it on the side of our self-supporting careers.  So, that alone shows you the dedication of our team.

It has always been like this though.

Starting new companies is always a precarious endeavour.  We are always teetering on the precipice of going under and only by sheer force of will and magnitude of talent have we survived and continue to survive.

This is a tribute post to our development team, Amy, Connor, and Adam.

These individuals have made this project possible so far, and I wanted to stop for a moment in the developer's blog and say thanks.  Because without their dedication this game would not even be a shade of what it is already.

á na márië,
gumshoe, out.

26 April 2016

Determinism and Gaming

Determinism, or the belief that everything is calculable according to mathematics, is a prevailing viewpoint in modern Western humanist philosophy.  People like determinism because it is predictable.  It allows people to feel like they can control the universe.  This feeling of control makes them feel more confident of future outcomes and thus better able to deal with abstract circumstances.

Most games are deterministic, at least on some level.  Determinism in games implies that the use of pseudo-random number generators (PRNG) is minimal.  It means that when you attack the same problem with the same solution you will always get the same result.  This plays into players' expectations and behavior in that they will typically only move when they know they will win.  For some games this is a positive trait to breed into players, while in others it produces boredom and monotony.  In the case of an MMO, the inherent irrationality of players produces some randomness, regardless of whether the game itself is deterministic or not, so the need for non-determinism is less necessary.  For FATES, most of this game will be deterministic.  If you build a farm on a given planet multiple times, it will produce the same amount of food for a given employment and power level.  If you design a starship, it will cost the same amount of resources (excepting currency) to produce every single variant of that starship design.

However, determinism is boring.  It also doesn't allow us to experiment in the fields of artificial intelligence and statistical system control, and part of the reason for the existence of our company is to allow us to provide funds for our team to improve their knowledge of every area that interests them.  So, in FATES, there will be a number of non-deterministic pieces.  For alpha, there will be no non-deterministic features, because that makes debugging significantly harder, and we want to produce a bug-free game for trustworthy alpha testing.  However, by the beta phases, we will be introducing a non-deterministic engine into the combat mechanics.  This is the 'black swan' event generator that I described in the combat mechanics post earlier.  This event generator will fundamentally rely on a pseudo-random number generator with a low-probability, high-impact outcome to randomly modify the combat losses on both side to redetermine the outcome.  This will add some non-determinism to the game, and make it more interesting.

For now, the combat mechanic event generator is the only planned non-deterministic feature.  I expect that the markets and diplomacy will exhibit non-deterministic behavior simply because people and their choices are deeply involved, but these will not be possessed of non-deterministic design.

Hopefully, this improves your understanding of the role of fundamental philosophy in game design and allows you more insight into our design decisions going forward.

Until next time.

á na márië,
gumshoe, out.

19 April 2016

Where We Are Now: April 2016 Edition

Hey all.

Brief update on our progress lately. 

We are still plugging away at the alpha client and have had a couple of major architectural changes.  First, we migrated the server-side cache from ConcurrentHashMap to Redis.  That was the easy part.  Second, we migrated the chat system from a polling AJAX to WebSockets.  This has proved much more difficult and tricky, but after several weeks of work should be done.

So our Alpha 1 feature list is looking like:

Alpha 1 mechanics:
  •     Stars and galaxy - DONE
  •     Planets - MOSTLY DONE
  •     Planetary cities - DONE
  •     Starship design - DONE
  •     Starship production - DONE
  •     Fleet creation - MOSTLY DONE
  •     Research tree - MOSTLY DONE
  •     Fiat currencies - DONE
  •     Sovereign debt market - BEING DESIGNED
  •     Galaxy chat - DONE
  •     Technology tree - IN PROGRESS
  •     Fleet travel between stars - MOSTLY DONE
  •     Fog of war - DONE
We are planning on Kickstarter video shoot for sometime in June, then a few weeks of editing and we should be ready to alpha testing and Kickstarter goodness.

Fun times!

á na márië,
gumshoe, out.

12 April 2016

Culture, Sway, and Discord

The economics of FATES has already been addressed, but I wanted to address in more detail the non-combat mechanics for changing planetary ownership.  The three primary factors in determining civic planetary ownership are culture, sway, and discord.
Culture, in FATES, is an abstract representation for the racial properties of a given player's populace.  Racial properties such as individualistic, industriousness, taxonomy, and subterranean dictate what types of planets that player empires can colonise and how their populace grow and develop.  Since the culture is both a physical and abstract property, players will have the option of eventually ending up with mixed culture empires, or they can maintain the cultural purity of their own racial archetype.  Each option will present opportunities and challenges.  If the player pursues a multicultural strategy, they will suffer from increased discord on planets not in line with the dominant culture in the empire due to sheer cultural differences.  However, one also gains the benefits of additional culture's positive and negative attributes at those same planets.  Player's who retain cultural purity will have much less discord to deal with due to uniformity of thought and action, but they also lose access to any of the traits from foreign cultures.  As a physical property, players will also be able to trade planets or colony ships with your particular culture to other players in order to allow them to colonise non-optimal planet types in their region of space.

The discord factor, mentioned briefly before, is a key game mechanic that allows planets to change allegiance between various player empires in the game.  Discord is a measurement of a planetary population's unhappiness with the current regime.  The discord exists to enable non-military options for transferring planetary ownership in lieu of raw military invasion and takeover.  The discord is tracked as a whole number ranging from zero to one hundred.  The discord matters most significantly when it exceeds 80, since that is when a planet will officially begin a revolt to divorce itself from the present owner.  When the discord on a given planet reaches 90, the planet will swap allegiance to the next highest sway player empire and significantly reduce the discord to give that player a chance to stabilize the political situation on their newly acquired planet.  The factors that get fed into the discord number include things like taxation rate, food rations, proximity to allied and friendly planets, presence of allied or friendly troops or fleets, presence of allied or friendly counter-intelligence officers, presence of subversion agents, sway divergences, economic prosperity, unemployment, and military conflicts taking place near or at the planet.  All of these factors will play into a planet's discord and thus into the ability of enemies to flip planets' allegiances.  The discord will also play into tax compliance, with the tax compliance decreasing as the discord exceeds 40.

The prime determining factor when a planet changes allegiance due to revolt is sway.  The sway is a measure of the relative cultural and political influence of a given player empire on a given planet.  The sway exists to incentivise territoriality by increasing the difficulty of maintaining far flung colonies away from a player's main territory.  The sway is calculated at every point in space and radiates out from each planet that a player owns decreasing exponentially with distance.  The sway values for each planet will overlap creating increased sway within a player's territory and making lone colonisation efforts difficult for enemies.  This should encourage player's to keep their territory as contiguous as possible and prevent enemies from dropping hostile colonies into the middle of any given player or federation's territory.  The sway divergence, as a factor in the discord, will eventually cause such a lone planet to revolt and join the dominant empire of the area, unless it is supported by significant military forces to enforce law and order of the enemy empire.  One of the properties of a federation, with regard to sway, is collectivised sway values that operate at a multiplier for all federation members.  The amplified federation sway will help to maintain order within a federation and disincentivise players, especially key members, from leaving a federation.  If a player is deep within a federation's territory and leaves the federation, their planets on the borders will suffer from increased discord, potentially revolting from them and joining the nearest federation member.

All of these factors should allow the non-military player to wield leverage over militaristic players, and help them to compete on par with the military play style paradigm players.

á na márië,
gumshoe, out

5 April 2016

Play Style Paradigms

As with all 4x games, FATES: Carpe Moerae will support the orthodox military strategy of domination by raw force, however I want to address in more detail some of the other play style paradigms that FATES: Carpe Moerae will be designed to support.  In many 4x games , the non-military paradigms are often papered over and released with little strategic depth, and this is an area where FATES: Carpe Moerae is being designed to shine.

The first paradigm that FATES will be designed to support is the economic powerhouse player.
This empire will be the financier of the galaxy and will be first and foremost marked by excellent management of their fiat currency to be the most valuable fiat currency in the galaxy.  A single unit of this player's currency will buy hundreds to thousands of other player's money, allowing them to finance wars and buy and sell favors for pennies on the dollar.  This paradigm will also be marked by extensive trading of resources and other player's sovereign bonds in order to create and retain leverage over every other major power player in the galaxy.  The support of this player will mean a sure path to victory for their allies or minions and ample resources for waging galaxy spanning wars.  However, following a purely economic power broker paradigm will force reliance on others for raw security where economic leverage alone fails.  This paradigm will be well integrated into the galactic system, possessed of immense resource storage and shipping capacity, and well-ingrained into the political wrangling in the galaxy.  These players will be the Rothschild family of the galaxy, always in the backdrop pulling strings and financing allies and enemies alike to achieve their own or their federation's ends.

The next paradigm that FATES will be designed to support is the Mr. Universe player.
This paradigm will be marked by extensive intelligence capabilities allowing this player to be the closest thing to omniscience that will exist in the galaxy.  This player will know everything that goes on.  All of the backroom deals, troop deployments, fleet movements, dossiers on every governor, admiral, and player in the galaxy, and a myriad of other useful and salable information.  The juiciest bits and bytes of galactic gossip will be available for the right price.  However, this paradigm will go well beyond simply information.  Need an admiral assassinated just prior to a crucial battle?  A somnambulant public awoken to rebel against the newly minted tyrannical image?  Sabotaging that pesky hypergate ferrying your enemy's armadas to your front door?  The legion of agents at this player's disposal will make all of these actions possible to well-financed buyers.  The line between shadow and truth will be adroitly walked and yield profitable returns for elegant and silent solutions to pesky problems.  This player can either run completely independent of any federation, working for the highest bidder, or operate as the intelligence arm of a galaxy-spanning federation.

The third paradigm that FATES is being designed to support is the cultural power player.
This player will be focused on enhancing cultural influence in the galaxy by means of political sway with nearby star systems.  The culture player will be hallmarked by cultural relics and treasures that are the envy of the galaxy's civilized population.  When other empire's fail to meet their populace' expectation of leadership, this player is ready to fill the lives of those lost souls with cultural meaning and galactic significance.  The cultural power player will acquire new planets by leveraging the discord of nearby enemies and allies systems; and when secessionist movements arise, they are the next most significant influential empire and welcome the new people with open arms and competent political leadership.  The culture player will still need to focus on self defense, or rely on a federation for defense, but they will remain mostly neutral in nearby wars, seeking only to pickup the pieces left after conflicts.  This player can either be a solo pacifist, seeking only to make their own way in the galaxy or a member of a federation serving as a buffer zone to acquire malcontent enemy worlds that secede due to nearby federation conflicts.

The final play style paradigm that FATES will support is the technological player.
This style of play will revolve around copious numbers of research facilities and personnel.  The technological player will advance in the sciences quickly, creating new ways to leverage high technology solutions to social problems and galactic conflicts.  The technological player will seek to be years ahead of competition technically, both in civic and warfare technologies.  Presently, technology transfer is going to be limited, but the technology player will be able to trade away already produced advanced ships and planets for use by allies.  This will allow the technology player to maintain technical dominance and still supply advanced technology to friends, allies, and minions in order to maintain technical leverage to affect outcomes in their or their federation's favor.

In all likelihood though, players will not cleanly fall into one category or another but the paradigms that are described here are extreme cases that FATES is being designed to support.  Players will very likely employ a wide variety of paradigms with several more focused than others.  There have been other paradigms tossed around in various discussions, but these four are the primary ones that are clearly defined right now.

Hopefully, you can see yourself in one or more of these paradigms and think in relation to the others, as each of these paradigms will be necessary for a federation to succeed in FATES: Carpe Moerae.

Until next time.

á na márië,
gumshoe, out

29 March 2016

Session Caching: Now Powered by Jedis!

So, recently, I changed over the backend session cache from a server-specific Java ConcurrentHashMap implementation to a Redis cache.  

Our session caching system is now powered by Jedis!
But seriously, Jedis is the Java implementation (one of several) of the access client to the Redis cache.  

The Redis cache itself is an impressively small -- only 13Mb of RAM running the server on Windows 7 -- and stores keys as hashed strings to save space for people who don't already hash their cache keys.  I am storing the sessions as JSON strings using Google's Gson to serialize and deserialize the JSON to and from my custom session objects.  The memory usage of the Redis compared to the ConcurrentHashMap that I was using are similar, but I gain the ability to access Redis from other servers in the same VPN as my other backend servers, so I can skip my clever passing of encrypted sessions via HTTP parameters.

The Jedis client itself is fairly compact and straightforward to use for the most part.  The only slightly complicated piece is the pooling, but it operates on the Apache Commons Pool 2 library, so there is copious amounts of documentation for it.

On top of this, I wrapped the Jedis in an API to mirror the ConcurrentHashMap API that my previous cache used, so it was a simple drop in solution for the implementation and only took about 1 hour of time to complete, which was incredible.  Most of my coding takes several hours to do and then hours to days to sometimes weeks of debugging.  So, to have it just work was astounding and speaks highly to the quality of the programming of the Jedis folks.

 á na márië,
gumshoe, out

22 March 2016

Economics : Part II

This post is going to introduce some basics of what a fiat currency is, how it works, and why it is important enough to be included in this game.  This article will be a bit dense, but I will try to keep it as simple and straightforward as possible.

Fiat currencies (or fiat money) are imaginary units of value created and issued by a government which derives its value by the faith of a people in the competency and stability of said government.

In other words, it is funny money that gets value from you and I using it.  It's like Monopoly, only on a far grander scale.

The fiat currency works by a dizzying array of complicated mechanisms only a handful of which will be modeled in the alpha and beta versions of this game, namely the exchange markets and the sovereign debt markets.  These two, in simplified forms, will be sufficient to give players of FATES: Carpe Moerae the experience that only central bankers (like those at the U.S. Federal Reserve or Bank of England, etc.) receive.

The exchange markets operate by allowing individuals the capacity to turn one unit of currency from a nation into a set number of another currency from another country.  Most of this exchange will be done behind the scenes in FATES: Carpe Moerae using a linear multiplier to compare all player currencies to one.  From there, the computer will simply divide and multiply to display all pricing data in your currency in game, so the complexity should be minimal, at least on the surface.  What you will notice, however, is the fluctuation -- sometimes extreme -- of prices as both your own currency and those of every other player on your server change in value.

The currency model, currently, is very simplistic, and will be expanded to more closely model real global finance as we go forward.  At present, it operates on a simple algorithm.  You can print money and you can spend it.   When you spend it, the value of your currency goes down, meaning that one unit of your currency will buy fewer goods and resources.  When you tax, trade, and invest, the value of your currency will go up by a set amount.  In managing the process of spending and producing, you will be able to have control over the value of your currency.  Will you choose to keep a highly valued currency and be able to purchase lots of resources for very little, or will you devalue your currency and be able to undercut market prices easily because of currency exchange rates?  These are choices that you will need to consider in the long run if you want to be successful in FATES: Carpe Moerae.

The sovereign debt markets will be a bit more complicated and are not fully designed or implemented yet.  The idea of sovereign debt markets is the players will be able to invest in their friends (or enemies) in order to facilitate growth or to create dependence scenarios to create leverage.  The bonds will be redeemable at expiration for the base amount plus the interest rate on a given player's debt.  The debt can be used in lieu of printing currency and can be demanded back at any point in time by the player lending the money.  This will create a wide range of geopolitical scenarios and a means of producing, maintaining, and exerting leverage on other players in FATES.

We have tossed around other ideas in expansion to these two primary features, such as allowing federations to issue currency and subsume the responsibilities from individual players to the federation leaders, much like how the European Monetary Union works.

Ultimately, though, this will be a grand experiment to see how each player manages their economy and finances and see how these elements play out in the player psychology and interactions between players.  In learning to identify and manage their own currency value, players will get a good feel for how fiat currency works in the real world, and hopefully become more prudent about voting with regards to the dangers that fiat money presents to a society.

It will be interesting, for sure.

á na márië,
gumshoe, out

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.

26 January 2016

Where We Are Now: January 2016 Edition

People -- chiefly gamers, friends, and family -- constantly ask me, "How close to done are you?"

This project is going to be divided into five primary phases: Pre-alpha, Alpha 1, Alpha 2, Closed Beta, and Open Beta prior to final product launch.

Across the overall project, I would estimate that we are 20-25% finished with all of the mechanics that we have presently planned for the game.

Alpha 1 will be a closed test by invite only.  We already have a list of around 16 players who have expressed interest in testing the Alpha 1 version of the game.

Alpha 1 mechanics:
  • Stars and galaxy - DONE
  • Planets - MOSTLY DONE
  • Planetary cities - MOSTLY DONE
  • Starship design - MOSTLY DONE
  • Starship production - MOSTLY DONE
  • Fleet creation - MOSTLY DONE
  • Research tree - MOSTLY DONE
  • Fiat currencies - MOSTLY DONE
  • Galaxy chat - MOSTLY DONE
  • Technology tree - IN PROGRESS
  • Fleet travel - IN PROGRESS
  • Fleet travel between stars - IN PROGRESS
  • Fog of war - IN PROGRESS
By the time we reach Alpha 1, the game should be playable and empire expansion and basic platform and bug fixes will be the primary objective.

Based on our current progress and assuming no catastrophic events, I expect that we will be prepared for Alpha 1 within the next two to eight months.

Alpha 2 will also consist of closed testing by invite and players contributing to our KickStarter

The Alpha 2 features will generally (subject to change) include:
  • Fleet combat & formations
  • Planetary governors and fleet admirals
  • Galactic Exchange for resource trading
  • Galactic Council for diplomacy
  • Planetary Sway, Discord, & revolt
  • Espionage, Assassination, Sabotage, and Subversion spying

The Closed Beta will consist of a test by invite only, except the player list should expand to at least 1000.

The Closed Beta features will generally (subject to change) include:
  • Federations (the 'guilds' in this game)
  • Federation-level victory, bonuses, flagships, etc.
  • Expanded trade and economics
  • CETU star systems, fleets, and technology
  • AI helper agents
The Open Beta will be a freely available test focused chiefly on ironing out bugs across the entire game and load testing servers.

So, now you know where we are, where we are going, and where you might fit into it.

á na márië,
gumshoe, out.

19 January 2016

Vision and Mission Behind FATES: Carpe Moerae

Greetings, I am Andrew VanLoo, lead developer on the massively multiplayer online (MMO) real time strategy game (RTS) currently titled "FATES: Carpe Moerae," and I would like to communicate in this inaugural post the vision and mission that Adam and I have in creating this game.

First allow me to share a bit of history, as it should help to clarify how we got to this point and where we are going.  Adam and I met many years ago on another MMORTS named "Lord of Ultima" (LoU) developed by Electronic Arts (EA) Phenomic and published by EA global.  The fundamental idea behind LoU was solid as was a good bit of their implementation.  However, the lead designer and mind behind LOU left EA, and the game began to lose its spark.  From that point the remaining people had difficulty keeping the game afloat, and it was eventually shut down.

Adam and I had both grown to love the game, but while playing through it for the second time, we both came to the mutual realisation that we could do it better.

Thus, in early 2013 the project that became FATES: Carpe Moerae was born. We began by researching various other RTS-style games and looking for a variety of mechanics that we found interesting, then took them and re-engineered them to give them new life within our game. After the selection of the science fiction theme, we began designing the technical aspects of the game in earnest in order enhance the graphics, designs and game mechanics seen in older games in the RTS genre. Our goal is for our game to be a pinnacle in both quality and quantity for years to come.

The vision of FATES: Carpe Moerae was further fleshed out by our gradual understanding that true information is becoming harder to reach and of lesser value to the general populace. We believe that games are the way of the future for transferring such knowledge and hope that gamers will enjoy the work we have put into researching and developing our scientific concepts within the game.  As such, we're incentivising players to research the various mechanics, resulting in the design decision to implement the advanced economic knowledge that I have been accumulating after 2008 to work making an economic model as close to reality as possible, including such advanced topics as fiat currencies and sovereign debt markets.

The mission of FATES: Carpe Moerae is to entertain, challenge, and educate players who engage with us in this venture.  The game will definitely incentivise you to learn about economics, as this aspect will be key, as one would expect from a strategy game.

In the spirit of education and broader societal value, we have also recently begun forging a relationship with the guys at Massively Multiplayer Science who are working to integrate science and gaming, in the hopes that we can make use of their scientific contacts to increase the fidelity and simulation value of our game, while still keeping it simple and stupidly easy to learn initially.

With time, luck, and a lot of hard work, we are hoping to bring to market a game which both entertains and educates people, retaking the ground that humanity in general has lost with regards to valuing knowledge.

We hope that you enjoy our final product and look forward to finishing it.

á na márië,
gumshoe, out.