26 comments

[ 50.4 ms ] story [ 1587 ms ] thread
Holy cow the diversity of skill sets required to do this is insane. I'll be very impressed at any Devs who takes this on solo.
A programming language could be as simple as a domain-specific-language done in a JSON format. It could just abstract away a bunch of thing, and most of the logic would just be in your "game engine".
Easy, create a DSL that represents dialogue in a visual novel style game. Add some branching, looping, and variables, maybe some labels for jumping to and you’re good. Tada! You’ve basically reinvented Ren’Py.
I've been wondering about this for some time, that how there really isn't a language that's made from the ground up just for coding gameplay logic.

Like we have SQL for databases, Julia etc for maths etc, but gamedevs still have to plod along in general-purpose languages with archaic conventions established 50 years ago by people who had nothing to do with games.

I'd love something with the syntax of GDScript and the features of Swift, with special constructs just for gameplay logic, which is often a hybrid between inheritance and composition, static and dynamic, declarative and imperative.

I've been toying with what would be the ideal syntax (for me), but I don't have the brains to actually make a language :')

Seems ideal for those grumbling about Advent of Code’s shortened schedule this year.
the time frame matches too, 14 to 20 gives you one day of rest after the last AoC, and then three more days to buy presents before Christmas that you forgot to co :)
I have been doing something minor - not full language - but I am working on a couple DSLs for my game engine. The games themselves are interpreted by my engine console - then transpiled to webgl and JavaScript.

The DSL is for cutscenes and scripting dialogues and movements and transitions.

The idea was to have a screenplay like language that would run in my game engine so I can write the scenes like a script instead of like code.

Then I am using a LUA like subset for the core game logic.

I don’t think I would want to have the entire thing written in a custom language though, as that seems unnecessary

Oh my God, someone has discovered my kryptonite.
I’m going to blog about whatever I end up building. I hope some of you will join me :)
lol, I spent 3 years coding a game programming language...
Any recommendations on books / resources to read in order to participate as a beginner (language creator that is..., not beginner with programming games)?
Heh, I guess you could read my two books, "Crafting Interpreters", and "Game Programming Patterns". :)
What is a minimal-ish programming language that could be used to express some interesting class of games?

It's easy to think of pathologically trivially useless "languages" that could "make a game". E.g. the single instruction language where the instruction P is defined to mean "execute a game of pong". Or a zero instruction language where the empty program is defined to mean "execute a game of pong".

Also easy to think of existing minimal programming languages that could technically be used to implement games. E.g. brainfuck is a beautifully minimal language with only 8 instructions, supporting character IO - so you could make a text based adventure game with it, but this would be unpleasant and there isn't anything about brainfuck that makes it suited to game dev.

Another idea could be to have a non Turing complete language where you declare data for entities etc to be executed by some game engine/runtime. E.g. it might be possible to define a language for declaring data & entities to express a few different but similar games (e.g. spanning pong --- breakout, or one specialised for simple card games, or so on).

I think building an interpreted language with a basic but usable feature set - arrays, structs, expressions, control flow, functions etc. - is totally doable in a couple of days if you dont spend a lot of time ruminating on syntax and semantics.
a variation of lisp is SUPER easy to do, give it some primitives to graphics/sounds/inputs and away you go
If I had a spare week that I wanted to spend on this game jam, I would be making a dynamically typed language and an interactive fiction game.

Dynamic types make it much easier to whip up a little language and interpreter. Interactive fiction doesn't have any difficult performance requirements so even a very slow interpreter is still probably fast enough. And IF doesn't require graphics or any kind of tricky bindings. Just printing to a terminal.

This is not as hard as it sounds as long as Forth and Lisp variants qualify.

You can write a basic Forth or Lisp interpreter in a day.

It's even easier if you implement your Forth or Lisp interpreter in Forth or Lisp (both map to each other surprisingly well). Metacircular evaluator and be there.
Challenge accepted, but no way I can finish this in 7 days even with a head start of a few months.
(comment deleted)
What if you've already been working on a language for a while and want to use it instead of making a new one just for this?
I would say the spirit of a jam is to start from scratch, but using parts and techniques you're used to is fine. e.g. repurpose your number parser but not the entire grammar and runtime. A lot of being successful at a jam is doing the right prep work so you're not making decisions and figuring things out at jam time.
Use Logo! Straight-forward parser. Turtles make game elements easy. Write it in Go for simple multi-threaded agents.