
The Battle for Wesnoth needs help - mproud
http://www.wesnoth.org
======
rdegges
Wow -- I've spent countless hours over the years playing this games -- it is
one of the best turn-based strategy games (like civilization) to ever be made,
IMO.

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!

------
nly
So far we've had one major thread calling for a rewrite in a new language, one
calling for a new license, and one insinuating the devs should accept the
project is done and move on with their lives.

Is it any wonder open source gaming struggles with this kind of broad
negativity?

~~~
matt_morgan
Put this another way: lots of people don't have a second thought about telling
this /extremely successful/ project how it really should have been run.

~~~
tormeh
It took me a while to realise, but HN renders text in between stars as
italics.

So

    
    
        * italics *
    
    
    

Becomes

 _italics_

    
    
        Indented text is rendered in verbatim monospace

~~~
roryokane
The text processing of Hacker News is described at
[https://news.ycombinator.com/formatdoc](https://news.ycombinator.com/formatdoc).

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.

------
kazagistar
Why does the game need to keep advancing? Most games in the industry are
written, released, and finished. The best have a timeless nature, still
excellent even though they haven't been changed for decades.

Battle for Wesnoth is an excellent game. But declining interest seems to
indicate that maybe it is just finished?

~~~
Udo
I regularly play Wesnoth over the internet with a friend. Though we sometimes
explore other games, we always come back to Wesnoth because it's compelling.
However, and I say this as a fan, this game has severe issues - it's not just
a few bugs and maintenance:

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.

~~~
em3rgent0rdr
I wanted to verify your comments about speed, and found this interview
[http://www.linuxexpres.cz/rozhovor/interview-david-
white](http://www.linuxexpres.cz/rozhovor/interview-david-white) where the
original developer says:

"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"

~~~
joshstrange
Honestly I think it could be written in Javascript with better results than it
currently has. I've never tried multiplayer as I found the single player laggy
which is unacceptable for a game a "simple" as this. Just goes to show that
language alone doesn't alway influence speed...

~~~
mproud
This game isn't exactly simple. There's an entire meta language called WML
(Wesnoth Markup Language), support for a powerful AI and Lua scripting.
There's also very intricate multiplayer code that I don't think in any way
could be trivial with JS.

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.

~~~
ectoplasm
Why don't you just stabilize everything and prepare to release a final
polished version? Then, you can decide if you want to keep working, or if you
want to stop and put the game in maintenance mode. Do you even have enough
developers to support that? There is value in completing creative projects.

~~~
hluska
Isn't the issue that they don't have enough developer hours to stabilize
everything?

~~~
ectoplasm
That was one of my questions. If that's the issue, then why consider moving to
OpenGL and SDL 2?

~~~
hluska
Now I understand!! That is a heck of a good question ...

------
copsarebastards
I think a lot of these older open source projects have a tough time because
they use C++ so extensively. There are plenty of people who "know" C++, but
it's not a language many people can be productive in. The argument for using
C++ is that it's faster and uses lower memory, but that's not actually true
for naive implementations: C++ allows lots of tricks for speed and memory
efficiency, but it takes work to make it actually more efficient. These days I
tend to think that it's easier to write first in a higher-level language and
optimize from a position of knowing where your bottlenecks will be than to
write a low level language like C/C++ efficiently from the beginning, not
knowing where the bottlenecks will be.

I'm not saying that a rewrite is the answer, however.

~~~
zanny
This is the case with old code in general, though. 2003 Javascript, 2003 C++,
any Java, especially 2003 C#, any C, 2003 Python, etc are all horrible messes
to work with today. C++ got so much better with C++11/14 I can't even think of
it as the same language. Python literally broke itself. Java is pretty much
dead except for on Android (consumer facing) for good reason. C# was
practically an infant in 2003 and got so much better with so many frameworks
around it since then. C is still as bad as ever, and Rust / Go didn't exist,
and Scala came out that year.

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.

~~~
copsarebastards
I don't really agree. The problem with C++ isn't its age, it's its complexity,
or what I'd call the "too many tools" problem. None of the languages you
mention approach C++ in sheer breadth of complexity. For a given problem there
are 100 ways to solve it in C++ and these ways of solving it may look so
different from each other that it's not even apparent they are solving the
same problem. Java, in particular, _doesn 't_ have this problem: it was
specifically designed to avoid this problem (read Guy Steele's interview in
_Coders at Work_ ) and while I dislike Java for other reasons, it largely
succeeded in solving that problem. Python's "there should be one, and
preferably only one, way to do it" is similarly trying to solve a similar
issue. C's lack of features also addresses this problem.

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++.

------
meric
I first started playing Wesnoth from version 0.5.0. Countless hours
'programming' in WML introduced me to software engineering. Back then I looked
at the C++ source and wondered when I'd be skilled enough to contribute.
Reading this, is making me consider returning to Wesnoth once again after
years of not having looked at it. Wesnoth is still filed neatly in my
bookmarks folder.

------
smoyer
I'm not much of a game player but I find the mechanics of building a game
engine indescribably cerebral. I'm probably a bit rusty with C++ but my years
(and years and years) as an embedded systems programmer taught me a lot about
optimizing software to minimal resources. I'm going to take a look at the
engine and see if it warrants some of my kind of love.

------
johnchristopher
I am trying to download the latest release (1.12.4a) but I am caught in a
never ending loop
[http://sourceforge.net/projects/wesnoth/files/](http://sourceforge.net/projects/wesnoth/files/).

Edit: okay, sourceforge is broken for me for any download, no matter the
browser.

Let's consider that my sourceforge rant of the week.

~~~
brownbat
Was trying to diagnose this for KeePass last night...

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...](http://www.theregister.co.uk/2015/06/03/sourceforge_to_offer_only_optin_adware_after_gimp_grump/)

~~~
johnchristopher
I wished something like distributed git for the masses or torrent distribution
would replace services that are a single point a failure such as sourceforge
or self-hosting.

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 ?

~~~
FossHub
FossHub, from a technological POV is no way different than Dropbox or any
other service. FossHub relies on multiple sources to store the content and
distribute this via multiple, separated locations. As for the most sharing
services, I share your opinion and would like to assure you that FossHub is
different. Disclosure: I am a member of FossHub team.

------
losername
here's the (official?) list of open bugs
[http://gna.org/bugs/?func=browse&set=open&group=wesnoth](http://gna.org/bugs/?func=browse&set=open&group=wesnoth)
not on github or the forums

~~~
mproud
Correct; the issue tracker is still on Gna.

A simpler way to get there is
[http://bugs.wesnoth.org](http://bugs.wesnoth.org)

------
seasoup
If it's got a big fan base they should crowdfund something so they can afford
to hire new devs.

~~~
mproud
The project prides itself with being fully free and open source. Its goal is
not turning profits or hiring developers.

Wesnoth has participated in the Google Summer of Code in the past, and it’s
possible artwork has been or could be commissioned.

------
prottmann
For the most companies your specified reasons are used to start with a clean
fresh new Version 2.

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)

------
paradite
The Battle for Wesnoth was the first game I that I installed and played after
getting Ubuntu. I consider it the best game available on Linux platform (maybe
except Braid). Sadly I am not equipped with enough C++ or Python knowledge to
contribute.

~~~
ectoplasm
Try out The Ur-Quan Masters a.k.a. Star Control II.

~~~
TeMPOraL
I second the recommendation. It's a great game. It may look simple, but it's
quite deep and has a great storyline. It's the first game that actually forced
me to start making notes. Also, starship duels in multiplayer (which consists
only of starship duels) is _so much joy!!_.

------
McElroy
They should do a kickstarter and then they can use the money to have more time
to develop the game or to hire people as good as they are looking for.

~~~
listic
I wonder how much would it cost to get sort out all the issues? From the look
of it, I am wondering whether the architectural and management debt would make
the cost unreasonably high.

------
tomcam
Isn't this a textbook case for crowd sourcing?

------
mcv
Is that game still not finished? Maybe everybody is happy with it and moved on
to something new?

------
nims11
Wesnoth brought me into turn based strategy. Game mechanics and elements
aside, the story in various scenarios were surprisingly captivating. I could
imagine myself role playing as the protagonist.

------
deevus
I wonder how much work it would be to get the basic game working using Unity
with the assets already available...

~~~
aliem
I guess this will violate the GPL license unless you are not going to release
it to the public in any form.

~~~
rhaps0dy
Why will that violate the GPL? Because Unity is proprietary?

------
Sir_Cmpwn
Out of curiosity, I dug for info on you a little bit after reading your
comment. Found your Github:
[https://github.com/rdegges?tab=repositories](https://github.com/rdegges?tab=repositories)

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.

~~~
ObviousScience
Isn't Battle for Wesnoth looking for C++ programmers to maintain their
codebase?

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.

~~~
Sir_Cmpwn
"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.

~~~
throwaway999777
_Rude_ like asking someone who has disposable income why they aren't donating
to a specific cause? Hmm.

------
entelechy0
I'd like to explore the possibility of contributing to its development and
maintenance. I may not be an "experienced" C++ programmer, but I am an
experienced programmer looking for more experience with C++.

------
wildster
They should build in something like AngularJS, Backbone or Ember.

~~~
jon-wood
I'm desperately hoping that this is satire.

------
enraged_camel
Perhaps the issue is that they are looking for intermediate to advanced C++
programmers who have experience with very large code-bases. That's a tiny
portion of the programmer population.

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.

~~~
jon-wood
If one of the problems they're trying to fix is not being able to iterate as
fast as they'd like then rewriting the entireity of a ten year old game isn't
going to help that.

~~~
enraged_camel
That's what I'm saying though: they aren't able to iterate quickly because
it's a huge codebase written in a programming language that is quite complex
and fairly outdated. Besides, I'd assume that intermediate and experienced C++
developers are probably older on average, and are unlikely to be interested in
developing games.

~~~
AdieuToLogic
You would assume incorrectly.

~~~
enraged_camel
Why is that? C++ is over 30 years old, whereas JavaScript is 20 years old.
Besides, the latter surged in popularity only recently. Based on these facts
alone, we can comfortably assume that experienced C++ developers are older on
average.

I can see why this is a controversial assumption though.

~~~
mattmanser
Seriously, please drop it. Javascript is not used to code games much, C++ is.
Javascript is pretty awful performance wise.

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.

~~~
irascible
emscripten would like to have a word with you. Also, Javascript is one of the
most heavily optimized dynamic languages in existence, and has orders of
magnitude more code and programmers using/written in it, than java, scala,
ruby, lua, etc. Rewriting any game in javascript is imho a great idea. (I am a
C/C++ game developer with ~25 years of experience.)

~~~
obstinate
Orders of magnitude more code written in it than Java? Hohoho good one. HTH:
[http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)
[http://githut.info](http://githut.info)

~~~
irascible
Java may have been a stretch.. but think about how many web apps have been
written.. and consider that a large %age of user time is spent in the browser
who's language IS javascript.. Ive removed java from my systems since oracle
ganked it. Java is used in lots of business/banking software, true.. but even
the tiobe charts u linked show it declining in popularity.. contrasting w js
being language of the year 2014. As for the other DYNAMIC languages.. it's no
contest.

~~~
obstinate
It wasn't a "stretch." It was flat out wrong.

------
a3n

      $ 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/

~~~
simoncion
I'm confused. Why did you post this?

~~~
a3n
Not familiar with the game, was delighted to see that it's in the repository.

~~~
simoncion
Ah. Your comment would have been better received if you'd said this, rather
than posting output from aptitude.

