Arcane Fortune

About  -  Screenshots  -  How to play  -  Wiki  -  Download  -  Video dev logs  -  AI  -  Forum  -  Donate

News and updates

RSS: all, releases only


I'm happy to release a new version of Arcane Fortune. I've decided to call this version (v0.4.0) the World Stage edition, because in it I've added a historical world scenario. It features a world map with (somewhat) accurate start locations for 25 civilizations (England, France, China, etc).

Here's the list of changes for this release:
  • Zones now cost money to create and come in different densities.
  • Two world map sizes with semi-realistic start locations.
  • A municipal water system (pipes, wells) -- as of now this is mostly a stand-in for a system that isn't fully functional yet.
  • Accessibility improvements to the tech and doctrine tree for screen readers. I've updated the wiki page describing how to navigate the trees. I'll be checking the game's Audiogames forum thread if anyone needs help with this or other features.
As usual, the source code for this release is available on github.

Due to some on-going time constraints, this release has been much smaller than what I had hoped. On my end, I suspect things will be back to normal in around 6 months (possibly longer, though). After which, I'll be able to work on the game at the rate I was around the v0.1.0 & v0.2.0 releases. In the mean time, I'm going to pause the Patreon so it won't charge in the interim. Before I resume the Patreon again, I'll make a post on there to give a heads up.

For v0.5.0, I'm expecting that I'll work on some of the features I was planning for v0.4.0 for that release. Although, I'm always happy to hear any ideas or suggestions. Feel free to reach out to me via email, or the forums.

As always, thank you to everyone who has supported this project via play testing, feedback, and with financial contributions.


Here's an initial progress update on the next version I'm working on which I'm calling TermCity (v0.4.0). Term being short for terminal, of course. So far, I've been working on zone density levels. I figured this would be a good first step in expanding the city-building side of the game and allow a little more control in how your cities develop. Also, I've started adding the basics of municipal water (wells, pipes).

Also in parallel I've been working on training a neural network to play a prototype end game that I'm working on for Arcane Fortune, as I've mentioned before. I've also posted about the idea on the forums. As of right now, I've finished re-implementing an approach I've previously used. That's the easy part. The hard part is actually getting it to work and rooting out bugs. It took me over a year (off and on) to get this approach to work with the game Go, as I've written about previously. I expect it could take at least this much time with the more complicated (rule-wise, maybe not in action-space) end-game I'm attempting to train the network on now. This is all to say that this may not make it into the game for several more releases. Part of the issue is that from start to finish, training neural networks with the GPU cards I have can take several months -- so iteration cycles are necessarily slow when it can take some while to even see if something is properly training or not. Slowly but surely we'll get there.

Unrelated to that, I've also made some changes to how the technology tree is shown in the game's screen reader mode. Next up on the accessibility side of things will likely be the doctrine tree which has similar problems to issues the technology tree had. The current plan is to try to work accessibility improvements like these interspersed with features like the ones mentioned above.


I've released the Noble War Edition (v0.3.0)! Here's what's new in this release:

  • Nobility - these families may join your empire and offer some advantages based on their personality and inclinations. For example, in diplomacy or war. Their opinions of you may change, however, depending on how you govern your empire.
  • A trade system to exchange resources and negotiate defensive pacts with other empires.
  • Kingdoms - sub-empires that may join your empire. Unlike noble houses, they retain more autonomy, but will share all the diplomatic relations (war/peace) with the parent empire.
  • Assassination - useful both to explore other cities (they can scale walls) and to rid the world of the presence of unwanted leaders and nobles.
  • Screen reader mode -- there is a page on the wiki which has more information about this mode and its features. Mostly the benefit of this mode is that the text cursor will be placed in relevant parts of the screen and some text can be tabbed through to help cue screen readers. There are also other small changes I've made based on feedback I've received.
  • Changes to mouse controls making it easier to pan the map while moving a unit (thanks to lecom & Tchey on the forums for specific advice on this).
  • Miscellaneous bugfixes (and likely new bugs to replace them!)
  • Performance optimizations -- some of which might not be noticable since the nobility might slow the game down nearly as much as I've managed to speed it up.

As always, bug reports (particularly those you can reproduce) and any feedback is highly welcomed. Tell me what you like and don't like about the game right now and what you'd like to see next. If you have a bug report to submit, please consider sending your save game file. I've made a forum thread about the issues I do know about.

What's next? Since v0.3.0 was focused mostly on relations between your empire and others, I think I'll attempt to focus the next release on the domestic city building side of things. For example: unique events and festivals you could hold (the nobility do something like this in the current release, but I'd like to expand it to be a bit more impactful -- this is based on discussions we've had on the forums). Also, something like different wealth levels and tax rates (like the SimCity games...), in addition to having the education levels matter more -- presently they aren't as impactful as I'd like.

I might also work on creating some historical scenarios or at least an earth-like world map for the next release. Also, I'd like to continue work on some aspects near the end-game that I mentioned before and have talked more about on the forums.

I have a habit of planning to work on one thing and then working on something largely unrelated, so the above is more like my thinking right now rather than an unchanging plan. Some of this will likely be shaped by the feedback I get from the current release.

Some of the features I planned for v0.3.0 that I didn't end up adding this release I might shelve until the release after the next one since I suspect the next release is going to be more city-building centric.

Anyway, thanks as always to everyone who has supported this work, either through feedback, bug reports, or donations!


It's now possible in v0.3.0 to assassinate nobles that get out of hand. Similarly, you can assassinate the leaders of other civilizations too. While attempting an assassination can avoid the need for a war (if successful), it's also a nearly guaranteed way to start one if it fails.

I've also largely finished defensive pacts and have started working on kingdoms. Kingdoms have more autonomy than noble houses and can prevent the need to eliminate entire civilizations. Once weakened sufficiently, civilizations will be willing to join your empire as a kingdom instead of face the risk of complete extinction.

Next up I think I'll start working on federations. And after that I'll have to go back and do bug testing and re-group about what else I can add in the next month before releasing v0.3.0. I hope the bug testing phase doesn't last too long -- definitely I've been shot-gun adding things over the past while so I know there's a lot I'll have to work through.


Somewhat recently I took a detour and started working on some end-game features (i.e., expanding on what could happen when your empire reaches a certain point in technological development). I talk more about this on the forum. Anyway, because those features will take a significant amount of time to finish (possibly more than a year) and because several months have passed since my last release, I decided to switch back to working on the features I had originally planned for it (that is, nobility and expanding the diplomacy system).

My current plan is to release what I have added for the nobility and diplomacy in likely February. Anything that I don't finish by that time I'll probably work on for the release after since I don't want to have such long delays between releases.

The end-game features I mentioned are going to be more of a background project for me to work on -- mostly so that I can try to keep a semi-regular release schedule and add other (more incremental and not-as-time-consuming) features.

As for the nobility, I'm happy to say that, in what I've finished so far, they are becoming somewhat a demanding group of people. While you can ignore them completely, it may be to your loss because their acumen at warfare, diplomacy, and tech can be of worthwhile benefit to your empire (diplomacy & tech bonuses I'm still working on, but the warfare aspects are relatively functional now).

As of now, I've also added the basics of trading both with other civilizations and nobility.

As usual, you can also check out the roadmap to see more about what's planned (random, unplanned detours like the one mentioned in this post withstanding, though :) )


I started refactoring some of the code about a week ago and this is still underway. Actually, this is the third round of refactoring I started after releasing the Cults of Rebellion Edition. The first two rounds were focused on generalizing some of the AI and player data structures so that the nobility, which I've now added the bare-bones of, can semi-intelligently exist and act in the game. Now I'm working through the UI code so it will be easier in the future to add more dialog windows. The UI refactoring has become more substantial than the previous two rounds of refactoring.

After I finish the refactoring (which may take another week? It's very difficult to say), I'll resume what I originally planned for the next release: finish adding nobility with their personalities and ability to help (or hinder) you in war. And resume the initial efforts I made to expand the diplomacy system to allow various types of alliances, leagues, and federations. Definitely with all this code refactoring, I'm eager to resume actually adding features to the game again!

Oh, also, before I started refactoring I made some changes to help make the game more playable with screen readers. I also had made other (small) UI changes like allowing the mouse buttons to be re-mapped. The defaults in the next release now are such that you now move units and pan the map at the same time. Thanks to lecom, and Tchey on the AF forums for suggesting/elaborating on that change in particular.


Thanks to the person that made a donation recently :)

If you'd like to be listed on some type of donors page (I'm thinking something like this page), please let me know -- I can include a short quote from you, and any name or pseudo-name you want to go by. You can contact me via email, the forums or where ever else you find me.


The new Cults of Rebellion Edition (v0.2.0) is now available! Also provided is the source code. The how to guide has also been updated to explain how to use some of the new features and how to, hopefully, avoid your empire spiraling into uncontrollable rioting.

Here's what's in the new edition (more details are on the wiki):

  • Population happiness -- there are many ways to anger (and please) your residents, including obvious ones like over-taxing, being generally incompetent with running the economy, and not so obvious ones like ruling inconsistently with regards to things like war, technological development, and your empire's prevailing doctrine, if any.
  • Doctrines -- this is the lens through which your citizen's view your rule. While you cannot choose which doctrines your citizens follow, you can heavily influence it by the buildings you build and the doctrines you dedicate them to.
  • Crime -- a factor in angering your citizens.
  • health/sickness -- similar to the above.
  • Public polling and civic advisors -- they can help you navigate the nuanced beliefs your residents may develop and be key to making sure they do not grow increasingly unhappy. However, take their advice with a hint of skepticism -- you are the leader of your empire, after all.
  • Rioting -- if your residents grow too unhappy, they will take matters into their own hands.
  • Sectors (areas of the map you define) & auto patrolling of military units.
  • Brigades - for moving groups of units and assigning actions for them to all perform at once, or sequentially.
  • Gates (used in combination with city walls)
  • Option to have units follow the cursor (for convenience instead of moving the unit in discrete steps)
  • An additional auto-explore mode.
  • Color configuration (see the file game/config/colors.txt)
  • Mouse support for most actions in the game like: menus, the submap, moving around the map (grab and drag), selecting and moving units, and zooming in and out (mouse wheel). I haven't added mouse support for everything yet, so if the game doesn't respond to mouse clicks, use the keys that are shown on your screen.
  • Ability to queue multiple build unit orders for boot camps and city halls (ex. if you want to build multiple archers).
  • (Linux) support for more terminals -- see the release notes file in the game archive for more details.
  • Preliminary language localization to support translating the game to other languages.
  • Small bug fixes, with a more substantial fix regarding path finding. Units, in some situations, could move to locations that shouldn't have been possible (like into walled off cities), but this, as far as I can tell, shouldn't happen anymore.
There are still approximations for ulta-long-distance paths (allowing the game to run faster). When units are near water, this can sometimes lead to weird results -- just think of it like your units can swim through small amounts of water on long journeys.

Bugs are expected, so save often. Because events are partly random, the game can sometimes crash but on reload it'll run fine without crashing again. If you do find something that crashes every time you reload or do something specifically, please let me know.

Thanks to everyone that's provided feedback so far. Some of the features in this release are from it -- see the readme.txt for specific acknowledgments!

The wiki has a roadmap of what I'm planning to work on for the next release: nobility/fiefdoms (vassal-like states that can join your empire and that you indirectly control -- supposing you don't make them hate you too much) and expanded diplomacy with alliances & trading will be (likely) coming in the next release.

Feedback and suggestions are very much appreciated and wanted -- consider joining our forums. If you find anything about the gameplay that you do or don't like, let me know. Similarly if anything about the gameplay is unintutive or tedious, please let me know -- it's possible other people will have a similar experience as you and means it's something I'd want to improve.


Say hello to your new civic advisors -- coming in the Cults of Rebellion Edition! They will help you navigate your empire's residents nuanced beliefs and moods. However, you'll have to take their advice with a grain of salt...


The new Cults of Rebellion Edition (v0.2.0) is underway. This edition will expand the role your residents have on your empire, giving them something like an opinion about the quality of your rule. Whether or not they are happy with your ruling-style will be based on factors such as the doctrines or cults, if any, that they follow, their employment, or lack of, tax rates, crime, and their health. You might ask, as their ruler, why would you even care about what they think? Well, the simple answer is you won't have to if you're prepared for them to start rioting and rebelling against you.

As of now, I've finished implementing the basic components of the doctrine, happiness, crime, and health systems, however, a substantial, maybe even the majority of the work, remains in getting these systems reasonably balanced with each other and the game overall. Also, I still have to add the rioting/rebellion system. Although, I suspect the rioting system will be less work than the balancing.

I hope to release this next edition in, approximately, 2 months time.


I've released a minor update (v0.1.1) to the Rule of Combat edition. This update adds support for custom keybindings. See the file config/keyboard.txt (or game/config/keyboard.txt for Windows users). Thanks to Tchey for requesting this feature.


I've setup forums for the site. Come by and say hello!


I've released the Rule of Combat Edition (v0.1.0) of Arcane Fortune! This edition brings the beginnings of construction and deconstruction, through city building and war respectively. Take a look at the how to play guide and start building your empire! Here's a list of some of the major features of this release:

  • city zoning: residential, business, industrial, agricultural
  • city desirability based on road connectivity and distances
  • government funded buildings for increasing the desirability of your zones (ex. monuments)
  • taxation of your cities as the main source of income for funding your empire's expenses -- also higher taxes make your cities less desirable
  • natural resources -- for building stronger armies, and also increasing the desirability of your zones (ex. horses, iron)
  • land arability and elevation levels influence how desirable zoned land is (most influence is through arability)
  • technology tree and the unlocking new units, resources, and buildings
  • barbarian invaders
  • AI city planning, construction, and general empire management
  • city walls: for keeping out and slowing down invaders
  • embassies for threatening and declaring war on other civilizations
  • when a rival civilization is at war with you (or anyone) it will attempt to coordinate its military to destroy city fortifications and invade to conquer cities
  • late-game civilizations can become agressive and seek destruction rather than conquest. beware!
  • game creation options for controlling the world size and difficulty level (latter of which largely controls the bonuses the rival AI civilizations and barbarians get)
  • much of the game can be altered by editing the text-based configuration files stored in the 'config/' sub-directory. units, buildings, technologies, resources can be added or altered. AI difficulty levels can also be adjusted.

Being the first release, there will be bugs and problems -- save your games often -- the game will auto-save every so often, but it may not be enough.

Platform support and system requirements: Linux, Windows 7 (and newer), Mac OS X (tested only on 10.10, but theoretically I think it could work, now or eventually on as low as 10.7). The game requires 2 Gb of RAM. It generally keeps usage under 1.5 Gb (I have, earlier in development, run the game on an old netbook with 1 Gb of RAM and it did not run out of memory).

Let me know what you think of the game so far!


I've migrated to a new webhost and registered the domain name!


I posted a video describing the neural network quote generator I've added to Arcane Fortune. The AI uses this neural network to talk to you when you enter its embassies.


I've posted an article and video where I play a neural network trained with a self-supervised technique similar to AlphaGo Zero. This is not directly related to Arcane Fortune, but someday, eventually, I'd like to have the game utilize techniques from machine learning for the purpose of having challenging in-game adversaries.


I've posted a new video development log on Youtube describing some changes I've made to the game over the past few months. One of the most notable is that I've changed the details of the map generation and storage so that extremely large maps can be generated and played. Other notable changes are improved AI city planning, logging of game actions, plotting of values in the game over time (like gold), naming units and cities (randomly for each one created).

Future work includes further improving the AI to build multi-city empires (that are better fortified, with walls, for instance), having the AI start wars and attack, and adding buildings that can alter local zone demands (ex. theaters increasing residential zone demand).


I re-structured things so that all buildings, and unit types are loaded from text-configuration files to allow the possibility of modifying. I also finished the technology system, which allows you to build new units and buildings as technologies are discovered. The fog of war / ability to discover parts of the map is a work-in-progress, although this has been the most recent task I've switched to. I haven't yet altered/improved the AI probably much or at all since last time--getting the units and buildings correctly initialized from text-configuration files proved to be way more time-consuming than I had anticipated (however, on the other hand, the fog of war progress seems to be mildly faster than I thought).


As far as I can tell, I've finished porting all features I had originally written in C into Rust. The code seems relatively stable, but still fairly untested. It is now at 8,642 in Rust, compared with the 8,290 lines I had in C, however, I have full save/load functionality of games which I had only partially implemented in C (plus I used Rust generic types for much of it, so it's not entirely specific to the exact variable layouts I have). I'm pretty happy with the decision to port to Rust. The code feels cleaner, and I'm more confident that if/when current or future issues arise, I'll be able to debug them or prevent them altogether as I'm implementing them.

Now that the port seems complete, it's time to work on the AI, adding more buildings, and adding support for in-game technology, fog of war and more--more exciting parts, in some ways.


The movement, attacking, and building creation systems have now been ported over to Rust. The last major part will be getting the economics system working--I've already ported some of it over but have not really tested it yet. After that, I'll work on getting the display and other minor aspects ported and I'll be about up to where I was before I started migrating from C.

While not a great measure of progress, I now have 6,048 lines of code ported into Rust. I previously had written 8,290 in C. So that measure would put me at about 73% done with the porting of what I had. It'll be moderately interesting to see how close the line counts are when I finish--certainly a lot of things like memory management don't have to be as explicitly managed in Rust (reducing line counts) but other aspects dealing around unwrapping nested "Option" values end up making code more verbose in other ways.


I've started looking into Rust and have been spending most of my time in the past few weeks learning about it more. It's been appealing to me because it eliminates/automates a lot of the debugging code I write around most of my code in C. While development time might be slowed by using it somewhat--since the Rust compiler is sometimes very strict about things I think it shouldn't be (implied integer typing, for example) I'm getting the sense that it results in much less time spend debugging later due to it better guaranteeing memory safety.

So far, I've ported over the map generation, the basics of the display, and the menu system. Much more obviously needs to be done but I suspect some of the rest will be faster since I'm better understanding the language.

Before I started getting into Rust, I had previously expanded more on the economic system since my last post. Basically, each individual resident, business, etc. requires and tries to purchase or sell some amount of goods to want to stay living in your city. It was working reasonably well but the system definitely needed optimization.


I've begun working on the zone demands, similar to the RCI of SimCity. So far, the game now supports residents moving in and finding jobs--they find the closest job to them in a surrounding business, industrial, or agricultural zone. In the coming weeks I'll likely work on getting these values better utilized by the game and expanding on using these values more throughout the game to drive the economy.


This week I've added the basics of unit production for city halls and boot camps. So, you can now produce workers, explorers, warriors, and archers. Also since last week is the ability to zone residential, business, agricultural, and industrial areas. The basics of economics and building developments on zoned regions will probably be my focus next.


Welcome! This is the first entry for my game Arcane Fortune. I'm intending for this game to combine the best parts of Civilization, SimCity, and the level of detail and realism approaching Dwarf Fortress. The game is entirely console based and can be run on GNU/Linux, Windows (Cygwin), and OS X. The game can also be run remotely and connected to from the browser with Shell In A Box (a SSH client and terminal emulator for your browser).

As of this writing, I've been developing the game for about five weeks. The basics of map generation, visualization have been finished. The basics of units (workers, solders) and their basic actions (fortify, move, disband, and passing turns) have been added. I've also added a few worker-specific actions: zoning land (residential, business, agricultural, and industrial zones), and building City Halls.

There is a lot more to come. In the coming weeks, I'm going to work more on buildings, unit production, and, hopefully, some basic AI. On the longer-term, there should be significant work ahead to create the truly immersive game I'm imagining--all major aspects of running an empire need to be touched on: the economy, warfare, diplomacy, social movements, religion, public approval, research, technology, public policy, and probably others as well.

Contact me