Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Panda3D
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
-
BabylonJS
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
If you insist on learning through game development -- and admittedly I learn best by just jumping in and doing something -- you should at least try making something simpler than a full 3D game first, like a roguelike: https://github.com/borodust/trivial-gamekit, https://borodust.org/projects/trivial-gamekit/.
I don't know what the situation is like for 3D game programming in CL. Shinmera recently kickstarted a game but it's 2D I think and I don't know if his engine (https://github.com/Shirakumo/trial) does 3D. But regardless of what you're using, going into learning how to program while also trying to learn how to use the game engines available in the CL world will probably be a recipe for getting overwhelmed and discouraged. I'd recommend going through the Steve Losh post first and reading A Gentle Introduction to Symbolic Computation and/or Practical Common Lisp to get some solid general familiarity with using CL. Both are available online for free. You can also browse through the Cookbook: https://lispcookbook.github.io/cl-cookbook/
I don't know what the situation is like for 3D game programming in CL. Shinmera recently kickstarted a game but it's 2D I think and I don't know if his engine (https://github.com/Shirakumo/trial) does 3D. But regardless of what you're using, going into learning how to program while also trying to learn how to use the game engines available in the CL world will probably be a recipe for getting overwhelmed and discouraged. I'd recommend going through the Steve Losh post first and reading A Gentle Introduction to Symbolic Computation and/or Practical Common Lisp to get some solid general familiarity with using CL. Both are available online for free. You can also browse through the Cookbook: https://lispcookbook.github.io/cl-cookbook/
Python: Blender and Panda3D (game engine used for Disney's Toontown way back when) are both scriptable with Python. I've been able to successfully call Panda from Py4CL2 (thanks digikar for the help with that), but I have not tried with Blender yet. I think it's doable.
Interop libraries: CLOG, valtan, Parenscript
Interop libraries: CLOG, valtan, Parenscript
Engines: PlayCanvas, Three.js, BabylonJS
Engines: PlayCanvas, Three.js, BabylonJS
Python: Blender and Panda3D (game engine used for Disney's Toontown way back when) are both scriptable with Python. I've been able to successfully call Panda from Py4CL2 (thanks digikar for the help with that), but I have not tried with Blender yet. I think it's doable.
Engines: PlayCanvas, Three.js, BabylonJS
Java: Jmonkeyengine works with Armed Bear Common Lisp, but it requires you to write a lot of Java as "glue" because of the engine's structure. Still, the engine and ABCL are solid and you can get it if you give it time.
C: Alternatively (more difficult) you could try to wrap the underlying C layers of either of those mentioned under Python with CFFI. The C-based game engine, Raylib, is also wrappable this way. I finished a super cool walking simulator in CL with that, but it is more tedious than the others since raylib is really barebones.
Another option, much simpler than unity/godot, but it only works for 2d games, would be using fennel (another lisp) with love2d (there's a tutorial for that in fennel's wiki). with no prior knowledge of lua I've made a simple 2d game in love2d myself in only a few hours, it's very good for beginners and learning how games work. Love2d has a subreddit: /r/love2d
Another option, much simpler than unity/godot, but it only works for 2d games, would be using fennel (another lisp) with love2d (there's a tutorial for that in fennel's wiki). with no prior knowledge of lua I've made a simple 2d game in love2d myself in only a few hours, it's very good for beginners and learning how games work. Love2d has a subreddit: /r/love2d
arcadia adds clojure (a lisp) to unity as a scripting language. You get to use a very good and well documented 3d game engine while still scripting stuff in your game in a lisp. there's a godot version too. The blender>unity/godot pipeline is pretty easy and documented. However, these game engines themselves are a lot to learn for your first game, especially if you're doing unorthodox stuff with them such as using lisp you won't find many tutorials.