4 ms·
One thing that gets me is how there hasn't really been a language made solely for gameplay logic.. Almost every other domain has its specialized language: SQL,
by Razengan 1y ago
One thing that gets me is how there hasn't really been a language made solely for gameplay logic..
Almost every other domain has its specialized language: SQL, Julia, even HTML/CSS/JS.. but game developers still have to trundle on with general purpose languages invented 500 years ago by people who had nothing to do with games.
- krapp 1y agoGame development and game design are completely separate domains. Game development can be generalized to algorithms and languages targeted to specific processors and architectures because it's a subset of programming and computer science. You can't have a DSL for design because the domain is the human mind. The design of a game like Undertale has absolutely nothing to do with the language used to develop it. Unless you're talking about things like modelling and UV unwrapping and the like, but even then I don't see what benefit a separate language would provide.
- Razengan 1y agoI mean coding gameplay logic. The game engine can remain in C/++ or whatever. Gameplay and game mechanics are fairly different from making other types of programs. Things like stats, buffs/debuffs, conditions, and their dependencies on each other. It's all sort of a vague middle ground between typed vs untyped, static vs dynamic, inheritance vs composition, sequential vs asynchronous, and other oddities that make it distinct from other domains. > You can't have a DSL for design because the domain is the human mind. The design of a game like Undertale has absolutely nothing to do with the language used to develop it. But what if coding could correspond almost 1:1 to the design? I've been attempting some of it here: https://github.com/InvadingOctopus/comedot https://github.com/InvadingOctopus/comedot with stuff like abstracting the idea of "Actions" that could be anything from a verb like "Look at" in a text-based adventure, to clicking on spells/weapons buttons in a turn-based strategy game, or a Dash move in a platformer etc. Fantasizing about elevating those concepts to being core keywords in a hypothetical language is my equivalent of counting sheep to fall asleep :)
- zehaeva 1y agoIsn't this basically what Jonathan Blow is trying to do with his "new" programming language, Jai?
- Razengan 1y agoIsn't Jai still mostly a C-like, with manual memory management and other archaic rituals? See, SQL for example don't care about the hardware or the internals of the database it runs on, why couldn't we have something like that for gameplay?
- Luc 1y agoAre you aware of https://machinations.io/ https://machinations.io/ ?
- zovirl 1y agoI agree there aren't very many. I can think of PuzzleScript, Unreal Blueprints, and Machinations (mentioned elsewhere in this thread). Perhaps this dearth is why Blueprints got so popular? Honorable mentions might go to PICO-8's flavor of Lua (C-like but clearly designed to create a specific type of game and have a specific developer experience) and Excel (used for developing & balancing game mechanics, but usually replaced in the final product).
- Raph_Koster 1y agoTowards the end of the article I mention "some of us have been working out the rule set for how you can link loops into a larger network of problems for literally over twenty years." That is referencing the "game grammar" effort undertaken by myself, Dan Cook, Stephane Bura, Joris Dormans, and many others. It is very specifically about arriving at a notation system for gameplay logic. The original talk from 2005 is here: https://www.raphkoster.com/games/presentations/a-grammar-of-gameplay/ https://www.raphkoster.com/games/presentations/a-grammar-of-... The principles in this talk went on to be used by the field of computational modeling of games, AI game generators, and also used in training AI game players.