Hacker News new | past | comments | ask | show | jobs | submit login
In the age of free AAA game engines, are we still relevant? (jmonkeyengine.org)
196 points by erlend_sh on Mar 8, 2015 | hide | past | web | favorite | 80 comments

Mozilla has been a force for good here, working closely with the game engine teams for a couple of years on Emscripten porting to ASM.js, and sharing our open source experience.

Mozilla is bringing AAA gaming to the most widely deployed, free and open platform the world has ever known, the Internet. If you're looking for leverage and opportunity for further opening up the gaming industry, Mozilla should be on your short list of partners/friends/projects.

And no other project out there has more experience doing open source. (Mozilla was much of the inspiration for the creation of open source model as an alternative to the commercially-challenging free software model that came before.) http://opensource.org/history

So yes, "Get cozy with Xiph.org/Mozilla."

It's the web, not the internet. And the web is not the most free and open platform the world has ever known, it is a comittee-designed disaster whose goals are regularly overruled by the interests of big companies.

I get it, Mozilla is doing this game native stuff now. Why not keep it at that? Baby steps.

Name a more free and open platform than the web. You can choose from any point in history.

GNU/Linux. A ton of platforms are more open than the web more that EME is part of the spec. It means that a full implementation of the web has to contain non-free components.

On the EME front we are agreed.

Well, the internet. That was easy :)

And, how would the average person make use of the Internet? Shall they setup a gopher server? SMTP...that's a good one for the average person, right? I mean, who doesn't understand how DKIM works and have the tools needed to use it?

The web is pervasive, secure-able by average users (and becoming moreso with Let's Encrypt), accessible in ways that no other Internet protocol is or ever has been, allows creation and participation by anyone of almost any technical ability or resources, it can be used anonymously, and, it has very low barriers to entry even if you do want to run your own site/server...much lower than any other Internet protocol.

I cannot think of a single piece of the Internet that is more open and free, for more people, than the web.

Native mobile: it is so open it lets me a real choice of a programming language I like. Unlike "open" web that forces me to script or transpile.

Yep. Mozilla is even bringing the fight to C++ with its new Rust language. It's been very exciting to follow the journey of a brand new language backed by a company who really knows how to do community-powered development.

It might even end up fulfilling some of the goals from Tim Sweeney's "The Next Mainstream Programming Language" talk from way back.

That's solving a different problem. Mozilla is building a runtime, which is great... but what Unity and Unreal bring to the table isn't the runtime, it's the productivity tools and framework.

Mozilla has been working on Emscripten (the compiler that helps port native games to the web), which is bundled with Unity and Unreal now. That is, it's part of their tools and not part of the browser runtime.

Can you give some examples of libre or open games from teams Mozilla has worked with?

Large parts Sauerbraten (http://sauerbraten.org/) were ported to Firefox using Emscripten under the name BananaBread (https://developer.mozilla.org/en/demos/detail/bananabread).

Looks almost awful, sadly. Where is our link to a playable http://www.youtube.com/watch?v=BV32Cs_CMqo ? :)


He is one of the early Firefox devs. http://en.wikipedia.org/wiki/Asa_Dotzler

The post mentions OpenGEX as a game engine data exchange format. If you're interested in 3d data formats and specifically good runtime formats, you might be interested in glTF too, which is a JSON+binary asset format specifically targeted at storing runtime-optimized data (as opposed to COLLADA which is more a editing-oriented format). It's backed by the Khronos group --the people behind OpenGL / Vulkan / WebGL-- and they have a COLLADA-to-glTF converter: https://github.com/KhronosGroup/glTF.

Having spent some time working with the format, I hope it takes off and we see native support for it in most tools at some point. I've had great success using glTF to export models + skeletal animations from Blender and then import them for use with WebGL: https://twitter.com/elisee/status/558238454962978816. This is a little test project made with Superpowers, a soon-to-be open source HTML5 2D+3D game maker I've been designing with a couple of friends: https://sparklinlabs.com/

Indeed, I'm well aware of glTF, and it's a cool initiative. Just didn't want to overwhelm readers with new stuff.

Also, even though it doesn't have the same backing yet, I'm more optimistic about OpenGEX as an exchange format because it's not such a big ask. It serves the same purpose as FBX, but is completely open source. glTF on the other hand - and please enlighten me if I got this all wrong - is asking engines that already have their own tailor-made runtime format to support this one as well (or even instead). That's asking a lot.

I guess if glTF could convert FBX files as well as it converts COLLADA, it'd quickly become a lot more attractive. Maybe support glTF output in fbx-conv?


Looks like a FBX-to-glTF converter has sprung up recently (linked from the glTF repo README: https://github.com/cyrillef/FBX-glTF). I have no experience with it though so I can't say how well it works.

> glTF on the other hand - and please enlighten me if I got this all wrong - is asking engines that already have their own tailor-made runtime format to support this one as well (or even instead). That's asking a lot.

For our Superpowers game maker, we didn't end up using glTF as the actual runtime format but we have a fairly simple importer that reads glTF, scavenges for what it needs and builds the final data. I expect most engines would still need a "last-mile" conversion, still some processing but much simpler than working with COLLADA or FBX directly.

"Games must never stop being weird"

Reading this kind of stuff heartens me and gives me hope for the games industry. I still spend a ton of time on gaming, and except for a rare gem, indie games are one of the only places you can see original thought, even if sometimes it is poorly executed.

About a decade ago I wanted to get into game development because I wanted to see more artistry in games. I thought, why try to use the technology to make things realistic, when you could make it unrealistic? I thought, there's an underground music scene, there should be an underground game dev scene.

I eventually gave up on breaking into the industry given the cost benefit analysis, but it's okay because everything I wanted to see and more came true anyway.

Let me tell you about a little game called American McGee's Grimm. This was a short and sweet, episodic little game with a lot of quirky-fun visuals and gameplay dynamics. You played a little gnome going around spreading darkness and mayhem inside a fairytale world and once you've covered the world in enough darkness and grossness, the fairytale ending would play out in a much more violent and gruesome way than how it began. OK, so far, so good. Nice casual game, would even be a decent mobile game.

The problem is that American McGee has an ego so huge it interferes with his ability to properly market and position his ideas, and for some reason thought this was AAA title material or it should be worthy of a AAA development process. So step one was "license the Unreal Engine". Except the Unreal Engine, with its support for shaders and all that crap, made the game run intolerably slow even on PCs with on-mobo NVIDIA parts, let alone the shitty Intel graphics parts many PCs had at the time. Porting to Wii would have been fucking impossible; arguably, the game would have thrived on Wii as an interesting counterpoint to Hannah Montana's Wiggle-Your-Stick Concert Bash and the usual Wii fare.

So yes, there's room in this business for all sorts of game engines. And if you don't know how to write an engine that fits your game, or at least choose a fit from a wide market, maybe you don't know enough about the kind of game you're making and who would be playing it.

There is a lack of free open source state of the art game engines. The best one are based on the open sourced Quake 3 engine and Cube2, though they are 10-15 years old. Additionally such an engines needs a good WYSIWYG editor with an inbuilt shader editor like UnrealEd, CryEngine-Editor. The Quake3/Source-Engine editors are very basic and outdated. Game engines are written in C++, with game logic in a scripting language like Lua or JavaScript.

There is also a lack of web 3D engines that ate not based on ThreeJS. Every demo and tutorial is using ThreeJS, instead of WebGL. ThreeJS is an abstraction layer that made sense some years ago when WebGL wasn't around. ThreeJS is slow. One can compile C++ code via emscripten to ams.js, that's great - the downside is the JS filesize.

Just this past year GoDot went open source. Haven't delved too deep into it, but it looks professional, scriptable, and "actually open source" (i.e. they accept pull requests)


>(i.e. they accept pull requests)

Well, Epic accept pull requests too for UE4, you know, but they are not actually open/libre/whatever source.

The engine he linked to is MIT licensed.

You are right with the lack of open source state of the art engines, it is a shame.

But you are misinformed about the webgl part: There are other Web 3D engines. For example Babylon or CopperLicht. The latter even has a pretty solid WYSIWYG 3D editor: http://www.ambiera.com/coppercube/

> There is a lack of free open source state of the art game engines. The best one are based on the open sourced Quake 3 engine and Cube2, though they are 10-15 years old.

And most modern commercial engines are just as old. Unreal has been around since 98, and I'm sure there's at least some of the original code in there. Source is based on the quake engines too, and runs on an ancient version of Havok that valve licensed years ago. Cry engine I'm not sure about, having never looked at it. Most of the modern call of duty games run a modified quake engine. The problem doesn't just exist in open source engines. the difference is Commerical in house engines tend to start with a stock unreal engine, and rip it apart piece by piece until they're left with the same editor/base libraries, but almost entirely custom engine code underneath.

It's all about continuous development and not how old an engine is. Unreal 4 is great in 2015, id Tech 3 with little development since 1999 feels like yesterday.

Unreal, ID Tech, CryEngine, etc. most modern game engines date back to the mid to late nineties. But where as e.g. the Unreal 4 engine has been in continuous development since 1995 and came originally with an editor coded in Visual Basic, one cannot compare the limited Unreal 1 of 1998 with Unreal 4 as of today. Sure many code lines are still unchanged and in Unreal 4 but especially the graphics and editor have changed a lot.

A modern Call of Duty (e.g. Ghosts) still use a heavily modified Heavy Metal F.A.K.K.² engine (Ritual's ÜberTools) which itself was a heavily modified id Tech 3 engine with the GtkRadiant editor. Infinity Ward added texture and map streaming in Modern Warfare 2. The id Tech 3 engine is now open source, but there is a big difference in the capabilities of what you can do with Infinity Ward Call of Duty engine and what you can do with id Tech 3 that has seen little development since then - also in the tool section.

GoldSource/Source/Source2(?) is one of the oldest engine still used in AAA games, based on Quake and Quake World. The Worldcraft/Hammer editor is dated in comparison to UnrealEd. Hammer editor for Source 2 engine seems to catch up.

Until recently, there was a lack of free / inexpensive state of the art game engines, even considering the proprietary ones. Making a game is already hard, like writing a novel. And writing a "state of the art" game engine is like writing a web browser in scope and complexity. The best I'm hoping for is a few good open source engines targeting specific niches, and some better middleware, along with a ton of open-source tools that make it fun and painless to make small games (like Haxe).

That said, I'm looking forward to see what people do with Unity 5, UE4, Source 2 in the upcoming Ludum Dare (April 17), even if I'll only be slogging along in C++ and OpenGL.

(It is sad about WebGL tutorials--you're tempting me to write up a "bare WebGL" tutorial.)

> ThreeJS is an abstraction layer that made sense some years ago when WebGL wasn't around.

So how are you loading textures, geometry, fonts, shaders, matrix calculations?

There's https://github.com/SonyWWS/ATF for building an editor...

Try PlayCanvas [http://github.com/playcanvas/engine]

It's definitely state of the art. See our latest tech demo: http://seemore.playcanvas.com

I don't think this is state of the art. It's impressive, maybe, from a technical point of view given the massive constraints it runs under. It may compete with Unity or, to a lesser extent, Unreal on the low end. But there's lots of things you can do in Unity (which isn't really state of the art -- it lags behind the AAA engines in a lot of respects, although I don't know how much Unity 5 moved the ball forward there. This isn't to denigrate PlayCanvas, but it's not an open-source replacement for Unreal in the most typical Unreal Engine use-cases.

Unity is free. Yeah it isn't open source, but it is unlikely your game will be either - and if it does then just put the source on github and have your comitters download unity.

"Still relevant"? Not to be a dick, uh, but who or what in that article was ever relevant? The author? jMonkeyEngine? Open source (for games)? Pretty sure the answer is a resounding no to all three.

That said game devs are pretty open when it comes to open source, kinda. Were it not for fear of patent lawsuits you'd see a lot more source code released. However our careers and livelihoods rely on copyright so you'd probably also see assets under lock and key like all the Doom/Quake releases.

There ARE games on Steam you can buy right now that were made with JMonkeyEngine. That makes it pretty relevant IMO...


It could technically be less relevant. But not by much.

Can you please link to the top jmonkey games?

They're all listed in the 'Showcase' part of http://jmonkeyengine.org.

The top 2 are on Steam, and many of the others are too (or on Greenlight).

Just take his words and apply to something more mainstream, like MonoGame.

It's worth nothing Unreal Engine 4's source is available for free (before, you had to be on the $20/month plan). You can modify it as you please, and you can share your modifications as well. You can even sell plugins made by customizing the UE4 source code.

Sure, it's not GPL/MIT and doesn't meet the full definition of "open source," but this is a good middleground: a sustainable business model for the company, source code access for anyone.

I think it's worth noting that Unreal Engine's source code is available free of charge, and they actively engage with the developer community on GitHub. It's an interesting cousin of Open Source, but nobody talks about this sort of business model.

Unfortunately, a lot of people (including myself) value true freedom, which neither Unreal nor Unity provide; on the other hand, you are guaranteed that both of these projects will not die soon, which is something that open source projects suffer.

> a lot of people (including myself) value true freedom

By all indications, the people who value this particular flavor of no-true-Scotsman'd "true freedom" is tiny and shrinking. The Apache License and MIT/X11 licenses have more or less supplanted the GPL and other hard-copyleft licenses in modern development communities. When I started writing open source, the GPL was almost the default largely because Linux used it as such; I don't remember the last time I saw a GPL project, or even LGPL, that I cared to use.

This is a good thing, as far as I'm concerned; I'd rather grant the freedom to do great things with the stuff I write regardless of whether somebody wants to hand it back to me. It doesn't hurt me, so, whatever.

You're presenting a diversion here. Both permissive and copyleft licenses are free software licenses (that is to say, the "true freedom" that you sardonically hold in contempt) as recognized by the FSF.

UE4 is neither free, nor open source by any definition. It is source-available and gratis, instead.

It is not free, but I would very much dispute that it is not open source - the source is open.

That's not enough to be open source: http://opensource.org/osd-annotated

Can you use the Unreal source to create a non-Unreal project?

Say, your own engine?

I haven't read the whole EULA but I'd guess the answer is 'no'.

Just because you are allowed to read the source doesn't mean you have any rights to it.

Since the early days of home computing I used a mixture of free and commercial software.

Back in the days we had program listings, public domain, freeware, shareware, ....

Then GPL came along and many adopted. Personally I had a phase where I was 100% GPL and writing stuff like M$.

That is all gone for me now and I am even typing this on a Windows 8.1 system, but I do acknowledge that most likely Linux wouldn't ever happened if it wasn't for GNU and the whole (L)GPL eco-system.

Many of the open source advocates that are anti-GPL forget that without it, probably the choice today would have been between commercial UNIX systems and Windows NT.

Android extensions outside AOSP, LLVM derivatives for embedded systems, GPGPUs and most recently Swift are good examples of what happens when you join commercial interests with free code.

> Many of the open source advocates that are anti-GPL forget that without it, probably the choice today would have been between commercial UNIX systems and Windows NT.

Like Mac OS X and Windows 8?

Almost, imagine not having GNU/Linux on the server side or for IoT projects.

I honestly wouldn't much care. Prefer FreeBSD for servers anyway.

Because AT&T lost its case.

I'm not sure we are talking about the same thing. I never mentioned GPL or any license.

And here's why we never talk about the source code licensing model Epic Games has implemented, or any other non OSD-compliant models.

UE4 is possibly the most powerful creative software suite ever built, shackles and all. You really are missing out.

I certainly am not complaining about Unreal. The amount of resources needed to create and maintain such beast is quite high, so the chances of having something similar being open source are minimal. I'm fine with that license. It's already more open that a lot of the stuff out there.

Sure I wish we had Linux-like software for everything.

This page is alarmingly unreadable. Light gray doesn't show up well on white.

And while I'm nitpicking, associating Stallman with "Open Source" always gets a chuckle out of me.

Hmm, yeah I guess you're right about the color. Fine on my monitor but I've encountered similar difficulties on other sites, so I'll take your word for it. Better now?

As for Stallman and open source, yeah that can be debated, but he's definitely an idealist.

Stallman leads the free software movement, which holds that creating proprietary software in unethical. The open source movement, although sharing some ideals of free and open software, does not condemn or oppose proprietary software. Stallman is strongly opposed to the open source movement, and is surely annoyed by the confusion.

What both movements have in common is endless forking followed by awkward merging, combined with a lack of taste for naming things. Thus we get the term FOSS, that combines Free and Open Source Software into an acronym that sounds like something related to sewage processing.

He's actually written an article on the topic: http://www.gnu.org/philosophy/open-source-misses-the-point.h...

I wouldn't say he's strongly opposed; he says what the open source movement does is good, just that it doesn't go far enough. Unlike what some people believe, rms isn't factionary - he doesn't think that you either commit 100% to the Free Software beliefs or you're the enemy. For him, anyone writing free software is to be lauded, even if they don't do it for the "right" reasons or even they also write proprietary software.

Yes, I think a lot of people only know of the caricature of Stallman. He has very nuanced views and while he may be personally eccentric he is consistent and usually quite reasonable.

There's a good article on color contrast here: http://viget.com/inspire/color-contrast

And a really cool tool for rating color contrast: http://jxnblk.com/colorable/demos/text/

That made a big difference for me, thanks. It is much better to read now. I have also noticed some monitor differences, I have one that never has problems with low-contrast text, but it definitely helps to design for the low end.

The article makes it sound as if UE4 was closed source or at least unwilling to take pull requests, which is not the case. Also, as far as I can tell from skimming, the UE4 source is really comprehensible and you can fiddle around with it, add custom shaders and objects and learn from it.

Though I do agree that an absolute beginner should start with a less powerful engine. I learned a lot tinkering with Cocos2D-X that helped me grasp basic concepts of OpenGL.

Unfortunate if I came off that way, that was not my intention. Just tried to keep things short by bundling all the 3 mentioned engines into "different brands of free".

UE4 is indeed open source, though not open to the extent of your average open source project, YET. But I'm not at all trying to give them a hard time about it. I know these things have to happen gradually. What they're doing is great.

I think smaller frameworks like jME, LibGDX, Cocos-* will still live quite a while, exactly because of the community and contributors momentum the bigger engines lack.

BTW, I wanted to have a look at the jME source and noticed that the website misses a GH link, you should definitely put it up there.

We have one on the downloads page, but this isn't the first time I've gotten this feedback, so I guess we ought to make it more visible.

>The article makes it sound as if UE4 was closed source

It is. It's proprietary software. Just because you can look at the source code doesn't mean it meets the definition of "open source".

Whose definition? Also, I never said it was open source, but merely that it's not closed source which is true, since it's somewhere between OSS and CSS.

>Whose definition?

Oh, you know, the OSI[0], the folks that coined the term in the first place. This is a textbook case of "openwashing"[1].

[0] http://opensource.org/osd [1] http://michellethorne.cc/2009/03/openwashing/

A quick wiki visit says the term open source existed before the OSI. But that's not really important.

I just wanted to point out that UE4 does a better job than many other engine (and software!) vendors, since they give you a peek at the source and I think this should be praised, rather than scolded for not being totally free.

i do genuinely worry that the big guys going free will help tech development to stagnate.

i don't see open source as an answer, because the philosophy attached to these projects usually insulates them from the bulk of the market. they exist in their own bubble, where linux is something more than a platform that a mere 1.5% of customers uses, and those customers refuse to pay for anything. where real world strategies for sales and marketing are ignored under the premise that 'if you make it they will come' type philosophies...

i think there is a lot of genuine improvement to be had in terms of cross-platform architecture, performance, visual quality and tools UX without better hardware, programming environments or gigantic teams. the same was true about 5 years ago too. i just can't see it coming from the open source community unless these sorts of ideals are suitably cast to the wind...

most importantly if you can't make money to pay salaries then intentionally growing the team behind a product is difficult. that shouldn't need explaining... it should be obvious.

RedHat Enterprise Linux is both Open Source and Commercial Software. There are nothing prevent it being done. Android is another example.

Also, Linux is huge in server world.

true, but it also might as well not exist on desktop. (~1.5% share iirc)

But... Java...

Any other day I'd be happy to get into it with you, but Java is really besides the point here.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact