Julius - Play Caesar III in Glorious HD

Updated: August 11, 2021

Caesar III was the very first game I reviewed on Dedoimedo here, 15 years ago. Back then, it was a majestic game, and it still is. Lovely graphics that looked great in 1998 and still do; difficult yet utterly satisfying gameplay; intricate link between economy, welfare, society, and trade. The game had it all, and I spent years trying to get my Roman cities to be both beautiful and profitable. Wine imports, hippodrome, marble, tons of parks, just splendid.

When the game came out on Steam, I promptly purchased it and tried playing it. Everything was fine - even on Linux using Proton, go figure, but the game was limited to 1024x768px resolution. I wanted to see if there's a way to enjoy it in full HD, and thus discovered Julius - an open-source re-implementation of Caesar III, very similar to what OpenTTD was unto TTD early on. You need the original game files, CD, GOG or Steam version will do, and then Julius will allow you to play Caesar III on modern machines with large monitors and big resolutions, plus some fancy gameplay tweaks. Sounds jolly. Let's see.

Teaser

Setting up Julius

I am going to make this section extra difficult, but the result will be all the more satisfying. First, getting Caesar III to run. Even in the XP days, things weren't always trivial, and they got worse over time. In the Windows 7 era, you could use the compatibility mode to get things working. Now, interestingly, you can run it without any great tricks in Windows, thanks to Steam, but then, what about Linux?

So, I tried setting up Caesar III using Proton. Great success! This worked absolutely fine. But as I mentioned, the resolution is limited to the best of Windows 98 at the time of Caesar's release. This is where Julius comes in. The project lives on GitHub, and it's had, unsurprisingly, quite an active development. There are versions available for all major operating systems, Linux included.

Caesar III in Linux

And then, this is where things get a little tricky. The documentation mentions the Flatpak build, and indeed, there's one on FlatHub. However, the official release page offers AppImage builds instead. You can also try to compile it yourself, too. I started with the last option, just to see how far I'd make it. Not very far, it turns out.

Could NOT find SDL2_mixer (missing: SDL2_MIXER_LIBRARIES SDL2_MIXER_INCLUDE_DIRS)

I tried fixing this in various ways. Added SDL libraries of all kind, tried to "make" Cmake search for SDL libraries in the right paths, but in the end, I gave up. So I decided to try the Julius AppImage next. Now, the way Julius works is, you simply invoke it against the library that contains your Caesar III game files, something like: /home/igor/.steam/steam/steamapps/common/Caesar 3. This resulted in the following error:

INFO: Loading game from /home/igor/.steam/steam/steamapps/common/Caesar 3ERROR: 'c3.eng' or 'c3_mm.eng' files not found or too large. INFO: Exiting: game pre-init failed

I then moved the Julius binary into the Caesar III folder, and got the same error. It turns out, you actually need to run it against the C3 sub-folder where the c3.exe executable lives. And then, Julius will launch the game correctly. So you can keep Julius wherever you like, just make sure the path you call against reads the following:

"some path/Caesar 3/C3"

For instance, for the Steam version on Linux:

/home/"username"/.steam/steam/steamapps/common/Caesar 3/C3

And now, the game launches fine!

Results, results, results!

Fantastic. The game menu is still limited to a small 1024x768px square in the middle of the screen, but the gameplay will render properly. I tried some of my old game saves from 2003-2006 (which I have kept aside, of course), and they all opened without any problems. I ran Caesar III via Proton via Steam in Kubuntu 18.04 on my Slimbook Pro2 laptop with Intel HD graphics. The action happens across 14 inches of equity, rendered in 1920x1080 pixels. Everything worked smoothly. Lovely jubbly.

HD graphics 1

HD graphics 2

HD graphics 3

The only problem was - when I quit the game, window decorations from my Plasma desktop windows were gone! I had to actually "restart" kwin. So basically, once I (you) quit the game, Alt + F2 to open Krunner, then type in there: kwin_x11 --replace, and you're back. This might be an issue limited to Plasma, definitely to Linux, but Julius works and does magic. Screenshots also work - including the standard F12 invocation, however you don't get a sound notification that you've actually made any. But they are there, saved in your game folder. Wunderbar.

What about Augustus?

This is another fine project aimed at reviving Caesar III, aptly named Augustus. However, it introduces further changes to the gameplay, and these render the old saves incompatible. I definitely intend to try this effort, too, but for now, my focus is on Julius and what it does. And of course, let's not forget Pharaoh, Cleopatra and Zeus. You can guess where my energy shall henceforth be focused. Indeed.

Conclusion

Julius is a great contribution to humanity. Like OpenTTD, it's a blessing. And also evidence that awesome games never really die. Caesar III remains the ultimate city builder. You may say, wait a minute. What about SimCity 4, Cities Skylines and Workers & Resources? Yup, those are amazing in their own right. But while they focus more on transport or industry or society, Caesar III has the perfect balance of all. Aesthetic, style, music, gameplay difficulty, variety. And you just can't beat the simple elegance of the Roman architecture.

If you were or are a fan of Caesar III, you can still play it today. GOG and Steam already let you do that. Julius helps you bring the excitement and fun to a new level, with a fullscreen, wholescreen experience. So here we have, a game made 23 years ago, and today, it's even more brilliant than ever. It's these moment of joy that redeem the modern technology. I'm done here. Your turn. What are you waiting for?

Cheers.

You may also like: