A SoC JustasJ

From The Battle for Wesnoth Wiki

This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas

This is a Summer of Code 2010 student page
Project: SoC Ideas Your Own Ideas



JustasJ - a history-based Campaign on Medieval history of Lithuania

irc: JustasJ
forum: JustasJ

I am Justas and as a person who wanted to create games for a very long time I would like to add my own campaign to the game. To make it a unique addition to the game, I have decided to make it about the medieval history of Lithuania. My campaign would cover a huge period of time - from the first mention of Lithuania in the European texts, 1009 AD to the death of the great duke Vytautas in 1430 AD.

Last Updated: 4/3/2010



SoC Application

A historical campaign for Battle Of Wesnoth

Proposal Summary

The campaign I am planning to make would include the most important parts of the medieval history of Lithuania. See 4.5 for more detail.


1) Basics

1.1) Write a small introduction to yourself.

My name is Justas, I am 18 years old and I was interested in development of computer games ever since I started playing them. My other hobbies include reading books about history and philosophy. Also, I like to make model rockets and program or use various programs for my personal entertainment from time to time. I am having my last year at high school and am planning to take the next year off or do some more independent courses before I apply to the university, or more specifically, to study Software Engineering.

1.2) State your preferred email address.

Stated in the proposal.

1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?

Both are "JustasJ"

1.4) Why do you want to participate in summer of code?

I want to learn to work in a team of developers, improve my communicational and organizational skills as well as make new friends and learn how to do some things I never before knew how to do. The Google Summer Of Code is a project which could change my life. I was never so close to my future work as I am now. Also, it provides a very good alternative to working at summer since it would keep me occupied as well as to receive a stipend.

1.5) What are you studying, subject, level and school?

Right now I am having my last year at High School. I am studying at Klaipedos Vytauto Diziojo Gimnazija in Klaipeda, Lithuania. I have chosen to study advanced levels of Mathematics, Physics, English and IT. I am planning to study Software Engineering

1.6) What country are you from, at what time are you most likely to be able to join IRC?

I am from Republic Of Lithuania which is a part of the European Union. I am most likely to be on IRC from about 1 to 11 pm standart time(GMT)

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

I am not planning to take vacations. I am planning to move to Sweden at the end of summer, though, but it will be right before September, so it should not interfere with my work. I am thinking of working at summer, but I am not likely to do that if I am accepted to work at GSoC.

2) Experience

2.1) What programs/software have you worked on before?

I have made a few very small(smaller than 100 lines) games in Pascal language in order to learn what I am being taught at school, but haven't made anything serious yet.

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)

Not really. That's why I want to participate in Google Summer Of Code.

2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?

No, because I have heard about students being able to participate in it just recently.

2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

No, I am not yet involved in any projects.

2.5) Gaming experience - Are you a gamer?

Yes, I like to play some games from time to time.

2.5.1) What type of gamer are you?

I am the gamer who is not addicted to any specific game for long. I like to play it for a while, later I may stop playing it for a month or two and when I feel like it, begin to play that game again.

2.5.2) What type of games?

My favorite games include Civilization III and IV, Age Of Empires II, The Elder Scrolls III: Morrowind, Starcraft and a few others. I am not in favor MMORPG's, even though Haven & Hearth is a possible exception. Also, I am not a fan of games who have a very poor gameplay or a very poor story but extremely advanced graphics. I think that such games are good to look at, but very bad to play.

2.5.3) What type of opponents do you prefer?

I prefer to play against computers or with my friends. I seldom play any game in Multiplayer with some random strangers.

2.5.4) Are you more interested in story or gameplay?

The story is a very important aspect of the game since it makes the game interesting. However, no matter how good a story is, poor gameplay will kill the player's interest in it.

2.5.5) Have you played Wesnoth?

I have started playing Wesnoth two years ago. I play it from time to time and like to play some new campaigns in order to delve into it's story. that's the reason why I seldom play in Multiplayer, even though Wesnoth should be one of the better games to play in Multiplayer with. However, I seldom have enough time to play in multiplayer.

2.6) If you have contributed any patches to Wesnoth, please list them below.

I have not yet contributed any patches to Wesnoth yet.

3) Communication skills

3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.

My fluency in English was tested by the International English Language Testing System(IELTS). I scored 7.5 from 9 possible points, proving that my English is good enough to study other subjects in.

3.2) What spoken languages are you fluent in?

Besides English, I am fluent in Lithuanian and now some Russian. I am planning to learn Swedish some time in the future.

3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

Yes I am, but I have a strange personal character, so I can often be misunderstood by them. Also, I am often to talkative for some of them, especially if they come to boast at how good they are at the game while I am not interested in their level of skill.

3.4) Do you give constructive advice?

Yes, I am capable of explaining what I know in a simple, understandable, way.

3.5) Do you receive advice well?

Yes, I ask other people if I don't know about something. In most cases, all I need from other people is assurance that I know what I am doing.

3.6) Are you good at sorting useful criticisms from useless ones?

Yes. I know that I do not know everything about any subject. Yet some people often feel like they do. I know such people then I hear the criticism from them.

3.7) How autonomous are you when developing? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want?

I like to document what I am doing before I do it, but it is possible that I make some changes while developing it. I find it useless to set the numbers involved in the code, for example, because I know I will need to modify them later.

4) Project

4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?

I am not sure my proposal is relevant to your list.

4.2) If you have invented your own project, please describe the project and the scope.

I would like to make a Wesnoth Campaign based on medieval history rather than fantasy. Particulary, I am thinking of a campaign which would focus on history of the Great Duchy of Lithuania which has an interesting history which is not known well to people from other parts of the world. My Campaign would be split into three parts:

I. First and Last King: A story of Lithuania's first king Mindaugas, how he forged the kingdom of Lithuania to fight against the Teutonic knights which come to conquer the last Paganic land in Europe and his struggle to keep his throne and his fall.

II. Between The Seas: A story about how Lithuania held back the Mongolian horde and prevented Mongolians to conquer Europe and how Lithuania, now being semi-dependant on Poland becomes the greatest and the most influention country in East Europe.

III. Will To Power: Lithuania's leader Vytautas has to escape the castle where he is kept prisoner by his grandfater, king of Poland, Jogaila, in order to reassume leadership of Lithuania. Later, after peace with Poland is achieved, he participates in the greatest battle against Teutons ever - Battle Of Zalgiris which is won by the alliance of Lithuania and Poland. The scenario ends with Vytautas asking the pope to deliver him his crown, but the Crown gets held up by the Polish noblemen. Vytautas dies waiting for his crown and the United Republic of Poland and Lithuania is established. The Union existed until the year 1795.

More code-related features of the campaign:

1. Some units would have a unique attack, which instead of injuring the unit would convert the unit to join his faction while other units would be resistant to such attacks;

2. Mounted troops, once their health reaches zero, instead of dying, loses their horses and have to fight like an infantry. If their health bar reaches zero, they die, if their experience bar fills, they get mounted again;

3. Special powers, which could help the players for a moderate sum of money. This would include complete healing of a unit, poisoning of an enemy unit, or bribing a unit to convert(leaders can not be converted). Only one power could be used per turn;

4. A different way of recalling: the player begins the game with the better half of the units from the last scenario. However, if the player has a negative amount of gold, some troops get automatically disbanded and 75 percent of their cost is returned. So taking villages becomes even more important than it was before;

5. If I had the time or was asked to, I would improve the map editor to support more sophisticated tasks, like putting units on the map, making special events happen on the map if required conditions are true and giving ability to make a scenario without complete knowledge of the WML.

4.3) Why did you choose this project?

I think it would be interesting to make a campaign which would rely on history rather than fantasy especially if it is about the history of my own country.

4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".

If I spent three months making this campaign, I would spend about a week or two to refresh my knowledge of history.

Then I would list all of the scenarios, factions, units, areas of the game and would make all the units(including art) and the maps(some of them with geopgraphical accuracy) required for the campaign. This should take me about a month.

Lastly, I would write the code for scenarios which should take me the rest of my time. I hope that the first scenarios should become available in the midst of June.

4.5) Include as much technical detail about your implementation as you can.

I would use a digital copy of the regional map from the time, I would research what were the dates battles took place in and what units each country used(there should be Lithuanian, Polish, Teutonic, Russian and Mongolic units as well as factions in the game).

The most important parts in the campaign would be:

In the first part:

The first encounter with western europeans which resulted in their death in 1009 AD, the first sight of the Teutons in the area, the efforts of uniting Lithuania by the King Mindaugas, his expansion into Russian territories and his death in the conflicts arisen from him accepting Christianity.

In the second part:

Expansion from one sea to another by both diplomatic and military actions and struggle to defeat the Mongolians which came from the east as well as fighting Teutonic knights in the west, who still claim to come with intents to make Lithuania adopt Christianity.

In the third part:

The great duke Vytautas escapes the prison set to him by his granfather and the king of Poland Jogaila. Vytautas escapes in maid's clothing in order to re-establish his influence in the region. After peace between Pland and Lithuania, both countries fight the Teutons in the Battle Of Zalgiris(1410) and achieve victory. Vytautas later tries to crown himself a king of Lithuania, but dies waiting for the crown(1430).

As of units, teutons would have priests(healers armed with clubs), knights(heavy cavalry or heavy infantry, depending on the level) and crossbowmen. Lithuanians would have archers, light infantry and cavalry which remains fast in forests or swamps: Zemaitukas, which would later advance to Vytis, a mounted swordsman. Polish would have light infantry and light cavalry of their own for starters and their advanced levels would lose speed but gain more power. Mongolians would have Horse Spearmen which charge and Horse Archers with good ranged damage but their units would be bad in forests.

I would try to be as historically correct as possible.

4.6) What do you expect to gain from this project?

I expect to make a very good addition to the current scenarios in the game, as well as introduce the history of my country to internation players. Also, I would learn how to create such projects and how to enrich player's gaming experience from my work.

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

If the interest in my campaign would be big enough, I would make some more campaigns or scenarios.

5) Practical considerations

5.1) Are you familiar with any of the following tools or languages?

   * Sub­­version (used for all commits)
   * C++ (language used for all the normal source code)
   * STL, Boost, Sdl (C++ libraries used by Wesnoth)
   * Python (optional, mainly used for tools)
   * build environments (eg cmake/autotools/scons)
   * WML (the wesnoth specific scenario language)
   * Lua (used in combination with WML to create scenarios)

I am familiar with WML - I can understand them but still have some difficulty at writing them on my own.

5.2) Which tools do you normally use for development? Why do you use them?

I use Wordpad for writing code(simple but efficient) and GIMP for artwork(powerful and free). Also, I would read history books and research on the Internet the facts about the region's history in order to stay historically correct.

5.3) What programming languages are you fluent in?

I am fluent in Pascal and Ruby and a beginner in Java and maybe PHP and C++.

5.4) Would you mind talking with your mentor on telephone / internet phone?

Sure, I will include them in my proposal.

In general please try to be as verbose as possible in your answers and feel free to elaborate.

This page was last edited on 21 March 2013, at 01:24.