If you came here looking for a long explanation about why you should use Scheme, how it's the most amazing programming language ever, and that you should drop any language that you were using; you may be sorely disappointed. This post is actually about why I chose to use Scheme and built Schemer.
Originally, I was researching scripting languages to use for a game that I'd been working on. The game was going to be written in C++, so I felt it was important to find a language that could easily and relatively efficiently communicate with C++. There are many scripting languages that exist and fit the aforementioned criteria (e.g Lua, Python, and AngelScript just to name a few), but what ultimately led me to choosing Scheme was general curiosity.
While researching scripting languages, I remembered that Naughty Dog, the creators of the Crash Bandicoot, Jak And Daxter, Uncharted Drake Fortune, and The Last of Us, used their own flavor of the Lisp programming language called Game Object Assembly Language (GOAL) to develop some of their original titles. After reading about GOAL, I was genuinely curious about how a Lisp-like language might integrate with C++ and how they could have used it to make such groundbreaking games. In undergrad, I learned about Scheme (also a member of the Lisp family) and how it is a minimal subset of Lisp. Scheme's minimalism made me think that it might be more straightforward to implement. With that, I began researching Scheme, implementing a Scheme library in C++, and started working on Schemer to test the Scheme library features.
There are still a lot of questions that I'll need to answer as I try to use my C++ Scheme library in a game environment, but I'll cross those bridges when I get to it. So, if you asked me why I chose to use Scheme, my honest answer would be, "Why (not) Scheme?"
Leave a comment
Log in with itch.io to leave a comment.