So Game Design and Programming has been something that has interested me for sometime now. One of my most popular articles was written years ago when I toyed with the idea of writing games in AS3/Flash. Flash was an interesting platform, but for some reason it really only lent itself to games that looked like flash games. The workaday world pulled me away and for awhile I was mostly engaged in Enterprise Integration. Then I got hired by a games company in Los Angeles and thought I would end up pursuing game programming, but then they switched from doing a classic MMORPG in C++ to doing facebook games in PHP, which is not at all very interesting.
Fast forward a few years and I decided to give Unity a shot, but I just couldn’t make any headway. The whole system was designed, from the bottom up, to be a bit of closed box. You basically had to have a Ph. D in Unity to be able to get anything other than the most basic side scroller rigged up. I also hated that they changed the API and system from release to release, so older tutorials just wouldn’t work with the latest platform. I firmly believe that an API is a promise, and people should be able to stick to a certain API for the life of their product. If they’re going to commit to using your platform, then you have an obligation to make sure old stuff works with no, or as few as possible, changes.
In the case with Unity, I want to make a game where the main character can swing off certain nodes in the environment, suffice it to say such a game is easy enough to make in Unity, just not make well. You need some extra bits of information. I think during the swing my character would suddenly jump to weird x,y coordinates or something. I asked around on some boards, and got stock game and player setup suggestions, but none of them panned out.
One thing I can tell you about frameworks and platform development kits, is they have a tendency to kill your programming desire when you hit a brick wall. One you can’t code around because the system insulates you from the naughty bits of the implementation. When it all comes down to finding the right checkbox (checkboxes randomly move in every Unity release), not being able to find it ends the adventure.
I then messed around a bit with SDL 1.2, and embedded a scheme interpreter and had a working game with sprites and everything, but then my personal life blew up and I abandoned it. After awhile I thought about dusting it off, but decided that I needed to move to SDL2, and that Scheme was a scary language for other people, and I wanted whatever I did to be useful to others, I started writing a new game framework in C, with Lua 5.1 (LuaJIT) embedded. I wanted it to be an incredibly thin wrapper around SDL at the lowest level, with users (namely me), being able to code right on top of the C layer if need be, otherwise, logic written in Lua would suffice.
The plan is to make it open source, at the very least as a study of how to games in C, how to embed Lua 5.1 and how to implement various game ideas.