Michael Carter here from Game Closure, I'd like to clear up some of the licensing questions.
For background, before GC I founded a non-profit that helped open source projects deal with licensing issues, CLAs, and IP around software in general. I've been involved in 3-4 large OSS projects, and I've spoken at OSCON and Pycon multiple times. I very strongly believe in the GPL, though we also wanted to let businesses use GC DevKit for commercial use under the most friendly possible terms.
Our goal is to promote GC DevKit and ensure that 3rd party bugfixes on the commercial and GPL licenses both end up in the same code base.
(1) You can use this under the GPL, no strings attached. (2) We wanted to further allow you to create commercial products, so we ADDITIONALLY offer an incredibly developer-friendly license (GCFL)
* You can release paid games on iOS or android (Note below, we should add web at some point)
* You don't pay us money, it's FREE.
* If you improve the engine, you must contribute it back to our main GPL version.
* You need to show our splash screen and let us mention your game to promote our platform.
Also, yes, we probably should allow web games under the GCFL (But you can still do it with the GPL.) We just haven't made Desktop Web a priority so we disallowed it in the license. This could easily change if enough people are interested.
The GPL is a hard sell to anyone. But with your commercial license, where do you draw the line between building functionality for your game on top of an engine versus extending the engine? It seems fuzzy. Besides, not having an option to build a game without either making it open source or publicly evangelizing your product will make adoption a non-starter for many serious developers.
Licensing aside, it seems strange to build a platform on HTML5/Javascript without support for the desktop/web. To me, that would be the whole point of building a game in HTML5 in the first place.
Other than all those caveats, it's nice to see more alternatives to ImpactJS beginning to emerge.
I get your concern about supporting the web; I think it's because a lot of people really want us to be a web game engine, but we aren't. We're a mobile game engine. We simply chose "HTML5" as an API layer because of the excellent tooling around the ecosystem. It just so happens we support the web as a side-product, and that's pretty cool I think, but not really the point of the GC DevKit.
Great feedback on the fuzziness of the license WRT contributions! Overall our intention is to let people keep their source code proprietary, but protect clear bug fixes and enhancements to the core engine. We never, ever intend to come up with some "gotcha" and start charging money. Any suggestions on changes or clarifications to our license that let us accomplish that are very welcome! (Though please read our first attempt in Exhibit A "Modifications" first)
The good news is that the core native engine (c/c++/java/obj-c) is very obviously separated from the game code and so that's easy; it's just the JS libraries that we have to be precise about. Perhaps the MPL has the right wording and guidelines around that?
("The MPL is a simple, file-level copyleft license. The MPL’s “weak” copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions.")
But games are all different. An improvement to the engine for one kind of game may not be an improvement for another kind of game. Most games would probably only use a small part of the engine.
Will the engine become a monolith with support for pretty much everything, and all games using the engine will only need 10% of it? Or something else?
I think you need to state very clearly what the goal of the engine is (best 2d engine, best tile game engine, best ??? engine, general purpose engine, etc?), which can help define exactly what kinds of contributions are actually useful.
>But games are all different. An improvement to the engine for one kind of game may not be an improvement for another kind of game. Most games would probably only use a small part of the engine.
I don't really see them as all different. Especially at the engine level. Especially considering most 2D engines (Cocos, Game Closure, etc) are mostly the same and use similar concepts.
I always like to know how free services like this plan to make money.
Their careers page (http://www.gameclosure.com/careers.html) says they're hiring and have "top-tier funding," so obviously they're going to need to monetize somehow. Yet I couldn't find a single mention of a paid service or premium offering.
Perhaps I didn't look hard enough, but it's unsettling nonetheless.
Thanks for clarifying! So, in a nutshell, if you choose the commercial license, you are going to be helping market GC. Are you planning on offering a paid commercial license at any point?
"2 You may not modify or enhance the GC DevKit or Engine whatsoever. The only
exception is to perform bug fixes if you contribute your changes back to Game
Closure. (See Exhibit A). You must incorporate a Game Closure splash screen logo
into your game. (See Exhibit B)"
"3 You must allow Game Closure to use your company and game name and logo for
marketing purposes"
And to further clarify, you mean that only the source code needs to be GPL'd under the OS license; the content (models, textures, etc.) can remain proprietary?
I find disallowing modifications to the SDK (under the GCFL) to be a really bizarre choice. Is this allowed with a paid license of some sort? If not, why not? It's basically standard operating procedure in games that if the SDK you're using doesn't cut it, you work around the issues in order to ship. Is this specifically aimed at preventing people from using bizarre derivative forks of your toolset?
The spirit of the requirement is to encourage contributions back to the GPL version. You can fix or modify the GCFL version as needed - the only requirement is that you contribute back any changes to the SDK itself back to the GPL version.
This way we can ensure that everyone benefits from having the latest and most bug-free code.
I see, I read it as meaning that you can't use the GCFL version if you have any modifications that GC hasn't integrated into trunk. If it just means that you have to contribute the changes back under the GPL that's much simpler.
I'm really glad that more game tools are starting to crop up, and its nice to see something from Game Closure who seem to fall off my radar for months at a time.
Looking around at this though, some of these licensing terms are very awkward. ImpactJS costs money but the licensing seems much less strict.
What's more awkward though is the focus on mobile-specific platforms, including an awful lot of native stuff, while lauding HTML5 :/
I don't plan on competing with Game Closure but I hope to contribute a lot canvas game-related tools of my own once I get free time again. UI-inspector style tools like the one they've created would be really helpful, especially for making point-and-click adventure games.
I kind of like it, but it'd be nice if someone set up a comparison table of all these new html5 game engines. There are so many nowadays, am I supposed to learn each one to figure out what suits me?
Seeing how heavily this depends on node.js, I'd love to see it distributed through NPM. NPM already provides a centralised and clean package management system which can handle updates and installing executables and it makes it possible to make the engine a dependency of your game code.
It's the sort of thing that put me off meteor before, it doesn't seem like a great decision to reinvent the wheel. I noticed that during the install step it clones a number of other repositories as submodules, perhaps these would do well as individual NPM packages and the central package depends on each one?
Edit: having a play now and it's very cool :) Unlike another who reported silent failure when running basil on Ubuntu 12.04, it's working well for me on Xubuntu 12.04. I had a permissions issue as stated in the install guide, would it be possible to have this install to the home directory instead and add it to the local user PATH? This sort of thing seems like it would make more sense to install just for the local user.
I've tried running it on Ubuntu 12.10. The install script seems to work without a problem, but when I try to run their command line tool (basil) it dies without an error message...
I'm not really a game developer but it seems weird to me that if you go with the GCFL you cannot release the game on the internet, but only in the appstores.
Totally agree. The only reason you would develop a game in HTML5 is for the build once, launch everywhere attempt. Otherwise you might as well use Corona.
- nice tooling (Chrome developer tools, JS stuff)
- tons of developers know JS
- V8 is mighty fast
It's not about distributing to the subpar (money wise) web app stores.
Cocos2D also has JS bindings going (for native use, not just for web), and QT also has JS bindings going (again, for native).
And it's not using "HTML5". You are using their engine with native bindings on the mobile devices. The performance and integration is only mimicked by HTML5/WebGL etc on the browser.
Our focus has been on support for the mobile platforms - iOS and Android. As such, the deployment tooling is really focused on releasing games to the app store.
This may change in the future - for the time being, if you're interested in releasing a game on the web, send me an email:
Haxe NME is getting WebGL support on the (js)HTML5 target, with shaders. Also crossplat for flash and cpp compile targets. Take a peek at foo3d: http://code.google.com/p/foo3d/
Others I can think of, Construct2, ImpactJS, Crafy, Collie. Some of them are made for different things. For example Construct2 provides a visual interface, easier to build at the cost of having more limitations. ImpactJS has a level editor, based on blocks, physics are not hard to implement, and they document building for mobile app stores. Crafy is very light, an abstraction for the canvas, similar to Collie.
Game closure looks like it's good for making network games, uses node.js.
I found I enjoyed working with it the most -- it handled exactly the parts I didn't want to think about (drawing sprites, collision detection) and left the interesting stuff with me.
That said, in the end I did end up looking into their drawing/collision code to tweak the performance some! :D
Yes Crafty thanks for the correction, I have this skipping keys problem lately since I switched to a microsoft ergonomic keyboard that I'm not sure that I like now.
The issue is that mobile is eating up all the web traffic, and HTML5 in mobile browsers has terrible performance. So you need technology like CocoonJS to reimplement a subset of the browser needed for gaming with decent performance.
Cocoonjs, ejecta and now gameclosure all implement html5 canvas with opengl. With them, I've found rendering performance to be almost as good as native games. The update loop becomes the bottleneck.
Honestly, it varies from "Awesome" to "totally unusable" depending on what you plan on doing with them. A 3D side scrolling shooter might be fairly difficult while a 3D chess or 2D MMORPG is easy (relatively).
This looks pretty cool! I wonder if this gives you access to shaders, or if this is a planned feature? That's one of the things about AndEngine that I really like, and is one of the reasons I switched from HTML5/js engines for making mobile games.
You're free to implement your own shaders throughout the stack and push them back to mainline. See the gameclosure/native-core repository @ https://github.com/gameclosure/native-core
What I mean is, the whole point of choosing HTML5/JS is that you can write once, run everywhere. The non-GPL license forbids you from writing your game and releasing it for the browser.
For background, before GC I founded a non-profit that helped open source projects deal with licensing issues, CLAs, and IP around software in general. I've been involved in 3-4 large OSS projects, and I've spoken at OSCON and Pycon multiple times. I very strongly believe in the GPL, though we also wanted to let businesses use GC DevKit for commercial use under the most friendly possible terms.
Our goal is to promote GC DevKit and ensure that 3rd party bugfixes on the commercial and GPL licenses both end up in the same code base.
(1) You can use this under the GPL, no strings attached. (2) We wanted to further allow you to create commercial products, so we ADDITIONALLY offer an incredibly developer-friendly license (GCFL)
* You can release paid games on iOS or android (Note below, we should add web at some point)
* You don't pay us money, it's FREE.
* If you improve the engine, you must contribute it back to our main GPL version.
* You need to show our splash screen and let us mention your game to promote our platform.
Also, yes, we probably should allow web games under the GCFL (But you can still do it with the GPL.) We just haven't made Desktop Web a priority so we disallowed it in the license. This could easily change if enough people are interested.