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 | 
 

 Programmer coordination discussion

View previous topic View next topic Go down 
Go to page : Previous  1, 2, 3, 4, 5  Next
AuthorMessage
~sciocont
Overall Team Lead


Posts : 3406
Reputation : 138
Join date : 2010-07-06

PostSubject: Re: Programmer coordination discussion   Tue Dec 11, 2012 12:11 am

Not a programmer, but I'm usually on somewhere between 2130 and 0400 GMT.

_________________
Remember our goals: simplicity, science, and playability. Keep them in mind always.
[OE]|[FAQ]|[Wiki]|[My Blog]
Back to top Go down
View user profile
Daniferrito
Experienced


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 22
Location : Spain

PostSubject: Re: Programmer coordination discussion   Tue Dec 11, 2012 11:08 am

I can be on from 14:00 to 24:00 GMT, and maybe a bit later if necessary
Back to top Go down
View user profile
godridden95



Posts : 3
Reputation : 1
Join date : 2013-06-27
Age : 18
Location : United States Of America

PostSubject: My position   Fri Jun 28, 2013 3:07 pm

In order for me to become a part of this project, I need to explain what my capabilities are.

I am learning C++ programming and I have a considerable amount of experience in Java Eclipse.

all through my life I have admired they way games function, and wanted to create my own for a very long time, I always wait for oportunities like this so I can actually participate in a big project.

- Thank You
Back to top Go down
View user profile
godridden95



Posts : 3
Reputation : 1
Join date : 2013-06-27
Age : 18
Location : United States Of America

PostSubject: A quick detail   Fri Jun 28, 2013 7:21 pm

I am available at these times,

10:00am to 9:30pm US Eastern Time

I would also like to ask where to give most of my information to.

Like my phone number and ethnic background and stuff of that nature.

Thank You and I hope I can get an answer soon...

I am gonna try one of these things (:cyclops:)
Back to top Go down
View user profile
Daniferrito
Experienced


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 22
Location : Spain

PostSubject: Re: Programmer coordination discussion   Fri Jun 28, 2013 8:29 pm

Wait, what for?

This is an open-comunity project, meaning that anyone can just hop in and help at anything they want. You dont need to leave information about you Nor any contact info. You dont need to get accepted or anything either.
Back to top Go down
View user profile
godridden95



Posts : 3
Reputation : 1
Join date : 2013-06-27
Age : 18
Location : United States Of America

PostSubject: Thanks   Sun Jun 30, 2013 8:00 am

Thank you for clearing that up

I was a little confused on what I was actually supposed to do.
Back to top Go down
View user profile
Albino



Posts : 2
Reputation : 0
Join date : 2013-07-12

PostSubject: What am I good for, absolutely nothing?   Fri Jul 12, 2013 7:27 pm

So, obviously this game is going to be programmed in C++ but, I myself have only learned like, functions in C++ :| . I was wondering what people who know Java are good for, maybe prototypes or examples. I don't know, I just really want to get involved. Anyone got any ideas?
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: Programmer coordination discussion   Sat Jul 13, 2013 2:15 am

Although not a programmer myself, I do know that languages other than C++ can be used for creating prototypes for the game. What's more, I'm pretty sure that knowledge of Lua is what is needed to mod the game, but first we need a game before we start modding it.

_________________
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
Albino



Posts : 2
Reputation : 0
Join date : 2013-07-12

PostSubject: Re: Programmer coordination discussion   Sat Jul 13, 2013 3:20 am

Alright, I can definitely work on some prototypes.
Back to top Go down
View user profile
Inca
Regular


Posts : 250
Reputation : 10
Join date : 2013-07-03
Age : 22
Location : England

PostSubject: Re: Programmer coordination discussion   Mon Aug 05, 2013 5:03 pm

Update on progress? I was just wondering how we're doing?
Back to top Go down
View user profile http://soundcloud.com/inca_uk
crovea
Programming Team lead


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

PostSubject: Re: Programmer coordination discussion   Tue Oct 08, 2013 4:12 pm

Inca wrote:
Update on progress? I was just wondering how we're doing?
It looks to me like progress is currently isolated to the microbe stage development for which the status can be found here:
http://thrivegame.canadaboard.net/t866-microbe-stage-progress-report#17235
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: Temporary Thread   Wed Oct 09, 2013 1:40 pm

I think it would be benificial if there was added a small readme/help file to each release explaining the controls and features of the current release!
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: Programmer coordination discussion   Thu Oct 10, 2013 2:05 am

I moved your post here just to keep that thread empty, although a disclaimer should be added saying not to post there, anyways don't worry about it.

Good point, but I don't think we need one for every release, just for all upcoming releases.

_________________
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: Programmer coordination discussion   Fri Oct 11, 2013 9:47 am

I compiled a long list of mostly prorgamming related questions that i'd like to know the answers to before getting started!

I read through most threads here on the forum that wasn't too old and seemingly irrelevant, i also skimmed through the source code to answer as many of my own questions as i could. If i missed an important thread or part of the source code just throw it at me!


  1. What exactly will the lua scripting be used for? I saw modding mentioned, will it only be that?
  2. Is the prototype branch actually meant to be a prototype and be thrown away/refactored for trunk or is it just a funny name for the current "trunk"?
  3. I see some remnants of a desire for unit-tests around, but don't see any actual tests in the code, is this just due to down-prioritizing with a desire to eventually have covering tests or am i missing something?
  4. I've gathered the actual best way for programmers to coordinate what is to be done and what has been done is the issue [url=github.com/Revolutionary-Games/Thrive/issues?state=open]tracker[/url] or should this thread also be used?
  5. I saw an early release of the microbe editor tool somewhere, what is the progress of it, which git branch is it on and who is working on it?


    Specifically regarding code standard:


  6. Do we have any kind of transcribed code standard? or has it just been preference of the current lead programmer?
  7. When do we use inlining? i've read a lot on the subject but never really reached a conclusion as to when it should be used if at all.
  8. Do we prefer exceptions to error codes and output parameters? minor performance convern.
  9. Do we use a specific convention for when to use struct and when to use class? Or just the C-like vs OOP-like distinction 'feel' based one.
  10. Code like
    Code:
    void
    setOwner(
     EntityId owner
    ) {
     m_owner = owner;
    }
  11. is a bit hard for me to read effeciently as opposed to a more traditional:
    Code:
    void setOwner(EntityId owner) {
     m_owner = owner;
    }
  12. Is there a consensus on the preference of that form, or a requirement due to editor width? I don't want to start bossing around and i can get used to it i'm sure, just curious if i'm alone on that.


    Less programming relevant:


  13. This component list for microbestage seems to not have been updated in a while, is it still relevant?
  14. Is this post about signals still relevant? i couldn't find any related code in the prototype branch.
  15. In the last entries of this thread, it was discussed a while ago how much to restrict the use of multithreading with no consensus reached. What would the answer be?
 

Ahead of time Thanks if you can answer one or more of my questions

EDIT: Removed question 1 as it was a dumb oversight of mine
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: Programmer coordination discussion   Fri Oct 11, 2013 12:17 pm


  1. Lua scripting: It's mostly to increase iteration speed (make changes without having to recompile) and enable novice programmers unfamiliar with C++ and its quirks a more accessible way to contribute.
  2. The prototype branch will be merged back into master at some point. The name just comes from the local branch I used to experiment around until I found a workable structure for microbes.
  3. If it's easily testable, it should be tested. The thing is, stuff like user input, graphics or gameplay are a little difficult to test. At the moment, it's mostly used for some of the core stuff like the entity manager and the EntityFilter template.
  4. The issue tracker is great for (mostly) self-contained tasks like "implement that", "document this" or the like. For broader issues that might require extensive discussion like "how should we implement procedural evolution of cells" or similar, the forum is the better place I think. Concerning this particular thread right here, I guess it wasn't focussed enough in purpose and is a little derailed by now.
  5. Microbe Editor: No idea. I'm not even sure it ever was available as source.
  6. Preference mostly. I remember reading a thread somewhere that gave a coding standard, but some of the requirements there were really questionable (like prepending an underscore before each local variable name). It's on my todo list to write a few notes about formatting and such, but I'm not sure when I'll get around to it.
  7. I can't say that I worry too much about inlining. I usually just let the compiler decide. It's an optimization anyway, and to quote Donald Knuth: "Premature optimization is the root of all evil." If you find a particular function that could greatly benefit from inlining, go ahead and inline it. But remember to consult a profiler to check if it actually improved anything.
  8. Exceptions, please. I plan on switching our mingw toolchain to a version that has improved exception handling with almost zero overhead (unless there actually is an exception), so performance shouldn't be too affected. Again, premature optimization and so forth.
  9. Personally, I use struct only if all the members will be public anyway, but it really makes no difference.
  10. That's probably not the answer you hope for but... you'll get used to it. The first version has the advantage of being easier to parse for humans, especially if there are more than 1 parameters and a complicated return type. The return type is visually separated from the function name and you can quickly see the number of arguments just by counting the indented lines. It's not quite noticeable in your example, but compare this:
    Code:

    std::map<std::string, Touchable<AwesomeComponent::AwesomeData>>
    prepareData(
     const std::vector<AwesomeComponent::AwesomeData>& data,
      std::function<bool(const AwesomeComponent::AwesomeData&)> filter
    ) {
      // ...
    }

  11. with this:
    Code:

    std::map<std::string, Touchable<AwesomeComponent::AwesomeData>> prepareData(const std::vector<AwesomeComponent::AwesomeData>& data,
     std::function<bool(const AwesomeComponent::AwesomeData&)> filter
    ) {
      // ...
    }
  12. Looking over the list, most of the mentioned systems and components are already implemented or planned in some form. I wouldn't call that thread outdated, but it's not really relevant anymore either.
  13. Signals were pretty much scrapped but for reasons that don't exist anymore anyway. They might make a comeback in the form of an event system.
  14. Multithreading was actually implemented. It was a bit clunky to use. I eventually rewrote the engine to use a single thread and it ran about 3 times faster. That's not to say that the engine can't benefit from multithreading, but my approach was wrong. When we run into performance problems, we can revisit that topic.

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: Programmer coordination discussion   Fri Oct 11, 2013 12:33 pm

Thanks for answering, very insightful!

Regarding:
3: My experience with unit testing is limited to theory. I'll try and write unit tests when appropriate following the existing convention, but they probably wont be pretty initially.
10: I would have written the second example as:
Code:

auto prepareData(const std::vector<AwesomeComponent::AwesomeData>& data,
                 std::function<bool(const AwesomeComponent::AwesomeData&)> filter)
{
  // ...
}
Letting the doxygen and return statement speak for the return type, long parameter lists are on several lines but with the first, on line with the function name.
But i can get used to it np!

Had nothing to add to the rest of the answers

EDIT: Looking at the existing unit tests, i don't see how i could mess that up, great syntax!


Last edited by crovea on Fri Oct 11, 2013 1:07 pm; edited 2 times in total
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: Programmer coordination discussion   Fri Oct 11, 2013 12:58 pm

I'm not sure this is the right place for these kinds of questions; let me know.

I found this in engine.h with the purpose of making the engine object non-copyable:
Code:
public:
  ...
   Engine(const Engine& other) = delete;
How does that delete work? never seen it before. (hard to google) I assume it just deletes the new object instantly but how does the user know this happened?
Why not just make the copy constructor private?

EDIT: Also no assignment overload so it is still copyable, right?.
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: Programmer coordination discussion   Fri Oct 11, 2013 1:07 pm

Well, the auto keyword for return types only works if the function body is readily available, which is not always the case, for example in header files. It's also only advisable if there is exactly one return statement in the function.

And yeah, you could look up the function signature in the documentation. But (with a good text editor and proper keyboard shortcuts) it's faster to just open the header in another window / tab and navigate to the function definition than to pick up the mouse, switch to the browser, and click through to the appropriate site. That's assuming that there even is documentation available for that particular function.

Quote :

I'm not sure this is the right place for these kinds of questions; let me know.
Probably not, but I don't think we have some thread for miscellaneous programming questions. Maybe we should start one.

Quote :

How does that delete work?
The C++ standards committee likes to reuse keywords. Officially, it's to ensure backwards compatibility as new keywords could already be in use as variable names. My theory, however, is that they want to cause maximum confusion among programmers to create an artificial scarcity of C++ experts that could end up in the standards committee and drink up their coffee. But I digress.

That weird delete syntax is a C++11 feature and does exactly the same as a private copy constructor, it's just slightly more explicit and causes the compiler to throw an error if someone tries to even implement the deleted function. There's another variant with default:

Code:

Engine(const Engine&) = default;
Which, instead of removing the overload, inserts the default implementation for that overload. Useful if you want to define some custom constructors (which implicitly removes the default copy constructor) and know that the default copy constructor should still work.
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: Programmer coordination discussion   Fri Oct 11, 2013 1:15 pm

Quote :
Maybe we should start one.
Sounds like a good idea! Probably better if you are the author.

And interresting with the c++11 syntax! I'm not completely up to snuff with it yet, so pardon if i write some nasty 98 code from time to time

You didn't comment on the lack of assignment overload still allowing copy?

EDIT: And with the documentation i meant in the header files! The doxygen source should be right above the definition right? but yeah i can see the issue with auto. I won't hassle you with it more.
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: Programmer coordination discussion   Fri Oct 11, 2013 1:29 pm

Quote :

You didn't comment on the lack of assignment overload still allowing copy?
You can "delete" assignment operators the same way and if the copy / move constructor is deleted, the copy / move assignment operator should almost definitely be deleted as well. And now that you mention it, that is not the case in the Engine class, which is an oversight on my part. Good catch!

Edit: A wild thread appears.
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: Programmer coordination discussion   Fri Oct 11, 2013 2:53 pm

Regarding the git issue tracker, i can't figure how to assign myself to an issue (not that i am ready to yet). I assume this is because i don't have permission to, so in order to start working on an issue, do i

  • ... inform someone with permission that i want to be assigned? (and how if so)
  • ... get permission to assign myself to issues?
  • ... just leave it open and work on it until i have a solution and then inform someone?
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: Programmer coordination discussion   Fri Oct 11, 2013 3:26 pm

Yeah, seems like only "official" (in the sense of GitHub) project members can assign issues to people. If you want to start working on one, leave a comment underneath the issue (and maybe check beforehand if someone else was quicker) and I'll assign you when I get the chance.
Back to top Go down
View user profile
RodGame
Newcomer


Posts : 94
Reputation : 15
Join date : 2013-03-18

PostSubject: Re: Programmer coordination discussion   Wed Nov 20, 2013 3:28 pm

Hi there,

First of all, I'm back in the team and ready to get some coding done

I just finish to build the project and everything is working. I got some warning along the way, but they seems to come from external libraries over which we have no control(Setup.ps1 log for the interested). The game also went on half my second screen instead of getting full on my main screen but, I remember this happening a while ago. I'll eventually look into this issue considering how bothering it is to me.

  • Anyone else is using 2 monitors and not affected by that issue?

The most time consuming problem I had, was that I tried to run Thrive/build/Thrive.exe instead of Thrive/build/dist/bin/Thrive.exe. Running the former gave me a missing OgreMain_d.dll and I spend a lot of time trying to figure it out. The latter worked fine. This bring me to my next question :

  • Is it normal behavior? If so, I'd be interested in modifying the Build's Readme to make this precision. This would be a good way for me to make a first pull request and get involved on the github project

This bring me to my second question. I haven't found many information about github on the forum. Is there somewhere I could find information about the github etiquette/usage for the project? Yesterday, I was considering to make some modifications and make a pull request but I was really confused by the fact that the 56_Compound_Dropping branch was really ahead of the Master branch.

I now see that the branchs have been merged and the Master is much closer to the actual date.

  • What would've been the best practice to make a modification with yesterday branches system? Use the Master branch and hope I won't enter in conflict? Put a comment asking the branches to be merged? Look at what file/modification the other user is doing and try to not conflict?

I think it would really be helful to make a github guide for the project to help newcomer understand how are managed the fork in the project and how long should fork last and such... I used github a lot as a version control but not as a tool to work in team. The only way I did source control in team is with check out(take control of the file)/check in(update/free the file) that doesn't seems to be github's workflow.

I already spent the last 1-2 day looking at the github issue/pull request/discussion and forums discussions to get a good idea of where the project is at. I'll spend a good part of the day to look/modify the code to get a good feel of it.

Expect pull request from me soon enough
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: Programmer coordination discussion   Wed Nov 20, 2013 4:15 pm

RodGame wrote:
Hi there,

First of all, I'm back in the team and ready to get some coding done
Hi Rod! Great to see you again!

RodGame wrote:

Is it normal behavior? If so, I'd be interested in modifying the Build's Readme to make this precision. This would be a good way for me to make a first pull request and get involved on the github project
Unfortunately yes, because Windows has no easy mechanism for telling it where to look for DLLs besides the directory where the executable is, so the DLLs (and our art assets, for that matter) first need to be put in a certain directory structure. If have an idea on how to adjust the build system to almost eliminate this step, but I haven't gotten around to trying it out yet.

RodGame wrote:

This bring me to my second question. I haven't found many information about github on the forum.
The last section of the style guide (found in the doc subdirectory of the code repository) contains some information on our git workflow. And yes, it's completely normal for some branches to be far ahead of master. In fact, master should usually be the "oldest" branch because all work is done in other branches. Only when a feature is done is it merged back into master.[/quote][/quote]
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: Programmer coordination discussion   Mon Feb 10, 2014 8:06 am

Nimbal if you are lurking still, could you take another look at the SVN server?
I'm ready to add some new models to it, but regardless of what commands I try on the server I get a: 405 'Method not allowed'

I have the user you gave me but from my understanding SVN is supposed to ask me for the authentication information, which it does not seem to be doing.

Thanks!


And since this thread is usually pretty silent I will add a reminder to people reading through, that most of the activity is happening at the github page: https://github.com/Revolutionary-Games/Thrive/issues?state=open

_________________
- jjonj on github/reddit, jjonjex/Jacob Jensen on skype
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Programmer coordination discussion   Today at 2:23 pm

Back to top Go down
 
Programmer coordination discussion
View previous topic View next topic Back to top 
Page 4 of 5Go to page : Previous  1, 2, 3, 4, 5  Next

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