The Battle for Wesnoth needs help
wesnoth.org
wesnoth.org
Back in the day, I used to play this on my linux computer in my room with my brother -- it was one of the games that got me into coding / development in the first place.
I hope they find some good developers to carry the game onwards! It'd be a shame if such an awesome, free game ended up going extinct.
<33 drakes!
Is it any wonder open source gaming struggles with this kind of broad negativity?
Some artists just get huffy about having "their" art modified, as if their artistic integrity should not allow modifications. They would have the same problem with any free license, though, so just teaching artists how the GPL works has worked ok so far.
I would like for everyone to feel comfortable putting their creative output in the commons but I respect people who aren't comfortable in that way and abide by their wishes.
If you don't want to give people your artwork, then don't. But don't impose conditions that you will give it to them but feel personally offended if they modify it.
Unmodifiable artwork poses many practical problems for a free game. It's simply unacceptable.
So
* italics *
Becomesitalics
Indented text is rendered in verbatim monospaceBut its only a very limited subset of it. For example I cannot do [thing](url) URL links like you can on reddit. Anyone implementing a comment system that wants rich text should be using it, though, if a WYSIWYG editor is too much, or if its targeting a technical crowd.
HN only supports the two formatting types you described, plus auto-linking of URLs written out in full, such as the one in the previous paragraph.
Battle for Wesnoth is an excellent game. But declining interest seems to indicate that maybe it is just finished?
Sometimes the best games take a (long) while, and may never be finished.
[0] ok, not really, the nethack4 faq mentions 'The development team who worked on versions 1 to 3 of NetHack (the DevTeam) are still working on it (although there was no real evidence of this until 2014), but they don't release their progress, meaning that the situation is effectively the same as if they'd been doing nothing.'
What I don't see is very much momentum toward establishing a proper successor fork a la Dungeon Crawl: Stone Soup.
Sometimes updates actually make things worse. I like Brogue 1.7.2 a lot more than 1.7.3 for example. You should try that game if you haven't already, it does so many things well!
So I downloaded the source, inverted application of damage, and recompiled.
To that, my friend said "no! the hacking is supposed to be about manipulating the data files..."
I replied, "my way was easier."
Thanks for mentioning Nethack and reminding me of this :-).
the game is basically equals of it's former self, with many more graphic enhancement and sophistication that push the battle system, the maps and the editors to their limits, but while being timeless it also has exhausted its replay value and lives in a market which is vastly different to the circumstances that brought it to life many years ago
Wesnoth makes current hardware sweat to the point where my relatively new MBP sounds like it's taking off, as is my friend's ThinkPad. It's also the only game capable of slowing my current-generation iMac down to the brink of operating system usability and beyond.
The game itself is slow, UI actions, moving units across the battlefield - pretty much anything happens only after a noticeable pause. There is no apparent reason why a largely static, 2D, tile-based, pixel game should be this slow.
The network code and its underlying model are an unmitigated disaster, by design. If you experience any network glitch during play, including short wifi disruptions, the connection collapses. But it doesn't do so right away. It can take up to a few minutes for the game to notice that a player has disconnected. There is no automatic re-connect, all players have to save, exit, and rejoin. While playing Wesnoth it's advisable to stay in contact over email to coordinate.
Sometimes, the game state gets out of sync between players and the server. When the game notices that, you get the option to cancel the game or ignore and continue. If you do the latter, in-game causality breaks down completely (with hilarious results). If you opt for the former, once again, everybody has to save, exit, and re-join, and hope anyone has a non-corrupt save game. The game state isn't large or complex by the way.
These are not merely bugs; they are deep, architectural problems.
"However, I wanted to be able to develop Wesnoth quickly, using the latest technology and latest C++ features. Because of this I didn't spend much time focusing on things like minimizing the memory Wesnoth takes up, or trying to make it ultra-fast. This does limit its portability a little in that it is difficult to get working on systems with limited memory"
Yes, Wesnoth is hamstrung a little by its tech stack. The dev team very much wants to move to SDL 2 and support OpenGL in the future.
How will they do that? With more and interested developers. Hence, the call to action.
Getting it running on an existing engine (UE4 can do 2d fairly well, for instance) seems like a better investment of resources. What they're building is a solved problem. It was a valiant effort to do it on their own, especially in a time when that was the only way. They could reap the benefits of all those learnings in the backend and instead focus efforts on tweaking gameplay, inventing new forms of play, and smoothing out rough edges in the UI or visuals.
Also as one who lived through the times when gaming on Linux was almost unheard of, or required a lot of imagination, I think Wesnoth is part of gaming history right now. The future is here and Valve helped bring it about, the quality and quantity of games on Linux has completely transformed in the last 5 years.
So gamers looking for entertainment on Linux have so much more to look forward to right now than Wesnoth. It's time to move on.
I'm not saying that a rewrite is the answer, however.
It is why frameworks and toolkits are so important. You want to minimize your codes aging surface area, and having individual parts you can manage and age independently kicks the pants off of starting from int main() and hoping for the best. Wesnoth's greatest library dependency is SDL, which honestly should make the engine fairly futureproof if they could get it ported to SDL2. But that doesn't change how everything else is pretty much raw C++, with just AI rules in Python or Lua.
I'd have to look into if they are giving a thumbs up to std=c++14 or not, because if they are I might go poke around just to see how much you can fix. I'll have to read more on that though.
C++11/14 gives you much better tools, but it doesn't solve the "too many tools" problem. The old tools are still there, and in fact, people are still writing C++11/14 using those tools. The result is that even if you endeavor to only use the new, good C++11/14 ways to do things, you're still going to run into issues with the old stuff and you're going to have to understand a the old stuff: and there is no end to it. Every time you make a significant change to a C++ codebase, you have to learn another dark corner of a language that hasn't had a feature removed in three decades.
Java's solution to this problem is to add features very slowly and carefully, which makes the language hard to use sometimes due to its lack of features. Python's solution is to break reverse compatibility, which makes it difficult to run older codebases. C has this problem too, but they have been more conservative with the features they have added. C# has this problem badly, but it hasn't had as much time for it to get as bad as C++.
Edit: okay, sourceforge is broken for me for any download, no matter the browser.
Let's consider that my sourceforge rant of the week.
http://sourceforge.net/blog/sourceforge-infrastructure-and-s...
Between this and the adware scandal, it's like someone slammed the door on an era.
What's the download service everyone's going to move to that won't have these problems?
http://www.theregister.co.uk/2015/06/03/sourceforge_to_offer...
Maybe even some kind of `Dropbox distributing' ?
Maybe Mega and other file hosting and sharing services are up to the job but most have a very suspicious kind of aura. I remember chasing the web after some rapidshare hosted android rom (they still do that btw) and it's a pain to deal with.
But that's just a technological POV, I don't know what kind of entity should/could distribute apps. FOSSHUB ?
A simpler way to get there is http://bugs.wesnoth.org
Wesnoth has participated in the Google Summer of Code in the past, and it’s possible artwork has been or could be commissioned.
New System, new Language, use the good parts rewrite the bad parts.
And new Language would make it more interesting for "younger" developer that start with e.g. Rust / Go / Whatever. (That did not mean the code will be better)
Two things are clear:
1 - you have time to be prolific in open source
2 - you have significant Python skills
Seems like you fit the bill for what Wesnoth needs! Why not step in and help yourself? I don't want to come across as calling you out here - I'm genuinely interested in learning why, because I maintain many open source projects myself and I want to know some of the reasons why skilled programmers who appreciate projects don't contribute to them.
It's not that I don't have significant programming skills myself, nor that I don't work on side projects, nor even that I don't really like Battle for Wesnoth... I've just sworn off every working on a C++ legacy codebase.
So I'm not really sure what I have to contribute to a legacy C++ codebase.
Ed: I went back and read, and they're looking for people to add Python code to their toolchain. My answer is thus amended: I dislike trying to interface toolchains for building data to legacy codebases, and I do that for my job. I have no interest in doing ugly hacky things on legacy codebases for free, because it's honestly sort of soul crushing work.
Rather, I'm merely repeating why I didn't help then, instead of particularly why now, which is a much more boring "I'm just busy".
I suppose it's possible the codebase has changed so much in those years that the answers are no longer relevant, but they would be the only open source project (not sponsored by a corporation) I'm aware of that happening in.
By near definition, it's ugly hacky legacy code.
That's just the nature of these things.
If that's the case, I'll certainly see what I can do!
I spend quite a bit of my free time doing open source work because it's fun =)
Out of curiosity, why call people out?? Has it worked for you in other projects?? Or, have you reached contributor burnout?
"I'm not interested in that kind of work" is a fair answer, but it seems pretty rude to dismiss it as an ugly hacky legacy code base without reviewing it first.
Like I said, I wanted to disengage but I see this kind of attitude repeat itself over and over within open source communities and can't escape the feeling that it only pushes people away from contributing.
Before this conversation, I planned to do some work on Wesnoth, but it reminded me of all the politics involved in contributing. I don't want to be called out when my ideas don't align with those of 'the elite' so why would I possibly get involved in a project?
Based on my experience, the following things do not work:
A) Accessing someone's personal details with the intention of asking them why they will contribute to one cause but not another.
B) Asking an open-ended question then attacking answers that do not align with yours.
If you are burned out or just need to vent, email me and we can talk about this. I've been burned out from managing/recruiting volunteers and I likely understand the feeling as well as anyone. Use me if I can be of any assistance.
I know this is a risky thing to say here, but I wonder if they should re-write the game in a more common/popular language, maybe something web-based like JavaScript. They would have a much bigger talent pool to pull from, gain access to a much bigger audience, AND probably have an easier time developing multiplayer functionality. Not to mention the plethora of open-source tools and libraries they can leverage.
I can see why this is a controversial assumption though.
Also, porting a whole code base to another language at this stage in the game is such a colossal task.
Are you even a developer? I'm not sure you realise how infeasible what you're suggesting is.
How do you deal with the fact that the only native numeric type is a 64bit float? Space Engineers currently uses floats as the basis for their world coordinate system. Things get really bumpy when you get far away from [0,0,0].
C and C++ offer -at a minimum- the following numeric types:
* signed and unsigned integers in a variety of widths
* 32 and 64-bit floating point numbers
JavaScript offers:
* 64-bit floating point numbers
When performing integer math, JavaScript's numeric type is only safe for arithmetic operations between -((2^53)-1) and +((2^53)-1).
Now that we have that out of the way, my original question remains unanswered. :)
Many contemporary games are multi-threaded out of necessity. How would you deal with JavaScript's single-threaded, single-process model of execution? Experimental features like Web Workers?
I'm obviously missing something, and I was looking for the benefit of his insight.
I'd assume that intermediate and experienced C++
developers are probably older on average, and are
unlikely to be interested in developing games.
And that is an incorrect assumption. A non-trivial amount of current game development is done in C++. Couple that with the fact that to have the games considered "AAA" on the market now requires advanced techniques employed in the language producing them and that C++ is a frequent choice results in the invalidation of your statement (not harshing you here BTW).It doesn't hurt my case that I am an experienced "advanced C++" developer which makes video games either tho ;-).
Moreover, C++ isn't outdated, it's mature. There aren't any grand new CS discoveries that are in JS but C++ maintainers haven't heard of yet.
As for "older = unlikely to be interested in developing games", I don't see where you get that from. It's like saying "older people are unlikely to be interested in writing books / making movies".
Also the C++ used isn't the monster from under the bed people tell tales of. It's mostly simple OOP/procedural code using boost library.
It's not that difficult to learn enough C++ to be useful.
Out of the gate, Unity3D provides a much better indie game development environment than trying to do it JavaScript. Even though their name includes "3D", their software fully supports 2D games. Plus, there are no royalties/costs for the personal edition.
1 - http://unity3d.com/get-unity
EDIT: Read my response below for context regarding this message. And if you're disagreeing because I said JavaScript game development is painful, then keep hammering this message to your delight.
While Unity3D is conditionally free-as-in-beer, it definitely isn't free-as-in-speech. Unreal Engine has recently gone kinda free too, but not really.
In any event, best wishes to the Wesnoth community and continued fun to be had by both those playing it and those progressing it.
$ aptitude search wesnoth
p wesnoth - fantasy turn-based strategy game - complete s
$ aptitude show wesnoth
Package: wesnoth
State: not installed
Version: 1:1.10.7-1ubuntu0.14.04.1
Priority: extra
Section: universe/games
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Uncompressed Size: 21.5 k
Depends: wesnoth-1.10 (>= 1:1.10.7-1ubuntu0.14.04.1), wesnoth-1.10-data (=
1:1.10.7-1ubuntu0.14.04.1)
Description: fantasy turn-based strategy game - complete suite (metapackage)
This metapackage pulls in the complete set of the latest stable version, most helpful
if you always want to have all the official campaigns installed. If you only want to
play over the network with other players or want to play only a few campaigns you
just need to install the wesnoth-core package and the wanted campaign packages.
Battle for control of villages, using variety of units which have advantages and
disadvantages in different types of terrains and against different types of attacks.
Units gain experience and advance levels, and are carried over from one scenario to
the next in a campaign.
Homepage: http://wesnoth.org/