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 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
» 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
» A new round of Forum Revamps! by Oliveriver Wed May 20, 2015 11:32 am
|
|
| Programming Team | |
| | |
Author | Message |
---|
NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Programming Team Sun Sep 29, 2013 12:14 am | |
| Programming TeamIf 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#17414And here is a subforum just for you: https://thrivegame.canadaboard.net/f26-programmingGitHubGitHub, 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 ProgrammingIf there are any issues with compiling or coding the game, please post them in this thread: https://thrivegame.canadaboard.net/t999-development-troubleshootingThis 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-architectureFor 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/
FAQWhat needs to be done?- Spoiler:
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.
I have an idea of a quick thing to add. Where do I put it? - Spoiler:
Create a ticket in the GitHub tracker, which is probably preferable for everything that wouldn't impact gameplay much. Otherwise, post on a thread or create a new thread to suggest it. Or, if you can implement the change yourself, fork the repository, commit your change and make a pull request.
Should I fork the repository or request access to https://github.com/Revolutionary-Games/Thrive/? - Spoiler:
Fork the repository.
How do I let people know of my changes if I fork the repository? - Spoiler:
Make a pull request.
Where should I suggest larger changes? - Spoiler:
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.
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:
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.
Where do I find API documentation? - Spoiler:
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. Documentation for the various libraries you use are not maintained by us, and can be Googled for.
Last edited by NickTheNick on Mon Feb 16, 2015 8:56 pm; edited 31 times in total | |
| | | Tarpy Strategy Team Lead
Posts : 337 Reputation : 23 Join date : 2013-03-08 Location : Here
| Subject: 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. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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: https://thrivegame.canadaboard.net/t692-important-read-before-postingexcept for programmers. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: 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. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Tue Oct 01, 2013 2:17 am | |
| Thanks for all of those Nimbal, I updated all of them into the OP. | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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.
| |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Thu Oct 03, 2013 3:00 am | |
| Thanks, I uploaded those too. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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? | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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 https://thrivegame.canadaboard.net/t1117p15-engine-architecture | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Thu Oct 10, 2013 2:00 am | |
| Okay thanks I uploaded that into the OP. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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. | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: 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 | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Fri Oct 11, 2013 2:09 am | |
| | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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 | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Sat Oct 12, 2013 12:49 am | |
| | |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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/?
| |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: Re: Programming Team Tue Oct 29, 2013 7:50 pm | |
| The punctuation at the end of each link needs to be removed. | |
| | | NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: Re: Programming Team Tue Oct 29, 2013 8:10 pm | |
| I got rid of the "readme.txt." and it works. Thanks for the help. | |
| | | SuperLala Developer
Posts : 28 Reputation : 0 Join date : 2013-09-27 Age : 29 Location : United States
| Subject: 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) | |
| | | Sponsored content
| Subject: Re: Programming Team | |
| |
| | | | Programming Team | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |