The importance of making games during a game engine's development
team-nutshell.dev
team-nutshell.dev
Interesting. That sounds very weird. Do you have any example you could point at?
Having a goal makes learning so much easier
Unity is no longer a games engine company, it is an ad company. It is taking surprisingly long for people to see it this way.
It was really sad to me, because (possibly naively) I saw joining Unity as a potential opportunity to pivot more closely to game engine programming (from web), but that was an uphill battle given that the resource allocation was massively in the opposite direction.
0: https://blog.unity.com/games/introducing-unitys-latest-sampl...
1: https://80.lv/articles/unity-stopped-the-production-of-its-s...
>Unity is no longer a games engine company, it is an ad company. It is taking surprisingly long for people to see it this way.
to be honest, I wasn't aware half of unity's revenues were ads until I worked there. Online gaming discourse has such tunnel vision for AAA console games that it is very easy to miss how over half of gaming revenue is mobile, which is where Unity rules in terms of market share.
On a lot of those, the engine is more of a bare-bones renderer: only one Scene is really used, all entity instantiation and level loading is done by a user-land script. Some physics/collision was very custom too. Editors were also almost always custom, on larger games you write custom tooling, mid-sized ones preferred packages from the asset store.
Perhaps things are different now. Character movement was 100% offloaded to packages, but now there are more capable systems (I haven't kept up). But I still see a lot of chatter about how to do this kind of thing in forums, etc. Anyway, that's what I remember seeing, so: IME and YMMV, of course.
hehe, no. Things are pretty much the same. Source: I'm working with Unity daily.
that's correct. As the saying goes, it's easier to start making a game in Unity, but it's easier to finish it in Unreal. Most games in Unity are pretty small, or unfinished.
By that reasoning, aren't these games the majority of the market and therefore the engine is a good fit for it - starting and working on arguably smaller indie projects and such, as opposed to some hypothetical huge game, of which there are decidedly few? I think that's why Godot is also a pretty good engine, even aside from it being open source, even if the features aren't all that mature - it's easy to iterate in it, even faster than in Unity.
I found some stats: https://steamdb.info/tech/
Unity has 42160 games.
Unreal has 11701 games.
GameMaker has 4498 games.
RPGMaker has 2939 games.
PyGame has 2273 games.
RenPy has 2213 games.
Godot has 1170 games.
All the other engines together have around 6000 games.it's the Pareto principle, I suppose. There are tons, tons, tons more small games than large ones, but the large ones take the lion's share of the revenue. So it depends on how you approach games.
It doesn't mean it's a good example of how to design a programming language.
https://www.mobygames.com/person/96245/juan-linietsky/credit...
https://www.mobygames.com/person/96244/ariel-manzur/
There was also Dog Mendoça in the early days:
Effectively they should argusblybe built separately with the tool designed to make editing easy and flexible and extensible and then have it generate/bake optimal data for the performabt but l ss flexible engine
A concrete example might be the difference between Photoshop and textures in a game. go watch almost any texture artist and they'll have 89 layers in Photoshop but it will all get baked down into just An rgba texture. Photoshop needs to support those layers, layer masks, compositing modes, blend options. The game just needs in rgba8unorm texture.
note:I shouldn't have to say this but because some pedantic person will take issue with this example. I get it's an imperfect example. The point is tools and game engines have different needs. The point is not the specific examole of layers. Another example might be that Photoshop virtualizes storage since it was designed to edit gigiabyte images on machines with 4-8 meg of ram. Game engines, even if a few can stream large images, they are generally not dessigned to edit them
Game engines need to offer sometimes quite complex graphical user interfaces too. Think of menu, windowing systems, dialog boxes and a compositor style approach to drawing them. If you're going that far you might as well build your editor in it.
Scientific version with nuance of why it might be a bad practice in cases: https://www.computer.org/csdl/magazine/so/2006/03/s3005/13rR...
But it didn't start like that. It only started as a tool I could use to deliver client projects, as I was trying to become a freelance for interactive 3D scenes for the web.
Project after project ( some examples here: https://polygon-lab.com/ ), I could improve Polygonjs. Then I found clients who would be interested enough to buy licenses, and would give valuable feedback which would help the project grow even more.
And a few clients asking for not just interactive sites, but also games. This pushed Polygonjs further, and after several games released, it definitely qualifies as a game engine.
So this is generally an advice I give to people who want to become freelancers. Build a tool that solves a problem in your space, as this gives you an edge, and you'll also get the chance to confront that tool to reality, which will help it - and you - grow. This becomes a virtuous circle very quickly.
All that to said, there is no magic bullet. Maybe some functional and completely siloed modules may give more flexibility to game devs, but they will work out the glue.
An absolute truth, for instance, is c++ and similar being toxic for humanity because of their syntax complexity.
I am trying this approach right now with the functional clojure 2d engine 'gdl'https://github.com/damn/gdl , which just 'organically' evolved out of developing https://github.com/damn/Cyber-Dungeon-Quest , an action RPG.
Which means that all features have been created by an actual need.
It all comes down to the ability to manage scope. You can take a lot of shortcuts and still come up with a cool, unique game engine. Browser development, on the other hand, has been hijacked by Google. Even if you hire 50 people, all you can do is fork Chromium and add some bells and whistles.
As a result, making a game engine is both simpler and much more creatively rewarding. Of course, if you're having too much fun, you can always kill both of these advantages and try to develop a UE5-killer. But that's on you.
Far too many open source game engines don't seem to realize this.