| Programmer coordination discussion | |
|
+13Albino godridden95 Daniferrito ~sciocont MeowMan1 ADMIN NickTheNick roadkillguy ido66667 Apeiron jaws2blood Carnifex Seregon 17 posters |
|
Author | Message |
---|
~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: 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. | |
|
| |
Daniferrito Experienced
Posts : 726 Reputation : 70 Join date : 2012-10-10 Age : 30 Location : Spain
| Subject: 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 | |
|
| |
godridden95
Posts : 3 Reputation : 1 Join date : 2013-06-27 Age : 26 Location : United States Of America
| Subject: 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 | |
|
| |
godridden95
Posts : 3 Reputation : 1 Join date : 2013-06-27 Age : 26 Location : United States Of America
| Subject: 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:) | |
|
| |
Daniferrito Experienced
Posts : 726 Reputation : 70 Join date : 2012-10-10 Age : 30 Location : Spain
| Subject: 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. | |
|
| |
godridden95
Posts : 3 Reputation : 1 Join date : 2013-06-27 Age : 26 Location : United States Of America
| Subject: 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. | |
|
| |
Albino
Posts : 2 Reputation : 0 Join date : 2013-07-12
| Subject: 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? | |
|
| |
NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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. | |
|
| |
Albino
Posts : 2 Reputation : 0 Join date : 2013-07-12
| Subject: Re: Programmer coordination discussion Sat Jul 13, 2013 3:20 am | |
| Alright, I can definitely work on some prototypes. | |
|
| |
Inca Regular
Posts : 250 Reputation : 10 Join date : 2013-07-03 Age : 30 Location : England
| Subject: Re: Programmer coordination discussion Mon Aug 05, 2013 5:03 pm | |
| Update on progress? I was just wondering how we're doing? | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Programmer coordination discussion Tue Oct 08, 2013 4:12 pm | |
| | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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! | |
|
| |
NickTheNick Overall Team Co-Lead
Posts : 2312 Reputation : 175 Join date : 2012-07-22 Age : 28 Location : Canada
| Subject: 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. | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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!
- What exactly will the lua scripting be used for? I saw modding mentioned, will it only be that?
- 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"?
- 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?
- 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?
- 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:
- Do we have any kind of transcribed code standard? or has it just been preference of the current lead programmer?
- 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.
- Do we prefer exceptions to error codes and output parameters? minor performance convern.
- 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.
- Code like
- Code:
-
void setOwner( EntityId owner ) { m_owner = owner; } - is a bit hard for me to read effeciently as opposed to a more traditional:
- Code:
-
void setOwner(EntityId owner) { m_owner = owner; } - 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:
- This component list for microbestage seems to not have been updated in a while, is it still relevant?
- Is this post about signals still relevant? i couldn't find any related code in the prototype branch.
- 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 | |
|
| |
Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Programmer coordination discussion Fri Oct 11, 2013 12:17 pm | |
|
- 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.
- 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.
- 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.
- 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.
- Microbe Editor: No idea. I'm not even sure it ever was available as source.
- 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.
- 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.
- 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.
- Personally, I use struct only if all the members will be public anyway, but it really makes no difference.
- 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 ) { Â // ... }
with this: - Code:
-
std::map<std::string, Touchable<AwesomeComponent::AwesomeData>> prepareData(const std::vector<AwesomeComponent::AwesomeData>& data, std::function<bool(const AwesomeComponent::AwesomeData&)> filter ) { Â // ... }
- 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.
- 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.
- 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.
| |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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 | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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?. | |
|
| |
Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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. | |
|
| |
Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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?
| |
|
| |
Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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. | |
|
| |
RodGame Newcomer
Posts : 94 Reputation : 15 Join date : 2013-03-18
| Subject: 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 | |
|
| |
Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: 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] | |
|
| |
crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: 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 | |
|
| |
Sponsored content
| Subject: Re: Programmer coordination discussion | |
| |
|
| |
| Programmer coordination discussion | |
|