The History of, and Philosophy behind Wesnoth

Discussion among members of the development team.

Moderators: Forum Moderators, Developers

The History of, and Philosophy behind Wesnoth

Postby Dave » December 17th, 2003, 11:29 pm

The 18th of December will mark six months since the first version of Battle for Wesnoth, version 0.1, was released.

At this time, I feel it is appropriate to respond to something Bazarov said in another thread:

Bazarov wrote: am having a little difficulty understanding the core values of the game in the eyes of the creators. I think having an established, ordered list of these would help a lot in my attempts to help. A white paper of sorts. I don't think this should be done by voting, either; a clear, concise vision would be nice. Where does originality factor in? I, too, felt that the game's focus was on the units rather than the strategy, that the building of my colourful army was more important than the logic of any scenario.


We talk about the 'KISS [1] principle' here alot, and I think that that is the most core design principle used in Wesnoth. It was the key principle that enabled Wesnoth to get off the ground, and it is the principle that has kept it alive since.

When I was a teenager, I attempted to write games several times. Some of them were playable, even impressive - especially considering my resources and skill - but none of them were professional, and polished. When I showed them to people, they would be impressed, and say "this looks good", but I knew that none of them would actually want to take the game home and play it for themselves.

My programming skills back then left alot of room for improvement. I had a basic, self-taught knowledge of C and C++. Then I went to college, and after that got a job programming, where my skills improved immensely.

In some of my spare time, I decided to try writing a game again. What kind of game? Well, I was confident of my skills, so I would write a complex game, using all the latest programming tools.

I wanted to write a Civilization-like game, but with some major rule changes, and a better AI. I had thought up sophisticated systems for everything. The result? It failed before it even got started, collapsing in a mountain of complexity.

I gave up on writing a game for a long time after that. I was busy with other things anyhow. But then one day, I played a game that I had played when I was much younger, a Genesis game: Master of Monsters. It was fun, lots of fun, yet it was simple. Simple enough that I was confident I could program a game like it easily enough.

I had analyzed that most Free games fall into one of two categories: they are either boringly trivial, or they are insanely complex, and never really get off the ground. I decided I would claim the middle ground: make it simple enough to write, but substantial enough to be lots of fun. It wouldn't be as ambitious as some things I wanted to write, but at least it would work.

But, I don't see the point of writing a Free game which is simply a copy of a commercial game. My aim would be to write something new, something better, something which borrows the best ideas from a number of other games, and which adds new ideas of its own.

I decided on a simple rule for the game: a feature would be added only if I knew immediately how to implement it. I wouldn't make vague promises to myself about features that would be later added, but which I had no idea how to do.

I started with a few basic units, and two races: Orcs and Elves. Elves had horsemen, which could advance to knights, archers which could advance to rangers, and fighters which could advance to heroes.

I considered different systems of advancement. Even considering something which keeps track of the activity the unit undergoes, and advances it in that area, but I rejected such a system for something simple, something similiar to Master of Monsters with the added choice of letting the player choose what their unit advances into at some points.

The focus would be around building your own army, and watching it grow as its members became more experienced. You would only have basic control over the advancement of a particular member of the army, but you would decide what units go into the army.

I also fleshed out a very basic interface. There would be only a few commands: to move a unit, and to attack with that unit, as well as to recruit and recall units. I added in unit skills, which was something Master of Monsters didn't have, but I made the skills occur implicitly -- healing would be dispensed to all units around a specific unit for instance.

Obviously, Wesnoth is a fantasy game, so it contains some implication of spells/magic, however I have always disliked games that got deep into sophisticated systems of spells.

In Wesnoth, wars would be decided with sword and bow. Mages would be involved too, of course, but warfare was to be about guiding troops around strategically, not about which spell to cast and where. So, from the beginning I decided that all spells would be implicit, or simply a type of attack.

This was a big divergence from Master of Monsters where one spell could be cast every turn by each master at any place on the battlefield. That was, in my opinion, one of the game's worst features - if your enemy had advanced a unit on the other side of the map, you could try to kill him with a spell.

I also made the combat very simple. An example of this is the way in which the chance to hit is calculated. I'm wondering how many people know how the chance to hit is calculated in Wesnoth? I thought it was alot more complex in Master of Monsters until I studied how they did it.

What I suspect most people would immediately consider for a chance-to-hit system would be a formula that relies on the attacker's skill with the weapon, and the defender's defensiveness, as well as the terrain the defender is in.

The way Wesnoth does it is in fact so insanely simple that I suspect many people who did not know how it is done will think 'what a naive, silly system!' when they read the following:

The chance to hit is taken entirely from the defender's defensive rating in the terrain it is in.


So, Elves are always 30% chance to hit in forest, and 60% chance to hit in grassland. The attacker's skill doesn't come into the equation.

I decided it would add interesting strategy, though, if just a very few weapons had a special attribute that would guarantee them a certain chance to hit. I decided that was an appropriate thing for magic, to differentiate it: so, I decided that magic attacks would always have 70% chance to hit.

For all my efforts though, and for all the people who say that graphics are of little importance or unimportant, I don't think that Wesnoth would have gotten anywhere if fmunoz hadn't seen it, and drawn some very good graphics for it. The graphics I had drawn were pathetic, but he drew some nice ones, and added the undead and later humans to the game, as well as doing some scenarios, and adding some very good ideas to the game.

I think it's important for us to remember the KISS principle as development continues. Remember: Wesnoth has not reached 1.0 yet. It's not a finished work. It could still fail. Let's make it easy for it to succeed by keeping everything simple.

Oh and how did I come up with the name 'Wesnoth'? It was late at night, and I wanted to release version 0.1. I muttered syllables to myself, until I came up with a pair that sounded halfway reasonable: 'Wesnoth'.

David

[1] Keep It Simple, Stupid
Dave
Founding Developer
 
Posts: 7064
Joined: August 17th, 2003, 5:07 am
Location: Seattle

Postby methinks » December 18th, 2003, 12:42 am

Wow, I love you.
Sounds... so well. And Wesnoth is more than reasonable name. And game does not to be simple at all :) I mean from programming point of view (as I see it) :P
Well, it also grows bigger and bigger. I believe you have learnt more than more by writing it. And that after Bfw is finished you will write one of your imagined games. Also, you will have full supply of men power then, heh :)

I thank you, fmunoz and all contributors for making this game. I am sorry Dave but you are so wrong this project will never fail, it has gotten so far. It is already finished in fact, just not finished the way you and most of us wish it to be. Making more units, anims and finishing both campaigns would make it already 1.0 :)
methinks
 
Posts: 283
Joined: September 18th, 2003, 2:14 pm

Thanks

Postby Bazarov » December 18th, 2003, 3:37 pm

Thank you for taking the time to explain the methodology and logic behind this all. It will make contributing easier, I hope, not just for me but for others. It helps with perspective as well. I had no idea that the project was only 6 months old, it is very impressive to have moved this far that quickly.
The actual text was enjoyable to read as well, and the inescapable specificity of a born coder shines through.
I had a roommate only 3 years ago who worshipped Master of Monsters, I watched him spend days playing it instead of on his computer: a testament to the strength of the model. I noticed the similarities instantly and it is good to hear it admitted.
I hope you continue to be vigilant with respect to KISS and avoid creeping featuritis, but also keep an open mind to new ideas.
BAZAROV
Bazarov
 

Re: The History of, and Philosophy behind Wesnoth

Postby charlieg » December 18th, 2003, 4:12 pm

Dave wrote:It could still fail.


I think not! It is already a very good game by FOSS standards. Even if you were to discontinue work on Wesnoth, I guarrantee that somebody in the Wesnoth community would take up the mantle; that's what happens with good FOSS software and why good FOSS software will rarely fail, just occasionally slow down.
Free Gamer - free games compendium & commentary
FreeGameDev - free game development community
charlieg
 
Posts: 209
Joined: December 16th, 2003, 8:41 pm
Location: Manchester, UK

Postby lala » December 19th, 2003, 3:13 pm

good FOSS software will rarely fail, just occasionally slow down.


You'll probably see even variations on this game, using the display and movement code!
lala
 

Postby charlieg » December 19th, 2003, 11:40 pm

Dave: You should make this a web page, since it is quite a lengthy and heartfelt document and one many people may be interested in reading - it'll only get lost in a forum. Something like http://www.wesnoth.org/philosophy.html?
Free Gamer - free games compendium & commentary
FreeGameDev - free game development community
charlieg
 
Posts: 209
Joined: December 16th, 2003, 8:41 pm
Location: Manchester, UK

Postby fmunoz » December 19th, 2003, 11:48 pm

charlieg wrote:Dave: You should make this a web page, since it is quite a lengthy and heartfelt document and one many people may be interested in reading - it'll only get lost in a forum. Something like http://www.wesnoth.org/philosophy.html?

It's easier to put it in the wiki and put a link to it somewhere else
fmunoz
Founding Artist
 
Posts: 1469
Joined: August 17th, 2003, 10:04 am
Location: Spain

Postby Dave » December 20th, 2003, 11:31 pm

fmunoz wrote:
charlieg wrote:Dave: You should make this a web page, since it is quite a lengthy and heartfelt document and one many people may be interested in reading - it'll only get lost in a forum. Something like http://www.wesnoth.org/philosophy.html?

It's easier to put it in the wiki and put a link to it somewhere else


Okay I have put it in Wiki at http://wesnoth.slack.it/?WesnothPhilosophy (btw anyone else could have felt free to do this themselves :) )

David
Dave
Founding Developer
 
Posts: 7064
Joined: August 17th, 2003, 5:07 am
Location: Seattle


Return to Developers’ Discussions

Who is online

Users browsing this forum: No registered users and 1 guest