News for hackers. Stuff that matters.
Re:Improbable and Epic Games establish $25M fund for ‘more o... by shmerl on Friday January 11, 2019 @01:02AM (#18881344)
Collaboration solves this. Instead of reinventing the wheel, collaborating on the engine can pool resources. This works in other cases, so why not with engines? It's not engines that are sold, but games. Having good open engine doesn't prevent developers from selling games made with them.

> There's probably less than a few thousand people on earth with the level of skill and expertise to build something at the scale of UE4.

That's really bunk. I mean "only elite can do it" it claim. Sure, it's not something you can create in one day, but it's not something that out of reach either, especially when people are collaborating on it.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by aphextron on Friday January 11, 2019 @01:08AM (#18881370)
>That's really bunk. I mean "only elite can do it" it claim. Sure, it's not something you can create in one day, but it's not something that out of reach either, especially when people are collaborating on it.

The graveyard of hundreds of abandoned open source game engines begs to disagree with you. I agree that it seems absurd, but you really can't underestimate the amount of man hours put into these things. Unreal has been under constant development for over 20 years.

It's the same as flight simulation. Why is there only one viable flight simulator (X-Plane) on the market? It's because that kind of coding is simply beyond 99% of developers, and it takes a huge well funded and focused team to make something state of the art.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by shmerl on Friday January 11, 2019 @01:11AM (#18881380)
Same claims have been made about codecs. "Only elite can do it", "you can't make it open" and etc. Yet, we have great open collaborative projects today for state of the art video and audio codecs. So it's not a technical issue.
Re:Improbable and Epic Games establish $25M fund for ‘more o... by ulasbilgen on Friday January 11, 2019 @01:45AM (#18881490)
There’re are some difference between a codec or OS with a game engine. One is the user base. I think there’re simply not enough game developers to extensively use the open source engines, every single computer needs an OS and in most cases needs a codec. But not everyone is a game developer. Another one is requirements I guess. For OS and codecs, I think the requirements are much more defined and manageable, but for a game engine the user uses it to create something else, hence the capabilities needed from the game engine may change wildly per project.
Re:Improbable and Epic Games establish $25M fund for ‘more o... by bsder on Friday January 11, 2019 @01:53AM (#18881520)
And yet those codecs still aren't in hardware devices or widely implemented in all browsers.

I wouldn't cite open source codecs as a success story ...

A GUI toolkit is probably more on point and of the correct scale, and those also demonstrate that without significant backing from somewhere, progress doesn't get made at that level of complexity.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by dkersten on Friday January 11, 2019 @08:38AM (#18883468)
What about the hundreds of thousands of abandoned open source web apps/tools/libraries? I guess only a small few elite are able to write any functionining code at all, then?

A commercial quality game engine is a huge project, and as such, requires a huge projects worth of time and effort to build. Same as any other huge software project (which all have countless abandoned open source attempts). Remember that most open source projects start of tiny (one developer is common, certainly very few start off with more than a handful) and work on it in their free time, while commercial teams like Unity have hundreds of peolpe working on it full time.

The reason they are abandoned is typicaally that 1) the developers, who are doing it in their spare time, don’t have the time anymore; or 2) they get frustrated at the amount of work/lack of contributors/lack of interest and stop working on it; or 3) they simply lose interest and work on something else.

Its not lack of ability, its lack of time/motivation/interest to keep working on it for many, many years.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by AnIdiotOnTheNet on Friday January 11, 2019 @11:36AM (#18884645)
There are hundreds of abandoned open source anything. There's no barrier to entry and and no incentives to keep working on things when you're no longer interested in doing so. It doesn't mean anything.
Re:Improbable and Epic Games establish $25M fund for ‘more o... by lasagnaphil on Friday January 11, 2019 @02:12AM (#18881581)
From what I've heard and experienced, you need at least the following knowledge to create a good game engine:

- Understanding of modern CPUs / GPUs and the capabilities/shortcomings they have

- Understanding the behaviors and quirks of the OS

- Familiarity with multicore programming

- Skillful memory management (such as making your data structures less prone to cache invalidations)

- Mastery of a low-level language (C++, Rust, whatever)

- Familiarity with build systems (CMake, SCons, etc, ... or sometimes you might have to roll your own)

Already I could see the number of contributors who would know all this stuff being pretty low. (I've dabbled a bit in graphics and made a simple OpenGL scene graph renderer and a fluid simulator, but I still don't feel like I'm competent enough...)

An engine is comprised of multiple components (Graphics, Sound, Physics, etc...). So you wouldn't need to know all of it, but contributors would need to have a clear grasp on at least one. So for each component, you would need...

- Entity System: You need a universal way to handle game entities. Implementing it efficiently requires a good knowledge of computer systems, because you need to think carefully about how you store data in the memory.

- Job System: You need a system to execute various tasks (rendering, physics, game logic, ...) simultaneously on multiple processors, so that a single game frame can finish in less than 16 milliseconds. Implementing this would require some knowledge in concurrency as well as OS concepts.

- Resource Management: You need a way to store and keep track of the game's various data stored in files, such as images, models, sounds, game objects and their parameters, settings, etc. You need to implement efficient serialization and compression for this.

- Graphics: Mastery of a graphics API (OpenGL, DirectX, Vulkan), and understanding its various patterns and shortcomings. You also need knowledge in how rendering works (which also requires some math), and nowadays a PBRT renderer (https://www.pbrt.org/) is basically a minimum requirement for modern 3D game engines.

- Physics: Lots of math and physics (Linear Algebra, Differential equations, Mechanics, etc.), and also optimization skills like assembly and SIMD (speed is critical in this area!). Fortunately many people just use already-built middleware such as Havok or Bullet..

- Sound: This is actually the most neglected part in game engine development, and it is hard to find good resources on this.

I think the people who would have the knowledge to build a game engine would be already busy working on other stuff, such as working for an AAA gamedev company (which sometimes does a lot of crunch, so they might not have enough time for open-source stuff), or a proprietary game engine company like Unity or Unreal. But I still see some hope around the edges. From what I've seen, Handmade Hero (https://handmadehero.org/, which is a livestream of making a game engine from scratch, accompanied with various education materials) is the most impressive. It tries to teach those skills needed to make a game engine to interested programmers, which I think is a crucial first step in encouraging open-source gamedev.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by AHTERIX5000 on Friday January 11, 2019 @07:58AM (#18883217)
...and you need tools and editors to make the content for the engine in proper format. That is the "boring part" OSS projects usually lack since writing renderers and job systems is much more fun than fighting with inconsistencies in scene formats or writing custom importers.
Re:Improbable and Epic Games establish $25M fund for ‘more o... by dkersten on Friday January 11, 2019 @08:41AM (#18883487)
Creating a high quality game engine is by no means an easy task, but you don’t need each contributor to know all of these things and you can use existing libraries for a lot of them. A lot of the things you mention have good quality MIT-licensed (or similarly liberal license) libraries you can use to save time. Its still going to be hard, but its not thaaaaat inaccessible.

Some examples: for entitiy systems, EnTT is amazing. For a job system you’ve got stuff like cpp-taskflow, for physics there’s bullet, for graphics there’s bgfx or full blown renderers. Sure, these won’t solve all of your needs, but they’re a good starting point that frees you from having to do a lot of stuff yourself.

Re:Improbable and Epic Games establish $25M fund for ‘more o... by bsder on Friday January 11, 2019 @01:51AM (#18881511)
> That's really bunk. I mean "only elite can do it" it claim. Sure, it's not something you can create in one day, but it's not something that out of reach either, especially when people are collaborating on it.

You need to be damn near Johnathan Blow levels of skill and perseverance to create a decent game engine.

Maybe you wouldn't classify him as an "elite", but I sure would.