SGE Game Engine

SGE Game Engine

Postby onpon4 » 21 Mar 2014, 21:16

This is something I've been developing for quite some time now: the SGE Game Engine, or SGE for short ("SGE" is pronounced like the English word "sage").

I haven't used Love2D, but from what I understand the SGE is basically like Love2D for Python. The goal of the SGE is to take away as many little details from 2-D game development as possible so that you can focus solely on developing the game itself. A secondary goal is to make getting into game development easier for beginners.

I wrote the SGE as a specification of sorts that is implemented by the Pygame SGE, which (as its name implies) uses Pygame. The Pygame SGE is licensed under the GNU Lesser General Public License, while the specification and all of the documentation has been released to the public domain with CC0.

The SGE is currently in beta: it's basically complete, but hasn't been thoroughly tested. So if you want to help with the SGE, just use it, and report any bugs you come across. :)

For more information and downloads, see the SGE website:

http://stellarengine.nongnu.org

You may also be interested in xSGE, which adds additional high-level features:

http://xsge.nongnu.org

All feedback is welcome.
Last edited by onpon4 on 12 Feb 2016, 14:17, edited 13 times in total.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine - 2-D game engine for Python

Postby gouessej » 08 Apr 2014, 09:34

Hi

I see that on your website:
Platform-independence: Write once, run anywhere! A program written for the SGE will run on just about any PC, including Windows, OS X, and GNU/Linux systems.


I used Pygame to make a tiny shoot'em up ten years ago. I know it's possible to create installers for various platforms:
https://docs.python.org/3.4/distutils/builtdist.html

However, cross-compiling with Python isn't trivial and when it doesn't work, you have to run the tools on each target platform. You should rephrase your sentence, it's rather "Write once, compile on each target platform and run anywhere" which is less appealing.

Anyway, it's nice to see something close to Love2D in Python. Good luck.
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Stellar Game Engine - 2-D game engine for Python

Postby onpon4 » 08 Apr 2014, 12:47

gouessej {l Wrote}:However, cross-compiling with Python isn't trivial and when it doesn't work, you have to run the tools on each target platform. You should rephrase your sentence, it's rather "Write once, compile on each target platform and run anywhere" which is less appealing.


You don't normally cross-compile Python. You give people the source code, and the Python interpreter on that system compiles it. I see what you mean, though.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine - 2-D game engine for Python

Postby gouessej » 08 Apr 2014, 16:08

It's enough for technical users but I wouldn't do that for non technical users. Yes, compiling the code isn't mandatory, it can be purely interpreted. Does it mean that you ask your players to download the interpreter separately? Personally, I do my best to keep it simple, most end users just give up when they see a popup :(
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Stellar Game Engine - 2-D game engine for Python

Postby onpon4 » 08 Apr 2014, 16:26

That's freezing, not compiling. ;) Packing together the Python program with a Python interpreter and whatever libraries you need. But yeah, I get what you mean. I changed the text you mentioned.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine - 2-D game engine for Python

Postby gouessej » 08 Apr 2014, 20:06

How do you do that for Mac OS X? Since OS X 10.8, Gatekeeper is parano, it blocks any application that doesn't come from the app store except if you have an Apple developer id and if you sign your application with a "trusted" certificate. Do you simply put the interpreter, the third party libraries and your own code into an .app file?
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Stellar Game Engine - 2-D game engine for Python

Postby onpon4 » 08 Apr 2014, 21:00

Wow, really? I didn't know they added a censorship feature to OS X. Can Python and Pygame get onto OS X 10.8, or is that censored? If those can get on, then it's going to be possible to run a SGE game on it, I imagine (unless the only Python interpreter blocks "untrusted" Python scripts?).

I don't know much of anything about OS X; I've never used it, and all I know is that it's some kind of Unix system.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine - 2-D game engine for Python

Postby c_xong » 09 Apr 2014, 00:18

Gatekeeper in Mountain Lion will by default disallow you from double-click running an unsigned application. Previous to this, there would be a dialog with "Open anyway"/"Cancel", now it's just "OK". However, there's a simple work-around by right-click + open, which gives you the "Open anyway" option. The other workaround is to change the default security settings for Gatekeeper.

Also, registering as an apple developer can be free (https://developer.apple.com/programs/which-program/). It's about the same, or even lower, level of protection as say Android. Not sure if I'd call that "censorship".

And python works fine.
User avatar
c_xong
 
Posts: 234
Joined: 06 Sep 2013, 04:33

Re: Stellar Game Engine - 2-D game engine for Python

Postby onpon4 » 09 Apr 2014, 01:20

Ah, well, that's not a problem, then. Maybe a little inconvenient, but SGE games will still work on OS X.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine - 2-D game engine for Python

Postby gouessej » 09 Apr 2014, 09:59

c_xong {l Wrote}:Gatekeeper in Mountain Lion will by default disallow you from double-click running an unsigned application.

Yes that's what I meant.

c_xong {l Wrote}:Previous to this, there would be a dialog with "Open anyway"/"Cancel", now it's just "OK". However, there's a simple work-around by right-click + open, which gives you the "Open anyway" option.

I do so under Mac OS X 10.6.8 but I have found no way to disable those warnings once for all for this version.

c_xong {l Wrote}:The other workaround is to change the default security settings for Gatekeeper.

I know how to do that, I have to update my website to explain to Mac OS X >= 10.8 users to work around this c**p:
http://sourceforge.net/p/tuer/tickets/3/

c_xong {l Wrote}:Also, registering as an apple developer can be free (https://developer.apple.com/programs/which-program/).

You can get an Apple developer ID for free but not a "trusted" certificate, it's very expensive, about 150 USD per year.

c_xong {l Wrote}:It's about the same, or even lower, level of protection as say Android. Not sure if I'd call that "censorship".

In my humble opinion, it's not a protection, it's "snake oil", it's yet another toll. We are just cash cows. A certificate can be broken, stolen, ... Tons of fake virus scanners use stolen certificates. Those "trusted" certificates give an impression of security whereas they aren't safe. Yes it's a kind of censorship for me because it discourages developers to provide their applications outside its app store and it tries to force the others to be "identified" and to pay for that. If you have an Apple Developer ID without a "trusted" certificate (just a self-signed certificate), your application is still blocked by default. At the end, Apple has the last word. If you try to put your application into its store, you have to follow its rules. Apple could just show a warning with some complementary information and let the end user make a (wise?) choice but it prefers locking its platform. For me, the word "censorship" is really appropriate. Is Android a good example?
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Stellar Game Engine - 2-D game engine for Python

Postby c_xong » 10 Apr 2014, 00:11

The comparison with Android is in convenience: to install an apk outside the Play store, you must enable some setting hidden deep in the settings menus, and then you still get nagged when installing. Personally I find this more onerous than telling OSX users to right click, but then again you can argue it's easier to put an app on the Play store.

I didn't realise that a trusted cert was 150 USD per year; I can see how it's a significant barrier against vendors who can't afford that much, or whose users aren't tech savvy. It's certainly less open than Windows or Linux. It's not completely closed like iOS or game consoles where you have to hack your device though. I guess it's up to you where you want to draw the "censorship" line.
User avatar
c_xong
 
Posts: 234
Joined: 06 Sep 2013, 04:33

Re: Stellar Game Engine - 2-D game engine for Python

Postby gouessej » 10 Apr 2014, 09:23

c_xong {l Wrote}:The comparison with Android is in convenience: to install an apk outside the Play store, you must enable some setting hidden deep in the settings menus, and then you still get nagged when installing.

You're right, now I see what you meant. I find that a bit annoying.

c_xong {l Wrote}:Personally I find this more onerous than telling OSX users to right click, but then again you can argue it's easier to put an app on the Play store.

I agree with you but as far as I know, the setting whose value has to be modified in recent OS X versions isn't easy to find. I don't encourage developers to put their applications into the Play Store. For me, the only legitimate app store is Internet.

c_xong {l Wrote}:I didn't realise that a trusted cert was 150 USD per year; I can see how it's a significant barrier against vendors who can't afford that much, or whose users aren't tech savvy. It's certainly less open than Windows or Linux. It's not completely closed like iOS or game consoles where you have to hack your device though. I guess it's up to you where you want to draw the "censorship" line.

You can get a free of charge "trusted" certificate with CACert but Apple and Oracle don't consider it deserves to be considered as a "trusted" CA, which forces the developers to get a paid "trusted" certificate most of the time except when they can add this authority into the list of "trusted" ones. Yes it's a barrier for those who can't afford it and you don't get a ready-to-use file, you have to generate several intermediary files before obtaining a valid key store with a "trusted" certificate. It's a barrier for those who don't want to depend on those authorities for ideological reasons too and they can revoke your certificate(s) when they want even though you paid for a 5 years certificate. If an application bothers them for any reason, they can reject it on the store or your certificate can be revoked and it's perfectly legal, that's the main reason why I speak about censorship, they don't have to justify their choices.
Julien Gouesse | Personal blog | Website
gouessej
 
Posts: 71
Joined: 13 Aug 2012, 18:28
Location: France

Re: Stellar Game Engine - 2-D game engine for Python

Postby onpon4 » 21 Apr 2014, 22:34

There's been a new release recently, 0.9, adding a bunch of new features: http://stellarengine.nongnu.org/#20140416
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine 0.10.0

Postby onpon4 » 28 Jun 2014, 21:58

New release 0.10.0 is out, and it's a big one: https://savannah.nongnu.org/forum/forum ... um_id=8013
Last edited by onpon4 on 29 Jun 2014, 00:25, edited 1 time in total.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine 0.10.0

Postby charlie » 28 Jun 2014, 23:59

Are there any example games?
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2131
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: Stellar Game Engine 0.10.0

Postby onpon4 » 29 Jun 2014, 00:27

charlie {l Wrote}:Are there any example games?

Just Pong and some test cases. The Pong example is included with the SGE, in the "examples" directory. There's a video of it here:

https://gobblin.se/u/onpon4/m/sge-demo-pong/
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine 0.10.1 + xSGE 0.1.0

Postby onpon4 » 07 Jul 2014, 02:22

https://savannah.nongnu.org/forum/forum ... um_id=8020

Bugfix release 0.10.1 for the Pygame SGE has been released.

More interestingly, I've released the first version of xSGE. xSGE is a collection of modules under the GNU GPL, rather than the GNU LGPL, so that it acts as a bonus exclusively for free/libre software games. Currently there are only two modules in xSGE: xsge.transition, which provides a framework for transitions, and xsge.gui, which provides a basic GUI toolkit. I hope to think of more modules to add to xSGE, so if anyone has any ideas for functions or frameworks that would be useful additions, please let me know.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine 0.10.1 + xSGE 0.1.0

Postby aspidites » 08 Jul 2014, 10:23

onpon4: I had a look at the project and it all seems pretty interesting. One concern I had was that the different backends were essentially copy-pastes of the spec implementation. Would you be willing to consider alternative routes such as a n introspection-based plugin system or classic OO subtyping if a patch were submitted?
aspidites
 
Posts: 30
Joined: 19 Jan 2010, 11:49

Re: Stellar Game Engine 0.10.1 + xSGE 0.1.0

Postby onpon4 » 08 Jul 2014, 11:07

aspidites {l Wrote}:One concern I had was that the different backends were essentially copy-pastes of the spec implementation. Would you be willing to consider alternative routes such as a n introspection-based plugin system or classic OO subtyping if a patch were submitted?


I'm not quite sure what you mean by "introspection-based plugin system" (I don't quite get how you envision it working), but yeah, I am willing to consider alternatives. I just did it the way I did because I couldn't think of any other way.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: Stellar Game Engine 0.10.1 + xSGE 0.1.0

Postby aspidites » 08 Jul 2014, 22:50

I've had a long day, so forgive me for the lack of detail in this reply. Basically, you'd use the fact that a class knows about it's subclasses to form a plugin framework. Alternatively you could take advantage of import hooks.

Less magical might be to have an API abstract class that exposed which functions were needed for a given implementation to be considered complete. A backbend author then only needs to implement the API. No code duplication or symlinks needed

I'll have more details later this week when I'm not exhausted if you're interested.

Cheers

update: Inlined link
Last edited by aspidites on 09 Jul 2014, 05:42, edited 1 time in total.
aspidites
 
Posts: 30
Joined: 19 Jan 2010, 11:49

Re: Stellar Game Engine 0.10.1 + xSGE 0.1.0

Postby onpon4 » 09 Jul 2014, 02:25

Sure, I'd be interested in that.
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: SGE Game Engine 0.11.0 + xSGE 0.2.0

Postby onpon4 » 19 Aug 2014, 12:52

SGE 0.11.0 released: https://savannah.nongnu.org/forum/forum ... um_id=8066

Also, "SGE" now stands for "SGE Game Engine".
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Re: SGE Game Engine 0.14 + xSGE 0.4

Postby onpon4 » 09 Dec 2014, 14:39

A new, rather big release of the SGE is out: https://savannah.nongnu.org/forum/forum ... um_id=8160
onpon4
 
Posts: 596
Joined: 13 Mar 2014, 18:38

Who is online

Users browsing this forum: No registered users and 1 guest