4 ms·
I wish game development wasn't so monolithic. You're either all in on Unity, or all in on Unreal, or all in on GoDot. They are designer forward, code later.
by swalsh 3y ago
I wish game development wasn't so monolithic. You're either all in on Unity, or all in on Unreal, or all in on GoDot. They are designer forward, code later. Each has a marketplace of sorts, but in my experience it's substandard.
Compare that to web development (different beast I know, but there's no reason gaming can't be more componentized). Web development is so simple these days because I spend most of my time gluing stuff together, and sanding the edges.
Game development has concepts like this, and I have no doubt I'll get replies showing me some nifty component system, or talk about how I just don't understand ECS etc, but they seem tacked on to a monolithic walled garden. There's something magical about "npm install x" and adding a whole feature to your app.
Maybe it's because "it's art" and game development is just a passion project.
- galleywest200 3y ago> Web development is so simple these days because I spend most of my time gluing stuff together, and sanding the edges. This does exist in the gaming industry, it is called "shovelware". "Shovelware" is when you just glue existing assets purchased for cheap and "shovel" them into a game for a quick buck. Usually not very complex games, low effort stories, etc. Also usually very cheap to download.
- a_cardboard_box 3y agoI assume the parent comment meant gluing parts of the game engine together like renderers and physics engines. You can make shovelware in a monolithic game engine.
- TheRoque 3y agoNo, it's not because it's art, it's because it's okay if all websites look the same, but regarding games, mostly 1 or 2 or its kind will survive, the others have to innovate or will be seen as sub-copies. On top of that, the complexity of making a game makes it so that it's more "coupled" to the hardware, so it's harder to generalize. If you want more component, then you can use the assets store, but at some point you will have to put in some work if you want your game to not be considered as a shovelware
- danjoredd 3y agoThe problem is, that making a 3D engine is extremely tough, and most 3D engines are completely proprietary as a result. There are plenty of 3D libraries that make 3D game development for small games easy, but when you compare a Python library next to a system that includes a 3D engine, a level editor, a file management system, and the ability to easily compile for different systems, its no contest for game companies. A fully-fledged development environment scales better for these multi-million dollar projects than a singular library. It's why in the 90s every game was mostly built on an engine specifically designed for that game, and in the 2000s they switched to prebuilt game engines. Saves a lot of time AND money.
- maccard 3y agoI fundamentally disagree about unreal being design first. What do you think the teams of programmers implement features in unreal games are doing?
- leecommamichael 3y agoPerhaps you're thinking of a particular kind of game-dev as being monolithic? Many top-grossing studios/titles do not use the engines you've listed. What do you mean by monolithic?
- JamesLeonis 3y agoYou better understand the value proposition of game engines than you think. Spin your view a little: NPM is your web development engine. Somebody had to write all of that code that undergirds NPM as an engine as well as the particular library you want to install. Game engines are no different. They manage a bunch of (mostly boilerplate) game development components (sound, textures, rendering, animation, menus, collisions, physics, resource I/O, etc etc) so game developers can spend time "gluing stuff together, and sanding the edges" of their game. Monolithic engines like Unity have a plugin system for installing 3rd party libraries, and the engine tooling itself acts as its own level, effect, cutscene (etc etc) editor. At the end of the day games are just like any other programming task. You have a limited amount of effort/time/budget, so you have to make decisions about where you want to optimize. Game engines, even monolithic ones like Godot and Unity (and, really, every 3rd party game development tool) are all designed to let you focus effort/time/budget on the unique aspects of your game.
- omoikane 3y ago> I wish game development wasn't so monolithic. If you are thinking about why the game engines aren't broken down into finer reusable components (e.g. one module for rendering and another for physics, etc.), it probably has to do with how these things are tightly integrated, and how every game engine has a different design philosophy on how the world should be organized. The different organizations might also mean that you have to design the games to fit a specific game engine, which is unfortunate. Maybe you are lamenting why the marketplaces or asset stores are so closely tied to the game engines? For some plugins, they have to be tailored to the specific engines. But for arts and sounds, there are many free and paid options to choose from, although not necessarily of the same quality and cost as one might get from the asset stores that are sponsored by the game engines (e.g. Unreal Megascans). There are still various tools associated with game development (e.g. Blender for 3D, your favorite text editor for scripting), and those aren't tied to specific game engines.
- raytopia 3y agoIt's not as monolithic as you'd think. There are lots of engines out there but their communities aren't very vocal compared to Unity, Unreal, and especially Godot's community. Take a look at: https://itch.io/game-development/engines/most-projects https://itch.io/game-development/engines/most-projects And https://www.gamedeveloper.com/blogs/the-generous-space-of-alternative-game-engines-a-curation- https://www.gamedeveloper.com/blogs/the-generous-space-of-al... If you look at both of these you'll see just how many engines there are and neither of these cover everything. There are plenty of engines popular in the Python community that no one outside of it are aware of. Such as Arcade [0], Python-Tcod [1], Ursina [2], UPBGE [3], and Panda3D [4]. But based on your description you'd really like https://gdevelop.io/ https://gdevelop.io/. It embraces exactly what you're describing where you can build a game but just installing entire features others have made and put online into your game. [0] Beginner friendly 2D library: [1] Rougelike: https://python-tcod.readthedocs.io/en/latest/ https://python-tcod.readthedocs.io/en/latest/ [2] Beginner friendly 3D engine (built on Panda3D): https://www.ursinaengine.org/ https://www.ursinaengine.org/ [3] Blender Game Engine Fork: https://upbge.org/ https://upbge.org/ [4] Highly flexible code first 3D engine: https://panda3d.org/ https://panda3d.org/