Thread: FreeOrion seeks C++ programmers willing to learn.

  1. #1
    Registered User
    Join Date
    Jun 2009
    Location
    Finland
    Posts
    7

    FreeOrion seeks C++ programmers willing to learn.

    Hello! FreeOrion is a non commercial community game project that aims to create a new high quality 4X space strategy game. The project is already well under way, and at the moment version 0.4, which deals primarily with space combat, ship design and tech tree additions for both of the above, is being developed. Future stages include things like diplomacy, AI, ground combat, espionage, governments (SMAC-style) etc.

    FreeOrion is being coded primarily with C++. Python is also used for AI scripting. The project uses modern C++ features, makes extensive use of the Boost C++ libraries, and uses the Ogre 3D library to handle rendering in the client. FreeOrion can be built on Windows, Linux or MacOSX. The project tries to keep the quality of the code to a very high level. This is necessary for an enterprise as big, complex and ambitious as FreeOrion.

    The development speed of the project is mainly slowed down by the lack of dedicated and skillful programmers; if you are interested in working with talented individuals on an open source game project such as this and don`t mind learning new things, FreeOrion is a project for you.

    You can find more info about the project from here:

    Main Page - FreeOrionWiki

    … and more info on how to contribute to the project can be found here:

    How to Help - FreeOrionWiki

    If you have any specific questions about some areas of the game or want to contribute to the project, please register to our forum:

    FreeOrion • Index page

    FreeOrion also has an IRC channel: #freeorion at irc.freenode.net.
    This channel isn't always monitored however, so if you don't receive a reply to your post within a few minutes, please redirect your post/posts to the forums of the project.

    A good summary of the game’s current situation (note the date of this post) can be found here:

    Interview with FreeOrion's Programming Lead: Zach Laine | Space Strategy Games Sector

    And finally, here are some screenshots from the game (including a composite picture of preliminary space combat material):





    Personally, ever since Master Of Orion 3 turned out to be a disappointment for me, I have hoped for a project like this. The core team behind the FreeOrion project isn`t very big, but consists of highly talented and motivated individuals that all share a common goal.
    Last edited by MikkoM; 11-09-2009 at 03:10 PM.

  2. #2
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Fails to get past the generating stars and AI screen. Appears to be a deadlock, as the processor utilization is near zero, and no harddrive activity is observed. Ran it under BOCHS 2.4.2

    Update -
    I traced the problem to the fact that you are not statically linking the runtime, which is fine for in house development, but a 'very bad thing' for deployment as it requires the end user to have the exact version of the runtime you used installed on their system. Also, using it for in house development will create mysterious bugs once you decide to switch over to the static libraries. So ultimately it is best to either include the installer for the runtime you use with the package, or to use the static libraries from the start.
    Last edited by abachler; 11-14-2009 at 10:28 PM.

  3. #3
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Also pretty sure "Zach Laine" is actually a porn star....
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  4. #4
    Registered User
    Join Date
    Jun 2009
    Location
    Finland
    Posts
    7
    Quote Originally Posted by abachler View Post
    Update -
    I traced the problem to the fact that you are not statically linking the runtime, which is fine for in house development, but a 'very bad thing' for deployment as it requires the end user to have the exact version of the runtime you used installed on their system. Also, using it for in house development will create mysterious bugs once you decide to switch over to the static libraries. So ultimately it is best to either include the installer for the runtime you use with the package, or to use the static libraries from the start.
    If you are experiencing problems with FreeOrion or want to know why something is currently done in a certain way, I highly recommend that you register to the forums of the project:

    FreeOrion Forums

    There you can get an exact answer to your question/s.

    Quote Originally Posted by MK27 View Post
    Also pretty sure "Zach Laine" is actually a porn star....
    WHAT?!
    Last edited by MikkoM; 11-15-2009 at 06:37 PM.

  5. #5
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by MikkoM View Post
    If you are experiencing problems with FreeOrion or want to know why something is currently done in a certain way, I highly recommend that you register to the forums of the project:

    FreeOrion Forums

    There you can get an exact answer to your question/s.
    I already know why something is done that way, lazy programmers plain and simple. Professional game developers do not deploy applications that are dependent on 3rd party libraries that the end user must download on their own. They either include the libraries, or statically link them. I really don't need an answer, as I have no question. I merely stated that the application does not run 'out of the box', and made a suggestion as to how you could fix it. You posted on this board, remember, I have no interest in registering with your forum simply to reply to a post on this forum.

    In THEORY using the DLL version of the runtime lets you update it by simpy installign the latest runtime, except your application specificalyl targets version 7.1, which is from what, windows 98? And by targettign a specific version you cannot take advantage of updated versions, which will use a different version and file names. If your application was capable of using the newer runtimes, it woudl have found the version 9 runtimes I DO have installed on my system. Hence, there is no benefit t be gained from using the DLL's. Although reading your forum I see that this opinion was voiced and got shouted down. Majority rules doesn't work with applications programming. I also notice that many other people are having the exact same problem, all related to the runtime, and yet you have not addressed the issue by making a simple change in the configuration? I highly doubt your team is responsive enough that my 1 extra post would make a difference if the hundreds of posts they have received already have not convinced them to take effective action.
    Last edited by abachler; 11-15-2009 at 11:21 PM.

  6. #6
    Hail to the king, baby. Akkernight's Avatar
    Join Date
    Oct 2008
    Location
    Faroe Islands
    Posts
    717
    ok, you guys got me confused now, is this project real or not? Looks legit to me, but the negativism of you guys is making me confused D:
    Not that Imma have any part in this project, just that if this is a scam, then damn, it's the most dedicated scam I've ever seen ...
    Also if this project is real, I think you guys are being to the makers. Ain't like it's a new thing that humans make mistakes...
    Currently research OpenGL

  7. #7
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Apparently its a real project, but the original creator abandoned it years ago, and now it has been limping along on the occasional volunteers labor.

  8. #8
    Registered User
    Join Date
    Jun 2009
    Location
    Finland
    Posts
    7
    Quote Originally Posted by Akkernight View Post
    ok, you guys got me confused now, is this project real or not?
    The project is very real.

    Quote Originally Posted by abachler View Post
    Apparently its a real project, but the original creator abandoned it years ago, and now it has been limping along on the occasional volunteers labor.
    The project`s original leader and a few other original members have left, but there are still members from the early days of the project involved in it and committed to it. So it is NOT just “limping along on the occasional volunteers labor.” Also, it isn`t very surprising that people come and go in a non commercial community game project, where everyone is working during their free time and nobody is getting paid to participate. The project`s goal to create a new high quality 4X space strategy game is no small and simple task either.

    Quote Originally Posted by abachler View Post
    I highly doubt your team is responsive enough that my 1 extra post would make a difference if the hundreds of posts they have received already have not convinced them to take effective action.
    This probably depends on how well you can make your case. There are also quite a few issues here. How much extra work making this change requires? Will it complicate future development? Should this change be a priority to a project that is currently moving towards version 0.4/1.0 and doesn’t have too many active programmers?

    I can of course take your case to the forums of the project, if you want to. But since I am not a programmer myself, I really think that it would be beneficial if you would make your case yourself. Especially since you already showed at least some interest towards the project by downloading it and figuring out why it didn`t work on your system.
    Last edited by MikkoM; 11-17-2009 at 06:37 PM.

  9. #9
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by MikkoM View Post
    I can of course take your case to the forums of the project, if you want to. But since I am not a programmer myself, I really think that you should be the one doing this. Especially since you already showed at least some interest towards the project by downloading it and figuring out why it didn`t work on your system.
    I can hardly wait for the response to this one !

    Now that is a very unique attitude for someone actively involved in a project to take, when they have perhaps been given a useful piece of advice -- ask someone who is not part of the project to deal with it! This does not say much for the enthusiasm and intelligence of you and your team...
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  10. #10
    Registered User
    Join Date
    Jun 2009
    Location
    Finland
    Posts
    7
    Quote Originally Posted by MK27 View Post
    I can hardly wait for the response to this one !

    Now that is a very unique attitude for someone actively involved in a project to take, when they have perhaps been given a useful piece of advice -- ask someone who is not part of the project to deal with it! This does not say much for the enthusiasm and intelligence of you and your team...
    Thank you for the compliment. As I said before, I am NOT a programmer myself and so don`t know much about "using the DLL version of the runtime to let you update it by simply installign the latest runtime" etc. For this reason I thought that it would be better, if abachler himself would make his case in the forums of the project, where his accurately presented suggestion would be evaluated by programmers already involved in the FreeOrion project.

    Notice also that I did offer to take his message to the forums of the project, if he wants to. But again as I am not a programmer myself, I might end up presenting the message in a wrong way. Despite this possible problem I am still willing to take abachler`s suggestion to the forums of the project.

    I also edited my post a bit, so hopefully it won`t be seen as negatively as you obviously saw it. However the original version of my text can still be seen from your message`s Quote, so everyone can evaluate it from there.
    Last edited by MikkoM; 11-17-2009 at 06:39 PM.

  11. #11
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by MikkoM View Post
    Thank you for the compliment. As I said before, I am NOT a programmer myself and so don`t know much about "using the DLL version of the runtime to let you update it by simply installign the latest runtime" etc. For this reason I thought that it would be better, if abachler himself would make his case in the forums of the project, where his accurately presented suggestion would be evaluated by programmers already involved in the FreeOrion project.
    Sorry if I hurt any feelings there . Anyway, if I know abachler (actually I don't), this may, or may not happen.

    Cboard is one of the busier general language programming boards on the net. If you do decide to inform the team (which you might as well, the worst that will happen is you are wrong, etc.), then post a link to this discussion. You don't have to rephrase anything, or anything much. I would take abachler seriously, he is one of the more more knowledgeable C++ regulars, has been programming for a very long time, is an electronic engineer (or something) and seems to have an avid interest in games. Plus what he is saying makes a certain amount of sense, altho I don't work on a windows platform, so I can't really say for sure.

    But I think this is a pretty safe bet dude. You should go make that post. If they aren't too defensive and angry, someone may thank you for it.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  12. #12
    Registered User
    Join Date
    Jun 2009
    Location
    Finland
    Posts
    7
    Quote Originally Posted by abachler View Post
    I highly doubt your team is responsive enough that my 1 extra post would make a difference if the hundreds of posts they have received already have not convinced them to take effective action.
    Since there were no new posts from you, I have taken your case to the forums of the project by quoting (hopefully) relevant parts of your messages.

    Quote Originally Posted by MK27 View Post
    Sorry if I hurt any feelings there
    One thing that probably also led to that miscommunication was that, as I am not a native English speaker myself, I don`t necessarily always remember to be as polite as one might expect. So if this was the case, sorry about that.

  13. #13
    Registered User
    Join Date
    Nov 2009
    Posts
    5
    As MikkoM has assured, FreeOrion is not a scam. One might colourfully describe the pace of development as "limping", in comparison to larger teams, however there is a small but stable group of contributors that are not merely "occasional volunteers". Finding more volunteers, occasional or otherwise, is the purpose of the original post of this thread.

    Quote Originally Posted by abachler View Post
    Professional game developers do not deploy applications that are dependent on 3rd party libraries that the end user must download on their own. They either include the libraries, or statically link them.
    This is likely mostly true, however FreeOrion is not a professional (as in paid to make it) development project... Which is not to say we don't care about these sorts of issues, but for the particular issue you highlight...
    In THEORY using the DLL version of the runtime lets you update it by simpy installign the latest runtime, except your application specificalyl targets version 7.1, which is from what, windows 98?
    ... there is a fairly simple workaround (download msvcr71.dll) that fixes the problem, most people don't have the problem, and we have tried to fix it properly, although as-yet unsuccessfully.

    We actually do build the Windows releases using Visual C++ 9.0 compiler, and we ship that version of the runtime installer with the releases on sourceforge. However, there is apparently an old version of a dependency that hasn't yet been rebuilt yet, which is linking to something else that depended on the version 7.1 runtime, thus adding the outdated dependency to the whole executable.

    I'm surprised to hear that it's possible to link against an unspecified version of the Visual Studio runtime. Could you instruct or link to instructions on how to build applications with MS Visual C++ that link dynamically but don't depend on a particular version? I don't build the Win32 release executables or put together the installer package, but the developer who does might find this to be useful information...

    Although reading your forum I see that this opinion was voiced and got shouted down. Majority rules doesn't work with applications programming. I also notice that many other people are having the exact same problem, all related to the runtime, and yet you have not addressed the issue by making a simple change in the configuration?
    The issue is not just a simple change in configuration, unfortunately. As above, we build the game executables using the latest release of Visual Studio, but older DLL dependencies get linked in and bring along their dependency on previous version of the runtime.

    There were some efforts to fix this, but apparently something was missed, since the older dependency remains...

    I highly doubt your team is responsive enough that my 1 extra post would make a difference if the hundreds of posts they have received already have not convinced them to take effective action.
    There have been numerous reports of the dependency on MSVCR71.dll causing crashes, and there have been various discussions about linking OGRE statically (particularly for the Linux static build, which were addressed), but I don't recall any significant number of posts (let alone hundreds) specifically about statically linking to the Visual C++ runtimes.

    If your 1 extra post, here or on the freeorion forums, contained instructions or hints on how to set up Visual C++ to link dynamically to the Visual C++ runtimes in a way that doesn't depend on a particular version, then that probably would help us take more effective action, though...

  14. #14
    Hail to the king, baby. Akkernight's Avatar
    Join Date
    Oct 2008
    Location
    Faroe Islands
    Posts
    717
    you can ignore libraries in VS, by going into the project properties and the Linker subcategory... Also, if this is a persisting problem, you should maybe consider using GCC?
    Currently research OpenGL

  15. #15
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    ... there is a fairly simple workaround (download msvcr71.dll) that fixes the problem, most people don't have the problem, and we have tried to fix it properly, although as-yet unsuccessfully.
    The proper way to fix it is to use teh static libraries, not the DLL's.

    It is simple in the extreme to change to the static libraries. It is a single setting in the configuration of the project, although if you have the solution broken into several sub projects it is best to change the configuration at the solution level. All you do is change the runtime setting from Multithreaded DLL to Multithreaded (which is the static library). You have to change ti for every subproject though, which you are obviously not doing or there wouldnt still be a dependancy on the 7.1 libraries.

    In no case am I downloading an older version of the libraries. Sorry, its just not going to happen.

    If you are having problems with multiple inconsistent dependencies, then I am going to assume that your project is basically spaghetti code at this point. Im not setting up another svn folder on my system, but if you zip or rar the project into a single file and post it fro download ill take a look at it and see what I can fix. Make sure whatever you send me actually compiles and runs though, and I only want the windows version, I coudlnt care less about the linux version.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Advice on how to being to learn C++
    By VenomUK in forum C++ Programming
    Replies: 9
    Last Post: 05-18-2002, 01:06 PM
  2. Programming Puns
    By kermi3 in forum A Brief History of Cprogramming.com
    Replies: 44
    Last Post: 03-23-2002, 04:38 PM