Programming Team

Our Programming Team is responsible for turning concepts into working game features and ensuring those features work as intended. If you are reading this thread, you have likely decided to dedicate your talents as a programmer to the programming team for the ambitious project that is Thrive! If so, then welcome aboard! This thread is designed to best ease you and other new programmers into the process of developing the game, and providing you with all the relevant information you need.

Overview


Team lead(s): moopli, jjonj/crovea

Forum category: http://forum.revolutionarygamesstudio.com/c/programming

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

Programmers are the most valuable team members, since without them the game wouldn't exist. The Programming Team is responsible for scripting and engine work, as well as aiding other teams (particularly the Graphics Team) when adding assets to the game. Thrive is coded in C++ and Lua.

Our code base can be found on GitHub. Anyone is free to fork the repository and make changes to their own versions, but all contributions to the master must be done with permission from a veteran programmer. Minor changes can be made on the master branch, but larger features or fixes should take place on separate branches, which can be merged with the master via a pull request. Assets are stored on a SVN server (see below). Other programmers will be on hand to help you get to grips with the code, but reading some of the links below first will help.

Workflow


Here you can read about the Workflow we usually follow for getting tasks done.

http://thrivegame.wikidot.com/workflow

Current Tasks


The programming team is always a hub of activity, and here are some of the big tasks on the plate for the team at the moment.

  • Bacteria
  • Extinction
  • Improved AI
  • Compound cloud changes
  • Fluid mechanics
  • Cell generation changes
  • Organelle upgrades
  • Agent system
  • Predatory pilli (New organelle)

For the full list of programming tasks, take a look at our Github issues list: https://github.com/Revolutionary-Games/Thrive/issues

Take your pick of what interests you. If you find that there is something you want to work on that is not on the list that you want to work on, feel free to let us know!
You can also always prototype anything you want. In fact we also have a repository on Github for prototypes:

https://github.com/Revolutionary-Games/thrive-prototypes

Online Resources


GitHub

https://github.com/Revolutionary-Games/Thrive

As explained above, this is the primary resource for Thrive's programmers. It hosts our official releases alongside the two resources listed below. Our main programmers will gladly help you set up a development environment to work with it effectively.

GitHub README

https://github.com/Revolutionary-Games/Thrive/blob/master/README.md

The most important information for script authors, C++ programmers and asset creators. Read this before starting any programming work.

GitHub Style Guide

https://github.com/Revolutionary-Games/Thrive/blob/23ff280f7dff1cdc84e38e4e3f6d69ccfb41aa26/doc/style_guide.dox

Covers the programming guidelines for code within our repository. Should also be read thoroughly before contributing.

SVN Repository

http://assets.revolutionarygamesstudio.com/

Stores all the game's assets. Here is a guide to installing Tortoise SVN (steps six and seven). Once you've created an SVN folder on your machine, you can right click to update (giving you changes made by everyone else since you last updated) and commit (adding your changes to the master SVN for others to receive).

Prototypes on GitHub

https://github.com/Revolutionary-Games/thrive-prototypes

An offshoot from our main GitHub repository where programmers and theorists can create prototypes for specific features or later stages. See the README first.

Tutorials


GUI Tutorial

http://thrivegame.wikidot.com/gui-tutorial

For interface programmers, this tutorial will outline the basics of Lua scripting within the CEGUI framework.

FAQ


How do I join the Programming Team?

See Application Process.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License