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): hhyyrylainen

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

Types of work: Scripting, engine programming, interface programming, graphics programming (until a separate team can be formed) 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 AngelScript.

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.
(this list may be out of date very often)

  • 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

Thrive now also uses a separate Engine with its own issues page: https://github.com/hhyyrylainen/Leviathan/issues
and the setup system for Thrive also has an issue list: https://github.com/hhyyrylainen/RubySetupSystem/issues
working on those issues will also help thrive. Some of them are explicitly tagged as needing to be resolved for some feature in Thrive to progress.

And the release planning thread: https://forum.revolutionarygamesstudio.com/t/future-release-plans/129

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

We also have issues for the Thrive Launcher: https://github.com/Revolutionary-Games/Thrive-Launcher/issues

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.

Guides on Github

https://github.com/Revolutionary-Games/Thrive/tree/master/doc

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

SVN Repository

https://boostslair.com/svn/thrive_assets

Stores all the game's assets. This is outdated: 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.

Engine Documentation

Starting with 0.4.0 we will use a new engine. Documentation for it is available online here.

Tutorials


GUI Tutorial

With our new engine we use Chromium Embedded Framework for the GUI. So it is very similar to web development (HTML, CSS and JavaScript).

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