Polls

Default Game Speed

Log in to vote!

Latest Posts

GettingStarted

Getting Started as a Creator of Game Content

Introduction

So you are interested in creating content for the project? Great! Welcome!

Whether you are a coder, graphic artist, musician, or web guru, there are some steps to take to get started as a productive participant. You may not be familiar with the development environment and tools used in the Widelands project, so this page is intended to outline what is needed by a creator of content. It CAN get a bit technical in places, but have courage, most of those tasks are one-time set-ups. (Remember that you are invited to post any questions you may have in the forums or the IRC Chat.) So let's dive in. face-smile.png

Launchpad and GitHub

All of the files that make up the source code, documentation, graphic and audio content of Widelands is maintained in one of four repositories on Launchpad.net and GitHub

  • The main development widelands master on GitHub - contains all of the application-related files, (i.e. everything that is needed short of a compiler and libraries to build and compile an executable version of the game.)
  • The media trunk on Launchpad - contains the graphic and audio sources used to generate Wideland's visual and audio content. Media bugs and projects are tracked in the Widelands repository though, and they all carry the media label.
  • The website master on GitHub - contains the code that supports this website.
  • The metaserver master on GitHub - contains the code that supports communication between Widelands clients for internet gaming. You will not need this for creating art.

Working with GitHub

For working with Git and GitHub, see GitPrimer.

If working with Git branches seems too difficult to you or you don't want to get a GitHub account, you can also put your work in a .zip file and attach it to an issue on GitHub or to a forum post. Development builds are available from our Download page.

Working with Launchpad

Establishing a Launchpad.net Account

Just as the main repositories are referred to as "trunks" on Launchpad, revisions from development are referred to as "branches". More on that later.
While you don't need an account to download branches from Launchpad, a Launchpad.net account is required if you wish to effect any changes.
This link will take you to the Launchpad website page for setting up a new account.

NOTE: If all of this technical mumbo jumbo is just TOO daunting, there are other avenues that can be taken for art, music and sound. It is just that by working directly with Launchpad, you eliminate a lot of extra work to prepare your creations for use in the game. It is the PREFERRED path, not the only one. Again, let us know if you are having challenges by posting something in the IRC Chat, Forums, or a message to the Elder of your choosing. face-smile.png

SSH Key Description and Use

Launchpad trusts that you are who you claim to be. Later, such as when you're using the bug tracker's email interface, you'll need to use an electronic signature to prove your identity.

A Secure Shell or SSH is a network protocol that allows data to be exchanged using a secure channel between two networked devices, encrypting and decrypting the data to ensure it is received by the intended party and no one else. At the same time, it assures the recipient that they are dealing with whom they think they are.

This link takes you to where the Launchpad site documents the process of setting up an SSH Key pair for use in Launchpad.

Launchpad Interaction with Bazaar

Description

Well, with all of the program development projects that are housed on Launchpad.net, including our Widelands effort, there is a need to keep track of the changes/revisions that are constantly being made to the programs and content of all of those many projects. The Launchpad.net website utilizes a free Open Source utility called Bazaar for the task of version control. It is through Bazaar (bzr) that all uploads and downloads to Launchpad are performed. Bazaar keeps track of every change that is made and "committed" (or finalized) to every branch and trunk. This allows changes from multiple developers to be merged without impacting another's work and it facilitates backing out changes that are not wanted. Yes, Bazaar has a lot to do and plays a very important role in keeping things manageable. face-smile.png

Bazaar Primer

The BzrPrimer page is an excellent reference for getting started with Bazaar. It refers mainly to the main development trunk (lp:widelands), but the media trunk (lp:widelands-media) and the website trunk (lp:widelands-website) are developed in the same way. (By the way, you have likely already guessed "lp" stands for Launchpad.) face-grin.png

The bzr commands are well documented in manuals on the Bazaar website.

TIP: Qbzr - Is an optional utility (really an extension of bzr) that can be used in concert with Bazaar. It provides a graphical user interface (GUI) which makes log inquiries and other tasks a little easier. Here is a Link to its homepage. Windows users also have the option of TortoiseBzr which provides a GUI for use in the Windows operating system.

Some Terms

Here are some terms you may come across in the bzr documentation and in general use here:

  • master or trunk - the "official" collection of files that comprise the project. These files have all been reviewed and are considered acceptable for use in the program.
  • branch - a folder of files under development. A branch can be a full copy of the master/trunk or a small subset of files currently being worked on.
  • tree - any trunk or branch that has one or more revisions.
  • checkout - used to refer to a copy of the trunk or of another branch to review and/or work on locally on your machine

Media Trunk

The Media Trunk (lp:widelands-media/trunk) contains files that were used to create the media used in the game. It is structured as follows:

Folder Sub-folder Sub-sub-folder Contents
.bzr files pertinent to version control (Do not modify)
graphics sources, tools and templates which support the graphic content
campaigns campaign art arranged by tribe
stock_sources
blender_resources materials, textures, and sundry .blend files for general 3D modeling
blender_set_templates empty templates with rendering stages for 3D models
pngs 2D images, loading images arranged by world
structure_templates template directories to organize new tribes and worlds
tools python scripts and quality control references
tribes 2D and .blend 3D sources of tribe-specific game art organized by tribe
user_interface 2D images for menus, icons, borders, etc.
wiki 2D art for the wiki
worlds 2D and .blend 3D sources of world-specific game art organized by world
music
src files which support the music content
sounds
src files which support the sounds content

Widelands Master

Widelands Master (https://github.com/widelands/widelands) contains the files that go into building the executable version of the game.

As an artist or musician, you will only be interested in the contents of the "data" folder.

Description of subfolders in "data"

Folder Interesting? Contents
ai - AI training
campaigns Campaigns & tutorials, can contain custom art and portraits
i18n - Configuration for translations and font sets used in the game
images 2D graphic files for the user interface, map editor, and for general use on the game board
locale - Translations
maps - Map files that are packaged with the game
music .ogg music files used in the game
scripting - Lua code
sound Non-music .ogg sound files that enhance game play
shaders - OpenGL shaders for drawing elements on the map
templates UI templates. Contains images.
tribes 2D game art specific to each tribe (worker and building animation, wares, frontiers, etc.)
txts - Text files accessible by the player (tips, readme, etc.)
world 2D game art specific to certain worlds in the game (terrain, trees, animals, immovable objects, etc.)

Graphics Development

See the GraphicsDevelopment page for details.

Music & Sound Development

See the AboutAudio page for details.

Campaign & Scenario Development

See CampaignCreation

Language Translation

See the TranslatingWidelands page for details.

Website Development

See the HomepageTodo page for details.

Code Development

See the Developers Page for details.