Day 1: Preparing the terrain

So, this is day one of Lisp Game Jam 2018 already.

I wasn't really expecting to participate this year, however I found out that this could be a really interesting experience, specially for my Lisp studies.

The LGJ itself seemed very tolerant to me, given that it has a period of 10 days to develop the game and doesn't have many restraints other than the fact that the game should be open source (which I have no problem with), so I figured I'd have the ability to take my time and build a small game, taking full advantage of Common Lisp and of everything I've learned on the past weeks, specially now that I've taken my study on the Land of Lisp book seriously.

Everything actually started before the game jam, while I still haven't heard of when it was going to be, actually. I had these old sketches which I built back in 2014 or something, when I attended to a CG class in college. The sketches were built using the Processing 2 API, which was also a subset of Java, which hides the whole OO thing. It had "setup" and "draw" functions, a deep, but simple, lean set of functions to help you get the most basic work done, and that was it. The IDE itself looked a lot like Arduino's, and it also exported the sketch in a way that it could also run on Arduino, IIRC.

I started porting it to a custom engine I created in C++ back in 2016, which resulted in me building a very small library which worked as a layer of compatibility between the engine and the very few Processing functions that I used -- mostly were just something that could easily be emulated using the fixed pipeline of OpenGL 2.x, and it was all also done in 2D, which made the porting greatly simpler.

Now, back to Common Lisp, I thought it would be a good language exercise to port these sketches yet once again to CL. But this time, I took a greater step; went ahead and used ASDF to actually define a system which I could extend to meet more requirements, and it would be a nice way to guarantee that I could have a small, easy-to-use codebase which did not demand me to remember everything I did. Plus, since it was that simple, I could maybe use it in an actual game, in the future.

Thing is, the future came faster than expected!

I heard of LGJ2018's date back on Wednesday I think, and then I applied (and invited the rest of people on Common Lisp Brazil community to do so as well). Rushed a bit the system I was making, released it on GitHub to ensure that it was opensource, and now I have officially opened another repository for my project so you can take a look at what I am doing. Plus, even though this page doesn't have many things yet, I'm trying to document my journey through the LGJ by using Itch. I may also translate the devlog to Portuguese real soon so I can also keep it in my actual blog, which is written in Portuguese.

So, here's what I figured out about the project I am going to submit this year. This will culminate in my roadmap:

  • Add controls to load a texture from disk (or from memory) and to manipulate it as a texture atlas. Loading from memory might even be a better option to avoid a dependency on SDL2_Image for now, since I could hardcode some textures;
  • As for hardcoding textures, this is a viable thing for the actual reason this is my first target right now: Text. Of course I could just use SDL2_ttf for that, but I think it's not really a good option. Better use SDL2_image at most, so I can also reuse it later for animations and actual game textures.

Right now I think I'll probably start working a little on the visuals, while I also add font support, which I can probably borrow from another Common Lisp project I made.

Some useful links:

Get Orbit Defense Strikeforce

Leave a comment

Log in with to leave a comment.