7 ms·
what do you think about this take by Jonathan Blow about scripting languages in gamedev: https://www.youtube.com/watch?v=y2Wmz15aXk0 https://www.youtube.com/wat
by lyu07282 2y ago
what do you think about this take by Jonathan Blow about scripting languages in gamedev: https://www.youtube.com/watch?v=y2Wmz15aXk0 https://www.youtube.com/watch?v=y2Wmz15aXk0
- ralfd 2y agoSummary of the video please?
- lyu07282 2y agoJonathan Blow criticizes the use of scripting languages in modern game development as outdated and inefficient, pointing out that they slow down performance, are error-prone, and complicate the development process with extensive engine integration needs. He notes that while initially appealing for allowing quick iterations and non-programmer accessibility, scripting languages often result in poor quality, bug-ridden code that requires significant oversight from professional programmers. Advocating for robust, compiled languages like C++, Blow dismisses scripting languages as a failed experiment and praises the shift towards more constrained and user-friendly visual scripting systems in platforms like Unreal and Unity. (i don't mean to suggest that i agree with him, I just was curious)
- IshKebab 2y agoInteresting. I feel like his opinion makes sense for first party code, but what if you want to support mods? I don't really have time to develop them anymore but I did a couple in QuakeC back in the day (I'm old) and really enjoyed it. IIRC it had lots of domain specific niceties like native vector types. One slightly hilarious thing is any loop that looped more than 100k times was killed with an infinite loop error. Actually saved me a couple of times. I feel like if there was a nice modern statically typed language that was easy to embed I would go with that. Something like Dart maybe. But I don't think that's easy to integrate.
- wudangmonk 2y agoWas a lot of the functionality of Quake done in QuakeC or was that scripting language added for the sole purpose of allowing for mods to the game?. I think scripting languages are a very bad idea for the core functionality of a game and I see no benefit to them. If its done after you have nailed down all your core mechanics and just want to add mod support for things such as player created maps then I think that's fine. That means that a scripting language should only be added towards the very end of a project. Adding it towards the beginning when you don't even know your core mechanics yet seems crazy to me since I see no benefit to it.
- IshKebab 2y agoThe engine was all C. QuakeC was used to script the game logic - how weapons behave, doors open, items move around, etc. It was reasonably powerful. You could make grappling hooks, proximity mines, etc. I guess the core mechanics of Quake were very obvious. It wasn't a very innovative game in that sense; basically identical to Doom but with way fancier graphics, controls and so on.
- int_19h 2y agoQuakeC was powerful enough to create mods like Quess (https://www.youtube.com/watch?v=TD2Qz_hH2U4 https://www.youtube.com/watch?v=TD2Qz_hH2U4) and Quake Rally (https://www.youtube.com/watch?v=Fg0hTSLE-NM https://www.youtube.com/watch?v=Fg0hTSLE-NM). Although the latter was really pushing the limits of the engine. And lest we forget, Reaper Bot, the thing that made PvE deathmatch a reality. To this day I'm amazed that so much cool stuff was done in QuakeC despite the language not even having arrays...
- vitiral 2y agoNever made a game (want to!) but I would think that scripting language support would be downright fantastic for E2E testing.
- jasomill 2y agoThe .NET runtime[1] and C# compiler[2] are both pretty easy to embed. [1] https://learn.microsoft.com/en-us/dotnet/core/tutorials/netcore-hosting https://learn.microsoft.com/en-us/dotnet/core/tutorials/netc... [2] https://github.com/dotnet/roslyn/blob/main/docs/wiki/Scripting-API-Samples.md https://github.com/dotnet/roslyn/blob/main/docs/wiki/Scripti...
- hoten 2y agoPlay any Bethesda game and you understand his points about designing your games to be largely scripted by less experienced programmers is error proned. At the same time, the success of Bethesda games despite these bugs is an argument against it mattering all that much. Not to mention mods, which doesn't really require a scripting engine but 100% lowers the barrier to entry for community creations.
- vunuxodo 2y ago> success of Bethesda games despite these bugs Bethesda bugs are almost an endearing feature at this point. Weird stuff happening in the game for no discernible reason is part of the charm.
- bawolff 2y agoI feel like that is the same language design flamewar that has been going on for the last 40 years. The arguments are all the same, neither side is any closer to winning.
- slowhadoken 2y agoBlow is pompous. Lately he pretends to be a mentor but he’s still immature and insufferable.
- 201984 2y agoIs this a GPT summary? It reads kinda like one
- vitiral 2y agoIs every flat yet informative summary going to be accused of GPT now? And no, way too concise to be GPT imo
- wavemode 2y ago"accused" implies that it's a bad thing. I see nothing wrong with using AI for summarization. But I also see nothing wrong with someone wanting to know, as a general disclaimer, whether a given text was human- or AI-generated. The passage does read to me very much like GPT's college essay-like speech patterns.
- lyu07282 2y ago> And no, way too concise to be GPT imo That is funny, it was GPT4 over the video transcript
- vitiral 2y agodamnit
- bsder 2y agoUntil Blow open sources Jai, his opinions are mostly irrelevant.
- aodonnell2536 2y agoHow come? This doesn’t seem true to me, and your second clause reads like a non-sequitor
- bsder 2y agoBecause Johnathan Blow programs in Jai and his experience is talking about the tradeoff set with <technique X> when using Jai. Since we plebians can't use Jai, that tradeoff is irrelevant. For example, Jai has hot loading, IIRC (somebody please correct me if I'm wrong). The utility of an embedded scripting language is completely different if your tooling has really good support for hot loading of your engine implementation language. Furthermore, because we plebians can't use Jai, we can't verify anything said about it in context, either.
- frankjr 2y ago> Jai has hot loading It doesn't have any hot reloading capability out of the box.
- wsc981 2y agoI don't think so. He's shipped a few quality games. He can speak from experience. That's not to say I agree with all his opinions.
- tialaramex 2y agoJonathan Blow has shipped two games, Braid is very well liked and The Witness got more mixed opinions but certainly there aren't many people who think it's just terrible - more that it wasn't appealing for them. But two is a very small sample size, and the fact that The Witness annoyed more people isn't necessarily a great sign - given more time and money, Blow made a game he presumably liked better but others did not. Maybe Jon will like Jai very much when it's done. Is that enough? In some sense maybe. But why should anybody else care? In 2014 there weren't a lot of people doing this, maybe you'd look around and say "At least somebody is trying something". In 2024 there are plenty of programming languages to choose instead of C++ even if you specifically want to write video games. If you like roughly where Jai wants to be, no interesting ideas just do stuff we know works, there are even other languages in that space, including Odin and Zig.
- AnotherGoodName 2y agoEvery config file becomes something close to a scripting language at some point. Build files, video game maps, etc. Eg. You have a game with enemies spawning in some circumstance. The file that defines the level of the game now needs a bit of logic to specify that the enemy spawns given conditions. If you don't use a scripting language you'll have a field in that file that takes parameters for the conditions. Now do this 1000 times over for all the other little things you may want in the level. Pretty soon your file that defines the level is slowly becoming a shitty adhoc scripting language.