AC on the Raspberry PI
#1
I've been trying to figure out if it would be possible to get Assault Cube to run on a Raspberry PI recently, and while I'm certain its technically possible I'm not sure about a couple of factors that would determine how easy it would be, so I decided to ask for some help here.


First off, I haven't been able to find a version of AC for anything other than x86 architecture, but AC uses the Cube engine, and Cube has been ported to an absurdly huge variety of systems, everything from Ipods to the Wii. So, my first question:

How... 'separate' are AC and the Cube engine it uses? Is the difference between Cube and AC basically a few changed config files, a few different maps, and some new weapon models? Or is it more complicated than that?

Secondly, this I'm also not sure about, I've read that some of AC's assets are "non-free". Does this mean I can't distribute them? Ideally if I/someone else got AC to work on the PI, it'd be put up on the PI Store(for free) so that its easy for people to get and play it. Would the "non-free" assets make this impossible?


And finally, how large are the differences between the versions of the Cube engine for different operating systems? The most popular OS for the PI is Raspbian, which is based off of Linux. But as far as I can tell, Cube has never been ported to Android, which is extremely similar and based off of Linux, and is ideally the version you'd want to use when creating a port for the PI. Using the x86 Linux version means that it'd have to be ported to OpenGL ES, so it'd be easier to start with a version that is already running on GL ES and work from there.
Thanks given by:
#2
(16 Jul 14, 04:25AM)buggy Wrote: I've been trying to figure out if it would be possible to get Assault Cube to run on a Raspberry PI recently, and while I'm certain its technically possible I'm not sure about a couple of factors that would determine how easy it would be, so I decided to ask for some help here.
Install Raspbian, install the required libraries and tools. Compile. Fix any bugs you encounter. That easy. However, you will end up with a game running on software-emulated Open GL. Too slow to use.
(16 Jul 14, 04:25AM)buggy Wrote: First off, I haven't been able to find a version of AC for anything other than x86 architecture,
Look again. AC is also running on AMD64 and PowerPC.
(16 Jul 14, 04:25AM)buggy Wrote: How... 'separate' are AC and the Cube engine it uses? Is the difference between Cube and AC basically a few changed config files, a few different maps, and some new weapon models? Or is it more complicated than that?
Much more complicated. Also - you want to port software but you can't handle diff?
(16 Jul 14, 04:25AM)buggy Wrote: Secondly, this I'm also not sure about, I've read that some of AC's assets are "non-free". Does this mean I can't distribute them? Ideally if I/someone else got AC to work on the PI, it'd be put up on the PI Store(for free) so that its easy for people to get and play it. Would the "non-free" assets make this impossible?
http://assault.cubers.net/docs/license.html
You can't redistribute a modified package. Instead, distribute just the binary for the new platform. People can add the zip file with the media files themselves. AC documentation calls this a "binary mod" and it is highly encouraged.
(16 Jul 14, 04:25AM)buggy Wrote: And finally, how large are the differences between the versions of the Cube engine for different operating systems? The most popular OS for the PI is Raspbian, which is based off of Linux. But as far as I can tell, Cube has never been ported to Android, which is extremely similar and based off of Linux, and is ideally the version you'd want to use when creating a port for the PI. Using the x86 Linux version means that it'd have to be ported to OpenGL ES, so it'd be easier to start with a version that is already running on GL ES and work from there.
Again, diff is your friend.
AC doesn't care much about the OS. It's all about the libraries. If your target only has GL ES, you have to port AC to that.
Android is probably not the easiest target. I'd guess, that AC is a bit out of the scope of the NDK, so you'd have to port AC to java. Good luck with that. (Although, there's a NDK-port of enet on github, and it's only four years old...)
Thanks given by:
#3
(16 Jul 14, 01:57PM)stef Wrote: Install Raspbian, install the required libraries and tools. Compile. Fix any bugs you encounter. That easy. However, you will end up with a game running on software-emulated Open GL. Too slow to use.
Yeah, I figured that I could get it running with software-emulated GL, but given th PI's rather limited specs, I'd be lucky to get a frame per second.

(16 Jul 14, 01:57PM)stef Wrote: Look again. AC is also running on AMD64 and PowerPC.
Oh, I hadn't been able to find references to AC on anything other than PCs, I'll look again soon.


(16 Jul 14, 01:57PM)stef Wrote: Much more complicated. Also - you want to port software but you can't handle diff?
I should mention I don't know any coding whatsoever, I just know how to compile. Barely. Hence why I know so little about this and why I've been trying to find a way to avoid having to rewrite the game for OpenGL ES, since I can't actually do it.

(16 Jul 14, 01:57PM)stef Wrote: http://assault.cubers.net/docs/license.html
You can't redistribute a modified package. Instead, distribute just the binary for the new platform. People can add the zip file with the media files themselves. AC documentation calls this a "binary mod" and it is highly encouraged.
Would it be acceptable for the installer to do this automatically, if it downloads the media files separately from where they are hosted normally? They wouldn't technically be distributed that way.

(16 Jul 14, 01:57PM)stef Wrote: Again, diff is your friend.
I don't even know what diff is.

(16 Jul 14, 01:57PM)stef Wrote: AC doesn't care much about the OS. It's all about the libraries. If your target only has GL ES, you have to port AC to that.
Android is probably not the easiest target. I'd guess, that AC is a bit out of the scope of the NDK, so you'd have to port AC to java. Good luck with that. (Although, there's a NDK-port of enet on github, and it's only four years old...)
Oh, I was under the impression that Android used SDL and OpenGL ES, so if I had the source for an Android version I could compile it and it would run, without software GL emulation.


Edit: After a bit more research I managed to find the debian binaries that claim to work on ARMHF, but immediately crash with nothing more than a "segmentation fault" to figure out what went wrong. In retrospect I actually found those a while back, but forgot about them because they didn't work then, either.

Edit2: Compiled the ARMHF source into binaries myself, it'll run now but it complains about being unable to create OpenGL screen, so it isn't ported to OpenGL ES. Funny that its listed as working on ARMHF Debian if it still requires OpenGL, since I'm reasonably certain normal ARMHF OpenGL doesn't exist.
Thanks given by:
#4
Hey I too run a Rasbian on pi but havent been able to run AC on it. I was thinking if we can run the windows or mac version of Pi may be we can work something. I just started Pi so have yet to explore what all there is.
My only thought was to run my computer on my Sony bravia 42" screen. since My mac wont connect i chose rasberry pi. If u wish to complete any task in the pi where i can help let me know.


regards
Grinch
Thanks given by: