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.
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.
another of the problem is that they need more polish and fixing and there aren't major captivating features in the works, and it's hard to bring unpaid volunteers on board with that prospect in mind.
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.
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.
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 ;-).
Older on average than JS programmers, that's a reasonable assumption if you also assume that the "surge in popularity" brought a ton of kids to JS. But that they're older in general on average (i.e. not a lot of young C++ developers)? I would doubt that.
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".
Because you only learn a language at a certain age, and only if the language in question is brand new? That's doesn't make sense (and that's an understatement to be nice).
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.)
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.
> Rewriting any game in javascript is imho a great idea.
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].
32/64 bit float is the native float type on the cpu you are running on.. hence you can't really claim "native" support for larger types.. if you mean native in terms of being able to write a+b for a numeric type, then that eliminates all languages that don't have operator overloading..
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?
No disagreement on that one! If your application must be multi-threaded, it does make sense to write it in a language with proper multi-threading support.
nod nod I just wish irascible would come back. I was interested in hearing what -from his 25 years of game development experience- makes him feel that "Rewriting any game in javascript is imho a great idea.".
I'm obviously missing something, and I was looking for the benefit of his insight.
I've made a litte patch for Wesnoth long time ago. While the codebase wasn't small it didn't really matter that much. There are a lot of things in the game (animation, networking, ui, game logic) that are separated enough that it's not that much of a big code mess like most commercials projects you see.
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.
Agreed. Wesnoth's codebase is pretty straightforward, "dumb" C++ (and I mean that as a compliment--smart C++ can get you in trouble really easily). I think most of the bits of it I've wandered through are pretty good examples of how to write C++ for games without killing yourself.
It's shocking how much a wannabe game dev that looks like Philip Seymour Hoffman's younger sister can learn about enterprise development too, when they've never actually worked a day in their life at a typical enterprise shop.
"Bigger pool" maybe, but the average "JavaScript programmer" is less talented than the average C++ programmer and less likely to be aware of the performance issues abstracted away by JavaScript, which was designed "to make the monkey dance when you moused over it".
If you're looking to rewrite the game, I'd recommend looking into Unity3D[1] instead of trying to make it in JavaScript. It'll be a lot less painful.
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.
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.
I respect that the Wesnoth community may not want to go this route, and wouldn't blame anyone for that at all. My suggestion was more along the lines of "here's an option which won't be nearly as painful" than anything else.
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.
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.