It makes me quite excited. I really loved settlers II and I am waiting curiously for the next release of the settlers saga, as I haven't liked the follow-ups. The next instalment is said to be more like settlers II again. Maybe this open and free game is all I really wanted?
I will try it out!
On a completely unrelated note, I'm so surprised that static sites like this that are basically just simple advertising pages with text and some internal links just completely fail like this so often when they get a little attention. It's just serving HTML, CSS and some JQuery (looked at the source on Google cache). If they set up even the simplest caching solution with nginx or some other reverse proxy or hosting tool it wouldn't fail so spectacularly. Unless it's doing backend requests, there are extremely simple solutions to keep sites like these up
In this case, nginx is serving a 502 status. It's possible whatever stack was running that was being proxied to by nginx was killed, possibly by RAM or CPU limitations. I don't think it's a bandwidth issue here
I am generally against censorship but had to revise that stance after I realized we've given a global platform to manipulative idiots truly unworthy of global self-expression. If they want to espouse their crap they can stand on a real soapbox and shout at crowds, but nothing more
Neat, and who decides whose "crap" is unworthy of freedom of speech?
Like, my main objection with censorship isn't "I think that this particular idea is worthy of defending", it's that any mechanism that lets people censor bad opinions could also by used to censor good opinions, and that mechanism is way too powerful and prone to abuse for my comfort.
I find reading the way much of society reacted to the original suffragettes very useful for calibration purposes.
"Actually, women should be able to vote" would absolutely have been censored entirely had the establishment then had the sort of tools people are advocating to build now.
The fundamental problem is that we need some way of separating good ideas from bad, as a society. Sure, it was a big leap forward when we switched from "whatever the king says" to "let everyone shout as loud as they can and whoever shouts the loudest wins", but the truth we have to face up to is that neither method works particularly well, especially in the age of the internet.
So, is there a better system? A way we can bubble "good" ideas up and suppress "bad" ideas, ideally without some corruptible central arbiter? And, will such a system inevitably be viewed as "censorship" by some, purely on the principle that the current shouting-based system favors them more than a meritocratic one would?
Yeah yeah yeah. I know. And I stopped caring. The that deserve to be muzzled (or worse, but that's not appropriate here...) are the manipulators of all kinds and colors. If the message has any kind of CTA, particularly political, it should be suppressed.
Left, right, commerical, political, it doesn't matter. Suppress them all.
You've come out against idiots spreading misinformation and calls to action _in general_ in this thread. You don't want tolerance, you want orthodoxy. Intolerance of all things that are bad, tolerance of things that are good. If only the cowards at Cloudflare agreed with you!
Orthodoxy has its own issues. What I want is nothing, for people to reach their own conclusions on the merits of whatever it is they are considering, and to be left alone in the quiet of my own thoughts without having to withdraw from society completely
CDNs aren't making you look at anything. The service they offer makes websites quickly accessible to people who request them. You believe that CDNs should not offer that service to those you consider propagandists.
How does the availability of a website that you dislike affect your ability to be left alone in the quiet of your own thoughts?
Pretty much. People are being pulled in a thousand different directions by people with their calls-to-action.
Mainly targeting advertisements and political messaging. More prosaic stuff like filing your taxes on time can be conveyed effectively without commanding people to do things. "Taxes are due by April 15th" would work fine, for example.
Couple that with some of the evidence as to why and you have a pretty good message to get out.
So very many people don't like being told what to do, and all we do is yell at them with commands and imperatives. Personally it has given me a burning contempt for the kind of folks that promulgate this stuff. If someone wants to compel me into action then they need to convince me on its merits, and those merits alone.
life is political. So you would have to suppress all communication about life. Show me content and I will show you politics. A video of children playing in a pool: Are they dressed appropiately? Are they playing the right games? Are their surroundings a capitalistic dream without meaning? What about a b-actor soap series? a wikihow on how to make beer? a podcast on how to make vegan yoghurt? an article about curing meat? There are no things unpolitical. life is political.
No, politics and social mores inserts itselves into these situations. I can guarantee you that those kids are thinking about none of those things.
And what exactly makes politics mandatory in an article about brewing beer? Curing meat? If people stick to the essence of what they are trying to convey without getting lost in political rhetoric people can, in fact, communicate clearly. But you have to stick to the matter at hand.
>"The internet treats censorship as damage and routes around it" was absolutely a thing.
It was actually never a thing. The internet has always been censored, everywhere, all the time.
People just think it wasn't because sometimes it let them be edgy racist shitlords and they confused that with unfettered freedom of speech. Still do, unfortunately.
I'm not sure what site you're referring to, and that proves my following point....
There are multiple CDN providers. Unless they're all doing this, OP doesn't have to go with the specific one you're calling out here and can still reap the benefits.
They didn't, though. They recommended a few things that this site would do to how it's set up within its server. (I mean, a CDN would also help, but...)
cdns are in a unique position (besides google analytics, facebook pixel, webchat services, etc), to track you across the internet and different domains.
Further, they are proprietary, non-open, they insert their branding into your site, and pass the blame for errors to their customers when they fail. They abuse an oligopoly position and obfuscate the addressing details of sites under their protection
Not only is it a "default option" that is making the web less decentralized, it is also way overkill for something as simple as this. Make sure nginx serves cached content (right headers) instead of reading the content from disk and maybe, just maybe, throw in a static cache like varnish in front.
For the times my websites hit the frontpage of HN, a simple nginx instance (without any cache in front like Varnish) on a $5/month Digital Ocean server was enough to handle things.
You don't even need nginx; I've got a single Node process on a Heroku "hobby" node serving my site, and it's weathered several front-page visits peaking at 15 requests per second without problems. The important thing is the static-rendering (assuming it applies for your site's content)
Having a blog post of mine get posted to HN (many years ago) was how I discovered I'd accidentally introduced a bug into my web server config that meant the app server behind it was serving the static assets as well as the dynamic stuff. It entered a state of wedgitude quite rapidly when traffic ramped up.
Sadly I don't see any alternative. The need for CDNs is a direct result of the structure of the internet and modern HTTP. We could imagine alternative infrastructures - decentralized transparent network-layer caching so that the network itself caches data and responds to requests with cached results - but the end-to-end structure of TCP and HTTPS make that impossible, for better or for worse. So we have to use CDNs.
In this case, this is not a virtue. Using a CDN is option, reversible and is likely to spread your content out to be much less centralised than anything hand rolled.
The best way is to use GitHub Pages + CloudFlare. This way you can also use site generator like Hugo that runs by Github Actions and you can even deploy some code to CloudFlare Actions.
Here how I setup this for OSS game engine I work on:
I can't bring myself to believe that an external caching layer is absolutely required to handle the load from something like a hacker news front page. WordPress with no caching I can see being taken down by 10 to 20 requests per second, but any kind of local caching should be able to handle the load easily. Does HN produce more traffic than that?
I've been on the frontpage before and my logs indicate that the peak load was somewhere north of 350 requests/sec though the non-peak (while still on the frontpage) was typically 10-20 requests/second. That is for a very simple page consisting of an html document, css, an image, a favicon and no javascript (eg https://calpaterson.com/printers.html). If you can serve from a reverse proxy cache locally that will be fine but if some PHP/Python/NodeJS is running on each request you can run into trouble with the small servers people typically use for their side-project's website.
That's a horrible idea. Yes, open source should definitely get off closed and abusive platforms like Reddit or AWS. Really, the open source community should start dog fooding more. It seems like yesterday all the communities were on IRC and it was easy to find everyone as long as you were connected to Freenode.
Now everyone is using Slack, Discord or other closed-sourced systems that are not even built for the use case of "open by default".
It's really sad to see, especially when a lot of developers in the ecosystem are cheering on projects moving to platforms like reddit or AWS.
To run your own infrastructure is not as hard as you think, and it gets a lot cheaper too.
I completely get where you're coming from, I'm a staunch self hoster myself.
But why re-invent the wheel before you have to? That's just a waste of time and resources that could be used to promote and build your project.
Like in this very case, the website is now down and unable to promote the project because it was made in a traditional way.
Imho it's enough to retain ownership of domains to really own a project. Like the widelands.org domain.
So whatever happens with AWS, or reddit, that domain can always move and point visitors to new communities.
In my personal selfhosting environment I have my own domain pointed to protonmail. So even if protonmail goes belly up I can always move my domain somewhere else.
And even my domain is picked to give me maximum control. I use my own country's ccTLD because they have a good conflict resolution department that will benefit me as a citizen.
Even running a site that front-pages HN doesn’t actually require that much infrastructure. Peak traffic is a few hundred RPS. Or at least it was when I was still using google analytics. Might be more now. But in any case, if you use fast web software you can serve dynamic content to an HN ddos off a $5/mo VPS. The problem is a lot of people will be like “well my website doesn’t need to be fast because it’s not popular, so I’ll write it in python/node/ruby and make it dynamic” and then their server falls over at 50 RPS on commodity hardware, when if they’d written it with a popular haskell/rust/go/whatever framework, it could handle 100x that much traffic.
If you hope that your writing ever reaches a large audience, you need to be able to serve a large audience! It doesn’t take that much extra work to be ready for it.
I think your getting downvoted because of the python/node/ruby vs. haskell/rust/go comment and perhaps rightly so. For some things this will certainly matter, but for a public content like this, especially the landing page, the real problem is that a flood of visitors should not all be hitting any dynamic backend in the first place - they are all going to see exactly the same page anyway. That means either making it completely static (would mean removing the sidebar in this case) or having a modest (micro-)caching setup so that most requests don't hit the backend. With nginx (which is what widelands.org seems to be using) this is only a couple of lines of configuration, no need to change the dynamic backend at all.
Needing to use a reverse proxy like nginx in the first place is honestly insane, and the fact that many web devs tolerate it is a sign of totally whack priorities. You shouldn’t need a reverse proxy to serve your website, and you should be able to serve dynamic content to hundreds or thousands of people per second. Literally all you have to do for 90% of websites is not use some slow uncompiled backend that shits the bed at 50 RPS. Pointing this out pisses people off because they hate the idea that bogosort.js isn’t actually a good web backend and they might have to learn something else if they want to build a good website instead of trying to paper over perf issues with a massive reverse proxy with 35,000 config options and just as many CVEs.
People really seem to underestimate just how much a CPU can handle when it’s not bogged down by the abstraction of high level languages. You can easily easily serve over 1000 static pages per second per core with nginx on commodity hardware over TLS, and over 10000 pages/second/core if you’re using a server-grade CPU like a Xeon or Epyc.
I don’t think “high level” is even the problem. Haskell is extremely high-level and yet it’s very fast, on account of having an extremely OP compiler. In this case it seems to just be the frameworks on top of non-compiled languages that are slow.
The forum's a more complicated question but for the static information site for an open source project that's already hosting its code on github, configuring a custom domain for the github pages site would seem even simpler than sticking it on AWS.
They could still make the landing page static or at least enable some (micro)caching - there is no reason for every request to hit the backend. Of course, this is obvious only in hindsight.
I tried it a couple of years ago and it had a reasonable single-player "campaign" too so that was good. I seem to recall that the campaign kinda "ran out" half way but I guess that is to be expected.
Otherwise thoroughly enjoyable if you liked Settlers 2 (but disliked their sequels)
Veni, Vidi, Vici !!!
Settlers II was one of my all time favorites! I even bought the 10th anniversary edition and played it in Virtualbox (Mac user here) all over again.
Settlers III was just as good but IV felt a bit too “messy” (it’s the one where settles abandoned the pre-set routes/flag posts).
The rest of the series was a big let down to me. I haven’t tried anything past The Heritage of the kings (S 5).
I’m so excited to test out Widelands!
edit: widelands seems to be available via MacPorts too!
Didn't Settlers III abandon the routing by roads and flagposts? The little guys still go from building to building, but you don't set any roads or route markers beyond that.
I haven't played any of the games after the third one so I don't know what kinds of changes they've made past that, but Settlers III definitely did away with the roads-and-flags routing.
I think you’re right. I’m looking at some screenshots and it looks like SIII don’t have any routes with posts. They still walk and “make their roads” but there are no posts. SIV seems to have moved from roads to “general loss of grass in busy areas”.
I think most game styles do not fit the "open source" development model. Mainly because games often need a "surprise effect" when released and that is a poorly fit for open development and also because it is easier to contribute code than convince an artist to contribute art tailored to a very specific style.
RTS and games like Wesnoth are an exception: they are born a certain way and slowly evolve through contributions to a point where they sometimes finally became very interesting. I have high hopes for the future of 0ad.
I think highly variable, replayable, emergent games in general are a good fit. A random aspect (complex interacting systems, or rng that doesn’t railroad you) is a key component. That’s where some games get the surprise you mention. I think of paradox games, 4x, Minecraft, even Skyrim as possible good fits for open development (notably good for modding too). I don’t believe platformers, farcry type story/action, and multiplayer CoD types would make sense because the game is the same every run. Ie open development is viable when the team can be unopinionated in the way each playthrough will look.
Agree that games where art direction is strong and an important differentiator are also not a good fit (thus making a Skyrim and its AAA style probably hard to replicate in an open team)
I've been thinking about this recently -- there's a healthy mod community around the tactics game Battletech (Roguetech being the most expansive mod, but there are many others) and the modders all seem to agree that the base game is quite janky under the covers; it's not a deep simulation nor is it graphically advanced, yet it suffers from poor performance, and it's also awkward to mod in some places, since there are some things that you just can't change with mods.
I do wonder how far we are from having the default "community driven game" be implemented from the ground up in open source instead of being implemented as a mod on top of a closed-source commercial game.
One issue is that most OSS games I've seen build an engine from scratch, which is fun but a massive time sink; I wonder how much of this is due to professional engines having OSS-incompatible licenses? I noticed that Unreal Engine 4 was made open-source (royalty-based licensing, not FOSS) which might be compatible with an OSS free game?
Another aspect is that it's just a lot of work to build an A-tier game (not even considering AAA) but with a good engine this floor is being reduced over time; Battletech for example was I believe on the order of 100 developer-years of effort, which is huge for an open source project. But could you get 80% of the way there in 10 developer-years if you strip out some of the features the mods eschew like story content? Plus, with Patreon, these days it seems viable for a small number of developers to work full-time on niche content like this.
In summary, I'm surprised at how few OSS games there are considering how much effort goes into modding. Does anyone in the industry (or otherwise) have insight into what's holding us back here?
> In summary, I'm surprised at how few OSS games there are considering how much effort goes into modding. Does anyone in the industry (or otherwise) have insight into what's holding us back here?
I'm not in the industry, but I'm a programmer who's tried and abandoned various game projects.
For me, it always comes down to the fact that game design is a deep and totally different skill set that I don't possess. You can't really wing it, or you can but you're unlikely to end up with a game that's fun and balanced.
Same thing can be said for why so few OSS projects have solid documentation or excellent graphic/UI design.
EDIT: I'd also guess that's why the few OSS games you see are usually clones of more popular ones, as is the case with Widelands. By cloning and iterating on a proven game, you don't have to playtest, refine mechanics, etc.
I can heartily recommend BattleTech Advanced if you don't want to go as far as Roguetech. It's definitely tougher, but not as impenetrable as Roguetech is. (Plus there's lots of difficulty sliders so you can probably tweak it to be about as forgiving as vanilla).
I really enjoy the MWO-style mech customization that both of these add (the https://github.com/BattletechModders/MechEngineer mod); one critique I have of vanilla Battletech is that they simplified the mech construction mechanics a lot, and stripped out some of the tradeoffs that make mech design interesting in the canon. In vanilla, you just optimize for free tonnage, and can put jump jets on everything, so there are just a few chassis in each weight class that are strictly optimal for most roles; this makes it quite boring as there's little reason to pick other chassis. In BTA/Roguetech you can take an XL engine to shave off a lot of weight, but that means your mech will die if you lose your side torso. Lots of meaningful trade-offs, with no "best solution".
I will admit that my eyes glossed over when I first started the game and looked at all the new part types I had to learn though...
I quite like Endless Sky (link: https://endless-sky.github.io/ ), an open source Escape Velocity-style game, and Supertuxcart. But I think in general you're right, the vast majority of finished, fun, playable games are going to be commercially developed.
Not only they need a "surprise effect" at release, but once you played it enough you get bored and move to something else. Harder to keep contributors engaged.
Unlike tools (i.e. text editors) that you can keep using for 20 years+ and never want to stop using it.
What would be great is if they'd become open source after a certain amount of time. Then there could be a nice release, with the surprise element and everything, and later when the steam runs out, the community would pick it up if it still has potential, and do something else with it.
In 2010 Notch said he'd probably release Minecraft as open source within a few years. I was rather looking forward to that.
Jason Rohrer releases all his games as open source. So there are mobile ports, spinoffs, etc. With the latest game you basically are just paying for a multiplayer account, the whole game is on GitHub.
While it's not quite Minecraft, there is an open source game (or rather, game engine) in a very similar style named Minetest[0] with a diverse community and a variety of game designs and mods to choose from.
There is no scarcity of open source Minecraft imitators/clones, but Minetest seems to be among the most thoroughly developed. Veloren has some interesting demo videos, for example, but its modding interface is barely a sketch at this point. (The plugin API documentation covers interaction with the chat window, and events for players joining or leaving… and that's about it. There is no way to plugins to actually interact with the game.) A closer match for Minetest would be Terasology[0], which has a modular design based on Java rather than Lua.
Yeah true - in particular for new / innovative games.
Whereas open source versions of old popular games seem to do very well, because it's less about the surprise and more about the nostalgia. See openra for example.
> it is easier to contribute code than convince an artist to contribute art tailored to a very specific style
I sometimes wonder if modding scenes draw most of the volunteer artistic talent that might otherwise be available to open-source projects. There have been some pretty impressive assets created for Skyrim or GTA V mods, for instance.
I think the bigger pull is because of the bigger audience. Without the modding scene, I don't think that would necessarily make open source games multiple times more popular, even if they had some percentage of the artists making them content, because popularity seems to be highly influenced by current trends, and slowly advancing open source games don't seem to fit in with the trend model vary well.
No matter what the next Elder Scrolls or Fallout game is like, as long as it supports modding (of course it sill), there will be a bunch of people playing it (even if it's widely panned), and there will be a bunch of mods and talent making art for them, because that's how you get tens or hundreds of thousands (maybe even millions if everything aligns) of people using what you make.
I do agree on the need for a surprise effect to make it fun to play, but surely the number of developers who are in on the surprise is so vastly outweighed by the potential number of players that the open development model should still work for the 99+% of the audience who aren’t part of the development?
If I find a simple clear bug in code I can easily fix it. If I feel something odd on a painting it is not easy to even tell IF something is wrong, then what is wrong, then how to fix it.
If we're doing "best of OSS games" in this thread, we can't leave out Endless Sky (https://endless-sky.github.io/), a very competent Escape Velocity style game. I played it a number of years ago and quite enjoyed it. Been meaning to come back to it now that (presumably) the galaxy and storyline is a bit bigger.
Another shout out goes to maxr: https://www.maxr.org/
It's an open source clone of M.A.X. - Mechanized Assault and Exploration. An imho excellent turn based strategy game that has aged very well. It's pretty much multiplayer only though.
I hadn't heard of Spring RTS, but my friends and I played Total Annihilation as kids and have recently started playing Zero-K, which is apparently a fork of Spring. Can recommend! Free on Steam, actively updated.
Since we're listing well-made OSS games, I'm going to add Empty Epsilon to the list. It's a multiplayer spaceship bridge simulator. Like in Star Trek, you have a captain, a helmsman, a weapons engineer, and so on. Great fun for LAN parties especially.
I really don't get it, despite having written my first game over 20 years ago. How can a large company publish a game for multiple systems, but fail to support cross platform play? I was really disappointed a couple times.
- Using unsized C types (long in particular) that are sized differently between Windows and macOS/Linux. Combine that with cast-to-structs for (de)serialization and suddenly different platforms are incompatible.
- Different float rounding modes (possibly changed by some external code) that will lead to desynchronization.
Nothing that can't be fixed but considering that non-Windows PC platforms tend to be an afterthought its not hard to imagine that things like cross play are often cut.
Another thing that can happen is that the different platforms don't all have the same version. This is usually only a problem with external porting companies that don't get the code until it is finished for the main platform, but could also happen for in-hosue ports when issues crop up that only affect secondary platforms and the release is not held back for the main platform as well.
Oh my, thanks, that makes sense. But damn, that almost sounds like a problem solvable with a regular expression :/ Well, at least before you released the game and nobody will protest about save game compatibility yet.
Two possible reasons: one is that console platform owners don't like that idea and they have torpedoes it in the past. The second one is that gameplay and control schemes may be radically different across platforms. Controller input on consoles vs. Keyboard and mouse on PC does lead to platform specific differences in some games ("auto aim" in shooters, for example). Balancing that so that only a minimum number of players feel cheated is hard.
This is a great game - my first thought when I played it was that it was quite unique, though since it's a clone of another game I guess that's not exactly true. It is, at least, quite different to most of the RTS I have played (like AOE, C&C, etc).
The military aspect is very limited, which is exactly what I love about it. In most other RTS I have played, economy is a secondary concern at best and, once you get a decent sized military, really not a concern at all. In Widelands, building and maintaining a strong, sophisticated economy is the central goal.
This game is hard. It's settlers 2 but with many many more ways to mess yourself up. Sadly the community is mostly german, otherwise I'd be an active participant. It's a great game and a great advert for open source gaming.
According to Wikipedia, Klaus Teuber started designing the board game years before the computer game was released, so it's probably not a major source of inspiration. He did change the name (adding "of Catan") so people wouldn't mistake one for the other.
Learn german :) it's not that difficult, it's really fun and imho very cool. I learned english by playing betrayal at krondor with a dictionnary for only help (to be honest I was much younger and had plenty of time)
LOL! Sorry - I just picked a German programming language. Damn.
I think they meant the community is mostly German. Germans tend to have very good English skills, but if most of the people around you in the (game's) community are native German speakers why speak English and struggle along?
> Germans tend to have very good English skills, but if most of the people around you in the (game's) community are native German speakers why speak English and struggle along?
Because most is not the same as all.
Unfortunately, this is sort of a self fulfilling prophecy, as rswskg's original comment indicates. The fact that the community is German speaking means that non German speakers won't join (effectively restricting the pool of potential contributors by ~99%), and thus the German speakers won't have any reason to not speak German.
I hadn't realized they released version 1.0 this June.
This was one of the first games I played on Linux so it's nice to see it finally hit that milestone after watching it slowly progress for so many years.
Time to check it out again. Last time was 15 years ago, iirc.
I also like RTTR[1], a re-implementation of Settlers II, requiring the original game for graphics, sound etc. Which is actually a big plus for me, for purely nostalgic reasons. Widelands looks just "wrong" to me subjectively. ;) Unfortunately quite understaffed and some internal issues last I checked on the project.
Seafaring, new tribes, reworked and new campaigns, much improved routing, pack animals for increased road throughput, new start and win conditions; there's been a huge amount of new content since then :-)
Isn't that width? Dwarf Fortress is the epitome of 'depth' in a game, to the detriment of basic things like a graphical interface, and it couldn't be a better example of a creator's vision
Number of different features/actions is the game width.
Complexity of the features are the depth.
A turn based strategy might give you 10000 units that vary slightly, but not in a meaningful way is a shallow width.
A roaster of units to choose from that counter certain opponent's units and have bonus interactions with certain friendly units would be example of depth.
Game communities call them both depth, which is a huge error.
I played an RTS that claimed to have depth because of the insane amount of armor and weapon types. In the end, the armor/weapon strengths & weaknesses were still just rock-paper-scissors. Having hundreds of them just meant you had to look them up on a spreadsheet, in order to make the simple rock-paper-scissors decisions. This is breadth with no depth. Although confusingly, gamers will still call it "depth," not having the distinction of "breadth" in their vocabulary.
Meanwhile simple ancient games like Go can achieve a large amount of complexity with simple rulesets. That's real depth. I think depth is probably hard to invent intentionally.
Hah, it probably is width. Maybe gamers should all start using it that way. Then people who want a big list of knobs to fiddle with will be able to find the games they like easier.
I feel like Dwarf Fortress and other games in the simulation category are probably an exception, because the main enjoyment isn't in a tight, well-polished game loop.
Rather it's in the surprises that the game throws up and watching all the little folks run around and do their thing.
Also, there are very few games that tie all their features together in layers of interacting systems with the rigour or success that Dwarf Fortress does. Lot of effort has gone into that game.
I've played 0 A.D. lightly for about five years, and am excited to learn of another FLOSS RTS! I did a quick comparison of Widelands and 0 A.D. Overviews from the games' respective sites are [1,2], LibreGameWiki articles are [3,4], and source code repos are [5,6].
It seems Widelands focuses more on economics and transport, and maybe less on combat. Screenshots show Widelands has much simpler graphics.
Developmentally, Widelands seems to use GitHub as its main source code repository and issue management system, whereas 0 A.D. uses GitHub as a mirror for its main Trac deployment. Both codebases are roughly 2/3rds C++. Beyond that, Widelands has lots of Lua (27%) and some Python (3%). 0 A.D. has lots of C (24%) and some JavaScript (6%).
Has anyone played both Widelands and 0 A.D.? How do they compare?
Disclaimer: I loved the original Settlers II a ton as a kid and it still has a special place in my heart.
Widelands is pretty much a clone of Settlers II and stays close to its formula, including the graphical presentation which keeps the ca. 1995 isometric 2D graphics alive. The game is better described as a base builder / city builder game with the goal of expanding one's own territory to cover a certain goal point. Conflict arises because said point is usually in an opposing faction's territory and you have to take it by force. Combat is very indirect with no direct control over any units and thus there is virtually no tactics other than trying to man your posts with more better equipped and better trained soldiers. In essence, your military strength is mostly function of how well your backing industry works.
Gameplay in the Settler series feels much like the Anno series after it in that there is a military component that comes into play late in the game. Most of the game is leading up to it, but has you focus on building a thriving colony in its own right. Within the Settlers series, Settlers II is unique in that it has a transport system of paths and cutesy carriers that needs a lot of attention from the player to avoid clogging and collapse. Terrain factors a lot into this, too. Later entries in the series have done away with most of this, which changed the feel of the games a lot.
Unless things have changed, 0 A.D. is a straight up RTS with direct unit control and less base building. Moment to moment tactics matter. To me, it seems vaguely inspired by the Warcraft and Age of Empires lines games, but is not sticking very close to any one of these formulas.
Oh it's nice there is more 7KAA fans out there. This is one of my favorite games ever. It's one of few economic RTS that did it right, but also have have amazing mediative gameplay.
There is no complex AI here, but sometimes it's just cool to run this game with AIs only and watch empires rise and fall on fast-forward.
I've always wanted to understand how a game like this actually runs, but always struggled with navigating through a project. I'm adept at reading and understanding code, but struggle to understand aa big project like this.
Where does one start when looking at a github like this - where's the "game loop" actually live?
Haven't looked at this particular project, but most code is way too big and has way too much indirection so it's not clear where stuff happens just from browsing the code. I recommend setting up the project in an IDE / debugger and stepping through the code.
To substantiate my point, here is an excert from the main function of the OP game.
Before anything of value happens, there is already a function call where it is impossible to find the called code with a simple text search. How the hell are you supposed to figure out where "get" lives (it's probably not prefixed by "WLApplication::" at the definition site)? You need at least an IDE with a solid "go to definition" feature. But likely that won't be enough since a lot of the stuff will only be resolved at runtime.
If you want to learn architecture, I would recommend trying to do your own stuff and then to follow along with Casey Muratori's streams. While his streams are extremely verbose, he is a skilled communicator and most importantly he is one of the few persons on the planet who has figured out how to write modular software. (Very little of the stuff that makes modern software inscrutable - like OOP method syntax, inheritance, virtual functions, function pointers).
Are any of the recent open source games automatable / easy to script bots for?
I've been looking to get into game bot development and I'm very curious what's the easiest way for me to automate an RTS, ideally am open source one -- but the StarCratt 1 OpenBW + SSCAIT project would be fine as well.
I really recommend getting into StarCraft 1 BroodWar AI development using BWAPI. OpenBW is open source and there's a thriving and helpful community around bot development. A lot of tournaments / competitions and video casts too. You won't regret it. Search for the SSCAIT Discord link. (I am on mobile and don't have it handy).
My main interest is: how automatable the whole thing is? Looking at the SSCAIT Twitch stream, it regularly hangs and sits there for hours before somebody manually unlocks it (I presume).
Regardless of the game, I'd simply want an ecosystem where you can run your own SSCAIT on your own machine.
There are a handful of co-op scenarios, one involving winning by trading. The "skirmish"-style games can be set to have either "allies", where you operate separate economies but are on the same side, or "shared kingdoms" where you share everything except your starting locations. Shared Kingdoms is lots of fun!
It makes me quite excited. I really loved settlers II and I am waiting curiously for the next release of the settlers saga, as I haven't liked the follow-ups. The next instalment is said to be more like settlers II again. Maybe this open and free game is all I really wanted? I will try it out!