Arcane Fortune

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

News and updates

RSS: all, releases only


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