Thrive Game Development
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  Latest imagesLatest images  SearchSearch  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 are 9 users online :: 0 Registered, 0 Hidden and 9 Guests

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
new programmers start here - Programming Team Emptyby NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
new programmers start here - Programming Team Emptyby NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
new programmers start here - Programming Team Emptyby crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
new programmers start here - Programming Team Emptyby tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
new programmers start here - Programming Team Emptyby NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
new programmers start here - Programming Team Emptyby NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
new programmers start here - Programming Team Emptyby crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
new programmers start here - Programming Team Emptyby The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
new programmers start here - Programming Team Emptyby crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
new programmers start here - Programming Team Emptyby MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
new programmers start here - Programming Team Emptyby tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
new programmers start here - Programming Team Emptyby tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
new programmers start here - Programming Team Emptyby Kaiju4u Wed Jun 10, 2015 11:16 am

» Presentation
new programmers start here - Programming Team Emptyby Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
new programmers start here - Programming Team Emptyby crovea Sun May 31, 2015 5:06 pm

» want to contribute
new programmers start here - Programming Team Emptyby Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
new programmers start here - Programming Team Emptyby Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
new programmers start here - Programming Team Emptyby Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
new programmers start here - Programming Team Emptyby TheBudderBros Sun May 24, 2015 9:00 pm

» A new round of Forum Revamps!
new programmers start here - Programming Team Emptyby Oliveriver Wed May 20, 2015 11:32 am


 

 Programming Team

Go down 
+3
Nimbal
Tarpy
NickTheNick
7 posters
Go to page : 1, 2  Next
AuthorMessage
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Programming Team   new programmers start here - Programming Team EmptySun 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:
https://thrivegame.canadaboard.net/t886-programmer-coordination-discussion#17414

And here is a subforum just for you: https://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:
https://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:
https://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:


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


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptySun 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptySun 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:

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

except for programmers.
Back to top Go down
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptySun 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
SuperLala
Developer
SuperLala


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

new programmers start here - Programming Team Empty
PostSubject: RE: New Programmers Start Here   new programmers start here - Programming Team EmptySun 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
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptySun 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyMon 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.
Back to top Go down
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyMon 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue Oct 01, 2013 2:17 am

Thanks for all of those Nimbal, I updated all of them into the OP.
Back to top Go down
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyWed 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyThu Oct 03, 2013 3:00 am

Thanks, I uploaded those too.
Back to top Go down
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue 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?
Back to top Go down
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue 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
crovea
Programming Team lead
crovea


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyWed 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 https://thrivegame.canadaboard.net/t1117p15-engine-architecture
Back to top Go down
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyThu Oct 10, 2013 2:00 am

Okay thanks I uploaded that into the OP.
Back to top Go down
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyThu 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.
Back to top Go down
moopli
Developer
moopli


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyFri 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyFri Oct 11, 2013 2:09 am

Thanks, got it up.
Back to top Go down
crovea
Programming Team lead
crovea


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyFri 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptySat Oct 12, 2013 12:49 am

Done.
Back to top Go down
Nimbal
Programming Team lead



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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue 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
NickTheNick
Overall Team Co-Lead
NickTheNick


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue 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.
Back to top Go down
SuperLala
Developer
SuperLala


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue Oct 29, 2013 7:50 pm

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


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue Oct 29, 2013 8:10 pm

I got rid of the "readme.txt." and it works. Thanks for the help.
Back to top Go down
SuperLala
Developer
SuperLala


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

new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team EmptyTue 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
Sponsored content





new programmers start here - Programming Team Empty
PostSubject: Re: Programming Team   new programmers start here - Programming Team Empty

Back to top Go down
 
Programming Team
Back to top 
Page 1 of 2Go to page : 1, 2  Next
 Similar topics
-
» New-ish to programming, what should I do?
» Programming
» Application (programming)
» Programmer Introduction Thread
» Miscellaneous Programming Questions

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