Improve Random Maps

From The Battle for Wesnoth Wiki

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

This is a Summer of Code 2014 student page


Improve Random Map Generator

The aim of this proposal is to create better random-generated maps for singleplayer and multiplayer game using new elements and options

Using different "biomas" in the same map (not only desert for example) to make more "unique" scenarios, also, including other elements like peninsulas so the general form of the map changes





1.1) Write a small introduction to yourself. I am a self-taught programmer (which means I was taught by someone that did not knew anything), I have been programming since I was 14, and the last year and a half I have been in college, learning again (and improving a lot) programming.I have always been playing videogames, in particular RTS and simulation games for PC.

1.2)State your preferred email address.

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

1.4)Why do you want to participate in summer of code? My principal interest in participating in GSoC is having the option to learn and get experience from a real project, also, the chance of participating in a strategy game that I have been playing for years makes this project more attractive to me.

1.5)What are you studying, subject, level and school? Computer Engineering in Granada University, 2nd year

I am learning some different languages, but I usually work with C++.

1.6)What country are you from, at what time are you most likely to be able to join IRC? I am from Spain, I could be in the IRC between 5 and 9 PM (CET)

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when. I don´t have other important commitments by now, and my vacations plans would change depending on this project


2.1) What programs/software have you worked on before? I have done some small games and programs on my own, also I am working at the moment in FerMath ( a project of open source of a multitask calculator. I also participated as a finalist on National Programming Olympics (Spain)

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own) FerMath is a project developed by a 3 members team, with contribution of people (programmers and not programmers)

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? I have never participated in Google Summer of Code

2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement. Yes, FerMath, as part of Universitary Contest of Open Source Development, where I am one of the lead Designers and Coders of the project

2.5) Gaming experience - Are you a gamer? Since my childhood I have been playing with my PC

2.5.1) What type of gamer are you? PC gamer, I am one of the few people that prefers single-player gaming than multiplayer

2.5.2) What type of games? I play all genres of games, but I have always preferred the good old strategy games like Tzar or AoE and Simulation Games of all kinds. from flight simulators to city management like Pharaoh and SimCity. I have been always interested in "Sandbox" games, like Black & White or Minecraft where you can create and change everything.

2.5.3) What type of opponents do you prefer? I like "Intelligent" computer opponents either easy or hard, so a single player gaming experience could be the best, I also like face to face playing in lan parties

2.5.4) Are you more interested in story or gameplay? Both, a great game can be made from story or gameplay, but a lot of last generation game forgets the gameplay which, simple or complex can make a game alive for decades

2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer. I first heard of BfW some years ago, it became one of my favorite freeware games, I have been playing sporadically since then, usually playing different campaigns in single player, but also some turn-based match with friends.

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. I could describe as good my fluency at English when reading and writing, at the moment I am studying to pass the Advance Exam of Cambridge, but one of my interest to participate in this project is to acquire some real experience using English in my field

3.2) What spoken languages are you fluent in? Spanish, my mother tongue

3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough. I usually prefer single player games, but when playing or interacting with other players (online RPGs or multiplayer) I had good experiences both, learning and teaching in an informal way about programming and playing.

3.4) Do you give constructive advice? I try to do it when I can

3.5) Do you receive advice well? Yes, I do not always follow the advice, but I always try to listen to them

3.6) Are you good at sorting useful criticisms from useless ones? I think about all the advices people gave me, and I try to apply those ones that I find useful

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 discuss things, but most of times I need to code my ideas to try them and to find exactly what I want, so I usually take the risk.


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? No

4.2) If you have invented your own project, please describe the project and the scope. The random generator of maps creates maps a bit lame for a match, the mountains, villages and lakes change their place, but all of them seems the same. Some videogames like Tzar generates random maps more "alive" with more elements such as islands, peninsulas etc.. For multiplayer matchs, where you want a random map to play without handicap, in battle for Wesnoth you get bored after 3 or 4 matchs

4.3) Why did you choose this project? It is programmed in C++ and is a strategy videogame I previously know, so it seems perfect for me

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". Before Summer, I will read code and documentation of the project to understand all I can, also I would like to learn about the graphic library used in Wesnoth, then, after the Exams of June, I could get involved in the project in my free time (which is a lot in summer), maybe a week or two I will be on holidays, but probably I will keep working those days

4.5) Include as much technical detail about your implementation as you can I will need time for learning the actual code of Map generator, but one of my ideas (wich seem it is not implemented yet) is to create "default" elements such as lakes, islands, big mountains or peninsulas and place them in the terrains, increasing the "singularity" of the map

4.6) What do you expect to gain from this project?
Experience in programming strategy videogames (my ideal field of working) and having a real job in programming, learning from a real project I admire and practising my English

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
If my contribution is found useful (I hope it will be), it would be for me a great experience to keep doing things to keep one of the best turn-based videogames moving

5)Practical considerations

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

Git, I learned the basic functions of Github with my open source project Fermath
C++, the language I usually use for programming and STL
also, I know something about Python and I have saw sdl before.

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

I usually use DevC++ for programming C++ in Windows and gedit/g++ for programming in Linux, but in college I have used tools like netbeans, code::blocks gnuplot.

5.3) What programming languages are you fluent in?
My most fluent language is C++ (reason why I am particularly interested in this project) but I have also programmed in Java,Ruby,Python and bash scripting

5.4) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to Google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!

In general, students should be as verbose as possible in their answers and feel free to elaborate. I will not have problem contacting by phone

This page was last edited on 21 March 2014, at 09:26.