Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Source code compilation requirements and stuff

Discussion in 'Source Code' started by mexmer, May 16, 2015.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. leftler Trainee Engineer

    Messages:
    76
    To me it seems they are talking more about taking pull requests and merging them in (Which I totally understand and am not expecting that to change), but getting the repo in sync with their internal VCS should not be a large time sync.
     
  2. Malware Master Engineer

    Messages:
    9,663
    (Shrug) then why haven't they? One shouldn't make assumptions where one does not have the entire picture :) Perhaps it's as simple as not wanting people to peek in on their planet and/or netcode work. Perhaps they've simply forgotten. What do I know.
     
    • Like Like x 1
  3. leftler Trainee Engineer

    Messages:
    76
    I understand wanting to keep planets close to the vest, and as of a few days ago we know they have not forgotten it (congrats on getting the first PR merged after the hiatus btw).

    I originally posted my comment because I was still in the research phase and I had seen postings that said you could no longer compile the github code as the resources it needed to get from steam where too out of sync. I have since gotten my build environment up and working.
     
    Last edited: Sep 28, 2015
  4. Bobylein Apprentice Engineer

    Messages:
    201
    I tried to compile it for the first time, I did it after the instructions in this thread but I keep getting 2646 Errors...
    I am sure it's just a stupid thing that I oversaw but I have tried all the solutions I found here and nothing worked so far, maybe you can help me?

    There are the Errors:
    https://paste.ee/p/7ja41
     
  5. Mix-martes86 Senior Engineer

    Messages:
    1,110
    Did you delete the VRage.Network project and references to it in the Sandbox.Game project? I think that's mentioned somewhere too.

    Cheers
     
  6. Bobylein Apprentice Engineer

    Messages:
    201
    Thanks for the answer! unfortunately it didn't work, I still keep getting 2601 errors and I can't figure what I missed :/ it seems it misses parts of VRage.Network now.

     
  7. Mix-martes86 Senior Engineer

    Messages:
    1,110
    Yes, there's many thing requiring manual corrections, here, I logged my struggling in this post:
    http://forums.keenswh.com/threads/Über-hype.7369467/page-6#post-1286847251

    Hopefully, that should fix many errors.

    Cheers
     
  8. madw0lf Trainee Engineer

    Messages:
    44
    Is 2015 express any better? Or Community? What is the problem with the templating? Sorry if this has been covered I couldn't find any reference.
     
  9. Mix-martes86 Senior Engineer

    Messages:
    1,110
    The "Express" versions had some features cut out, basically because they were the free version of a paid (premium) product. Templating was one of several advanced functionalities cut out.
    With the "Community" versions, they changed their approach. They give you the full thing (to promote learners, "indie" developers and hobbyists I guess), but you have to pay if you want to use it in multiple PCs or beyond certain revenue levels (corporate environments).
     
  10. madw0lf Trainee Engineer

    Messages:
    44
    So the "Community" Version would work? What is important about the templating feature working with the SE code?

    Sorry for all the questions, Im pretty amatuerish on the finer points of coding...
     
  11. Mix-martes86 Senior Engineer

    Messages:
    1,110
    Yes, the Community version is the one that works. The templating is used to auto-generate certain parts of the code related to localization (text translation) constants that are necessary for the whole pack to work, since the used texts can change from build to build, and manually checking them would be too time-consuming, so an automatic process was created in which a template is processed based on current code, and a final code file is outputted to the target directory. Without this process, the game won't work.
     
    • Like Like x 1
  12. madw0lf Trainee Engineer

    Messages:
    44
    Thank you!
     
  13. fabricator77 Apprentice Engineer

    Messages:
    399
    edit: never mind, it's a microsoft related problem. Don't use spaces in the folder names, otherwise it throws weird errors when it gets to the .tt (text template) files.
     
    Last edited: Feb 29, 2016
  14. StanH Trainee Engineer

    Messages:
    73
    For those looking how to compile the game in 64 bit, you can do this relatively easily:
    • Copy <game>/Bin64/HavokWrapper.dll to <repo>/3rd/HavokWrapper_SE/release/x64/HavokWrapper.dll
    • Copy <game>/Bin64/SteamSDK.dll to <repo>/3rd/SteamSDK/debug/x64/SteamSDK.dll
    • Copy said file to <repo>/3rd/SteamSDK/release/x64/SteamSDK.dll as well (to enable release builds)
    • Copy <game>/Bin64/VRage.Native.dll to <repo>/3rd/Vrage.Native/release/x64/VRage.Native.dll
    • Comment out the entire class in VRage.Network/MyRakNetConnectionException.cs
    • Comment out the entire class in VRage.Network/MyRakNetStartupException.cs
    • Comment out line 415 in Sandbox.Game/Game/Screens/MyTerminalControlPanel.cs (the assert keeps crashing)
    • Commented out lines 119 and 120 in VRage.Audio/MySourceVoice.cs (the assert keeps crashing)
    The three 64 bit libraries can also be symlinked instead of copied, so you're sure to always have the current version of the game. No project files have to be edited, just make sure to place the dlls in the right location and they will be used automatically. This will work for both debug and release builds.

    After doing this, a full rebuild will still give you complaints that some dlls are missing - apparently there's something odd going on with the order of compilation. Rebuilding the libraries one by one will fix that. (I managed to get it working by rebuilding a couple manually and then doing the rest with a full solution build)

    Also, take care not to include the commented out code in an eventual PR ;)

    Additional note: I am using Visual Studio Express 2013 for Windows Desktop.

    Wink at Keen: maybe include the 64 bit VRage.Native.dll already and provide instructions on GitHub about how to copy the other 64 bit dlls? That way we can make 64 bit builds without you infringing any copyright.
     
  15. fabricator77 Apprentice Engineer

    Messages:
    399
    Have to copy SteamSDK.dll for the 32bit version as well, as for some reason the code ships with an out of date version.
    The one that works is smaller in file size.
     
  16. Jugbot Apprentice Engineer

    Messages:
    194
    Man, even debugging at x86 I am still missing
     
  17. Geneticus Senior Engineer

    Messages:
    1,618
    Even better would be a tool in the SE client that copies them to a location based on a browse to the SE project folder.....
     
  18. Malware Master Engineer

    Messages:
    9,663
    They cannot do this without infringing copyright. Whether they provide them directly or indirectly is really not relevant. Which is why they haven't.

    Copyright laws are difficult, because they differ from country to country :(
     
  19. Geneticus Senior Engineer

    Messages:
    1,618
    The sources yes but we are talking about distribution of the final dlls they are already distributing with the game.
     
  20. Malware Master Engineer

    Messages:
    9,663
    I know, so am I. Copyright laws are ridiculous. They are allowed to distribute one way, but not another.

    Sheesh.
     
  21. mexmer Senior Engineer

    Messages:
    1,977
    i explained that already, there are licences which come with different terms of use. for example (and i believe it's the case, since i have havok SDK and of course license that come with it), license that allows you to redistribute binary with final product you create, that uses it, and allows you to use binary for inhouse development, but doesnt' allow you to redistribute binary to 3rd parties, or give it to outsource developers.

    that's the most common license for commercial libraries.

    i use like 5 different SDKs, that have similar license terms.
     
Thread Status:
This last post in this thread was made more than 31 days old.