Getting Started

From Thrive Developer Wiki
Jump to navigation Jump to search


Welcome to Thrive!

It appears you have decided to join in the exciting task of Thrive's development, and if so you are in the right place. If you aren’t here as a developer, or you just want to learn more about the game, you should start at our Main Page. If you do want to help, but lack any development skills, check out How to Help.

Below we will run you through the essential information about the project, as well as a list of the different development teams and how you can get started. Navigate through the links to see the work currently being done by each team and how you can help.

What Are We Looking For?

So which skills can be useful on the Thrive development team? Though any skill set could conceivably be useful, at the moment we are particularly interested in anyone who has experience in any of these roles listed in the following sections.

Unfortunately, those with only ideas and no ability to implement them or construct them in a way which would allow implementation are likely to be turned away. Excessive “idea guys” have slowed down the development of the project in the past, and we have made considerable efforts to orient the team more towards people who are able to develop the game in some capacity.

This page or section contains outdated information. This often happens when plans are changed after something has been written.

3D Modeler

Skill with almost any major tool will do, and we’ll eventually need particularly talented artists able to create models which look good even under heavy deformation. We use Ogre3D for graphics rendering, and a tutorial for prospective modelers focused on Blender can be found here.

Animator

Linking with the above, the ability to animate 3D models will be incredibly useful, and even those who specialize in other areas will be helpful in creating more features of the game, such as updated opening cutscenes or GUI animations. Accompanying knowledge of the code required for dynamic animations (for instance changing between two animation types seamlessly) will help considerably when rendered organisms are involved.

Programmer

Our custom engine is programmed in C++, while scripting is done with AngelScript. We’ll soon be tackling some fairly difficult implementation, but most work, generally quite easy, is in AngelScript. We are also looking for a developer specializing in Mac conversions, as our releases so far have only covered Windows and Linux. A full list of code dependencies is available to view on our GitHub repository. If you aren't up to actually helping with the code, we're also on the lookout for code assistants who can help others understand the code and troubleshoot building problems.

Graphics Programmer

Our engine uses Ogre 2.1 for graphics. We need programmers who are familiar with creating shaders and writing graphics code. A huge plus would be if you have experience with Ogre and a lot of patience in helping us make Thrive look the best it can.

Vector Artist

The in-game GUI is for the moment largely a placeholder, and a huge amount of work is in order for later stages’ interfaces. We use CEGUI in conjunction with Lua scripting, so anyone with additional knowledge of XML or UX we will likely beg to join. Even if you're not familiar with CEGUI, you can still help design basic concepts or mock-ups, or even learn the process of implementation yourself through this tutorial.

As well as the list above, we are also on the lookout for those capable in any of the following roles, though be aware that fewer are needed and potential team members will need to be particularly talented to stand out:

Concept Artist

A concept artist will need to create many variations on an idea to gauge how it will appear in-game. Pretty pictures of hypothetical future gameplay are all well and good, but are not the sort of art we would need someone on the team for. Much of this sort of art has already been created in the project's past, and although we all love The Disturbance, it isn't particularly useful in the grand scheme of things.

Musician

Though the Microbe Stage soundtrack is complete, we are still looking for composers to lend their skills to later stages and scenarios. Recording live instruments is also an eventual goal where possible, though we regret to inform prospective composers that unfortunately we do not have access to a symphony orchestra at this time.

Outreach Manager

Outreach managers can help us present ourselves to the world by writing up news articles for the website, posting to social media and interacting with fans or potential developers. We’re looking for people who can take information from behind the scenes and professionally display it for all to see, with regular updates showcasing recent work.

Project Manager

We are always open to suggestions on restructuring the way we work, and those with particular organisational skill — especially experience managing other open-source projects — will be valuable in managing members with other talents effectively. Most of our development takes place on our forums in conjunction with GitHub, while team leads converse through various messaging platforms.

Promoter

Without professional advertising, we largely rely on word-of-mouth to spread our message, though dedicated and skilled promoters are welcome. This includes the ability to work with fan outreach via social media. Even if you don’t have particular skill in this or any other area, we will still appreciate the promotion of Thrive elsewhere on the internet — you’re welcome to take information from this website, and would prefer if links were directed here rather than our forums, Wiki or other.

Sound Effect Engineer

We have basic sound effects currently in place, but in future we’ll need a whole lot more, and we could always use better ones. Our sound engine uses OpenAL.

Technical Writer

Our Wiki constantly requires updating, and those who can take ideas and present them in an orderly manner for reference or implementation in future are invaluable in keeping it relevant. Specialist knowledge of the concepts in question is advantageous but not required, so long as you are able to gather and present information effectively.

Theorist

Anyone with a proven knowledge in a scientific or mathematical pursuit can help draft game mechanics and concepts, but for the moment we are especially interested in biology and simulation experts. Note, we are not simply looking for people with a lot of knowledge in their field, but those with enough math or programming skill to discuss the nitty-gritty details of designing complicated systems.

Web Developer

Though we already have a website built on WordPress, talented web designers and developers are welcome to help improve it.

Development Teams

Now that you’re ready, here are the different development teams of the project. We'll give you some quick descriptions here, then follow the links to any of the teams you are interested in and see what they have to offer.

This page or section contains outdated information. This often happens when plans are changed after something has been written.

Theory Team

Wiki page: Theory Team

Types of work: Prototyping, gameplay design, mathematics

The Theory Team is tasked with turning all our grand ideas into a consistent, coherent, and practical design for implementation. Some of the current milestones of the theory team include:

  • Bacteria mechanics
  • Agent system
  • Overhauling the combat system
  • CPA implementation

Programming Team

Wiki page: Programming Team

Types of work: Scripting, engine programming, interface programming, graphics programming, etc.

The Programming Team is responsible for turning all that game design into working game features. Some of the features the programming team will be working on for the next few releases include: (see the separate wiki page for more up to date information)

  • Bacteria
  • Options menu
  • Agent system
  • Reimplementing features in the new engine
  • New UI
  • New AI

Graphics Team

Types of work: Modelling, animation, texturing, concept art, UI design, etc.

Wiki page: Graphics Team

Without some nice models and textures, functioning game features are not that rewarding. The Graphics Team is here to remedy that problem. Some upcoming tasks of the graphics team include:

  • Bacteria models
  • Fluid visual effects
  • UI elements
  • Some updated and resized organelle models (such as flagella)
  • Loading screens
  • Bloom and blur visuals
  • Models for upcoming organelles (such as the pilus)

Outreach Team

Types of work: Marketing, social media, fan interaction

Wiki page: [[[Outreach Team]]]

Having a polished, fleshed out game is all fine and dandy, but without the Outreach Team how will people find out about it? The Outreach Team has several objectives that are pretty consistently on the plate:

  • Update and manage social media outlets
  • Write Devblogs
  • Make trailers, gameplay footage, promotional art/videos
  • Advertise to other sites

++ Sound Team

    • Team lead:** Oliveriver
    • Types of work:** Music, sound effects

Wiki page: [[[Sound Team]]]

Even then, the game just won't feel right or immerse you well enough without realistic sound effects and beautiful music to pull you in, courtesy of the Sound Team. The tasks of the Sound Team are always pretty much the same:

  • Music tracks
  • New or updated sound effects (for anything from reproducing to clicking menu buttons)

++ Project Management Team

    • Team lead:** NickTheNick
    • Types of work:** Updating/maintaining the Wiki, moderating, organizing the project

Wiki page: [[[Project Management Team]]]

The Project Management Team is meant to ensure that a group of volunteers working from around the world keeps their efforts focused and efficient. This team is a bit more challenging to get into. Moderator status is something only given to experienced users already established in the project. However, we are looking for people who have experience in project management who can help us improve our project's structure, or people able to update/maintain the Wiki.

Application Process

Thrive is open source, so you can start contributing to the project right now! However, if you want to join the team and get invites to the development forums and the Slack group, just send us an email telling us about yourself and what you can do, as well as any past project experiences you might have had. Any samples of your work would be great. We just want to make sure you’re set to be able to help with development.

Here are the steps to the application process:

  • Email us with the information listed on our Application page. Required categories are username and personal summary. Guidance on writing a personal summary can be found below.
  • Wait a few days as the team internally decides whether to accept your application. We will reply to all applications via email.
  • If successful, you will be sent invitations to our development forums and possibly our Slack group, dependent on your intended role. If you fail to receive a forum invitation, check your spam folder. Let us know if you’re still having problems.
  • Redeem your forum invitation and create a profile. Post an introduction thread in this category so the team can get to know who you are.

++ Personal Summary

In the personal summary section of your application, tell us what skills you possess relevant to game development and, if possible, provide some sample work. It’s nothing like a CV or a university application. We don’t care if you don’t have any accolades for your work and we don’t care which country you’re from. As long as you can prove you aren’t just an “ideas person” and you’re competent at what you do, you'll be fine.

++ Other Methods

There are some exceptions to our application system.

First, anyone can put forward a commit to our GitHub repository. If you’re a programmer who wants to change one small thing about the code without going through the hassle of sending an application, create a pull request. One of our programmers will look at this and, if it does what it’s supposed to, will accept it into the code. Only our main programmers can contribute to the code directly without being approved.

Second, we allow applications for moderators in the Meta section of our community forums. Although, unless you’re a proven expert at organizing online communities, this is generally intended for those who’ve already been part of the community for some time.

Thirdly, if someone is active on the community forums or elsewhere and produces fan work of high quality or has insightful comments on discussions going on within the game's development, we may invite them ourselves.

Workflow

See the dedicated page: Workflow

General Advice

Here is some advice before you get started:

  • DON'T try to read the whole forum and DON'T try to read and understand the whole codebase. This is the biggest trap we see people falling into early on when trying to get started. We want you to find a place for yourself in the project that works for you and that will probably take some time. If you're finding it overwhelming that's okay. Just ask for some help. We want to help you settle in. If you stick to what you enjoy and don’t overburden yourself, you will fill in on the rest of the project anyways.
  • DO download and play the game as is. It’s a fantastic way to see what Thrive is, have some fun, and maybe even get some inspiration for ways to improve the game. What do you like about it and what do you not? Do you get the basic idea of what we’re aiming at for the microbe stage? What aspects of the game would you like to work on?
  • If you are a programmer have a go at setting up a development build using the instructions on the GitHub page. This may take you some time. That's fine. Try for half an hour and if you fail then come back to it another time.
  • Read the forums "as they are updated". So see what discussions are currently happening. If you don't understand something then ask. It's great for us if you ask questions and we are all happy to answer them. Questions are great because they help us flesh out what we are doing, explaining something helps us understand it so you are helping by asking questions.
  • Find a little thing that you would like to work on. Especially if you are a programmer play around with the game for a bit and find a tiny thing and try to improve it. This will require digging into the codebase. Don't try to understand it all, just find out what you need to know to change that little thing. Then when that is done get your change checked by one of the team leads. Then find another little thing and keep doing this. That's the way to get into the project. It is better to give an hour a week but to stick around that to spend all of one day failing to do something and quitting.
  • Don't pressurize yourself with Thrive. There is no minimum commitment. If you want to work on it today then that's great, if you don't then that's fine too. Don't turn it into another stress inside a stressful life. Since this is a completely money-free project with no set team structure, you are in no way obligated to do anything. Life and work take precedence at all times, and you’re entitled to all the downtime you wish. We won’t stop you leaving the project for good if you feel like it.
  • However, be aware that sometimes the work of others will be dependent on your own. If someone is waiting for you to finish a feature so they can get to implementing their section and you disappear without warning, while you’re completely within your rights to do so, it can pose a problem for the project as a whole. If you’re not expecting to be able to finish what you’re working on, please let us know so we can work around it.
  • There are a lot of different reasons to work on Thrive. Firstly we all want a finished and fun game. Alongside this everyone on the team is motivated by different things. For example it's a great space to experiment with new ideas and to learn new things. There's a whole load of interesting problems to work on and that in itself can be really valuable. The project won't be finished any time soon and so it's important to find out what you can get out of it while we work on it and how it can help you grow your skillset.
  • Good luck! If the project isn't for you then it's fine to leave, don't worry about it. We hope you can find a contribution you enjoy to make and really get something out of working on Thrive like the rest of us do. We hope you'll stick around because there's a lot to be gained by being here and we hope that you will gain skills through making this game which means your time here is of great value to you.

Our full list of rules and guidelines can be found here.