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):
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:
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 arcanefortune.com 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.