1

Topic: GL-ES port of the game?

I know that the game has been ported over to the iPhone.  According to GPL license; the source code has to be released publicly after that is done.  Where can I find the source top the GL-ES port of Neverball? hmm

2

Re: GL-ES port of the game?

The full source code has been provided to the original author, who has elected to keep the OpenGLES version closed source for the time being.

3

Re: GL-ES port of the game?

smile  Is there any way you can post your work somewhere I can pick it at?  It's been a while since the iPhone version was done and nothing GLES came out!  I'd love to test it on my device.

4

Re: GL-ES port of the game?

I must admit that I am a bit confused?!...

I was under the distinct impression that works based on GPL'ed open source projects *MUST* make the source code available to anyone who wants it (within reason). I realise that you can make money on derivative works etc. etc., but the altered source code availability is the cornerstone of the GNU-GPL.

It is not that I do not want to see great games like Neverball ported over to another system, or even sold for profit - it is just that I believe that this is breaking the terms of the GPL.

I hope that I have not misread the GPL, and made myself look like a complete n00b, but this sort of thing makes me worry about the future of open source projects, especially expressions like "elected to keep the code closed source for the time being".

Currently Playing:
Celeste and Electronic Super Joy

5 (edited by parasti 2009-05-06 11:51:30)

Re: GL-ES port of the game?

What you say is true, macmeister.  By making his port available, Lazrhog should have been bound by GPL and should have made the source code available.  But there's one catch:  the copyright holder can re-license his work however he wishes.  Remember, we're talking about Neverball 1.4.0 and hence just rlk.  It's in his right to license 1.4.0 such that Lazrhog doesn't have to make the derived source code available.

So they apparently agreed on something like that.  I wouldn't hold my breath waiting for the source code to be released.  I'm guessing that either 1) rlk has forgotten all about it; 2) he's too busy to do anything about it; or 3) he's quietly working on it.  Unless #3 is the case, the only way we're going to see the code is if someone constantly bugs rlk about it or Lazrhog releases it himself (which I believe he can do by licensing his work back to GPL).

6

Re: GL-ES port of the game?

Yep, thats pretty much a good summation of the events.  rlk wanted to retain control over the OpenGLES port of Neverball, so I gave him the complete x-code project for the iPhone.  I believe he is too busy to do anything with it at the moment, as he didn't reply to my last couple of e-mails.  I have since improved things significantly, so that it runs quite nicely on the latest iPhone firmware, and am just waiting for rlk to to say when he wants to work on it again, as I promised him as much of my time as he wanted.

I also promised that I would never release the ported code without his direct approval.  As this was derived from 1.4, then it is entirely up to him what re-licensing he decides.  Sorry, but I am a man of my word, and would never go back on this promise.

It probably needs community members here to ask rlk whether it would be OK to move forward with the 1.5 port, and whether it could be based on my previous work, in order for that to happen.

Maybe rlk could post something on this thread to define a forward path for everybody, as we seem to be getting OpenGL ES questions quite frequently.

7

Re: GL-ES port of the game?

Yep I've got that source.  It was my intention to release it on the iPhone, but that's probably not likely to happen given my other responsibilities.  Given the interactions and relationships between all my current projects, I'm more likely to release some form of Neverball 2.0 than I am to release Neverball 1.4.0 for iPhone.

I DO want the OpenGL ES port of Neverball in our trunk.  I have long intended for the GL 1.0 renderer to be deprecated and replaced by a GL ES (probably 1.0) renderer.  I must admit that I have not taken the time to audit Lazrhog's code to determine if it needs work (even after all this time!), so I'll just assume it's awesome.  smile

If I could chart the course of our source, I would like to see the ES port merged with the 1.5 source, whatever that entails.  I don't want to dump this work entirely on Lazrhog, so I guess my general opinion is that I advocate making his current source public for people to hack on as they see fit.

BTW, this is not to say I expect to never release iPhone Neverball.  I'm a computer science professor now, and I taught video game design this semester.  There's some talk about introducing an iPhone development course at my university soon, and I would probably be the one to teach it.  For this reason, I will probably become more and more involve in iPhone development as time passes.

8 (edited by Lazrhog 2009-05-06 17:51:26)

Re: GL-ES port of the game?

I've got no problem doing the first stab at 1.5 - shouldn't take me too long really (plus it gives me a chance to do a little tidy up:D).  The only issue is the target platform.  Due to a lack of SDL and lack of PNG loader, I had to re-do all the graphics as TGA (simple open source loader), and re-do the fonts using a custom renderer (based on glFont).  Evidently if the target platform was Pandora then there is no need to do this.  If the target platform is iPhone, then we would need to leave all that in, and rip it out later.

Maybe the best way is to seperate out the graphics renderer from the other code so that we can replace specific sections of the code on a platform by platform basis.  Needs discussion really.

To be honest, I am easy to be led on this.  I think maybe a closed community project to start with to stop others picking our source off before we are finished for their own platforms is a good idea.  Evidently once I (or we by that point) have got 1.5 up and running on a specific platform, the whole thing goes open source and then we deal with the carnage that occurs after that :-)

PS. is it OK to release a free version of Neverputt on the Appstore by the way ?  Maybe promoting the community 1.5 release in it...


PPS. just saw the bit about teaching the iphone gaming part.  I'll make sure to upload my latest source soon so at least you can hold up an iPhone with Neverball running nicely and get instant student respect :-)

9

Re: GL-ES port of the game?

Sweet.  I'm happy to see it's going somewhere  smile.  Personally in my case; all that I need is for Neverball to use GL-ES friendly functions.  So as long as those display list calls are gone; glVertex?f converted to glVertex4f and etc etc; I'm good to go.  I have SDL on my platform and all of the libraries it comes with; so all I would really like is for Neverball to use the GL-ES functions and I'm set (which are also available on OpenGL).  This by itself shouldn't require too much surgery.

However I can see why you would want to do this for the iPhone considering there are issues there with SDL.  However I do believe that the author of SDL offers a license friendly way to port things to the iPhone wink.  You may want to check his website.  The only bulk of the work you'd need to do might merely be to useGL-ES functions vs GL and keep SDL in there.  I like SDL  smile.

However I'm guessing the iPhone HAS a PNG loader.  Heck it supports WebKit.  You may simply have to man-handle it yourself with libpng vs having a clean cut API.

10

Re: GL-ES port of the game?

Lazrhog wrote:

Due to a lack of SDL

I found this with a quick Google search - http://projectsymphony.blogspot.com/200 … e-for.html

Includes SDL, SDL_net, SDL_ttf, SDL_image and SDL_mixer for iPhone/XCode.

???

Currently Playing:
Celeste and Electronic Super Joy

11 (edited by jammnrose 2009-05-07 02:23:47)

Re: GL-ES port of the game?

?!?

WHAT?

Does this mean Neverball will run on the iPhone with NO changes except library configuration?!?

Mac OS X Xcode project & package maintainer.

If you have some Neverball related files you need hosted somewhere, please send a me forum PM/email.

12

Re: GL-ES port of the game?

themacmeister wrote:
Lazrhog wrote:

Due to a lack of SDL

I found this with a quick Google search - http://projectsymphony.blogspot.com/200 … e-for.html

Includes SDL, SDL_net, SDL_ttf, SDL_image and SDL_mixer for iPhone/XCode.

???

Hehe; that's right.  It's there.  My understanding is that there are some issue on the legal side of things.  Google Summer of Code student made it happen on the iPhone, but if I recall correctly; there are legal issues in the way things are built/linked on the iPhone that makes it challenging to do so.  I don't know the full details however.

My vote is definitely to release a version of Neverball by ONLY changing the OpenGL-specific calls to OpenGL-ES calls where possible (#ifdef the areas that add value to the GL-only version) and call that 1.5.0.1 or something.  This would enable all of us to proliferate this game on various devices with little effort smile

13

Re: GL-ES port of the game?

I feel perhaps I shouldn't have much say in this, because I'm clearly not in the same league as rlk and Lazrhog when it comes to OpenGL and general development stuff.  But for what it's worth, I think the integration is going to be minimally painful (painless is impossible with SVN) if the transition to OpenGL ES happens as part of regular Neverball development incrementally with small logical commits and optionally some minor branch use.  Huge impossible-to-review patches, countless conflicts or halted development "while waiting for X to be merged" are all things I want to avoid.  Also, as I understand from ti_chris and some reading, a move to OpenGL ES API itself isn't tied to porting to any specific platform, so that already simplifies things considerably.

14 (edited by Lazrhog 2009-05-07 19:28:28)

Re: GL-ES port of the game?

What I am reading from all this, is that we should take things fairly slowly and methodically and get it right.  As for SDL on iPhone.  It is possible, but I didn't use it.  Speed is an issue on mobile devices and I didn't want anything to slow me down.  iPhones PNG support is from an embedded port of libPNG in the Apple SDK, but when I was porting it originally, none of that existed.  If I was to do it all over again, it would be much better I think.

I still don't really see a need for SDL to be honest.  I just gets in the way of developing native code I think.  Neverball only seems to use it for font support, sound and scheduling.  All things that are relatively simple to implement ourselves.  I guess it just gives an element of portability, but then all the mobile devices at the moment, have individual implementations of I/O, sound and threading, so it just makes sense to do what I did, and make Neverball a single entry point thread, and deal with the device native stuff on the outside.

I suited me, but may not suit the long term portability of the project.  It just means you can't port Neverball in future until someone ports SDL to the platform you are interested in...   I'm kinda split at the moment.  Still, discussion is good.  Maybe with rlk's permission, we can identify the main code contributors to 1.5, spread the GLES port around for a look-see so we can all discuss with a bit more.  I apologise for the hacky code though (I will do it tidy for 1.5 honest), it's just I write safety critical code for a living, and its the last style of coding I want to do when I get home smile

By the way ti_chris, what is your platform you have in mind, you never said ?

15

Re: GL-ES port of the game?

I don't mind use of native code, and avoidance of SDL, especially where speed improvements can be made. Changes this drastic necessitate a move to a separate branch tho, surely?

I don't believe Open Pandora would suffer from any SDL slowdown :-).

Currently Playing:
Celeste and Electronic Super Joy

16

Re: GL-ES port of the game?

I think the idea of dropping SDL in favour of writing and maintaining all the native glue code ourselves is a bit unreasonable.  We don't want to drop SDL, we want it out of the way when it's not needed/available.  It's not uncommon to see SDL as just one of several video/audio back-ends (in some cases even regarded as the "just works" alternative) supported by a program (e.g., DarkPlaces, MPlayer).  I can't see why Neverball couldn't take a similar approach here.

I still assume this is a wholly separate issue from the transition to OpenGL ES.

17

Re: GL-ES port of the game?

Neverball originally had its own video back-end.  That code probably still exists in parasti's historical archive.  I converted it to SDL when I added sound effects.  While platform-specific video handling is not too bad, platform-specific audio handling is an absolute nightmare.  Eliminating SDL will not improve performance.

18

Re: GL-ES port of the game?

Lazrhog wrote:

What I am reading from all this, is that we should take things fairly slowly and methodically and get it right.  As for SDL on iPhone.  It is possible, but I didn't use it.  Speed is an issue on mobile devices and I didn't want anything to slow me down.  iPhones PNG support is from an embedded port of libPNG in the Apple SDK, but when I was porting it originally, none of that existed.  If I was to do it all over again, it would be much better I think.

I still don't really see a need for SDL to be honest.  I just gets in the way of developing native code I think.  Neverball only seems to use it for font support, sound and scheduling.  All things that are relatively simple to implement ourselves.  I guess it just gives an element of portability, but then all the mobile devices at the moment, have individual implementations of I/O, sound and threading, so it just makes sense to do what I did, and make Neverball a single entry point thread, and deal with the device native stuff on the outside.

I suited me, but may not suit the long term portability of the project.  It just means you can't port Neverball in future until someone ports SDL to the platform you are interested in...   I'm kinda split at the moment.  Still, discussion is good.  Maybe with rlk's permission, we can identify the main code contributors to 1.5, spread the GLES port around for a look-see so we can all discuss with a bit more.  I apologise for the hacky code though (I will do it tidy for 1.5 honest), it's just I write safety critical code for a living, and its the last style of coding I want to do when I get home smile

By the way ti_chris, what is your platform you have in mind, you never said ?


The whole point of SDL is to enable the game to run on multiple platforms.  I don't see any speed degradation because of it personally.  I profiled apps heavily and it's taking a non-measurable time.  Like someone else pointed out;  you are also free to use the backend of your choice (you can use it to abstract events only or sounds & events & GL).   Given that just about every platforms supports SDL; It sounds illogical to go ahead and re-implement a platform abstraction for the subsystems it already supports.   In the case of neverball; SDL does not even come up in the >1% CPU choke points.  It would be a LOT of work to port games to all those platforms otherwise.

Personally; I would be happy with the mere changes to Neverball that would allow the game to run on a OpenGL-ES vs OpenGL library (ie: getting rid of display lists; removing the texture generation code; reduce lighting usage and etc).  As for my platform; at this point in time; I am not allowed to divulge that information; but needless to say that SDL is still picking up more devices/platforms to run on  smile.  I'll be happy to post information about it once it's public  smile.

19

Re: GL-ES port of the game?

ti_chris wrote:

As for my platform; at this point in time; I am not allowed to divulge that information; but needless to say that SDL is still picking up more devices/platforms to run on  smile.

o_O
Secret platform is secret...

Mac OS X Xcode project & package maintainer.

If you have some Neverball related files you need hosted somewhere, please send a me forum PM/email.

20

Re: GL-ES port of the game?

Shhh, did you just say "secret platform"  ?   


<very uk centric comment>

"don't tell them your name Pike !"

</very uk centric comment>

smile

21

Re: GL-ES port of the game?

So any update on the port?  smile

22

Re: GL-ES port of the game?

"Pike"?

I just watched "Snatch" from director Guy Ritchie - sure you didn't mean Pikey?

hehe wink

Currently Playing:
Celeste and Electronic Super Joy

23

Re: GL-ES port of the game?

themacmeister wrote:

"Pike"?

I just watched "Snatch" from director Guy Ritchie - sure you didn't mean Pikey?

hehe wink

Nah, it was a classic quote from "Dad's Army", an old UK comedy programme :-)

24

Re: GL-ES port of the game?

Yes, I watched it too (damn BBC comedies coming to the colonies)

big_smile

as well as Some Mothers Do 'Ave 'Em, It Aint 'Alf Hot Mum, Are You Being Served etc. etc. etc.

Currently Playing:
Celeste and Electronic Super Joy

25

Re: GL-ES port of the game?

ti_chris wrote:

So any update on the port?  smile

Nothing to report yet ... smile