Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  
Welcome new and returning members!
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
If you want to join the development team, sign up and tell us why.
ADMIN is pleased to note that this marquee has finally been updated.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe Stage GUI is under heavy development
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
Quick Links
Website
/r/thrive
GitHub
FAQs
Wiki
New Posts
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 1675 registered users
The newest registered user is dejo123

Our users have posted a total of 30851 messages in 1411 subjects
Who is online?
In total there is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
by NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
by NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
by crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
by tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
by NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
by NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
by crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
by The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
by crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
by MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
by tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
by tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
by Kaiju4u Wed Jun 10, 2015 11:16 am

» Translator to Serbian here
by Simeartherist Sun Jun 07, 2015 6:36 am

» Presentation
by Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
by crovea Sun May 31, 2015 5:06 pm

» want to contribute
by Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
by Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
by Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
by TheBudderBros Sun May 24, 2015 9:00 pm


Share | 
 

 Programming Team

View previous topic View next topic Go down 
Go to page : 1, 2  Next
AuthorMessage
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Programming Team   Sun Sep 29, 2013 12:14 am

Programming Team


If you are reading this thread, you are most likely a programmer that has joined the ambitious project that is Thrive! If so, then welcome aboard! This thread is designed to best ease you and other new coders into the process of developing the game, and providing you with all the relevant information you need.

Use this thread for any general discussions on coding the game:
http://thrivegame.canadaboard.net/t886-programmer-coordination-discussion#17414

And here is a subforum just for you: http://thrivegame.canadaboard.net/f26-programming

GitHub

GitHub, for those of you who don't know, is an online project hosting website that we use for Thrive. Our Github Repository, with all the code available for viewing, can be found here:
https://github.com/Revolutionary-Games/Thrive

Here is the readme for our code repo on GitHub:
https://github.com/Revolutionary-Games/Thrive/blob/master/README.md


Programming


If there are any issues with compiling or coding the game, please post them in this thread:
http://thrivegame.canadaboard.net/t999-development-troubleshooting

This game uses the entity component system, as opposed to more familiar object oriented programming. Read more about the differences between the two here:
http://piemaster.net/2011/07/entity-component-primer/

For a more in-depth understanding of the engine's architecture, check out the forum thread by the same name:
http://thrivegame.canadaboard.net/t1117-engine-architecture

For a program to synchronize the code folder on your computer with the code folder online on GitHub, and as a GUI alternative to just using command line git, here is TortoiseGit:
https://code.google.com/p/tortoisegit/

FAQ


What needs to be done?
Spoiler:
 

I have an idea of a quick thing to add. Where do I put it?
Spoiler:
 

Should I fork the repository or request access to https://github.com/Revolutionary-Games/Thrive/?
Spoiler:
 

How do I let people know of my changes if I fork the repository?
Spoiler:
 

Where should I suggest larger changes?
Spoiler:
 

If such a change is suggested, and I agree with it, should I fork the repository, implement the change, and notify people, requesting them to try it out?
Spoiler:
 

Where do I find API documentation?
Spoiler:
 

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.


Last edited by NickTheNick on Mon Feb 16, 2015 8:56 pm; edited 31 times in total
Back to top Go down
View user profile
Tarpy
Strategy Team Lead


Posts : 337
Reputation : 23
Join date : 2013-03-08
Location : Here

PostSubject: Re: Programming Team   Sun Sep 29, 2013 4:56 am

Nice! I actually thought about making something like this a few days ago.

For filling out the OP-

So, we currently have the microbe stage progress report that has the TODO list and everything. Problem is, the stuff in the TODO list should have been a little less broad (like "microbial compounds" should be divided into implementing the compounds separately), so maybe we should have something like this here, in a hierarchy of priority?

For example:

Implemented:

Player cell movement
Saving/Loading

Currently being worked on:

N/A

Priority features:

Other cells populating the pool (initially without or with very primitive AI)
Primitive ATP system (Player will lose ATP while they move)
Compounds: Oxygen and Sugar that dot the pool
Process: Anaerobic and aerobic respiration

Secondary features:

Simple microbe editor (only a few organelles initially)
User Interface (only a pause screen initially)
Compounds: Amino acids (to be used for Amino acid respiration and Fatty acid synthesis), Fatty acids (for Fatty acid respiration) and Water
Process: Amino acid respiration, fatty acid respiration and fatty acid synthesis
Improving cell AI (having them go after compounds or other cells, depending on their type)
Sound system

Other features:

Compounds: Carbon dioxide, proteins and ammonia
Process: Photosynthesis
Main menu
Cellular evolution

And to also include a link to every thread related to a particular feature.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Sun Sep 29, 2013 5:07 am

Thanks for the response, but I don't want this thread to become like a tracker or a progress report. I just want it to be an intro thread for new programmers to get introduced to our project in terms of programming, as well as give them easy access to important links or info, kind of like this thread:

http://thrivegame.canadaboard.net/t692-important-read-before-posting

except for programmers.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Sun Sep 29, 2013 6:21 am

Great idea! Let's see...

You already got a link to the GitHub repository in there. Maybe a note that the most current branch is the "prototype" branch would be appropriate. That will be temporary, though.

Probably the most important thing for new programmers is setting up their build
environment. For Windows, a link to the GitHub client or TortoiseGit for checking out the git repository is a good starting point. Then, a link to these instructions could be helpful.

I'll try and update the current code with some new documentation later today and maybe add a few easy issues to our GitHub tracker.
Back to top Go down
View user profile
SuperLala
Developer


Posts : 28
Reputation : 0
Join date : 2013-09-27
Age : 21
Location : United States

PostSubject: RE: New Programmers Start Here   Sun Sep 29, 2013 4:03 pm

As a new programmer, I may know of some information that needs to be included, since the following questions are stumping me:

1. I have an idea of a quick thing to add. (In my case, it is a way to make the rotation of your organism smoother. The problem: try quickly moving your mouse around your own organism until it passes directly behind it. Your organism will suddenly switch direction).

a. On what forum should I suggest small changes like that? Programmer coordination discussion?

b. Or, since it's such a small feature, should I just add it myself and note the changes on "commit?"

2. Should I fork the repository or request access to the "prototype" branch?

a. If I should fork the repository, how do I let people know of my changes (on what thread)?

b. If I should request access to the prototype branch, on what thread should I post the request, or should I use some sort of PM?

3. Where should I suggest larger changes (such as refactoring code or adding a new feature)? If such a change is suggested, and I agree with it, should I fork the repository, implement the change, and notify people, requesting them to try it out?

I believe that a dedicated "New Programmers Start Here" thread will be great, and I highly suggest such a thread to answer or at least address these questions.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Sun Sep 29, 2013 4:24 pm

Very good points.

SuperLala wrote:

On what forum should I suggest small changes like that? Programmer coordination discussion?
I see two and a half options here. The first is creating a ticket in the GitHub tracker, which is probably preferrable for everything that wouldn't impact gameplay much. The other 1.5 options are to create a new thread or use an existing one as you suggested. Personally, I'd rather have a separate thread for each issue as it allows moderators to eventually just move the thread to the archive.

So in short: small suggestions that probably won't have far-reaching consequences (that includes bug reports) should go into the GitHub tracker. For stuff that could use a bit of discussion or is only an idea that needs to be fleshed out before implementation, use the forum.

SuperLala wrote:

Or, since it's such a small feature, should I just add it myself and note the changes on "commit?"
That would be really great. Which brings us to...

SuperLala wrote:

Should I fork the repository or request access to the "prototype" branch?
A fork is the most straight-forward way to contribute. Create a new branch in your fork, commit your changes to it and make a pull request. The pull request will show up as a new ticket in the original repository's tracker. If nothing happens with it within a couple of days, start bugging me with PMs here in the forum until I get off my lazy Belgium.

Regular contributors might eventually be granted direct commit access to the main repository to simplify that process.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Mon Sep 30, 2013 1:37 am

Okay so I posted those questions to the OP. Nimbal, could you or one of the other coders give specific answers for each one? From your post I was only able to get answers for a few.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Mon Sep 30, 2013 2:35 am

First off, this part:

NickTheNick wrote:

Or, if it is small enough, just add it in as a pull request and note the changes on the commit.
Should better be:
Quote :

Or, if you can implement the change yourself, fork the repository, commit your change and make a pull request.
In the second question about forking, you could add a link to the relevant GitHub article.


NickTheNick wrote:

How do I let people know of my changes if I fork the repository?
Make a pull request. (Nick: Note the link)

NickTheNick wrote:

Where should I suggest larger changes?
If you think your change requires some discussion, please use this forum. If it's a gameplay or mechanic change, post in the Design forum. If it's a change to the engine or something like refactoring, use the Programming forum. If you find a relevant one, please use an existing thread.

NickTheNick wrote:

If such a change is suggested, and I agree with it, should I fork the repository, implement the change, and notify people, requesting them to try it out?
Sure. Just remember to mark the suggestion as "being worked on". If it's a forum discussion, make a quick post about you starting work on it. In case of a GitHub ticket, make a comment or, if you can, assign it to yourself.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Tue Oct 01, 2013 2:17 am

Thanks for all of those Nimbal, I updated all of them into the OP.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Wed Oct 02, 2013 8:02 am

Some more things to add:

Quote :

Q: Where do I find API documentation?

A: The C++ functions and classes are documented with Doxygen comments in the header files. Lua functions and classes are documented directly in the scripts. If you prefer a browsable HTML version, you'll need to install Doxygen. Rerun CMake to make it find the Doxygen executable and you should get a "doc" build target. The output will be in the "doc" subdirectory of your build directory.
Quote :

Q: What needs to be done?

A: Look at our issue tracker. Most of the tickets you find there should be labeled as either

  • Easy: Should be manageable for new contributors that have read some of our documentation, but don't yet have a firm grasp on the overall architecture and the planned gameplay mechanics.
  • Intermediate: For those that are familiar with the engine and are experienced in programming.
  • Difficult: Those issues usually require not only changes to the engine, but to the build system as well, e.g. adding new library dependencies. Not for the faint of heart.

Note that those labels are only estimates, so don't lose hope if you find a supposedly "easy" feature to be hard to implement. Don't be afraid to ask for help / advice, either as a comment on the issue itself or here in the forum.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Thu Oct 03, 2013 3:00 am

Thanks, I uploaded those too.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Tue Oct 08, 2013 2:03 am

Are there any other suggestions of what to fill out the OP with or is this sufficient for now?

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Tue Oct 08, 2013 2:39 am

I can't think of anything worthwhile to add right now, but I'm sure more will come up eventually. I'll just post it here whenever I get an idea.
Back to top Go down
View user profile
crovea
Programming Team lead


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 26
Location : Denmark

PostSubject: Re: Programming Team   Wed Oct 09, 2013 1:47 pm

As a new programmer one thing that i would have found quite useful for getting started would be a quick note that the game is using the entity component system instead of the more familiar to most OOP

Perhaps with accompanying short explanation (e.g. piemaster.net/2011/07/entity-component-primer/), and perhaps a link for people to go for more indepth understanding http://thrivegame.canadaboard.net/t1117p15-engine-architecture
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Thu Oct 10, 2013 2:00 am

Okay thanks I uploaded that into the OP.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Thu Oct 10, 2013 10:38 pm

Nimbal do you have an explanation I could add for what TortoiseGit does? At the moment it seems kind of just thrown in there.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
moopli
Developer


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 21
Location : hanging from the chandelier

PostSubject: Re: Programming Team   Fri Oct 11, 2013 1:34 am

NickTheNick wrote:
Nimbal do you have an explanation I could add for what TortoiseGit does? At the moment it seems kind of just thrown in there.
More or less, TortoiseGit is what you use to synchronize the code folder on your computer with the code folder online on GitHub.

...Don't let my unNimbalness deceive you
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Fri Oct 11, 2013 2:09 am

Thanks, got it up.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
crovea
Programming Team lead


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 26
Location : Denmark

PostSubject: Re: Programming Team   Fri Oct 11, 2013 1:22 pm

Quote :
More or less, TortoiseGit is what you use to synchronize the code folder on your computer with the code folder online on GitHub.
I would probably add that it's a gui alternative to just using command line git
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Sat Oct 12, 2013 12:49 am

Done.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
Nimbal
Programming Team lead


Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 32
Location : Ratingen, Germany

PostSubject: Re: Programming Team   Tue Oct 29, 2013 1:54 pm

Some updates to existing stuff:

Quote :

Here is the readme for the our code repo on GitHub:
https://github.com/Revolutionary-Games/Thrive/blob/prototype/mingw_setup/readme.txt
The link has changed to https://github.com/Revolutionary-Games/Thrive/blob/master/mingw_setup/readme.txt. (Also, either "the" or "our" can be removed from the sentence.)

Quote :

Should I fork the repository or request access to the "prototype" branch?
Should now read

Quote :

Should I fork the repository or request access to repository at https://github.com/Revolutionary-Games/Thrive/?
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Tue Oct 29, 2013 7:48 pm

Nimbal, the first two links you posted didn't work, but I did fix the typo and the second change.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
SuperLala
Developer


Posts : 28
Reputation : 0
Join date : 2013-09-27
Age : 21
Location : United States

PostSubject: Re: Programming Team   Tue Oct 29, 2013 7:50 pm

The punctuation at the end of each link needs to be removed.
Back to top Go down
View user profile
NickTheNick
Overall Team Co-Lead


Posts : 2312
Reputation : 175
Join date : 2012-07-22
Age : 20
Location : Canada

PostSubject: Re: Programming Team   Tue Oct 29, 2013 8:10 pm

I got rid of the "readme.txt." and it works. Thanks for the help.

_________________
Look at how far we've come when people thought we'd get nowhere. Imagine how far we can go if we try to get somewhere.
Back to top Go down
View user profile
SuperLala
Developer


Posts : 28
Reputation : 0
Join date : 2013-09-27
Age : 21
Location : United States

PostSubject: Re: Programming Team   Tue Oct 29, 2013 8:14 pm

You don't even have to get rid of "readme.txt." You just have to change it to "readme.txt" (without the period at the end)
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Programming Team   Today at 4:32 pm

Back to top Go down
 
Programming Team
View previous topic View next topic Back to top 
Page 1 of 2Go to page : 1, 2  Next

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Programming-
Jump to: