8 ms·
Julius: An open source re-implementation of Caesar III
- kzrdude 4y agoSave game compatibilty is impressive and maybe an "unnecessary" feature. Any reason that this was possible, was the save game format documented or just reverse engineered?
- bombcar 4y agoMy guess is that save game compatibility is a great way to get people to try the new engine, and it was probably relatively easy to reverse engineer.
- JoshMcguigan 4y agoSave game compatibility would be very useful for testing if a bug was reproducible in the original game.
- ninjin 4y agoIndeed, what blows my mind is not just an excellent open-source re-implementation, it also is (or aims to be?) bug-for-bug accurate [1,2]. [1]: https://github.com/bvschaik/julius/wiki/Caesar-3-bugs https://github.com/bvschaik/julius/wiki/Caesar-3-bugs [2]: https://github.com/bvschaik/julius/issues?q=label%3A%22original+issue+from+c3%22 https://github.com/bvschaik/julius/issues?q=label%3A%22origi...
- Eleison23 4y agoIf only 27-year-old me had realized that 50-year-old me would have need of save files from a game I no longer wanted to play.
- mmastrac 4y agoThe regret and heartache of not saving every floppy, and not imaging them sooner.
- dragontamer 4y agoThis appears to be a huge effort. The "Augustus" engine, which shares a lot of code with "Julius", has all of the incompatible updates (roadblocks, zoom, changes to worker behavior, etc. etc.). The compatible updates (compatibility with modern Windows, MP3 based sound support, etc. etc.) are all together in Julius... I guess for all the people who have 20+ year old save files they want to come back to.
- bvschaik 4y agoCreator of Julius here. The save format was reverse engineered. Quite a bit was already known from my previous tool to create a .png image out of a saved game file, and from someone who created a Mac <--> Windows converter for saved games: the Mac version of the game used a different file format. Julius also contains tests to make sure it stays compatible.
- ghoshbishakh 4y agoThank you for doing this <3
- squaredot 4y agoHalf of me agrees with this, the other half doesn't... I liked too much that game.
- dugditches 4y agoThe old 'Plebs are needed' from Caesar II still burnt into my brain. The amount of detail and information thrown into the game and the manual.
- chrisabrams 4y agoI am haunted by the of things that caught fire and as a 8-9 year old I didn’t understand why. I don’t think I generally made it far enough that the plebs were in need because the whole city had burned.
- spockz 4y agoOh yes the dreaded “(There is) Fire in the city!” I really liked Caesar III but I never seemed to be able to get service reach a reasonable amount of real-estate, presumably due to the left turn mentioned in another branch. So I ended up plopping way more temples and engineers/prefects than strictly required.
- whatevertrevor 4y agoYeah 10 yr old me burnt a dozen or so cities before deciding the point of the game is humiliating me by burning my granaries/gymnasiums etc and moved on to Czar and ultimately Age of Empires 2.
- adamm255 4y agoCame here to say “need more plebs” lol!
- thaumasiotes 4y ago> The old 'Plebs are needed' from Caesar II still burnt into my brain. That would drive me nuts. Plebs is not a plural noun.
- sirwhinesalot 4y agoMake sure to try out the Augustus fork if you want extra niceties from "future" Impressions games like roadblocks and a global labor pool.
- dragontamer 4y agoIn Caesar III, your "blocks" were organized by how far the laborers walked. For example, the houses a Bath Worker walked by determined which houses had access to a bath. If the worker took a left at a fork, all the houses to the left would have access to the bath, but none of the houses to the right would have a bath. This led to the strategy of minimizing forks and maximizing the worker loops to create "blocks", where workers reliably provided needed services (marketplace for food/pottery, furniture. Bath houses. Doctors. Prefects/police+firefighter units, religious services, entertainment, etc. etc.0. ------- Pharaoh / Cleopatra, the next game in this series, made this more explicit. With "roadblocks", any worker who "determines services" would make a U-turn upon touching a blocker. This allows you to explicitly make blocks (by preventing workers from taking the wrong fork in a road). So I guess what I'm saying is... the "height" of the gameplay was found in Pharaoh / Cleopatra, rather than Caesar III. Impressions Games did a great job with Caesar III, but those last few additions in Pharaoh / Cleopatra really makes the designing of blocks / housing areas much easier and more consistent. > While Julius does not implement any gameplay changes, a fork of Julius named Augustus is implementing many long-wanted gameplay changes, such as roadblocks. Ah, that's somewhat exciting. At least another open source project is backporting the roadblock to Caesar III's engine. Which of course breaks compatibility... but it'd be a better game IMO.
- philwelch 4y agoAugustus has been playable for a long time now. I was playing it months ago when I went back to revisit CIII. The walker mechanic struck me as a clever solution that really feels like something from a more resource-constrained era of games. With one feature, they managed to solve two problems: “is this service building close enough to this other building when following the road graph” and “guys walking around whom you can click on”.
- YeGoblynQueenne 4y agoIn my recollection, roadblocks didn't really fix the walker issues. I've had countless occasions where a walker would suddenly stop servicing a row of houses he or she could previously access just fine without any change to the layout of a "neighbourhood". This seemed to happen because the houses had gotten too big and a resource the walker was distributing to the houses did not last until the last few houses (walkers had limited stores of resources they carried, although this seemed to happen with religious walkers also who as far as I remember didn't have quantifiable stores; might be wrong). At that point the walker would have to go back to fetch more of the resource to service those last few houses. Meanwhile those houses would devolve because they didn't have any more of the resource they needed to keep their current level. Devolving houses would lose one or more levels and shed occupants. Once the walker reached them with the required resource, the houses would evolve again. Then when they ran out of the resource again they 'd also devolve again, in a vicious circle that could drive a player mad. Usually the only solution was to demolish some housing and build a service building in their place. Which messed up everything all over again. To be fair, I observed this primarily in Emperor: Rise of the Middle Kingdom (which I played at least as much as Cesar III, but more recently since I found it on GOG a few years ago). I've only played a little bit of Pharaoh and Zeus, but if this kind of problem wasn't fixed in Emperor (which came after Pharaoh) then I'm guessing it affected Pharaoh too. Interestingly, I observed exactly the same issue in Lethis: Path of Progress, a Cesar III clone I've played. Lethis also has roadblocks, but they don't really help, you gotta be prepared to pull some houses down and build new service buildings.
- murkt 4y agoA catalog of more than one thousand open source game re-implementations: https://osgameclones.com/ https://osgameclones.com/
- fbdab103 4y agoThis would be a bit more usable if it were in a sortable table and/or had more filters. The badges look is cute, but less useful for quickly skimming. As a casual "hey I want to play an opensource game" reader, I think it would be beneficial if the landing page focused only on those that were Playable. A long list of Unplayable games with Halted development degrades the quality of the resource.
- worble 4y agoYou can click on the playable tag to filter all the ones that are playable.
- jacobmartin 4y agoI recently downloaded this and got it to work. I loved it. So much nostalgia.
- sudhirj 4y agoAmazing memories of growing up on this game. I remember playing others in the series, but somehow this is what stuck in my mind. Spiritual successor is probably Anno 1800, for anyone who wants to try a modern take on this.
- torben-friis 4y agoI remember playing this game as a kid, and it was basically “build however you can until an army comes and destroys everything”. I don’t think I ever managed to understand how to properly fight with the legions you build. Then again, I was like 10 years old at the time…
- Nition 4y agoI can't remember if all stages have the option, but most stages in the game give you two cities to choose from, one peaceful and one with combat.
- emilsedgh 4y agoThe problem was, even in peaceful cities, if you failed in economy and borrowed money from Caesar and not pay back for a long time or failed to send him his “gifts” he would send an army to destroy you. In peaceful cities that was game over. In combat cities you could potentially defeat his army once or twice and buy yourself some time to pay up his debt.
- bvschaik 4y agoMost of the economic/"peaceful" cities also have invasions that you need to deal with, though they're smaller than if you had chosen the military city.
- smnrchrds 4y agoFor a second I though this was CAESAR II, the piping analysis program, and got excited.
- oliwary 4y agoI have spent countless hours on this on my unlocked PS Vita... it runs very smoothly, and the controls are great. Really scratches an itch that few games do. Man does it get difficult at the later stages though...
- mihaigalos 4y agoHave my upvote, you made my day!
- actinium226 4y agoFor a more modern take on the genre check out Nebuchadnezzar: https://store.steampowered.com/app/1157220/Nebuchadnezzar/ https://store.steampowered.com/app/1157220/Nebuchadnezzar/ It's got some great new features, like having some control and visibility over where and how far the workers go.
- ss108 4y agoIs it necessary to build a game like this in C? Could one build a game with comparable computational and graphical requirements in Python or something?
- turing_complete 4y agoOne could. However, many people in game programming care about their craft and having as much control as possible and also being efficient with their resources. In this project specifically, there might be also some kind of nostalgia thing going on. By the way, even though I use Python daily for ML and some web stuff, I find Python very lacking for serious, complex projects because of the dynamic type system, bad performance, and the infamous GIL. I find the idea that programming something in a system-level language is some kind of lost, arcane craft that shouldn't even be attempted quite perplexing.
- ss108 4y ago> By the way, even though I use Python daily for ML and some web stuff, I find Python very lacking for serious, complex projects because of the dynamic type system, bad performance, and the infamous GIL. I don't disagree re: the downsides of Python specifically, just threw it out as an example. > I find the idea that programming something in a system-level language is some kind of lost, arcane craft that shouldn't even be attempted quite perplexing. Well, some of us are self-taught developers and so system-level languages are very unapproachable. Ultimately though, seems like a simply unnecessary headache even if one would be competent in using those languages. Friends of mine with CS degrees still don't opt to do side and hobbyist projects in those languages, for example.
- billfruit 4y agoC has an extremely sloppy type system as well, where basically pointers to objects of differing types are arbitrarily interchangeable.
- blix 4y agoRather than calling it sloppy, I would instead say types barely exist at all in C. A type in C is really just a transient label reminding you and the compiler how to interepret some block of 1's and 0's, which is the only true type. The Python type system really has quite a lot of overhead compared to this :P
- amatecha 4y agoAw heck yeah, this is ported to OpenBSD and is up to date! Great surprise since I wasn't expecting it to be available haha :)
- xkcd1963 4y agoWell that was misleading if you need an original copy of the game
- apatheticonion 4y agoI have seen a few of these full source re-implementations. There's also one for Roller Coaster Tycoon 1 & 2 which is awesome. I would love love love to see a source code remake of Heroes of Might and Magic 3.
- feanaro 4y agoHere you go: https://vcmi.eu/ https://vcmi.eu/
- apatheticonion 4y agoHoly mackerel. VCMI looks like it's at parity with the original game https://www.youtube.com/watch?v=S4WWRrh-KIc https://www.youtube.com/watch?v=S4WWRrh-KIc
- arcturus17 4y agoWhy is C code so beautiful?
- Tomis02 4y agoNo objects, no bullshit (for the most part), just write what you want the code to do.
- mmastrac 4y agoAs someone who used to feel that the most beautiful and elegant code was written in C, I feel the same way about (base) Rust. Assuming you 1) avoid async and 2) avoid excessive use of traits and generics, it has a real, pure C feel to it. There's something fundamental about C though - and in some ways it feels as pure and fundamental as LISP.
- hatdogins 4y agoHmmm
- gbraad 4y agoI prefer Augustus (a fork) over Julius.
- anxiously 4y agoMm, I'll wait for Brutus' release.