the battle for wesnoth as a teaching tool kaido kikkas institute of informatics tallinn university
TRANSCRIPT
The Battle for Wesnoth
A turn-based, fantasy-themed strategy game Founded by David White in 2003, now at v1.4.3 Influences: Master of Monsters, Warsong Fully free and open-source software under
GNU General Public License Cross-platform (Linux, MS Windows, MacOS X) Both single- and multiplayer Available in 41 languages (the scope varies) Extensive and active community at wesnoth.org
Basics
Played on a hex map with several dozens of terrain types (influence movement and defense)
Hundreds of units in various (6 in default era) factions, each with distinct strengths and weaknesses, 2-5 levels (mostly 3), movement...
Day and night cycle vs the unit alignment Economy based on gold, generated by villages In campaign mode, surviving units from
previous scenarios can be recalled Missions may vary greatly (even if destroying
enemies is the most common one)
OK, but what does it have to do with teaching & learning?
Homo ludens :-) Similar to teaching web design – should give
three kinds of skills: Technology: coding (programming) Design: artwork, maps, overall aesthetics Content: scenarios and campaigns
Compared to web design: Technology is more prominent – includes event-
driven programming in addition to markup Content is more affected by the other two (or vv)
Two cases up to now
Autumn 2007 – TLU IMKE Master students, mostly with no or very basic programming skills; 6 persons (two teams of 3) participated
Spring 2008 – TLU third-year computer science students with adequate to expert propgramming skills; more than 20 people (5 teams of 3-5) completed the course
Two rather different sets of people - yet the course worked in both cases
The point of the courses was not Wesnoth, but the open-source way of development
The ideas behind Open Source
Roots in the hacker culture of the 60s Richard M. Stallman, the Father of Free Software Linus Torvalds and Linux Eric S. Raymond, The Cathedral and the Bazaar
(Note: he is also an active contributor to Wesnoth) The avalanche grows: LAMP, GNOME/KDE,
OpenOffice.org, Moodle ... Not freeware: the zero price is not the point The point is in collaboration, community, peer
review and flexibility
What can be taught with Wesnoth?
Storytelling and expression, overall creativity Graphical design Animation Markup (a possible step before moving to
XHTML, XML, AJAX etc) Event-driven programming NB! Easier to 'sell' to non-technical students! The good thing is that these can be mixed and
balanced according to the audience, allowing a good range of accommodation
Campaign building
Write the storyline, design major events and divide them into scenarios
Choose/build units for main characters For each scenario
Design (objectives, events) Draw the map (considering terrain and starting points) Choose units and recruitment scheme Code the scenario
Code the campaign summary Test and balance
Storyline
Wesnoth has its own fictional history (http://www.wesnoth.org/wiki/History_of_Wesnoth) as well as geography: http://www.wesnoth.org/wiki/Geography_of_Wesnoth
On the other hand, several interesting attempts have been made to base totally different storylines on the Wesnoth engine
Eric S. Raymond has written the Wesnoth campaign design How-To: http://www.catb.org/~esr/wesnoth/campaign-design-howto.html
Wercator map converter
By Brennan Sellner Converts Wesnoth
maps to fancy graphical maps
A plugin for GIMP Available online at
http://www.sellner. org/wercator/
Units
Several hundreds are available, distributed under different eras (historic sets)
At first, choosing among ready-made ones is more than enough. The unit list for v1.4 is at http://www.wesnoth.org/units/1.4/C/mainline.html
To create new units, tutorials are available at http://www.wesnoth.org/wiki/Art_Tutorials
In the newer versions of Wesnoth, multi-frame animations, shadows, different view angles etc are used, making unit design quite complex
Wesnoth Markup Language
Rather similar to XML Tags written in the form of [tag] A typical scenarion consists of
Various metadata in the beginning Storytelling part explaining the situation Map data (can be included, but is typically linked) Day/night cycle and difficulty specifications Prestart part (definitions of sides, objectives etc) Event-based buildup for the scenario
WML...
Can be very simple, but allows for really complex operations (changing units and terrain on the fly – e.g. a character can be magically turned into a monster or a cave wall may open under a spell or password; events may also depend on if a character from a previous scenario is alive etc etc)
Teaches good structure (opening and closing tags, correct use of parameters) as well as 'the big picture' (campaign level)
Examples
A demo campaign I started to develop in spring A crazy story which involves a lot of famous
characters from various tales and also some celebrity-based people (including a Finn...).
Will gradually feature more complicated techniques, the 2 existing scenarios are quite simple
Final words
Wesnoth is a versatile tool for teaching a number of things
Fully open in nature => may be used to develop new things without messing with the 'IP' stuff
Sometimes people learn better from playing :)