Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Build instructions #5

Open
zerocool1992 opened this issue Mar 12, 2016 · 13 comments
Open

Linux Build instructions #5

zerocool1992 opened this issue Mar 12, 2016 · 13 comments

Comments

@zerocool1992
Copy link

As far as i know there were a Linux ports of the game.
how can i build this engine in Linux.

@Ragora
Copy link
Contributor

Ragora commented Mar 12, 2016

@zerocool1992
At a glance, there's various components in this code base that are bound to Windows API's such as sources/Modeler and sources/EngineGui. Further, the platform-specific implementations are a little iffy throughout -- I tried some builds for Unix and simply letting it use the GNUC implementations doesn't work because some code bits (like Engine/Graphics/Color.h:272:4) don't implement GCC alternatives. While there is generic software alternatives (via declaring USE_PORTABLE_C), simply declaring this for the entire build to have a working build isn't viable either -- so these missing code segments should be implemented or otherwise worked around on a file-by-file basis.

Further, there's includes that refer to files ignoring case sensitivity and there's no Linux compatible build system included with the engine such as CMake, so currently the engine can't be compiled on a Linux machine as far as I can tell. There is at least various Unix supporting code segments laying around, which I found to be a little odd without any sort of Linux build support that I can see.

Edit
I've been working at plopping down CMakeList files in an attempt to make a starting point and so far it looks like the following projects would need more porting work: WorldEditor, SeriousSkaStudio, EngineGui, RCon, GameGUIMP, Modeler all due to dependencies on MFC.

Right now I have a repository with some of the necessary changes (and shouldn't break regular Win32 builds with Visual Studio) sitting here: https://github.com/Ragora/Serious-Engine

Though note it still needs more work and the components I listed above aren't a trivial porting task unless there's some other method of doing so I'm unaware of. With the little platform bits out of the way at this point, the more hard-errors are cropping up as various syntactical errors under GCC 4.8.4, so its going to be rather interesting to work those out.

All that aside, maybe the developers @SLAwww have some comment on Linux portability.

@ljrk0
Copy link

ljrk0 commented Mar 12, 2016

Iculus once started porting it and was almost done iirc. He has asked Croteam on twitter whether he can also push his changes (also it seems that part of them are already merged).

@Ragora
Copy link
Contributor

Ragora commented Mar 12, 2016

@leonardkoenig
Yea, I noticed some Unix facilities sitting around. Part of why I wanted to wait around before really poking seriously at a port. There also shouldn't really be any reason he can't push that code under the GPLv2 licensing even without asking unless he's got code in his tree that wasn't from this repository here or something.

@SLAwww
Copy link
Contributor

SLAwww commented Mar 12, 2016

Existing Linux ports of the game can be found here: http://files.seriouszone.com/catdisplay.php?catid=78
I hope Icculus can publish his work. It would be very helpful.

@chungy
Copy link

chungy commented Mar 15, 2016

It looks like the Serious Zone files are corrupt, sadly.

@Ragora CMake for the engine would be a huge win. It can generate Makefiles as well as Visual Studio files.

@Ragora
Copy link
Contributor

Ragora commented Mar 15, 2016

The current cmake system on my repo might work for visual studio, though I don't do much of my work on Windows to test. Perhaps some virtual machines are in order.

@ljrk0
Copy link

ljrk0 commented Mar 15, 2016

They are working for me quite well on VS and Makefiles. I try to make my
patches also work on both.
On Mar 15, 2016 09:25, "Robert MacGregor" notifications@github.com wrote:

The current cmake system on my repo might work for visual studio, though I
don't do much of my work on Windows to test. Perhaps some virtual machines
are in order.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:

#5 (comment)

@fenollp
Copy link

fenollp commented Mar 21, 2016

There are free CI platforms that support windows for FOSS projects: https://www.appveyor.com/pricing

@icculus
Copy link
Contributor

icculus commented Apr 3, 2016

As an update, my branch builds and runs on Linux and Mac OS X, using the datafiles from Steam. It still needs a little work to get in-game, but it'll fly through the demo levels correctly.

That's over here at the moment: https://github.com/rcgordon/Serious-Engine

@rohit-n
Copy link

rohit-n commented Apr 3, 2016

Thanks Ryan. Has this been tested on 64-bit Linux?

@icculus
Copy link
Contributor

icculus commented Apr 4, 2016

Thanks Ryan. Has this been tested on 64-bit Linux?

There are several things that aren't 64-bit clean (not the least of it: all the 32-bit inline asm), so that's going to take some time.

@ghost
Copy link

ghost commented Jul 7, 2016

Just managed to compile this on 64-bit Linux, and got it up and running :)
Only TSE though, TFE fails. Oh well.

The console is spewing forth warnings like there's no tomorrow, but hey, it works.
I can even continue to use my old Windows savegame.

I need to change my key setup though. The game crashes immediately when I open key configuration.
Is this a known problem or should I try with a new profile?

Regards

@sum01
Copy link

sum01 commented Jun 30, 2017

Just posting it here for anyone interested, I created a PKGBUILD to install the engine on Arch-Linux using this fork by ptitSeb. Possibly check his fork out for ideas on getting Linux to work, as I tried rcgordon's fork but it wouldn't launch.

Here's the PKGBUILD. I didn't really need to do anything crazy to get it working, although it doesn't work as well as I'd like. It's basically just a menu, as games refuse to work, and even clicking some settings crashes it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants