Hacker News new | past | comments | ask | show | jobs | submit login
Amazon Lumberyard: free AAA game engine with Oculus and AWS integration (amazon.com)
441 points by dshankar on Feb 9, 2016 | hide | past | web | favorite | 177 comments


57.10 Acceptable Use; Safety-Critical Systems. Your use of the Lumberyard Materials must comply with the AWS Acceptable Use Policy. The Lumberyard Materials are not intended for use with life-critical or safety-critical systems, such as use in operation of medical equipment, automated transportation systems, autonomous vehicles, aircraft or air traffic control, nuclear facilities, manned spacecraft, or military use in connection with live combat. However, this restriction will not apply in the event of the occurrence (certified by the United States Centers for Disease Control or successor body) of a widespread viral infection transmitted via bites or contact with bodily fluids that causes human corpses to reanimate and seek to consume living human flesh, blood, brain or nerve tissue and is likely to result in the fall of organized civilization.

That's really in there! There are lawyers with a sense of humor?

Not just lawyers. Someone in charge must have authorized that. Which is, frankly speaking, amazing! Too many companies are too serious for their own good, it's a refreshing change.

Occam's razor makes me think it was slipped in by some web developer.

I really doubt that. Changing a legal contract is not something you do without approval. That sounds like a quick way to end up unemployed.

Just curious - why am I suddenly seeing so many people referencing occam's razor? It is happening way too frequently to be a coincidence. Was the idea featured someplace recently? It seems like just about every tech-ish thread on reddit and HN has one "Occam's Razor" dude for the last couple weeks.

That would be the simplest explanation.

Well played.

"Occam's Razor, now with 6 blades and soothing aloe strip" https://twitter.com/vgr/status/691823304471121924

Could just be Baader-Meinhof Phenomenon/frequency illusion.

I wouldn't be so sure it's not a coincidence.


Yeah, that would be true if I hadn't already heard of it I guess. I've also seen a lot of people talking about baader-meinhof, so I suspect it might just be that pop psychology is the tech bro humblebrag du joir this week.

It can still be the case despite knowing it. Simply being aware of the existence of a bias isn't enough to counter it in a lot of cases.

Maybe they're coming out with a zombie game...?

Certain types of safety-critical systems are regulated with liabilities coming in. They have to be built in a rigorous way to show the developer attempted to counter some amount and types of risk. There's a niche market that uses tech like OpenGL to build GUI's and simulators for safety-critical systems. I think this clause is a smart dodge of unknown risks rather than a joke.

Relevant page: https://www.khronos.org/openglsc/

Example companies doing that stuff:



You made the same mistake I did - read the second half of the paragraph more carefully. There's a special clause in there!

I was going by quoted section here. Just read it. Lmao that's epic and a worthy use of their game engine!

Hmm. So, original part might be serious with a joke after or entirely some BS. Who knows.


Might want to read that clause a bit closer, Amazon's carved out some unique exceptions...

Oh man, I didn't notice that last bit - sorry! I just saw the first half of the paragraph and assumed it was the same nukes/life support/air traffic story I'd seen a few time before. That's actually much more funny!

Digging into the details, it seems this is largely a fork or adaption of the CryEngine, with all the advantages and disadvantages that brings.

As I said about Autodesk's offering, Stingray, I think that even a giant like Amazon is going to have an uphill battle bringing a new game engine into mass use. Having been testing game engines just this week, I'm reminded just how much of an ecosystem has built up around Unity in particular - displacing an engine with that is like displacing Wordpress as the dominant blogging engine.

It's early days yet but they've got some serious catching up to do. For example, it appears that 3D assets can only currently be created in Max and Maya (no Blender, no Cinema4d), as rather than using FBX or similar as an interchange format they're using their own custom formats with an exporter. Most other game engines stopped doing that a while ago, for good reason.

Likewise, the level editor is either underdocumented or feature-light. The docs currently just cover creating terrain and vegetation. I assume that the engine has the capability to handle non-outdoor scenes too, but it's not explicitly documented anywhere I can find in a quick look.

There's also no documentation on non-sky lighting, lighting builds, light types, or similar that I can find. There's one mention that the engine supports Global Illumination, but no details as to whether it's realtime or requires a bake process. Searching for "lighting", "lights", or "light" in the documentation returns no results!

Interestingly, there's a full-featured cinematics system, which means it's of considerable interest to me, but that's very much a minority thing.

I wish them luck and I'll certainly be checking it out, having said all that. Another fully open-source 3D engine is no bad thing.

> Another fully open-source 3D engine is no bad thing.

Small correction; it is not open source: https://aws.amazon.com/lumberyard/faq/#Licensing

It is open source, but it's not FOSS.

From their FAQ:

> Q. Is Lumberyard “open source”?

> No. We make the source code available to enable you to fully customize your game, but your rights are limited by the Lumberyard Service Terms. For example, you may not publicly release the Lumberyard engine source code, or use it to release your own game engine.

So according to them it's not even "open source".

That's a contradiction "FOSS" encompasses the software which meets the (nearly-equivalent in practical application) FSF Free Software definition and/or OSI Open Source definition.

If it is open source software (which this is emphatically and expressly not), it is FOSS.

Software can be commercial and open source meaning you can read the code but you have to purchase a licence to make copies and/or use it - that's open source but not Free[-Gratis] Open Source Software (FOSS).

No, that's "source available" or "shared source", not " open source".

Although FOSS has a broad definition[1], most technical people refer to Free Software by the GNU interpretation, in which the Free in FOSS is "Free as in Freedom, not Free as in Beer". FOSS is generally considered a subset of Open Source software.

You can charge as much as you like for FOSS[2].

Open Source is not the same as Source Available[3].

1. https://en.wikipedia.org/wiki/Free_and_open-source_software

2. https://www.gnu.org/philosophy/selling.en.html

3. https://en.wikipedia.org/wiki/Open-source_software#Open-sour...

The source is available but it's not "open source", more what Microsoft would call "shared source".

all the magic is in the word 'open', not the word 'source'. the source is available, but it's not open or free.

Good point.

I think your definition of open source is flawed.

Their own FAQ answer to “Is Lumberyard open source?” starts with “No.”

"Open source" generally means not only can you get the source code, but you can use it freely and make your modifications available to others. There's some wiggle room for exactly what qualifies there, but Amazon's terms are pretty far from any gray areas.

No, you're confusing open source and source available.

Blame the Open Source Initiative :)

So this was the secret deal which, according to rumors, saved Crytek. This is the second fork of the CryEngine that I know of (other is the Farcry fork of Ubisoft), and I find it interesting that they keep forking it instead of offering a library designed to work with it. I wonder if it says something about the codebase.

Another major engine fork is for Star Citizen / Squadron 42.

They've hired several ex-Crytek engineers at the Foundry 42 office in Frankfurt, and among other changes have modified the engine to support a 64 bit data in coordinate system and rendering, multithreaded physics, and independent physics grids for inside the larger ships while they're moving around. Probably other things, but those are the main ones.

This sort of thing is actually pretty common in games; you end up doing some engine customization to fit your needs, and eventually you have to say "We've diverged too far to try and keep following the main updates anymore," and you stick with a customized version of an old release.

Nearly every AAA game is going to fit into that pattern, it's just that the 64 bit coordinates overhaul in Star Citizen is probably a larger and lower level architectural change than what most things bother with.

> I wonder if it says something about the codebase.

Well, this is Amazon we are talking about - they like dancing to the beat of their own drum. They also forked Android.

Well, the meaty bits that make Amazon money are all separated out into a service called GameLift and the C++ SDK.

I don't think we're done making game engines. We're not done making blogging engines. Wordpress may be one of the largest incumbents but it's not the dominant platform and there are plenty of competing alternatives along every axis. Unity may be one of the current incumbents but it's not the best engine and won't be the last.

More competition is good. It means Unity won't be able to stand still and we'll get to see more features and interesting ideas. Cloud + Twitch integration? Pretty cool!

Oh, definitely not. We aren't at The Last Game Engine by a long way - but currently it's an uphill battle to introduce a new one, and I'm dubious this engine is differentiated enough to succeed.

There might be a lot of competing blogging engines, but there's only really about 3 that have any significant market share, and you can explain why each of them are has at least one radically superior feature to Wordpress in about a sentence and a half.

Shame about the 3D format supports. :(

They do seem to have some Alembic support: they ship the libraries as part of the engine download, in their 3rdParty folder.

Alembic is an open 3D file format supported by pretty much all the major 3D modellers these days - including Blender, Modo, Houdini, Cinema4D and plenty of others besides the Autodesk tools.

Oh, really? Now THAT is interesting.

Neither Unity nor Unreal currently support Alembic - this is the first indication I've had that the Amazon engine might have some features the others don't.


Seems like they could throw in Assimp[1] and have most of the common formats out-of-the-box.

[1] https://github.com/assimp/assimp

I've never been able to get Assimp to successfully load anything other than .obj format models, despite what they claim in their docs. Last time I tried was about two years ago though, so maybe it's improved since then.

I've used the .NET wrapper to load up quite a few different model formats. Sometimes it takes a little fiddling to get the right set of flags, because it seems like every model is setup just a little differently...

Huh, that's a very nice library I'd not seen before! Thanks.

Yea, which is a shame for them, as lots of the smaller shops starting out and actually deciding which game engine to use are likely to be starting with something like Blender. I don't even think 3DS Max exists anymore? Isn't it just Maya now?

3DS Max definitely exists. Autodesk is still supporting them, and not as a 'oh this is just an auxiliary side project'. The breakdown (oversimplified) is Maya is more for complicated models used in animation/CGI (MEL scripting is their 'killer' tool that puts it ahead of Max), while things like architectural and game models are mostly done in 3DS Max (but theres a lot of overlay between the two, i.e., I've seen tons of work done in game modelling on Maya LT).

Speaking of which, Maya LT is not that badly priced for what you get - I have no animation ability but I've seen my friends do some incredible things with it. If you're artistically inclined, have a play. Regardless, the lack of Blender support makes me sad.

All game studios I have worked at have used Maya. I do know of some that use Max but it's definitely not the case that Maya is only used outside of games.

As a side note, Maya added Python as a scripting language a while back. You can also write plugins in C++, which can be a nice way to write custom exporter code sharing engine code files for file formats and such.

Hmm, interesting question whether the exporter supports Maya LT. I'd guess it does, and it's cheap (ish).

3dsmax definitely still exist, although I wish Autodesk learned cloud pricing from Adobe because 240€ a month just for 3dsmax is way way too much, especially compared with Creative Cloud which is barely 60€ yet contains almost all their softwares.

Yup, Max still exists. I have it open on my desktop right now :)

Note that it's "free, including all source code", but definitively not open source. https://aws.amazon.com/lumberyard/faq/#Licensing

Also note that you can not use other cloud platforms for your games backend. While I understand their position, I consider that a deal breaker.

  Q. Can my game use an alternate web service instead of AWS?

  No. If your game servers use a non-AWS alternate web service,
  we obviously don’t make any money, and it’s more difficult for
  us to support future development of Lumberyard. By “alternate
  web service” we mean any non-AWS web service that is similar 
  to or can act as a replacement for Amazon EC2, Amazon Lambda,
  Amazon DynamoDB, Amazon RDS, Amazon S3, Amazon EBS, Amazon EC2 
  Container Service, or Amazon GameLift. You can use hardware you
  own and operate for your game servers.

  Q. Is it okay for me to use my own servers?

  Yes. You can use hardware you own and operate for your game.

That seems pretty crazy to me. I get that they're using this as a loss leader to promote their services, but it seems to me that they'd do much better if they just made it work great with AWS such that it was the natural choice. If you integrate AWS heavily then people will pick it anyway, but if they think it's their own decision they'll be a lot happier with it.

Developing a game is such a time and resource intensive process, I don't see any AAA studios locking themselves into using AWS. It's a non-starter.

Definitely agree. You'd be at the mercy of Amazon's AWS pricing for the whole lifecycle of your game. Let's say they suddenly increase the price tenfold... you either shut off your multiplayer (not an option for some games), host it all yourself (which would mean buying servers, paying people to maintain them, changing the game to use a new backend, etc.), or switch to another engine (essentially, recreate your game from scratch)

You have to weigh these risks against the likelihood of them actually happening. If AWS made a first-ever price increase, yes, you'd then have to consider whether you could beat that pricing by doing it in-house but you have to balance that against the very low odds of it actually happening and the up-front costs of hiring a ton of staff (e.g. just having 24x7 support requires something like 5 people when you factor in leave, vacations, etc.), buying or renting a lot of hardware, developing and getting operational confidence in a complicated software stack, etc.

That's a LOT of money to spend up front on a gamble that something which has never happened before occurs with so little notice that you wouldn't be able migrate away first. It's hard to see anyone but the major players having enough economy of scale to see positive returns on that investment, much less having enough budget room to where that makes sense rather than spending the same amount of money on something which users actually see.

That gets to the other reason why this is so unlikely: raising prices in a predatory manner would be a loud message to every AWS customer to find alternatives. Since AWS generates something like 7-8 billion dollars a year that's an enormous amount of money to risk — far greater than any short-term return they'd see.

> If AWS made a first-ever price increase

Actually, AWS does this all the time: for new or growing large scale users they offer a discount on the list price. Once the user is firmly embedded in AWS, they stop offering the discount. This can lead to an effective doubling of the cost of using AWS.

That's not the same thing because you know in advance exactly which terms you're getting and you can make your decision accordingly.

You don't know when, or even if. It's entirely subjective on how secure Amazon feels in keeping your business.

I know of one business where it took 4 years for Amazon to start dropping that hammer. A real killer for any maturing startup.

Yes, you could simply budget for the full price and set aside that money, but any smart executive will tell you that money is better invested in the company. Would you be willing to fire 10-20 employees with 1-4 years of tenure because Amazon decided you were tied enough to them to drop your discount?

As an AWS user since 2007, I have seen my bill for existing services drop every month. Now they keep on adding great new services, but they are not jacking up the price on anything. Hm.. I want to plan my game, costs for the servers will be going down each year, can I live with that?

i'm not convinced that we're talking about a "smart executive" in this particular scenario.

I don't understand what you mean by balancing it against the up-front costs of hiring a ton of staff. The whole point here is that if you're not locked in to AWS (because you don't use their free-with-massive-strings-attached game engine) then you can migrate to some other cloud service if AWS no longer suits you.

What I was getting at is the need to actually look at those costs rather than just assuming that it's always better to maximize flexibility. Running your own services has a high up front cost because you have to pay people to build, test, and secure everything before you see any return. You can come up with estimates for the various outcomes and how likely each would be but that's a lot more nuanced than this thread had been, particularly with speculation like “What if they suddenly increase the price by an order of magnitude?”.

The detail which I think techies are particularly prone to forget is that businesses deal with “lock-in” (i.e. contracts) all the time; it has downsides but managing those is routine. In particular, many businesses love to defer up-front costs into a structure where they only need to pay for actual usage.

I agree that the large price increase scenario is pretty unlikely, and not what this is about.

This is about bundling decisions together that do not need to be bundled. Changing the game engine after the fact is about the hardest thing you can do, virtually impossible after a certain stage. The decision for the engine is necessarily a very very early one.

But you can easily and very likely need to improve your backend many many times, even far into the games development or after release. Limiting your options for that so early is very risky.

And your are right, that risk could be offset by some large enough benefit you only get with that engine. I just fail to see where that would be. I can still use all of AWS if I choose an independent game engine.

But they do lock themselves up all the time, on console deals, on cloud platforms (Azure for Xbox, anyone). Isn't this something a proper contract would solve? We are talking about an AAA studio after all.

Exactly. When people see "free, with source code included", they may tend to think that it is open-source. I hope this answer from their FAQ section clears it:

    Q. Is Lumberyard “open source”?
    No. We make the source code available to enable
    you to fully customize your game, but your rights
    are limited by the Lumberyard Service Terms. For
    example, you may not publicly release the
    Lumberyard engine source code, or use it to
    release your own game engine.

It also contains built in obselesence:

  57.6 Registration; Release. Before distributing your 
  Lumberyard Project to End Users, you must register it at 
  aws.amazon.com/lumberyard/registration. You must obtain our 
  prior written consent if the initial public or commercial 
  release of your Lumberyard Project is based on a version of 
  the Lumberyard Materials more than 5 years old.

You are reading it wrong. They say you can't start a NEW game using an old version.

That clause does not require any existing games to be updated.

That means if you keep releasing updates for a project for 5 years, you need renewed permission from them, right?

Updates would clearly not be an "initial public or commercial release of your Lumberyard Project".

It's about the first version, you just can't sit on your project forever and still use an old version of the engine when you finally go public. I see no harm in that clause.

This is probably a way to limit supporting legacy versions of AWS as they anticipate the service will evolve over time. It also means that any game based on Lumberyard might not work past 5 years without continued developer updates.

Free as in beer

The wording is rather strange.

>free AAA game engine

Doesn't being called that require that there are AAA games developed with it? According to wikipedia,

"In the video game industry, AAA (pronounced "triple A") or Triple-A is a classification term used for games with the highest development budgets and levels of promotion or the highest ratings by a consensus of professional reviewers."

So if it's an engine for games with highest development budgets, why would they care about the engine being free? Clearly choosing a free engine is a cost-saving measure, at which point you're no longer making an AAA game by definition.

> Doesn't being called that require that there are AAA games developed with it

Lumberyard looks like it's mostly CryEngine plus extras, and CryEngine has been used for a number of "triple A" games for a decade now. (including recent titles like Crysis 3, Ryse: Son of Rome, Star Citizen, Evolve, Homefront, State of Decay, etc).


> choosing a free engine is a cost-saving measure, at which point you're no longer making an AAA game by definition

Not necessarily. 2 of the most popular game engines, Unreal Engine and Unity3d, have very good free offerings now and many AAA games have been made with them.

You can have multi-million dollar development budgets and only be using "free" engines without issue nowadays.

Except that, at that level, it is no longer 'free'. Unity will likely be the Pro version (still peanuts). Unreal will also get a chunk of the pie. It's only free up to a point, which is reasonable.

Just as Lumberyard is only free up to the point you actually deploy it on AWS, at which point Amazon are making money on your hosting.

They mean the engine is capable of powering AAA titles (and it is, because it's CryEngine at heart). So users get that level of utility from something that doesn't cost anything.

I would understand "AAA game engine" as merely meaning that it is suitable for making AAA games. I don't see why that phrasing would require an existing AAA game developed with it, unless you require an existence proof of its capabilities before you believe it.

Devils advocate: An argument could me made that this is a AAA grade engine, referring to it's capabilities not customers. Much like the US Army doesn't necessarily buy all clothing labeled 'Military Spec' or 'Tactical' etc

"Tactical" label is mostly empty fluff, "milspec" means it meets a published military specification -- which, absent specifying which specification, is also fluff.

So, if the point of your analogy is that this use of the AAA label is empty fluff, then, mission accomplished.

Royalty based models are quickly becoming the norm for even AAA engines. Source 2, Unity, Unreal, and now this version of crytek utilize this model. This pretty much means that the top 4 game engines now have a "free" option.

It's describing the engine and the games that have been produced with it, not necessarily the games that will be created with it in the future. Crysis 3 was definitely a AAA game.

The big question for me is: Why an entire engine?

If they were just interested in getting developers, to use their cloud services. Wouldn't they simply release plugins for all major engines? And wouldn't Unreal and Unity be much more interesting targets (based on their usage in the industry), than CryEngine?

Business. Amazon re-invests almost all their profits in itself(Wall Street hates this a lot). Getting a sweetheart deal from a company about to go under to fill a gap in their software technology to grow out their game section was probably too hard to resist.

They certainly already have a SDK for Unity: https://github.com/aws/aws-sdk-unity

Does this have support for their "auto scaling" back end? That is what interests me the most.

Doesn't look like it at the moment, though I imagine the .Net SDK will have support sooner rather than later. Hopefully they'll wrap GameLift into the unity sdk shortly thereafter, but to be honest I don't know where the difficulty lies in just using the regular .Net SDK.

You may be interested in SpatialOS (http://improbable.io). Disclaimer: I work there. Feel free to contact me directly if you need more info :)

This way they lock you in to AWS so you're stuck with it and can't switch to Azure of Google Cloud Compute.

I got pretty excited and rushed through the article trying to clarify what engine and language it is based on.

Got a little bleak when I saw CryEngine and C++. As someone who uses C# and Java it's becoming pretty clear I need to start learning C++ if I want to explore game dev.

I realize Unity uses C# but when I compare UE, Unity and CryEngine it really feels like Unity still has a long way to go. The features you get out the box with UE for example are far superior to Unity.

Anyway, I just went off topic. It looks like an interesting option for developing multiplayer focused games.

Trust me when I say they all lack a fully polished end to end solution when it comes to authoring modern games.

Depending on the graphical fidelity you're chasing Unity is probably the most polished of the 3 majors.

UE4 is a great tool but has a slower development cycle.

CryEngine is almost broken unless you're willing to do a deep dive in the source.

If by "explore game dev" you mean, "make games" Unity or UE4 will serve you well. UE4 has a nexus of great artists using the tool so recruiting artists that are familiar with the toolset is easier. Unity is some multiple of more productive, pending your skill level with C#.

I've evaluated all 3, am a proficient programmer in C++ and C#(among others), and have shipped several games with Unity. I've also worked on a couple of shipped titles with UE4.(nothing major)

UE4's editor is also filled with bugs and inconveniences, and tooling and documentation for programming outside of Blueprints is haphazard at best. Crossing the C++/Blueprint boundary can be a pain, especially with interfaces. And the 2D support pales in comparison to Unity's.

On the other hand, Blueprints and the node-based material editor are really nice for quickly snapping content together.

That is great feedback, thanks.

Yea I think it is about time I gave Unity another go, and will set aside some time to go over some tutorials.

Depends on what you mean by "exploring game dev". I would say Unity is pretty perfect for that and you have a lot to learn before you will reach its limits, if ever. After all, some of the best and most successful games are made with Unity. If you want maximum eyecandy, then UE or CryEngine might make more sense, but even there Unity in its latest version is not that far off.

I'll check it out again, it was over a year ago.

I just recall doing things like setting up path finding and AI was much easier in UE and setting up player characters etc was all already built into UE templates.

The whole UE IDE or workflow also just made more sense to me, and was more polished. Maybe I just didn't give Unity enough of a chance.

Five years ago using C# for a serious game would get you laughed at. But every day the balance shifts: computers get faster, but developers don't get smarter, so a language that sacrifices performance for ease of development becomes a better choice. If you're looking to the future I'd recommend sticking with C#.

isnt the main problem with C#, Java and similars the garbage collector? which can at its worst kick in while you're in the middle of a fight or something. Even if its just 20ms, in a online FPS it potentially makes the difference between winning and loosing it.

edit: I am a Java guy myself, and would like to do some amateur gamedev in that direction (online FPS), but im worried about above mentioned point.

Yes. Explicit control of memory is one of the big reasons C++ wins for high performance realtime applications like games.

True as far as it goes. Modern GC can mostly be done concurrently (it's only heap compaction that requires stopping the world). Fully pauseless GC is very much possible (see e.g. Azul C4), as are e.g. architectures involving multiple short-lived processes with individual heaps. Even without that, it's often possible to do a relatively small amount of manual work to do the things that require pausing only at appropriate times.

Possible != usable in production.

C4 is absolutely a production product. It's used in systems that insane amounts of money depend on. As for the manual approach, I've seen it work in production.

Well, not everyone is writing the next version of Crysis.

There are plenty of production games that can live with < 10ms pauses.

It's not just the pauses though. Cities Skyline has terrible performance, far worse than other more-intensive 3D games, and I can't help but feel that their choice of game engine is a major reason behind that.

The engine or the programmers?

Modern C# allows you to define a code path where GC is not allowed to run. I'm not sure if unity allows for this.

I'm also not sure about the new c# -> to native compilers coming out.

Could you link to the feature you're talking about? Unity uses a relatively ancient version of Mono IIRC, so it's unlikely that the feature is available in Unity unless your definition of "modern C#" is "after generics were added".

Modern C# means .NET 4.6

For example GC.TryStartNoGCRegion




Or using array segments


Unity has made a lot to spread C# love among game devs, but it also gave a bad reputation to those unaware how .NET really is.

> If you're looking to the future I'd recommend sticking with C#.

Not really. If you look to the future, I'd recommend Rust for making game engines. They by nature should be latency sensitive, and any kind of non deterministic behavior caused by garbage collector is really unacceptable.

"Really unacceptable"? The literal hordes of games using Lua, JavaScript, and Python as game-logic languages seem pretty acceptable to me.

Rust is a nice language, but Unity already uses C++ outside of the user-facing scripting layer.

"computers get faster"

Not everywhere. Phones, tablets and older or low end laptops are very popular.

Phones are really quite fast these days. C# is a perfectly reasonable choice for a phone game.

C# is a perfectly reasonable choice for a phone game that can afford garbage collection pauses. This means turn-based.

In every other case, you're better off using a language whose resource management model doesn't fight you.

Swift is the best of both worlds in this regard.

Considering virtually every major mobile game is unity these days, is this really an issue?

Not at all. Memory management for games is something you have to pay close attention to, no matter what's your strategy for dealing with garbage. But this whole GC discussion is missing several years of technology development and best practices.

Besides, it is not guaranteed that you'll succeed with a manual strategy for dealing with garbage. Naive strategies have a really low throughput. They may not stop the world, but will be slow.

Unity is a C++ engine. Only the game code is done in C#.

You mean like those engines done in Assembly with C and Turbo Pascal as scripting logic 20 years ago?

And around 20 years ago using C for serious game development was also a joke.

Apparently we need to go through this cycle every few decades.

Yeah, especially when you consider Carmack basically volunteered to rewrite Minecraft in C++ for Microsoft (and VR use). I'm not a game developer so I have no idea if C++ is as widespread as it seems but to me that's a pretty big indication.

The rewrite had already taken place (the pocket version of Minecraft). He "just" tweaked the graphics pipeline to minimize latency using techniques such as asynchronous timewarp, optimize framerate and add the other VR related stuff.

Ah, I see. Thanks!

I spent some time going through tutorials for different game engines, UE, Unity, Chaos and researching others, it became pretty clear that C++ the most pervasive and valuable across them, which is probably obvious to some of the more involved players in that space.

I think it's become something of a chicken and egg problem. All the hard-core game developers moved up from assembly to C, then introduced bits of C++ in the late 90s. All the books and tutorials end up getting written in C++ (or C with classes...). APIs get written in C/C++. More people learn C++ because its what the game devs do, and it's harder to find resources on learning how to do it in any other language. It's usually possible to make a wrapper for C++ code in a managed language, but it's not easy, if somebody else hasn't made a good binding already.

Garbage-collection has a bad name for some reason in game-dev circles, which maybe makes sense if you're developing a fast-twitch action game or shooter - a GC pause might drop enough frames to matter there, but for most games, Java or C# should be fine.

The console manufacturers have typically provided a C/C++ compiler and nothing else, so it was very difficult in the past to use any other language for developing console games. Some studios did retarget existing compilers like gcc but it was pretty rare; you don't usually have the time for that! If you're doing cross-platform that then limits your code base, so you can't even use the latest features of a language on one platform but not another (e.g. some platforms don't support C++11 in their compiler).

"if you're developing a fast-twitch action game or shooter - a GC pause might drop enough frames to matter there, but for most games, Java or C# should be fine."

Are most games adventure, puzzle solving, or turn-based?

or otherwise not dependent on single-frame precision, yeah.

certainly "fast-twitch action games" and "fast twitch shooters" are a minority of all games.

Action games may be the minority of all games developed, maybe. They're definitely the most desired and most market viable. It's easier to write a turn based game in garbage collected language. There's a surplus of these games, so they don't even sell well.

The best selling console games are sports simulators and first person shooters. The next popular are open world RPG/action (Skyrim, Fallout), then we have fighting and racing games. 2.5D platformsrs are also popular now. All of these games need the deterministic guarantees of "fast twitched action games".

It's not so much performance as much as control. Objective-C is a lot slower than C++, but making action games in pure Objective-C is viable because you are still in control of a system that allows for deterministic resource cleanup and stable frame rate.

In the US, I'd say turn based RPGs and puzzle games are by far the least popular genre on consoles across the board. They may be most widely produced games, they are hardly the most widely consumed ( outside of Mobile).

> Action games may be the minority of all games developed, maybe

I specified "fast twitch action", not just action. For instance, both of the open-world action games you mentioned are single-player only, so issues like lag and slowdown are less critical. Also, enemies in those games are almost always slow-moving- definitely no fast-twitch required.

For fast twitch action (not shooter), I might include things like street fighter, where button timing and reflexes are critical. Most 2.5d platformers I've seen would not suffer that much for the occasional dozen-millisecond GC pause. In fact, many of them have worse pauses than that for less prosaic reasons. ;-)

It's not the end user that would suffer, but the programmer. Who want's to program around a process that blocks all other threads? Not me. I hate boiler plate.

Swift's ARC is basically automatic boilerplate for resource management that's applied at compile time. It's extremely flexible in that you can also use raw pointers and manage memory manually if you want to. A native language with ARC as a passive option is a way better tool for making games than a garbage collected one on the VM, IMO.

> ;-)

I'll never understand why people think winking online is a socially competent thing to do.

Well, yes, the idea that there will be GC pauses and you just cannot get a _consistent_ framerate no matter how hard you try does not sound good. (Disclaimer I currently write games with Unity ;D)

> I need to start learning C++ if I want to explore game dev.

You surely need it if you plan to work on high performance engines. Hopefully Rust will find its place there as well.

If you are coding on your own, then C++ can be great as one can make use of modern C++14.

If you are coding with others, be prepared to deal with some kind of C with classes.

Minor nit: the link doesn't once mention Oculus. Only on the FAQ page is that mentioned. http://aws.amazon.com/lumberyard/faq/

I mean, the closest thing to a title for this linked page would be the subheading:

> Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.

I wonder why Amazon is going after game developers, as the gaming industry looks like a crowded and low-margin market.

Not to mention the free to try and mature tools that developers already have (Unity, Unreal Engine, etc.)

> crowded and low-margin market

Isn't that kind of Amazon's thing?

The cloud service offerings. They can make a killing off of hosting the game servers and backend APIs.

That and to get people into their ecosystem. Make a game that runs on their firestick and a user might stick around to use Amazon Prime and rent a movie or something.

That seems like a bit of a stretch. CryEngine isn't going to run on a Firestick or a cheap tablet, it's a full-on game engine meant for desktop computers or consoles, not mobile gaming.

run games on spot instance g2s & stream them to the sticks, ala http://lg.io/2015/07/05/revised-and-much-faster-run-your-own...

wouldn't it make more sense to focus on AWS offerings for Unity3D/Unreal Engine instead?

As far as I know Amazon are going to start making their own games as well. Makes sense to use their own engine so they don't have to share any profits.


Ah, that explains why. And they might have some VR plays in mind, where it makes sense to have an engine they control

Well, since GameLift is engine agnostic you could use it in any engine, it would just not be so tightly integrated.

Some interesting legal stuff with this engine, which their FAQ(1) goes over.

Basically, use it for whatever, free of charge, but not with any other cloud services that mimic amazon's services(2).

Except cloud services for some things, which are fine:

    Your game may read and write data to platform services and public 
    third-party game services for player save state, identity, social 
    graph, matchmaking, chat, notifications, achievements, leaderboards,
    advertising, player acquisition, in-game purchasing, analytics,
    and crash reporting. 
Is it a game changer?

Hard to say, but like they say, you can't beat free.

If nothing else, a lot of people are going to download this and have a look at it and mess around with it.

Pretty exciting stuff. :)

[1] https://aws.amazon.com/lumberyard/faq/#licensing

[2] http://docs.aws.amazon.com/lumberyard/latest/userguide/lumbe...

Also: You can use hardware you own and operate for your game servers.

So, it's a fair deal. You can use your own servers and not AWS for anything, but you can't use other web services which are competing with AWS. You can also modify source code as you see fit, but not distribute it. That's about it. Can't complain.

That sounds like a Steam clause. At this point, if you're licensing a PC game engine, and it's not Steam-compatible, it's DOA.

It's an interesting ploy by Amazon to get game devs to lock themselves into Amazon's AWS for backend and Amazon's Twitch for streaming.

It's funny to see in that video how drastically different work environment is at "gunfire games" studio and twitch. Looks like day and night.

My guess is Amazon plans to use this engine for their in-development AAA PC game [1][2] announced last year. Usually the engine spin-off happens after the game itself is released, so I wonder what their motivations are for promoting the standalone engine so soon.

[1] http://www.gamasutra.com/view/news/245102/Sponsored_Amazon_i...

[2] https://games.amazon.com/jobs/

I'm pretty wowed.The quality of code that's being opensourced lately really seems to be ticking up. I didn't take the time to play with it so I'll be interested to hear the first reactions but it certainly looks pretty good in the screenshots. And integration directly into AWS could really streamline a lot of the difficulty of making online multiplayer games. I suspect this will put a new class of games in reach for indie development which is going to be really cool.

Lumberyard is not open source.

Yeah, I didn't read that very closely :-/

Still cool, but not as much as I'd thought.

They recommend using an operating system (Windows 7) for which mainstream support ended over a year ago.

Extended support until 2020 though. :) Personally I have no need for Windows 10 on anything I own or use, maybe MS will offer something better by 2020.

Sure it can't be redistributed, but if it could wouldn't someone just repackage it and make it such that you didn't have to use AWS for the servers? Their goal is to make game devs go to AWS, so this makes sense to me

What is this auto-scaling back end system about? How does it work? Does it just launch more nodes in a cluster or does it actually expand the VM that you are running in like expanding an OVZ container.

AWS autoscaling is service that can be used to scale applications based on different metrics, one being CPU load and another is ELB traffic. I'm sure there is probably more options but the idea is it scales up and down depending on the policies put in place. It'll launch either VMs or containers, which is really how you design the autoscaling configuration.

The thing I find weird about this is how Lumberjack is not compatible with any of Amazon's own devices. I would have expected their engine to support Fire tablets and Fire TV, at least.

That support should be coming. As far as I heard, they're trying to create one cross platform gaming ecosystem based on their services/platforms.

From the FAQ: "Mobile support for iOS and Android devices is coming soon, along with additional support for Mac and Linux."

> Peer attempted old style (potentially vulnerable) handshake. (Error code: ssl_error_unsafe_negotiation)

I'm unable to connect there from mobile and desktop Firefox.

It's about time we'll have some choice and better competition after Unity3d basically dominated the market.

AWS integration sounds like a vendor lock-in to me.

Other than that, what value does it offer on top of Cry Engine that it uses?

I hope their webpage isn't an indication of performance of EC2! I keep getting timeouts and errors :(

I wonder how suitable this is for 2D development. Anyone know?

On the main page Lumberyard is described as a 3D game engine, which is the case because it's based off of the 3D CryEngine game engine.

If they're to add 2D support, it'll probably be a while. And it'll likely be something built using the 3D technology, unless they want to put in a lot of work to optimize for a 2D use.

How does the automatic lag compensation work?

Not even going to try it on principle. Amazon is a big tentacled octopus thats tightening its grasp over any and every area it can. Lets leave Amazon for ecommerce and AWS.

FYI Microsoft.

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

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