I was chewing on the concept of ludemes lately and needed to map it out, conceptionally. Especially from the perspective of code and programming, there are terms that overlap and differ.
- Ludemes are minimal units of gameplay. Which means that ludemes interact with rules and mechanics. See Rules, Mechanics, and Ludemes on how these three interact.
- A Routine is a sequence of instructions for a specific task, written in code. I found it interesting that the use in German slightly differs than in English. At least, the English Wikipedia article subsumes routine into function. Which, in my personal experience, is already a higher organizational concept. A routine can also be just a few lines of code that tackled a small issue one shares with a friend.
- Than, software design patterns are established ways of organizing code to solve conceptual problems of reusing, understanding, and sharing code.
A table seems in order, although it might not hold up under scrutiny.
Niveau | Game Design | Software Design |
---|---|---|
Macro | Mechanics | Design Patters and Algorithms |
Meso | Rules | Modularized code (functions and classes) |
Micro | Ludemes | Routines |
A key distinction between ludemes and routines is that a ludeme represents a conceptual unit of play and can have multiple implementations in code, whereas a routine is typically bound to a specific implementation within a particular system and programming language.
Embodiment
A fascinating thread I’m pursuing involves building a bridge between game developers’ intent, code implementation, and player phenomenology. How is it possible for developers to craft specific player experiences through video games in an asynchronous and aspatial manner? I’m particularly interested in how this manifests in code, with ludemes emerging as the most promising candidate for this investigation.
My recent research has focused on how complex systems, particularly video games, can be implemented in binary notation. Video games present an interesting case study as software because they often encompass multiple outcomes - some contingent, some uncertain, and some with clear endings. As software, video games have the potential for infinite outcomes or none at all, linking back to their nature as Turing-complete systems capable of simulating any algorithmically describable process.
The foundation of every video game ultimately rests on binary machine code, even though most developers haven’t written direct machine code for decades. In this context, I found the recent paper “Games Built the Computer: Babbage, Lovelace and the Dawn of the Ludic Age” particularly inspiring, especially Lovelace’s insights about punch cards opening new mathematical frontiers:
“The bounds of arithmetic were however outstepped the moment the idea of applying the cards had occurred; […] In enabling mechanism to combine together general symbols in successions of unlimited variety and extent, a uniting link is established between the operations of matter and the abstract mental processes of the most abstract branch of mathematical science. A new, a vast, and a powerful language is developed […] for the purposes of mankind than the means hitherto in our possession have rendered possible. (Lovelace, 1843, p. 163)”
Babbage’s contribution involved analyzing games as mathematical problems and mechanizing solution-finding. This required translating real-world situations involving space and time into mathematical notation and then into machine operations. Lovelace advanced these concepts by developing programming methodologies for algorithmic machines. There’s a crucial connection here to my investigation of the developer-to-player experience pipeline, particularly in what Lovelace described as “a uniting link is established between the operations of matter and the abstract mental processes of the most abstract branch of mathematical science”.
The historical process of transferring concepts and logic to machines required breaking them down into mechanically manageable components. This highlights the importance of socio-historical materiality in computing’s evolution (perhaps electronic computing would have developed differently if rooted in alternative mathematical conceptions). While the exact encoding of punch cards may vary, binary notation serves as the fundamental bridge between human and machine thinking. From Babbage’s computing machine and Lovelace’s programming innovations, we’ve arrived at Crazy Bird.