New Game Designers
This page serves those who are interested or considering in joining the team as a game designer.
"Game designer" is a somewhat indescriptive term, so it helps to define exactly what it is that game designers do on this project. Generally speaking, they combine code and media content together to create objects in the game such as maps, characters, equipment, and so on. More specifically the list below outlines the most common tasks that a game designer is expected to perform. These tasks are elaborated on
- Managing media content (image and audio files) by adding, removing, or modifying files in the game directories
- Sourcing free content by searching online for suitable media and providing appropriate accreditation for the borrowed work
- Creating maps using our map editor and populates those maps with sprites, treasures, and other objects
- Combining code and content using Lua scripts to create game assets such as equipment, skills, and characters
- Writing script functions in Lua to make maps, battles, and other scenes come alive
- Game balancing the stats of equipment, characters, enemies, and skills to provide an experience that is neither too easy nor impossibly difficult
- Play testing the content that they create in the game to ensure that there are no issues
The most important qualification of a game designer is to have a strong passion for the project, as they are the ones that truly make the game come alive. Designers don't necessarily have a strict set of technical qualifications that they must meet, which is one of the benefits of being a designer. You do not need to have several years of advanced programming experience or superior artistic talents in order to help create this game. Thus, it is a role suitable for those who are passionate about making games, but lack a specific skill set in game creation. The following skills, though not required, will greatly help any aspiring game designers. These skills will naturally be picked up over time through working on the project if they are not already acquired.
- A basic understanding of programming
All of the advanced coding is done in C++ by experienced programmers. A game designer merely needs to use this code appropriately in their scripts to write simple functions
- The ability to use a source code management tool and compile code
Game designers need to be able to fetch the latest updates of the project and compile the game at any point in time. They will also need the ability to commit their own changes back to the project repository
- A knowledge of the Lua programming language
All of the scripts and functions that game designers write is in Lua. This is a simple, easy-to-learn scripting language that is used for all Allacrost data and scripts
- Basic compentancy in using image editing software
Whether using Adobe Photoshop, the free and open source GIMP, or another image editor, being able to make simple edits to images is greatly beneficial
- Use of a map editor
Allacrost uses a custom-made map editor, but the same general principals in our editor are the same as other 2D map editors
- Experierence using and editing wikis
The Allacrost wiki needs to be updated regularly to reflect changes in the project or the game itself. Designers are expected to help the wiki stay organized
- Great organizational skills
Game designers need to help the team organize both original and external content. Successful game designers are very organized people
Here's a list of steps recommended to get you up and running as a new game designer.
(1) Read or skim through the New Contributors page if you have not already, then return back here This will give you an overview of the project in general and what resources are available for you to use.
(2) Download the game's source, compile it, and make sure that you can run it on your system. Refer to the Compilation Instructions page for information on how to do this. If you need help, ask on the forums or IRC as this is not always an easy process, unfortunately. If you run into any problems, feel free to skip this step, but know that at some point you will need to learn how to do this. If you want to play the latest release without compiling from scratch, refer to the Installation Instructions page. But keep in mind the latest repository checkout may contain many changes and improvements from the most recent release.
(3) Compile the map editor and run it. Again, refer to the Compilation Insructions. You can also grab the editor from the latest release. Read the Installation Instructions page to figure out how to do that. Again, if you have problems ask on the forums or IRC for help. Once you have the editor running, opening one of the existing maps and start playing around with the editor. Just get a feel for how to use it and what it can do.
(4) Study some Lua files The easiest way to learn how to design Lua files is to look at existing files and emulate what you see there. Navigate to the dat/ directory wherever you downloaded/installed Allacrost to see all of the Lua files. You can examine Lua scripts for maps, character definintions, enemies, items and equipment, and so on. Most of what you find should be pretty self-evident of what it defines and what it does, though don't be intimidated if some of the map files look very long and confusing.
(5) Examine content directories Browse around the following directories: img/, mus/, snd/. Get a feel for how our media files are organized and formatted. Some pages in the wiki also contain more information on the organization of content. Artwork Categories is a good one for designers to read through.
(6) Browse around the other wiki pages for game designers Go back to Game Designer Main and skim through the other pages there. You don't need to study them. Just get a general idea of what information is out there to help you achieve the various tasks that you will need to do as a game designer.
(7) Check the roadmap and find some work to do Having completed the previous steps, now you should have some vague sense of how to get things done, so it's time to get started on some real work. Check out the Roadmap page and look for any game design work that needs to be done. Or you can ask on the forums or IRC and ask how you can help out. Try to start with a small, easy task if possible to get your feet wet. Depending on the type of work you get assigned (or assign to yourself), you'll want to read up on any relevant information on the wiki or elsewhere to help you complete your task. And if you need help, do not be afraid to ask, even if it is something that sounds simple. (Hint: if the information you need to complete a task is not on the wiki and you have to ask help for how to do it, add that information to the wiki once you complete your task so others can benefit from your knowledge).
(8) Stay active on the forums After completing your first task or tasks, you'll want to keep yourself informed of the project status regularly so that you can work on what is most needed at the moment. Game designers really need to stay active on forum discussions related to design, and to share their thoughts on how the game can be improved either by modifying existing maps, adding new media content, rewriting dialogue that doesn't fit well, and so on. As you participate in these discussions and follow the Roadmap, it will start to become self-evident to you what work needs to be done next.
Things to Learn
Most game designers will not know everything that they need to when they first join the project. Working on a project like Allacrost, in any role, is a continual learning experience. Over time, you'll want to also be learning about the following along the side.
- Learn basic programming skills
This could be done in any language, although a scripting language is best (Lua is a scripting language, though it's a somewhat esoteric language). For example, you can look for free online tutorials or courses to learn about variables, functions, and classes. CourseRa may have some free courses for you to learn, for instance. There's a six-week Python course there that concludes with a clone of the game Asteroids.
- Learn Lua
Go to http://www.lua.org and read up on the Lua programming language. You can also search for "Lua" in your search engine of choice and find other tutorials or free online books to read. You should only need to familiarize yourself with the basics for now. Variables, functions, and tables are essential to learn and understand. You can learn about more advanced topics later as needed.
- Learn basic image editing skills
This depends on what image editor you use. Many Allacrost developers use GIMP, which is freely available for all major operating systems. Go to http://www.gimp.org to download and find tutorials and other information to help you get started.
- Learn how to use Subversion
Subversion (SVN for short) is the source control management (SCM) tool that Allacrost uses. All code, scripts, and media content that are delivered with the game are stored in our subversion repository. Read through the documentation available on the SVN website, or search through tutorials to figure out how to use this tool. If you use a specific client, such as TortoiseSVN, you may wish to start by reading the documentation for that client first. All you need to know to begin with is: how to download files from a SVN repository, how to get the latest updates to a SVN repository, how to add/move/rename/remove files from a SVN repository, and how to commit changes that you make to the SVN repository. That information should be enough for you to do most of what you need with SVN.