Looking for some Dev

The development of the game itself or new resources for it. Any new stuff you're working on would go here, as well as the discussion of in-development stuff.

Moderator: Developers

egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Looking for some Dev

Post by egofoo »

I'd like to help out a bit and work on Egoboo's source code.
I have the following tasks in mind:
  • Conversion to CMake
  • Conversion to SDL2
  • Conversion to C++/Documentation (I don't mind C, I just read that there was some effort to do so)
However, I'd need repository access and I'd need to know if there are testers for all major platforms (Linux, Windows and Mac).
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

I can be your main Mac tester; as well as rudimentary Linux and Windows support.

Can't give you repo access, though; just use your fork for now I guess.

The code in the git repo is the code in the SVN trunk which is 2.7.7 from 2008, the actual recent code is in branches/2.8.x (or thereabouts)...

I wasn't even aware that Zefz put any code in a git repo; last I heard was he set up a hg repo a year ago...
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

Is it THIS branch you're talking about (just to make sure):
https://sourceforge.net/p/egoboo/svn/HE ... hes/2.8.x/

If we can't commit to 2.8.x then it does not matter anyway:
I have created an "egoboo" organization on GithHub. If you have a GitHub account I can give you administration rights. I will put the 2.8.x branch contents in the "egoboo" repo. If you have access to the SVN here, then you can obtain my changes from there - chances are propably better to find devs there.

Organization URL: https://github.com/orgs/egoboo
Repo URL: https://github.com/egoboo/egoboo

If you - or some other dev - wants administration rights pm me your GitHub name *in this forum* (for that i can see that you're the ppl I am talking with).

The SVN here is odd - check the activity logs ...

Well eventually some1 who still has repo access pops up - would be nice, that'd make things easier.
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

Yes. That branch is the latest Egoboo version.
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

The SVN repo was converted to a Git repo retaining most of the information in the original SVN repo.
I'll start out with the CMake/SDL2 conversion directly on the 2.8.x branch as this is the last known working version.
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

Egoboo, why do you assume all uninitialized memory is 0? :|

What version of Visual Studio are we using? Can I use (some of) C99 finally?
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

Who assumes that all uninitialized memory is 0?

I am using the latest VS Express 2013 btw i can commit workspaces for VS Express 2013 soon.
So I do think we can constrain us to the C99 "support" of VS Express 2013 or we use C++.

I mean TBH: I would use MinGW/MSYS for Windows, VS is just not acceptable anymore. But ppl like it ... I do think we can keep it around for a while at least until I have (successfully) built Egoboo and committed CMake files..
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

Well considering that Egoboo loves to overwrite memory accidentally...
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

I have updated the inclusion schema to"egolib/xxx", "game/xxx", ... and so on.
Eventually you need to adjust your XCode and GNU Make files and check if i missed some system-specific headers.
I will take care of the Code::Blocks and Visual Studio 2013 files.

Egoboo *almost* builds out-of-the-box on Visual Studio 2013 :D

Question: Do we keep the old build files for the old Visual Studio versions? I can not update them and they are severely broken.
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

I guess I can update the VS2010 ones if really necessary. :|

...why can't we actually decompress the external libraries' sources? It'd be easier than trying get everyone to uncompress them and then having to compile separately. :|
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

I am working on that. Let's just get asap the crap here done for that i can start writing CMake build files.
I have compiled Egoboo successfully (but it doesn't start yet).

Actually i'd need to know: cartman, is that the Egoboo map editor? And if not, where is the actual editor?

Keep pulling changes from the repo into your fork. I am still not done changing all include paths :ack:
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

What i want is a Travis-CI automated build. Did not have time yet, but that'd give us an automated test if Egoboo builds on Linux plus (if we write them) any Unit test that does not require audio-visual output or haptic input.
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

Cartman is the 2D map editor and is the one created by the same guy who created Egoboo.
There is a second one, EgoMap, which is 3D but also uses CrystalSpace version old.
Then there's the other attempts...

Cartman in the repo is an attempt to make it use the egolib library.
...
egofoo
Acid Blob (New member)
Acid Blob (New member)
Posts: 28
Joined: Fri Nov 28, 2014 8:23 am

Re: Looking for some Dev

Post by egofoo »

So to my understanding Egoboo has 3 sub-projects (cartman,egolib,game).
I would adjust the directory structure in a final step as follows:

Code: Select all

<root>
     |   
     |__cartman
     |        |
     |        |__src
     |             |
     |             |__cartman
     |                      |
     |                      |
     |                      <source files of cartman>
     |___egolib
     |        |
     |        |__src
     |             |
     |             |___egolib
     |                      |
     |                      |
     |                      <source files of egolib>
     |
     |_____game
     |        |
     |        |_src
     |            |
     |            |_____game
     |                     |
     |                     |
     |                     <source files of game>
In that way, we have standard project/sub-project layout that is satisfied by most C/C++ projects. For instance, to use the sub-project egolib from the sub-project game, the path egolib/src would have to be added to the inclusion paths of the sub-project game.

I do think that the distinct advantage is that any developer can locate sub-projects and include them into his/her sub-project without worrying about inclusion paths in the source code. In that way, we can factor out common code from each sub-project and eventually split egolib up if one would want to because it becomes trivial to add new sub-projects. It can be done by a few lines of CMake code.

For the matter of external dependencies:
I do not think the few dependencies are a problem under Linux (package manager for the win). I can not speak for Mac, though. Problematic - as always - is Windows as there is no standard pattern for acquiring, building and installing libraries. I do think, that CMake will not be of any aid here (in the end, this is a conceptual flaw of Windows or the lack of a concept under Windows:)). This is why I pick up the suggestion of just adding the libraries to the source code by creating a directory

Code: Select all

<root>/external/windows
which accomodates the dependencies for Windows. There are no license troubles (afaik, the Egoboo license is more terse than any of the licenses of the other projects). The beneficial effect of this approach can be illustrated on Lua: Lua does not provide Windows build files releases are not happening very often. So we augment the source code of Lua by appropriate
CMake files and any user of Egoboo can build that dependency. If - like once a year - Lua updates its source code, the Egoboo devs update their copy of Lua in the repository. The other libraries - SDL and so on - have slow release cycles (that is, they are quite mature), too, so this is a very viable approach.

Opinions?
Last edited by egofoo on Mon Dec 15, 2014 9:07 pm, edited 1 time in total.
User avatar
penguinflyer5234
Sheep (Developer)
Sheep (Developer)
Posts: 3025
Joined: Wed Jul 23, 2008 1:39 am
Location: Best Southwest

Re: Looking for some Dev

Post by penguinflyer5234 »

With the Mac side it's usually frameworks or source code. Fink/macports/homebrew/other package managers are useful, but cannot be easily used to make a portable app bundle.
...
Post Reply