9 ms·
Or they might be just creating a Yet Another Language precisely because they are luminaries of functional programming. Those often tend to chase a yet another u
by illiarian 4y ago
Or they might be just creating a Yet Another Language precisely because they are luminaries of functional programming. Those often tend to chase a yet another unattainable dream of "the one true functional language".
When you type the words "the really know what they are doing" when talking about a language for game programming, I would expect people who know about game programming first, and about language design second.
There's a reason C/C++ and even C# are the go to languages for game programming, and not Haskell.
For example, the only presentation we've seen so far literally talks about Yet Another Language without mentioning a single problem it solves for game programming.
- ClimaxGravely 4y agoC/C++/C# are indeed often used for game programming but when it comes to gameplay logic scripting there's a lot more options. Lua, blueprint, lisp, angelscript, unity's graph language etc..
- paulddraper 4y agoYeah, Lua is super common. Not exactly sure why, but it really is.
- codebje 4y agoLua is super common because it's super easy to embed into a C(++) project.
- Yoric 4y agoIf I remember correctly, one of the main original reasons was that it was super easy to embed.
- paulddraper 4y agoIsn't that true of Python as well?
- camgunz 4y agoLong ago I evaluated a few scripting languages to add to a Doom engine, I think I considered Ruby, Lua, Python, JavaScript, and Squirrel. I ended up choosing Lua because: - easy to embed - good ecosystem (in particular needed Lua GObject Introspection for pangocairo) - usable from C (not just C++) - not white space sensitive - skills translate to programming in the large - it's fast A lot of games let you write little snippets of code or what have you in a console or text box. Python is really bad at handling that because of its whitespace sensitivity. It's also the slowest popular language by far.
- pbhjpbhj 4y agoAs a non-programmer: when you say slowest, do you mean most verbose? Or, most runtime overhead? Or, something else?
- camgunz 4y agoRuntime; there are things you can do, but generally Python takes more time and memory to do things than other languages/platforms. It got better in 3.11 but AFAIK it's still the slowest.
- piva00 4y agoSlowest in runtime performance I'd guess as the CPython runtime isn't really known for its performance. Other projects such as PyPy implement a much faster interpreter/JIT compiler but there are some compatibility quirks to use them.
- 4y ago
- ClimaxGravely 4y agoI think that's definitely the reason from my talks with the engine programmers who added lua support to our bespoke engines. Lua binding is quite easy.
- JonChesterfield 4y agoIt's ridiculously easy to code in. Lua started out life as a simple language for extending larger projects and then repeatedly broke backwards compatibility to make the language simpler. For example it's lexically scoped now but it wasn't to begin with. Contrast with python, which started out life as a simple beginner friendly language, then added lots of complexity, then had the totally botched transition from 2.7 to 3 and is now growing a static type system. Lua is also very easy to embed in other systems. Like sqlite.c levels of easy to embed.
- munificent 4y agoA few reasons: 1. Extremely permissive license. 2. Very simple embedding API. 3. Fairly efficient for a scripting language. 4. Simple and relatively easy to learn.
- chinaman425 4y ago[dead]
- AceJohnny2 4y agoSure, but my point was that some such YALs are just overgrown DSLs (cough UnrealScript) that find themselves facing the same kind of design problems that have been solved decades before by more forward-thinkers. In this case, these are good designers with decades of deep experience, and who I expect to have solved many design issues already.
- waboremo 4y agoWhy would Epic, owners of the primary reason why C++ is gravitated towards in game programming, spend time and money creating Yet Another Language just to satiate luminaries?
- lmm 4y agoThe cachet they gain from having those luminaries and keeping them satisfied might outweigh the costs.
- waboremo 4y agoGenerally speaking that's true. But I'm not entirely sure many luminaries would be satisfied being relegated to being the "Fortnite language". Surely they have larger goals here and it's why Epic is bothering when so much of their ecosystem relies on C++ currently.
- ClimaxGravely 4y agoI suspect they intend to roll this out the unreal engine some time in the future. Many people have been asking for a text based approach to game scripting (often it's ex-unity people asking for C# support. Perhaps fortnight is kind of a test.
- illiarian 4y agoHubris. "Look at us, we have these LANGUAGE EXPERTS working for us". As a result the only presentations these people do are about how great their new Yet Another Language toy is. Compare this to, say, Jonathan Blow talking about design decisions for his language: https://www.youtube.com/watch?v=uZgbKrDEzAs https://www.youtube.com/watch?v=uZgbKrDEzAs
- waboremo 4y agoI'm confused by this example, Jonathan Blow sounds identical to LANGUAGE EXPERTS here. If anything the difference stems from humor, but they're both doing the exact same thing - arguing Yet Another Language is better.
- munificent 4y ago> I would expect people who know about game programming first, and about language design second. Well, one of the authors is Tim Sweeney. > There's a reason C/C++ and even C# are the go to languages for game programming, and not Haskell. It's interesting that you list those because none of them were originally designed for games. Well, C++ sort of was if you consider network simulations to be game-like. I share your concern that this language looks like they packed a lot of functional programming candy in it and maybe not so much "actually reasonable for building a game" features. But I think you're also underselling the expertise of the people involved. Also, my impression is that Verse is mostly intended as a game server language. I don't think you'll be writing physics or rendering in Verse. From that angle, a heavy focus on immutability, software transactions, etc. can make a lot of sense: it's trying to make it tractiable to author very large distributed systems with a lot of mutable state.
- illiarian 4y ago> It's interesting that you list those because none of them were originally designed for games. And yet, people are using those. So, an introduction of a "programming language for game programming" should at least have: - what are the challenges in game programming - how they are solved or not solved by existing languages, and why people are using them - what exactly this new language is bringing to the table, and how it solves those problems What we've seen so far "loom at this amazing language that solves everything! Let's look at syntax and types". > But I think you're also underselling the expertise of the people involved. Or people are overselling the expertise and are blinded by the bright names > Also, my impression is that Verse is mostly intended as a game server language. See, you only have impressions and don't thinks, because there's really nothing about what the language really does, and what problems it aims to solve. Beyond some poorly executed marketing fluff.
- munificent 4y ago> And yet, people are using those. And yet, none of those languages were pitched with a clear value proposition for games when they launched.
- kirankp89 4y agoThere are some very obvious influences from Skookum script in Verse and that was designed for gameplay programming. I’d be surprised if Verse turned out to be a poor fit for games.
- astrange 4y agoC# is one of the most popular game languages and I wouldn't say it's particularly fit for it. Not that it's bad, it just doesn't have any game or simulation specific features, manual memory management, etc.
- pharmakom 4y agoC# is uniquely good at being a GC language that can easily interop with C/C++ code whilst also being quite performant itself. This is why it’s used for so many game engines.