A major update has been pushed to how map timelapses work. Previously the video was created by literally recording the screen. There ended up being several problems with this.
Leaderboard and API Key Updates
A user interest survey has been running for a bit over 10 days. Thank you to everyone who participated. It really does help shape the direction of PDX Tools.
Here are the results of the survey:
Guides and a new home for content
A couple weeks ago I updated the home page to include a list of questions that PDX Tools can help answer, as I feel like there are so many features that it is hard to keep track of them (even for myself). If features were phrased as questions, I hoped it'd be more obvious to users what PDX Tools offers. Sure, questions as a form of marketing is cool, but what about the answers? Hopefully with this new rollout, the ease of creating content will allow me to link the questions with tailored guides.
Lights, camera, action: timelapse maps
The below video was generated entirely within the browser with pdx.tools from my latest EU4 run where I took Naples and achieved Mare Nostrum. Check out the save within pdx.tools.
New year, new version, new name: PDX Tools
Today marks the culmination of nearly a half a year's worth of work. A new version is upon us and it's the biggest yet.
The most visible change is the new name! Rakaly is now PDX Tools.
Not to be outdone, PDX Tools is completely open source. Two huge changes and we haven't even touched on features.
EU4 Origins has been released today and I'm happy to announce same day support in Rakaly. Thankfully the expansion is a flavor pack so there weren't any major changes necessary for Rakaly other than tweaks and adding achievements. But I still put together some of my musings so the blog would have an update as it's been a couple months since the last one! Also big things are in store for Rakaly in the near future so stay tuned.
Rakaly Status Report #12: next level compression
Optimizations found in how saves are uploaded, downloaded, and stored at rest resulted in a 2-3x reduction in bandwidth and up to a 2x reduction in time to parse shared saves. This benefits all Rakaly users as this made it easy to increase the save limit from 10 to 100. For those interested in the technical details: keep reading.
Rakaly Status Report #11: Map v2
Sorry for the radio silence for the past 3 months -- we've been busy. A lot of effort went into this and I wanted to make sure this would pan out before breaking the news:
We have a new map 🎉!
The new map is a large departure from the original map. Essentially we had to start from scratch. If interested, I wrote up some technical documentation about how we accomplished this and how it compares to other methods to simulate EU4's map. In short, I find map v2 to be the best in terms of realism, accuracy, performance, controls, and flexibility.
Rakaly Status Report #10: Survey Results and User Statistics
Rakaly's first user questionnaire is now closed. Thank you to the 20 people who took to the time to fill out the survey. Here are some of the results:
EU4 AI builds to force limit even if greater than supply limit
With the advent of mega cities introduced in EU4 leviathan, we're encountering a new class of bugs: bugs where a country's force limit outstrips their entire supply limit. A player would be able to adapt by building to their supply limit instead of their force limit, but the AI is does not yet realize this:
I'm excited to announce Rakaly has support for Leviathan! There were some interesting encounters along the way, but in the end, you can analyze and upload Leviathan saves like normal. In keeping with the decaying leaderboard, patch 1.29 has a 20% tax and patch 1.30 has a 10% tax to the number of days required to complete an achievement.
Link to survey Closed
Until now I've been relying on generous feedback from users who go out of their way to share their tips or tribulations. So I've written a short survey that should offer a streamline process for users to voice their views on Rakaly. I would be very thankful if you completed it.
EU4 AI Loves Its Trade Companies
While fleshing out the province details view in Rakaly, I stumbled across a trend: the AI over prioritized trade companies. The AI would prioritize buying investments until every trade company area looked like:
Thoughts on Converting PDS Clausewitz Syntax to JSON
After one is familiar with the PDS Clausewitz syntax, it becomes almost too tempting to try and convert it to JSON as both are document formats that share a lot of similarities, except the former is a undocumented format and the other is the world's most popular data interchange format. There are a lot of nuances in the conversion between the two, so I figured I'd take the time and do a brain dump of my thoughts.
Rakaly Status Report #9: The UI Refactor
I deployed a change yesterday that I have been working on for a month. Hopefully it wasn't noticeable -- that was the goal.
I wanted to see if I could restructure and refactor the entire frontend without anyone noticing. The refactor was large: source control states "294 changed files with 6960 additions and 17962 deletions". The feat is diminished somewhat with knowledge that some of those lines were autogenerated, but it is still a large change.
Rakaly Now Accepts All Saves as Uploads
Today marks the first day that Rakaly allows all saves (patch 1.29 and above) to be uploaded. Previously, only saves that contained record breaking achievements in ironman were accepted. Here's how the initial rollout will work:
Rakaly Status Report #8: Accuracy and Wars
- A new war screen where one can get the overview and drill down to specific battles
- A players screen so one can quickly see who is playing which country in a multiplayer game
- A engine that allows for more accurate visualizations across tag switches
Tracking Tag Switches in EU4 Save Files
In EU4, when one forms another country or changes their country ID, it is called tag switching.
To give an example, if one starts off as the Tyronian Irish chiefdom, which is identified by the
TYR tag, and then unites the island, the player can opt to tag switch to Ireland, which is identified by
IRE. This is just one form of tag switching.
Rakaly 2020 Overview
It's hard to believe that it's been 6 months since Rakaly has launched. It feels like both a short and long time. I figured it was best to look back at what was accomplished and what is planned for 2021. Overall I'm very pleased with how things have turned out for Rakaly in 2020 and I hope for this to be the first of many annual reviews.
Rakaly Status Report #7: UI Rework
There's been a major update to the Rakaly UI and I wanted to walk through what's changed and the reasoning behind it. I know UI redesigns can be contentious so I'm hoping that the explanation is worth it.
Rakaly Status Report #6: Maps!
EU4 is just a fancy map simulator and any EU4 site without maps would be incomplete. I'm excited to announce that Rakaly now features maps!
Rakaly Status Report #5
Let's start with the eye candy. I posted this a couple weeks back on the discord but I want to highlight it again, as I feel like some may have missed it: a racing bar chart where one can see how nation sizes changed through the playthrough.
Calculating EU4 Province Terrain
One of the many EU4 achievements left to implement on the leaderboard is Eat your Greens where one needs to control all grassland provinces in Asia. While the terrain of a province is an easy concept to grasp, it's surprisingly difficult to calculate.
A Tour of PDS Clausewitz Syntax
Paradox Development Studio (PDS) develops a game engine called Clausewitz that consumes and produces files in a proprietary format. This format is undocumented. I decided it would be worthwhile for myself as well as future developers interested in writing parsers to not only know the basics of this format but also the edge cases that I've encountered along the way.
Rakaly Status Report #4: Imperator, APIs, and Moving
It's been a few weeks since the last update, and in that time frame I've moved to a new city. Moving a household can be time consuming so I took about a week vacation from programming, but I was also able to sneak in a few tidbits:
- Foundations laid for a user savefile query API
- Improved the range of game files rakaly supports
- Imperator parser
Rakaly Status Report #3: Crusader Kings III
Crusader Kings III was released 10 days ago. And for 10 days I've lost myself in adding support for CK3 saves and improving the core parser. It started out as a "I wonder how close CK3 saves are to EU4 saves" experiment. Initial testing showed they were quite close so I kept pushing to completion, but I'd always be tripped up by a new syntax or encoding. I'm pleased to announce that I have the CK3 syntax under control and the core parser walks away faster and more robust than before.
Rakaly Status Report #2: Desktop Musings
First I want to mention I put a bugfix in place for the racing building charts that omitted destroyed buildings. Previously only buildings standing at the date of the save would be considered. This was fine at first, but failed to take into account how a player would destroy coastal batteries and fortifications as they consolidated their country (this may not be as true for multiplayer saves where forts are more necessary).
Tracking Province Building Construction Dates
Back with some more graphs! Racing bar charts are seemingly all the rage now, so of course I must capitalize on this opportunity. I implemented a racing bar chart that tracks how popular a province building is over time. See the gif below for one of my saves!
Rakaly Status Report #1
This post will be more of a status update -- a sort of grab bag of progress and thoughts that may not fit an overarching theme. I'd like to share what has been accomplished since I've last written.
I wanted to give an update as it may seem like I've gone quiet, as there hasn't been any recent announcements or UI changes in a while. Far from being idle, I've been diligently working behind the scenes. I've logged a significant number of code changes, and this is my break to tell everyone what I've been up to. Fair warning, this may get somewhat technical.
First Steps to Open Sourcing Rakaly: Foundations
There are many layers that need to come together to make Rakaly work. I initially started developing Rakaly 6 months ago, and at the beginning I wasn't sure how the project should be constructed. While the initial scaffolding was fluid to support whatever impulse I had, over time sub-projects emerged. These sub-projects can be extracted and open sourced to the benefit of others. Today the first step was taken and the parser for text and ironman data has been open sourced.
Removing Limits on Recursive Events
EU4 events can be recursive, meaning that an event can be defined in and of itself. A great example of this is the Oxford Symposium event for England / Great Britain where every 10 years the event has a different option than the previous iteration. Previously Rakaly restricted how nested this event could become, but a new method was implemented to allow an unlimited depth.
Breaking Down Data Tabularly and Visually
EU4 savefiles contain plethora of data about the world. Part of the data describes where a country gets its income, both recurring and one time windfalls. There isn't a one size fits all approach to interpreting this data, so Rakaly allows one to see the income breakdown in a chart so one can easily spot anomalies or in a table for closer scrutiny. In addition to the magnitude of each income factor, Rakaly allows one to view factors as a percentage of the total income to answer questions like "which countries are most dependent on gold income as a percentage of their total income".
Melting an EU4 Ironman Save into a Normal Save
Click here to convert (melt) an ironman save to a normal save
There's been a long history of converting EU4 ironman saves to their normal counterparts. Wanting plaintext saves allows one to use the EU4 to Victoria 2 save converter, console commands, and allows easier access for one to go spelunking through the save file as it can be opened in any text editor. Rakaly now provides its own take on this conversion.
Welcome to the launch of Rakaly! Rakaly is an unofficial EU4 achievement leaderboard that houses an in browser savegame analyzer. Since this is an initial launch, things are pretty limited. Many achievements aren't implemented, but I didn't want to delay any longer in order to receive community feedback.