Widelands is a free, open-source real-time strategy game
widelands.org
widelands.org
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!
The person you replied to linked the github account and if you ckecked it you would see that it was not a static site.
I am not surprised that you decided to write a comment instead though.
Stop recommending people join the CDN cartel
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.
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.
What I was thinking about was the web as a whole, not my specific files.
Here how I setup this for OSS game engine I work on:
The widelands site seems to go directly to netcup in Germany. It is likely just a DDoS detector mistaking sudden interest as an attack.
https://docs.github.com/en/pages/configuring-a-custom-domain...
Our cheap server had no problem to serve the static site.
Personally I'd put a static information site on AWS and a community on Reddit if I was the creator for something like this game.
It's just like SMB's today don't really need much infrastructure, well open source projects shouldn't either.
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.
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.
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 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)
edit: widelands seems to be available via MacPorts too!
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.
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.
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 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?
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'm not sure I'm good enough at it to survive Roguetech though ;)
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...
Unlike tools (i.e. text editors) that you can keep using for 20 years+ and never want to stop using it.
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.
However now Minecraft is the best-selling game of all time with 238,000,000 copies...
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.
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.
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.
Why is that, I wonder?
The code, too, has to be tailored to fit into the specific architecture of the program.
I also recommend:
Spring RTS (amazing RTS engine, clone of Total Annihilation) UrbanTerror (unfortunate name, reasonable clone of Counter Strike)
Battle for Wesnoth will be right up your alley
Wesnoth's Paper-Scissors-Rock-Spock-Lizard combat is actually much better that in Panzer/Fantasy General games.
* OpenRA; Red Alert & Command&Conquer clone https://www.openra.net/ (a personal favorite of mine, first RTS I played)
* Warzone2100 https://wz2100.net
Very important project for me as I've been playing W:ET since 2005!
- xonotic (Nexuiz/Quake3-like)
- hedgewars (Worms clone; written in Haskell, C++, Pascal, Lua)
- tome4 (isometric Roguelike)
- 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.
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.
You need a military to expand your boarder, but ultimately the economy is what will win or lose the game for you.
I've never heard of Settlers before, any other games of a similar mould?
I remember first playing it on a 486!
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?
That's probably what they meant.
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.
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.
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.
Oftentimes it means "we didn't have a cohesive enough vision to reject any features".
All that said, I do like Settlers 2, so I will give this a try.
That depends on the implementation.
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.
There are few rules and rules are very simple.
Depth of the strategy and the gameplay comes out as emergent property of the game.
But that's just splitting hair.
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.
https://www.gamestar.de/artikel/widelands-siedler-aufbau-str...
That is also where I found the game.
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?
---
[1] https://web.archive.org/web/20210410230450/https://www.widel...
[2] https://play0ad.com/category/game-manual/
[3] https://libregamewiki.org/Widelands
[4] https://libregamewiki.org/0_A.D.
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.
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.
Where does one start when looking at a github like this - where's the "game loop" actually live?
To substantiate my point, here is an excert from the main function of the OP game.
WLApplication\* g_app = nullptr;
try {
g_app = WLApplication::get(argc, const_cast<char const\*>(argv));
// TODO(unknown): handle exceptions from the constructor
g_app->run();
delete g_app;
return 0;
} catch (const ParameterError& e) {
// handle wrong commandline p
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).
And what if it is a namespace?
So my point is how complicated (and thus unergonomic) the simplest things are made without any evident reason.
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.
Does anybody have experience?
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.
Also, can OpenBW be run on Linux?
https://apps.apple.com/us/app/majesty-fantasy-kingdom-sim/id...