-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everybody!
Last weekend we had a small Wesconf at FOSDEM 2008 in Brussels.
This mail is meant as some kind of short compressive version of what we have
done at FOSDEM.The following Wesnoth Developers and Packagers were at FOSDEM in
the hackers room that we used for our discussions and work:
boucman
cycholka (aka Mist)
ettin
grzywacz
Ivanovic
Mordante (aka SkelletonCrew)
Noyga
Pietro_S
Rhonda
Dave (aka Sirp)
YogiHH

At FOSDEM itself and in the evenings we basically talked about what Wesnoth
already has achieved, what we think which direction Wesnoth will/should take in
the future and what we plan to work on in the foreseeable future, plus things in
our policy that might/should be changed. I will separate the list of topics into
the various areas of the game that we do have, it is not sorted by who took part
in the discussion and when it took place. Keep in mind that many of the plans
listed here are more of "long time plans", that is they might not be completed
for the next stable series to follow 1.4.x, but might take by far more time.


* Translations:

- - How to handle translation and grammar fixes to reduce the amount of work for
translators?
In the current version of Wesnoth many translatable strings are included. We do
often find spelling mistakes and such strings often get invalidated. To reduce
the workload of translators by setting up some automatic system to remove
unneeded fuzzy markers, boucman had the idea to introduce a pseudo translation
('Wesnothian') where we just collect all the spelling and grammar fixes. Those
will eventually be applied and the translation file will be the source of
strings with false fuzzy markers. I already said that I can easily add this
pseudo translation and already talked to Rhonda so that he can have a look at
what Debian already has in regards of tools to do most of the work
automatically. He agreed to have a look at it.

- - Scalability of the translation community
Currently it looks like we basically reached a maximum of work/size for our
translation community. There is currently no translation that is 100% complete
and it is unlikely that one will be complete in the initial 1.4 release. We
discussed what we can do to help the translation teams and to reduce their
workload. This is also related to the addition of new content, since really much
was added post 1.2. Part of the result of this discussion is, that new content
should have been possible to translate for some time already in the form that it
goes into the game (cf the huge refactoring in NR, leading to hundreds of fuzzy
strings in the first month after addition to mainline, some translations already
had it almost complete in wescamp), that is the content should be available in
wescamp for some time already (this should by now be nothing more than setting
the correct marker when uploading content to the add-on server), it should have
been checked, that all strings are already marked translatable (wmllint can do a
lot of it by now) and that the texts are already fine and do not need bigger
changes beside spelling and grammar fixes that can be included in the
"Wesnothian" translation and can be applied.


* Multiplayer

- - simple password/nickname in MP, like in IRC?
We talked about adding some simple nickname registration like it is done in IRC
with the tool named "nickserv". That means that you can basically register a
nickname/password combination for the MP server. This nickname registration is
*only* about the nickname itself, no stats are meant to be saved. This feature
is meant to allow players to be more confident in knowing who they play with,
that is the user named "abcdefghij" will, if he is registered, be the same today
like he is tomorrow, where without such a feature everybody can say that he/she
would be "abcdefghij".

- - simple rooms in MP, like in IRC
We talked about the possible addition of some room system for multiplayer, so
that players could define rooms for multiplayer campaigns, tournament games,
1vs1 only, LANGUAGE only and so on. This is also meant in conjunction with a
possible ability of some kind of "server rotation" to allow a better scalability
if we need serverpower for more users.An example of how such a rotation could be
done can be seen in IRC where many servers do form the network named
"freenode.net". This way the server could scale better even when we have many
more users simply by adding one extra server.

- - change "package format" for network traffic
Currently the mp-server has to decompress all packages, take the information it
needs for itself, and then send the stuff to the other players. By introducing
some fixed header package which includes all information the server itself
really needs, all the rest could be left compressed and thus reduce the amount
of CPU power the server needs.

- - Should we support more "experimental" multiplayer content?
We talked about adding more multiplayer content that does not focus on
competitive tournament like multiplayer, like for example the rumble add-ons and
other things like more RPG like content. In general we came to the conclusion
that this might be a good idea, even knowing that balancing for this content
will not be perfect. We also talked about the addition of other factions. Those
would not be added in the default era, since it would basically be impossible to
balance *everything* with all of them. The discussion was very controversial and
we had no clear decision if we should allow addition of new factions like the
Kalifa or not. There will have to be some further discussions, but the main
direction was that *if* we add some faction, it should play differently compared
to what we currently have and be an interesting alternative (yes, we know that
this is not much and our normal standard...).

- - Work on Multiplayer campaign support, improving it, adding features needed 
to
enhance experience with it and eventually including some in mainline
Mordante volunteered to further support the work on multiplayer campaigns by
having a look at the existing bugs (and the ones that will eventually pop up).
We came to the conclusion that there are some problems left that won't be fixed
before 1.4, like for example that start of scenario saves for multiplayer
content are broken. But basically it should be working good enough so that we
can now get some real mp campaign work done and maybe integrate some into
mainline with the next development version series.

- - Multiplayer server on Windows
Since there were some reports on the multiplayer being unstable under Windows,
we tried to stresstest a server compiled and run by cycholka in the local lan.
We managed to crash the server several times. We have no sure way to definitely
crash the server. But there might be problems with heavy WML scenarios and
observers joining them. This problem requires further investigation.


* Memory consumption

- - Reducing memory consumption when using the configure option --enable-lowmem
On Saturday we worked on further reducing memory consumption when compiling with
the option --enable-lowmem. Boucman changed the animation engine, so that when
this option is set, no unit animations are used at all. So when using this
option, we can now even strip all unit images beside the unit base image from
make install. This is not done so far, but could be implemented to save
diskspace on small devices. This change saves several MB (boucman should have
the results from our test written down). Beside removing animations, the facing
of units was changed. Units now do only face in exactly one direction when
lowmem is specified at compile time.

- - config revamp with respect to memory consumption
Some configuration objects (like for example units) should be changed to allow
redcution of memory usage. Boucman, Mordante, YogiHH  and Dave were talking
about what could and should be done. This will be a bigger refactoring and a lot
of work.

- - unit WML cache loaded on demand
Currently all WML of the units is loaded when the unit is required. Not all of
it will be needed always. YogiHH wants to have a look at what can be changed to
improve the behavior of the cache.


* Bigger refactoring

- - new GUI system
Mordante plans to refactor the gui system to make it easier themeable and to
reduce the maintance load. Currently the GUI section seems to be a mess which
makes adding new features like tabbed view and changes to dialogs very
difficult. Beside this the dialogs do mainly scale badly with sizes different
much from the "normal" size 1024x768. For example could the attack dialog show
all the stats about ctk, cth, ... without having to click an extra button when
the screen resolution is big enough. Something like this is not possible with
the current engine.

- - odd-on server revamp
Mordante wants to takle some changes for the add-on server to introduce the long
wanted things like "content type" and to allow running tools like wmllint on
severside or on clientside right before uploading to reduce the amount of
problems with add-ons. Many of those changes will require changes to the GUI
system so that they can be displayed in a usable way.

- - new build system
Post 1.4 esr and I will work on switching the build system from autotools to
something "better". At the moment it is not sure which build system will be
used, the basic two alternatives are scons and cmake. There was a talk at FOSDEM
about each of them, videos of these talks will be available at fosdem.org in the
foreseeable future. grzywacz and I attended the talks and our impression was
that the syntax of cmake looks a little uglier than the syntax of scons. But on
the other hand the featureset of cmake seems to be really superior. For example
it directly offers many tests and might make life for packagers easier. It could
be used to easily allow creation of lite packages without much extra work. We
will have to evaluate and testimplement so that we see which of those is better
for Wesnoth.

- - formula AI integration
Dave has been working on allowing some formulas for AIs to be coded in WML. This
is some kind of functional programming inside WML to better control the behavior
of the AI. For example it would be possible to hardcode mapspecific behavior of
the AI in the first turns for some maps. Dave also demonstrated how the current
branch already does work to the developers that were still around when FOSDEM
was almost over. So far it seems to already work nicely and can probably be
merged into trunk after 1.4 is tagged. This AI also requires some additional
dependencies from boost. This is mentioned further below.

- - savegame format revamp
Currently the savegames seem to be a rather big mess. Mordante plans to have a
look at it and reimplement some of the logics. The benefit of this would be that
savegames should look more uniform. At the moment for example start of scenario
saves in MP look different than Turn1 saves. This revamp will also be needed to
cleanly fix some replay and mp-campaign savegame problems.

- - getting stats.wesnoth.org to scale better
Currently stats.wesnoth.org is basically unusable since the svg graphics want to
display every single entry. With several hundred values rendering the images
takes too long so that a timeout on the pages is the result. The data from
stats.wesnoth.org is very valuable for balancing content so we should try to
find a way to create better graphs that maybe not try to show every value but do
some calculations for how we show things. Maybe there are already some nice
libraries available which can do the work for us.


* Smaller Refactoring

- - layering in display code
Mordante wants to work on allowing layering in display code. This should allow
missiles in animations to be drawed on top and items to be drawed below.

- - fire and forget for animations
Boucman wants to implement a way to really have "fure and forget" animations.

- - addition of boost foreach and boost smart_ptr
Dave needs those two dependencies for formula ai and they do make sense to
support c++ coders in their work. The plain header files should be enough to
have it work, so it is not much of a new dependency.

- - prevent UMC namespace collision
Currently it is possible that namespaces of UMC collide. This should be
prevented since it can lead to strange bugs. A nice and good way to do so has to
be found.

- - testing if binary wml is faster than text wml and compare speed with gzip 
wml
We talked about the speed benefits binary WML might have compared to normal text
WML and to gzipped WML. At the end of FOSDEM Dave started to implement some
testcases to somehow benchmark the various kinds of ways we can use WML. He
suspects that binary WML might be a whole lot faster for processing and thud
should be used more often.

- - release of 1.3.19 aka 1.4-rc2
On Sunday afternoon I released as planned before.


* Policy and standards
- - updates to coding standards (in the wiki)
The wikipage about coding standards was updated at FOSDEM. Have a look at it to
see the changes. A new coding standard still has to be introduced: remove
implicit conversions of t_strings.

- --- important ---
- - more content in, more content out
We discussed what we can do in regards of content additions. We came to the
conclusion that we should keep with making it rather easy to add content, but
that we should also add a general policy to easily allow removal of content.
Currently we in theory do have this already, but with a better defined policy it
might be easier to handle. Here is what conclusion we had at the end:
* Before content is added it has to meet some requirements to make life easier
for translators (cf "- Scalability of the translation community"). This means
that the content should be available for translators for at least one or two
months via wescamp, so that they can already work on the stuff if they have the
time to do so.
* Content that is added should be evaluated after some time (that is after two
or three releases with the add-on in it, we should decide if we want to keep
it). The reason for this is that translators should know as early as possible if
they should spend their time on it or not (removal)
* If content is in after this time, it is enough if a developer says "I don't
think this content works nicely and should stay in" to have a new evaluation
among us devs.

- - money/ads/hosting discussions
We talked about the possibility of adding ads to wesnoth.org. A possibility
would be to only show the ads to windows users, like we have done for a short
time with the "get firefox"-banner. The reason to have those ads would be to
found a dedicated root server that we do have full access to. Boucman said that
there was some offer in France for rather string 2GHz machines with many GB
harddrive and unlimited bandwidth usage. On such a server we could host the
website including forum and wiki, a mailserver to allow @wesnoth.org email
addys/aliases for devs, the multiplayer and content-servers. Currently there
seem to be some problems with the confirmation mails at the forum registration.
In the last year every now and then we had some problems with the servers, so it
might be a valid idea to change to a server we have full control about. Beside
this the money can be used to eventually found a real Wesconf, where every
developer could get some support for their expends to get there. We could/should
also ask more prominently for donations to be able to found a Wesconf.
To really allow this we should have a look at what is needed in the various
countries to start a non-profit foundation. This would probably allow us not to
be forced to pay too many taxes, as we would normally have to do with ads.



Overall FOSDEM was really great to discuss things. We were able to talk about
many topics, though we have not implemented too much, since it was better to use
this chance for discussing concepts and ideas. If I have forgotten anything in
this list, please post it. If I made any big errors, please correct me.
Of course this is also meant as a base for further discussions, especially with
those who were not able to attend FOSDEM. So feel free to start discussing about
single of the items. Probably it will be better if you discussed the stuff with
new topics for each, since otherwise it will be really difficult to follow what
was the "we had this at FOSDEM" and "following in depth discussions".
What still is to be done, is putting our decisions into the Wiki.

Cheers,
Nils Kneuper aka Ivanovic
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHwv3KfFda9thizwURAso6AJwLap3lFdu2XMFi1CVbQyYJfHZE0gCfeNxl
Iy2t70iegXqJf1iP8s+2sF8=
=cDqg
-----END PGP SIGNATURE-----

_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to