Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I am working on an internal tool that will likely shock you.

A topic by TheBargainBedDev created 3 days ago Views: 105 Replies: 4
Viewing posts 1 to 3
(1 edit) (+1)

So... I have been debating with myself if I should even announce this because it sounds completely deranged. But you know what they say, there is no such thing as bad publicity! You may know that I announced a thing and then removed it and it is because I am focusing on this now (To be clear I am still doing the game jam and that will take much of my focus next month)

To be clear about a few things:

1: This is a lot less crazy then it sounds especially when you realize what a programming language is.

2: This is currently an internal tool and while I would like to publish it in some form someday as a free tool there are no immediate plans.

3: THIS IS NOT AI it is just a program.

Ok lets not wait any longer and just rip the bandage off. I am going to be working on a tool that turns game design documents into actual code. Yes really, and I know most of how it will work under the hood. Programming languages are still just languages even if many cannot understand them. What I am going to be making is essentially just a translator (in some ways perhaps simpler than a translator considering how different some spoken languages are but that's beside the point.)

Yes I am aware this is a long term project but it should save me lots of time in the long run. Time I will most definitely need. I still enjoy coding and want to still work on some projects (Like the upcoming game jam) by hand but doing it for everything I have planned would be a bit much...

Seriously though I would not expect this to become published because there is a lot of changes I would likely have to make to how it is planned to work to make it public friendly. Not to mention it will likely be somewhat rigid in how the design docs must be written (Probably not as rigid as you would think, however.)

So yeah there is not a lot to take away from this for now I just wanted people to know what I am doing and I do not blame you or mind if you make fun of me. It certainly SOUNDS crazy.

UPDATE: I realized even though there is nothing wrong with the original approach of feeding in a whole design doc I am going to rework it to treat each input as one class. I do this because it will make it easier to add on top of something rather than having to reinterpret the entire game. This does not make the program any less efficient because I can just feed multiple inputs into it at once.

(2 edits)

Super interesting!

Ludology is not a highly developed academic field, but there have been some directed efforts over the years to establish effective "game grammar" (instead of describing game mechanics by relationships to specific game titles) -- but it has never been formalized or caught on.

A language which compiles your own personal grammar into executable code is a great step toward such an idea. Yours may not be perfect, but if it compiles, it's better than what we have (which is almost nothing -- researching "game grammar" isn't easy, because it only really exists as a quasi-idea of a thing that could exist, like your language).

Keep this in mind as you work on your project! The syntactical decisions you make could have long-term effects if your effort is successful.

Good luck, sounds challenging and fun! (definitely not crazy)

Here is a (relatively aged) post about the topic that I believe would be underlying a successful execution of your idea!

🙌

Could you share a small example of the document syntax and the code you want it to produce for one mechanic? It would help clarify how rigid the input needs to be.

(AI-assisted wording.)

Really its less that the document needs to be written "One" way and more that it will need to be as specific as possible. The less assumptions the program has to make the better the results will be. This means the fallowing:

A: Lets say you want a projectile to move when shot out. It will be necessary to specify this as the program will not be able to magically know what to do. There may be some rare exceptions for common genre conventions such as automatically handling coyote jumps for platformers unless told not to.

B: It will be necessary to use consistent wording so if you call a class a potion for example you will have to use potion for the entire document. The program will likely have some ability to recognize plurals but you should not call a potion a rock unless that is a variable or function in the potion class

Really the program will care less about the exact way the document is written and more so about keywords and their synonyms. Granted it will be necessary to look at the context for certain keywords so it will not completely ignore the sentence structure but its not like a programming language that always has to be worded in one way and nothing else will work.

Thanks for clarifying. The projectile and potion examples make the need to spell out behaviour and keep names consistent clearer.

(AI-assisted wording.)