Mixed Android/Linux issue - Versions

Hi there.

I'm pretty new to this kind of games,and githb in general.

I was quite happy top be able to build a running version of Empty epsilon, but stumbled in a problem i was unable to solve:


I buildt the the files in Linux (Ubuntu 16.04) and it was running.
I installed the APK and was not able to connect to the server.

After a few minutes i found the issue (I guess):
The Linux machine runs version 2017.04.16 and the APK is version 2017.02.23

Being new to github and building from sources i tried the following:
I went to https://github.com/daid/EmptyEpsilon/tree/EE-2017.02.23 , deleted the emptyepsilon folder on my machine, downloaded the ZIP and tried to build again.

But, Alas!

I got version 2017.04.16 again... where is my mistake?





Comments

  • edited April 2017
    Hi, and welcome aboard!

    The default is to use the current system date for the version number.
    But however, you can change that by editing the file CMakeLists.txt
    Recently, there was also an update to allow to override the default on the cmake commandline, however it did not work for me last time I tried.

    But maybe I just made a typo, so you can try this first:
    https://github.com/daid/EmptyEpsilon/pull/434

    If it won't work, do this:
    - open the file CMakeLists.txt in your EmptyEpsilon source directory
    - search the line add_definitions(-DVERSION_NUMBER=${CPACK_PACKAGE_VERSION_MAJOR}${CPACK_PACKAGE_VERSION_MINOR}${CPACK_PACKAGE_VERSION_PATCH})
    - now you can either set the version number by replacing everything after the "=" sign, or comment out the line (placing a # in front of it).
    Commenting out will set the number to 0, which is meant for debugging and accepted by all versions.
  • Thank you!

    But - isn't that a bit.. counterintuitive and... wierd.. for a game that is supposed to be played by multiple players on multiple computers?

    Do you expect every player to install the game the same day the server guy did?
  • The proper way would be to build for all platforms at once, on the same day, instead of mixing official builds with unofficial ones. That way your versioning would be consistant. Think of changing the build date as an extra step to make sure you know you could be mixingcode differences.

    The build date sets the game version, so if you make any changes to the code the old clients can't connect and possibly break/crash the game. The releases on emptyepsilon.org are the official releases.
  • edited April 2017
    I also would recommend to have a look at checkinstall.

    it will builds a .deb package from the installed files (in this case, but can also build rpm or slackware/tgz packages)

    To install it, just do an apt-get install checkinstall (in debian, but should be in the ubuntu repos as well)

    now you can follow the build instructions on github, but replace the line make install with a simple checkinstall

    a text-based menu will appear, which should be pretty much self-explainatory.

    Not just for EE, but for most programs that you would build from source it brings some benefits:

    - you can easily uninstall it
    - you get a package that you can install on other computers (of the same architecture at least) without having to recompile again

    the latter is the most important one in this case.

    So you can just build one version for every architecture (either the same day or by changing the date as I mentioned) and then install them whenever you want.

    Just keep in mind that the built packages does not have proper informations about the dependencies by default, so you have to install them first on the target machines. (For convenience, you can just use the dependency list from the building guide)
  • I could build .deb packages with the releases, but I'm not sure if they will work properly. It's as easy as setting up CPack. We have this configuration a lot at my work.
  • I'd say it would be worth a try. Maybe just mark it as experimental.
Sign In or Register to comment.