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