6 ms·
This is seriously cool but I really think we are losing our way in game development. We used to create DSLs to make scripting of games simpler and less error p
by dazzawazza 2y ago
This is seriously cool but I really think we are losing our way in game development.
We used to create DSLs to make scripting of games simpler and less error prone... so that coders/designers could write Scripts/AI in a language better suited to the problems they face. It was sort of a side issue that is was a sandbox although that was really useful for lots of reasons.
Now we seem to be creating more and more complex toolchains while complaining that game development is getting more and more expensive. We're not solving the correct problems at all.
Oh well.
- johnnyanmac 2y agoEven if it's c++ to c++, the goal of scripting at the end of the day is quick iteration. What is "quick iteration" for scripting will depend on the scriptor. This article is clearly targeted at engineers rolling their own engine, so that audience may find it beneficial keep everything in one language if they are already comfortable with it. As long as the core engine doesn't need to re-compile every little change, it's a win.
- fwsgonzo 2y agoYeah, I can confirm that the iteration speed is fast. I consider the scripting portion a solved problem right now, having used it so long. Gamedev is so many other things though, and practically every corner of the engine has to have convenience functionality in order to reduce the overall workload. It's rough for gamedevs right now, I feel like.
- johnnyanmac 2y agoIMO the big tools are convinent enough to use. But the rampup time to really understand how the engine ticks is dreadful, because documentation drops off a cliff once you want to do more than animate a few dozen actors in a level (and tbf, sometimes that is indeed enough to ship). The other half of the problem is asset production time. But no game engine is really solving that problem. As you'll discover in that domain, the art community is a lot more protective of their techniques and pipelines than programming. Even more so if looking for game ready asset production. Same issue, different cause.
- nxobject 2y agoThere is one benefit to jumping through these hoops to use C++ as a scripting language (how much of a benefit it is, well, that's your judgment): you get to reuse libraries, as the author notes.
- pjc50 2y agoModern AAA game development is suffering a chronic mismanagement problem. Like fimmaking. Poor creative vision, not communicated clearly to those executing it; endless rewrites and rework; lack of originality; poor treatment of staff leading to poor morale; and churning away in the background, the culture war. Technically the only interesting challenge is "how do we get off Unity?"
- chii 2y ago> a chronic mismanagement problem. Like fimmaking. the mismanagement stems from the fact that it is costing too much from the onset, and "management" wants to ensure that the investment makes a good enough return to justify the high cost. Therefore, they dictate all of the risks have to be removed - such as not going for a risky new brand, but make a sequel. They want realistic graphics because it's more commercially viable - going for a different or uncommon aesthetic means taking risks. I would argue all of the problems in AAA development stems from this fact. it is also why indie games can be so cheap yet so successful. Not because indies are better (tho they are- at least more passionate if nothing else), but because indies are capable of taking risks to push the edge and make something new and untested. It's the same as films - creative endeavours cannot have their risks managed away. It is inherent, and there's a large chance of failure even if the team has done their best.
- kevindamm 2y agoThe risk aversion in product is not a new phenomenon, though. Bigger producers have been following that track since at least the 90s. Adherence to brand, and even more so to basic game genres and mechanics, has been an issue complained about by devs at any big enough studio for decades. What changed, I think, is all of the development studios being bought up by large producers. But, then again, I see steam as being a great counterforce on this, and the ease of releasing on web or mobile has been a boon for indie devs too. So maybe that hasn't changed that much. The technology has advanced to where you can spend blockbuster budgets and get nearly film-quality results (not nearly possible in the cartridge and CD days). Meanwhile the price per AAA title has stayed relatively fixed at 50-60 USD for that same range of time, so production houses have had to try being appealing to ever-larger audiences. Fortunately, many people continue playing these games into their 30s and 40s so the market grows on its own too. I'm trying to say you're right about the risk aversion being a big part of the industry's problems but that's been an issue for a while, it has gotten terribly enhanced with the growth of the industry. Now I wonder which is worse.. extracting money one quarter a time with punishingly difficult timing tests, or extracting money via cosmetics that have no actual game impact but are marketed very compellingly.
- kgabis 2y agoShameless plug, but some time ago I've created a language where the main design goal was for it to be easy to use and embed: https://github.com/kgabis/ape https://github.com/kgabis/ape.
- nox101 2y agoSomething I want is a sandboxed place to run USER scripts in game. I trust the game's creators to not hack my machine with their DSL (else I wouldn't be running their game). I don't trust random drive by game mod to the same level. I'd love not to have to trust user additions, but currently I do have to trust them or go without. I run a few games that takes C# plugins. The games have a big warning that they aren't doing anything to prevent my machine getting hacked, personal files uploaded to random servers, etc....
- maccard 2y agoYou want luau - https://luau-lang.org/ https://luau-lang.org/ It’s what Roblox uses
- JonChesterfield 2y agoOr lua itself
- deleted 2y ago[deleted]
- maccard 2y agoLua is a great language for embedding - the difference between lua and luau is that luau gives you a restricted sandbox for your scripts, meaning you can have user generated scripts - like Roblox, UEFN, that sort of thing
- slaymaker1907 2y agoI think wasm would work pretty well given that sandboxing is essential for browser security. However, the hard part is having a functional permissions system that isn’t so strict that actually malicious plugins can slip through due to every plugin needing a ton of permissions for basic functionality.
- TulliusCicero 2y agoAAA game development has become more expensive because production values are incredibly high and there's a shitton of content. Compare a modern AAA game to a high quality game from the SNES era, it's obvious that the AAA game just has a shitton more stuff (though that doesn't necessarily mean it's a better game obviously).