Prolog is a useful tool for developing a purely data-driven, ECS-like game engine. In this last volume, I will be illustrating the last remaining details of game development in Prolog, as well as how its design philosophy can help us shape the game into its own unified system of logic.
ThingsPool
A collection of essays and thought experiments, which cover a wide range of subjects including computer science, game design, logic, philosophy, and art.
- Public lists
- I ♥ RSS
- Fetched
Game Programming in Prolog - Part 17
Prolog is widely known as a logic programming language, but it can also be used for developing a game. In this article, I will explain how the concept of transcompilation (from Prolog to a popular language such as C#) can be used to create a "virtual Prolog machine" which is optimized to run on personal computing devices.
Game Programming in Prolog - Part 16
How to design an efficient gameplay system in Prolog? Here is the answer. In this article, I will demonstrate some of the efficient search algorithms which can be leveraged to let us create a video game using Prolog's logic programming syntax.
Game Programming in Prolog - Part 15
Developing a Prolog game engine is a challenge, but it is worth the effort. In this article, I will be illustrating subtle aspects of relational database design and how they constitute the core of Prolog's query-based game logic.
Game Programming in Prolog - Part 14
Here is a basic algorithm for building a Prolog game engine. By leveraging the elegance of logic programming, this engine will let game developers design a wide range of gameplay systems using Prolog's declarative syntax.
Game Programming in Prolog - Part 13
Prolog offers us a new insight in the field of game programming. In this article, I will be explaining how some of the advanced gameplay features, such as status effects and passive abilities, can be designed in Prolog's beautiful symphony of logic.
Game Programming in Prolog - Part 12
Programming in Prolog offers us a new way of designing video games. In this article, I will illustrate the beauty of representing various in-game elements using Prolog's dynamic relations and their procedurally generated semantic data structures.
Game Programming in Prolog - Part 11
Prolog comes in handy when designing emergent gameplay systems. In this article, I will be explaining how abstract objects and their mutual interactions can be implemented in the language of Prolog.
Game Programming in Prolog - Part 10
Here is how to make a Prolog game. Using the logical syntax of Prolog, we can construct systems which enforce a wide range of complex rules based upon a simple set of declarative statements (similar to how a few differential equations can be used to describe complex physical phenomena). In this article, I will be explaining how the concept of birth and death are able to be expressed in Prolog's logic programming environment.
Game Programming in Prolog - Part 9
How to construct gameplay elements in Prolog? This article illustrates how a wide range of objects in a video game, such as actors and items, are able to be expressed in terms of logical relations.
Game Programming in Prolog - Part 8
How to design a gameplay system using Prolog? This part of the series explains the construction and destruction of actors, as well as how their types can be handled in a data-driven way. This will be one of the most essential mechanics of a Prolog-based game system.
Game Programming in Prolog - Part 7
In this article, I will demonstrate how to spawn new objects (actors) in Prolog and give them unique IDs. This feature will let us design dynamic gameplay agents with their own lifecycles.
Game Programming in Prolog - Part 6
This article explains how real-time gameplay systems can be created in the language of Prolog, based on a set of advanced concepts such as time-binding of relations, decomposition of discrete events, and compound symbols. This model of technical game design will be especially helpful for constructing highly emergent systems, such as ones which comprise the backbone of scientific simulation games (e.g. The Sims, SimCity, SimEarth, SimLife, etc).
Game Programming in Prolog - Part 5
In this article, I will explain how a variety of game mechanics can be designed and implemented in Prolog. The reader will learn that logic programming is an inexplicably powerful paradigm when it comes to creating a dynamic and emergent network of interactions inside the game world.
Game Programming in Prolog - Part 4
This article explains how to code in Prolog to make a game. By reading this, you will learn how the data-driven (declarative) grammar of Prolog will help developers create gameplay systems which are way more robust than their imperative counterparts, such as ones written in C++, C#, or Java.
Game Programming in Prolog - Part 3
This article explains how you can use the language of Prolog to develop a game. It leverages the built-in syntactic elegance of Prolog, as well as its data-driven and declarative design philosophy.
Game Programming in Prolog - Part 2
This article explains how a game can be made in Prolog by leveraging the hidden power of logic programming. Inspired by the elegance of data-driven design and declarative programming paradigms, I will be explaining a new way of designing gameplay systems which is way more robust, concise, and error-free than traditional methods.
Game Programming in Prolog - Part 1
This article explains how a game can be made in Prolog by leveraging the hidden power of logic programming. Inspired by the elegance of data-driven design and declarative programming paradigms, I will be explaining a new way of designing game rules which can at the same time be used as the source code of the gameplay system itself.
On Nodal Representation of Relations
How to express a relation in an undirected graph, without using hypergraphs or any other advanced concepts? This article explains a purely node-based method of representing any n-ary relations. This will be useful for implementing custom hardware for relational computing systems, such as an optimized Prolog interpreter.
Technical Design using Multi-State Machines
How to use state machine networks (multi-state machines) to design dynamics systems, including gameplay systems, industrial simulations, scientific applications, cellular automata, and many others.
Force-Exchange Network for Gameplay Systems
A new way of designing gameplay systems, based on a force-exchange network and functional force-vector transformation logic. This was inspired by the two-vector event model of Peter Gärdenfors (Professor at Lund University), as well as the emergent system architecture concepts invented by Glenn Puchtel (Principal software architect at GRUBBRR).
Books by Bernard Werber (베르나르 베르베르)
A review of French novelist, Bernard Werber (베르나르 베르베르), who is perhaps the most popular French science fiction writer in Korea. His novels, however, can also be classified as works of philosophical fiction, combined with spiritualist metaphors and non-mainstream humor.
Emergent Systems based on Glenn Puchtel's Biocybernetic Theory
This a new way of designing biology-inspired emergent systems, based upon Glenn Puchtel's biocybernetic theory. It encompasses the construction of artificial life, artificial mind, virtual ecosystems, wetware, and other nature-inspired phenomena, based on ideas such as Systems Thinking and Unconventional Computing.
Mathematical Interpretation of Hume's Philosophy
A mathematical interpretation of David Hume's philosophy.
Good and Evil
A computational interpretation of Good and Evil.
Game Design using Gärdenfors' Event Model
Possible usage of Peter Gärdenfors' two-vector event model in the design of gameplay systems.
Model of the Mind
A mathematical model of our own thoughts, feelings, and the sense of curiosity.
Game Design Concepts
A list of game design concepts.
Everything is in Vain!
About the vanity of the modern world.
Flatland: A Romance of Many Dimensions - by Edwin Abbott
A review of Flatland: A Romance of Many Dimensions by Edwin Abbott.