Topic: Linux Version?

Would it be possible to compile this under Ubuntu?

Re: Linux Version?

All the Engine code will compile but it will miss the MWindow class port,
it's not much to do (window creation, mouse and keyboard events...), but as I'm not knowing linux I'm searching a volunteer.
Main idea is to use some "GLFW" code, as i did for the MWindow mac port.

It's on the TODO list.

Re: Linux Version?

smile it would be nice,

I'm not using GLFW in fact, I used pieces of GLFW code to do the OSX port.

Here is the thing, there is already 2 ports of the MWindow class :

MSDK/MGui/Includes/MWindow.h
MSDK/MGui/Includes/WIN32/MWin32Window.h
                              /COCOA/MCocoaWindow.h
MSDK/MGui/Sources/WIN32/MWin32Window.cpp
                              /COCOA/MCocoaWindow.mm

Linux port will need to modify MWindow.h (adding an include)
and to create the port like this for example :

MSDK/MGui/Includes/X11/MX11Window.h
MSDK/MGui/Sources/X11/MX11Window.cpp

And like I used pieces of GLFW Cocoa code, it's probably possible to use some GLFW X11 code.

Re: Linux Version?

The first reason was that I heard about GLFW too late and I wanted to keep the compatibility of the MWindow class.
GLFW was also having missing features, or for some things too much features.

That's true that it is possible to do a MWindow class calling directly GLFW functions and not just pieces of code, it's a tought I had at some point.

Re: Linux Version?

Nice !
You should contact dbacchet (forum member), he's working on a scons build script for OSX and windows,
you can share your work as OSX and linux build using gcc.

Re: Linux Version?

Hi Merkoth!!

I (almost) finished the scons build system; I think that asap it will be pushed in the source repository.
For the time being I took care of windows and osx, if you could contribute with Linux it would be great!
thanks!
Davide

Re: Linux Version?

Hello there !

I've downloaded the svn content but I don't know how to compile in Linux, do you know how to compile it ?
Ubuntu 10.10

Thanks in advance.

Re: Linux Version?

Hi,

the linux port is not done yet, a volunteer is velcome, Merkoth there apparently started something,
we'll keep the news.

Re: Linux Version?

i'd like to volunteer on the ubuntu "port", but i'm not too experienced with programming, i have mostly done bash scripts. if anyone is willing to teach me, i'll put as much time into as i can. i created the #maratis3d irc channel, so you can find me there. gtalk is philipkthompson @ gmail. skype is "fromtijuana".

last minute news: me and a friend mine, who'll be joining the forum soon, will hook up RL to work on this and other particular maratis challanges for a few hours.

cheers!

Re: Linux Version?

Hi, thank you,

if someone here is familiar with linux compiling and window creation on linux (for the MWindow port) it would be nice to contact or team with tulakalbeyo and dbacchet.

I'm not used to linux, my investigation resumed to think about using GLFW code to port MWindow class (I used GLFW mac code for the macOSX MWindow)

GLFW code can be downloaded there : http://www.glfw.org/
GLFW linux code is in "lib/x11/" (most reusable code is in x11_window.c)

cheers,
Anaël.

Re: Linux Version?

Hi,
If somebody is making progress with the linux version, please let me know, so I can modify the build scripts to make them compatible also with linux.
Linux is not my platform of choice, so I cannot test it continuously, but if some users out there will start using the engine there, it will be great

Davide

Re: Linux Version?

ok, i made some very n00bish attempts to get started yesterday, mainly pertaining to scons.
here's what happened: http://maratisdiary.posterous.com/maratis-2011-03-05

btw, thanks for helping me out, davide!

Last edited by tulakalbeyo (2011-03-05 18:09:17)

Re: Linux Version?

I checked the build system and right now it is throwing an exception if linux is detected (I configured that way as a reminder, 'cause the place where the exception is launched is the first one that needs to be modified).
I have no experience for creating the X11 backend, but I can manage to have all the dependencies in 3rdparty working; in the next days I will setup a virtual machine with ubuntu and work a little on this. Then, when a x11 backend will be available we can integrate it
Bye!!

Re: Linux Version?

Hi, I added a very trivial linux support.
In the svn version, under trunk/dev, now it is possible to compile MSDK/MCore and MSDK/MEngine.
For the rest of the engine a X11 implementation of the gui system is required; if anybody can write one, please post a reply and share! smile

Davide

P.S.
I also added a precompiled version of libsndfile.so and openal.so under 3rdparty, but I did not tried if they link properly at runtime

Re: Linux Version?

This engine looks awesome. Is there an a approximated release date for a Linux version of the engine.

Re: Linux Version?

I'm still searching a Linux contributor to port the dependency http://forum.maratis3d.com/viewtopic.php?id=74
I hope someone with Linux experience can help, if not, at some point I will try to put my hands on it, but I don't know when.

Re: Linux Version?

sad finally decided to quit my maratis3d.org development blog (maratisdiary.posterous.com -- http://ahb.me/317X), i just don't have the time to properly invest in this project anymore --sigh-- maybe, hopefully later

thanks for the fun! keep up the great work! smile

Re: Linux Version?

sad that's too bad, I hope some linux fan we'll be interested to have a look,
I didn't find time yet, too much things to do...

Hop to see you later.

Re: Linux Version?

hello
Still no linux implementation around? Have anyone done some work and forgot to share?
Correct me if I'm wrong but to do 'linux' port you want someone (lets assume it is me for now) to implement MWindow class in X11 protocol? No wrappers no GLWF no SDL just pure pain? And what about adding some boost (lib) to the project? How about that 'plugin system' ASFK linux load .so (dll) different way then windows/mac. So in short pls list me things that need to be ported and what technology is preferred. Btw how is going collada and particle system implementation?

Re: Linux Version?

Hi,
yes, all engine code is already portable, the only specific code is MWindow, window creation (opengl init, fullscreen...), inputs (keyboard, mouse...) and some basic things.

For the mac port, I used 90% of GLWF code, with just some renaming (for the keys defines) and some minor modification. Maybe I should have just made a real GLFW wrapper, but there was some things in GLFW that was not fitting. It's possible to do the same thing for the MWindow linux port, to use GLFW X11 code as a base.

About the "plugin system", the mac code use unix portable code so it's normally ported already.

Using boost can be interesting but is not necessary, the standard libraries are working good for now.

Re: Linux Version?

Hi
During rebuilding i just came across 'funny' method from tinyxml - "QueryUIntAttribute". This method is not in current tinyxml sources but there is similar method in cvs dev repo - "QueryUnsignedAttribute". My question based on this is how many from 3rdparty shipped with maratis is a 'must' during engine (editor) build? This came out because i rewritten build system to use CMake and because by default i prefer to use system libs. Another one is just to be on a safe side for now, do maratis work as 64bit app?

Re: Linux Version?

Hi,

I think dbacchet ported the scons build system to work on linux ? Was it not working or did you just preferred CMake ?

About tinyXML, at some point I added the "QueryUIntAttribute" function, but I then removed the call where I was using it as it was not so important and not good to get newer version of TinyXML. Did I forget it somewhere ?

[EDIT] > yes, still used in MMeshLoader.
ps : you can find the modified TinyXML code in SVN/3rdparty/

Maratis works on 64bits, at least on MacOSX (never tested on windows).

Re: Linux Version?

CMake is much better from my POV(ide's project generators, easy libs/headers managment and ability to quick configure and compile project using as much CPU cores as I want to). I had some issues with scons but nothing serious.

About TinyXML I know where it is located but question is do Maratis 3rdparty library's have more customizations that can affect engine? I prefers to use system installed libs/headers. (this is need because i want to make possible to use dynamic libs in future).

Another question is about defined MKEY's. Do under windows:
MKEY_CONTROL is equal to (MKEY_LCONTROL || MKEY_RCONROL)?

Hope so because under linux i have not found MKEY_CONTROL equivalent and did some changes in source. Btw there was many missing includes under linux and the most disturbing for now is glut and glew in Maratis/Common/MContexts/MGLContext.cpp .

Re: Linux Version?

Hi,

there is no other customization in 3rdparty, and later I will remove the TinyXML one.
For the MKEY_CONTROL, yes there is not all the time a native one, it can be the LEFT or RIGHT as you say.

About MGLContext.cpp, it's not using glut and not using glew. Only gl and glu (and the GLee lib on windows for extensions, this lib should work on linux too). But yes, it is missing #ifdef _LINUX (I don't know what is the exact name) for specific includes.

Re: Linux Version?

Hi! This engine looks pretty interesting, and I might look into helping with a linux port, if that is still needed:) Unfortunately, due to a busy schedule, I can't promise anything:/ When I try to build the system as it is, I'm getting a lot of complaints about the MKEYs in MGameWinEvents.h, none of which seem to be defined. I don't know which file to include to make them work?