Why?
I want to write a long overdue post about why I’m making OSARE. So many thoughts churning through my head that I need to commit them to paper so I have room to think again.
I turned 30 this year. 30 has this way of making me feel both very old and very young at the same time. I’ve been a gamer for 27 years and a programmer for 18 (professionally for about 10). The peak of my gaming and coding was during the 90s, when I had summers of nothing to do but tinker with code or play RPGs. Also during the 90s was the height of 2D gaming — beautiful pixel art or pre-rendered sprites seemed to push what we thought possible in games. The first generation of 3D games in that era looked primitive by comparison.
Also during the 90s is when I created and finished games. One game had a very primitive Bards-Tale style view and turn-based combat. Another had Gauntlet-style action and a nice map editor. Since then I’ve started and discarded countless new engines.
Typically the engines I create are of two genres: overhead or isometric RPG (action or turn-based), or side-scrolling platformer. These two genres represent my absolute favorite style of games at the height of 2D gaming. Even now when a Final Fantasy Tactics or Castlevania game comes out for the DS I’m there on release day.
One constraint I had for the longest time is creating art. I did poor quality pixel art for most of my projects. I started tinkering with Blender in 2002 but only in the last couple years have I finally learned enough to make game-quality art. I’m still learning about making polished 3D art, but my skills are enough that I can make pre-rendered 2D sprites that look similar quality to games of the 90s.
Of my favorite genre of games, some are well represented in Open Source. There are already plenty of platformers. There are plenty of console-style and turn-based RPGs. There aren’t many prominent action RPGs — surprising given the immense popularity of Diablo.
So I set off to make an isometric action RPG in the spirit of Diablo. I started it as a Java Applet, but quickly realized I didn’t want to be streaming megs of content every time someone launched the game. I chose C++ because it’s still the primary language of non-casual console and PC games. I chose SDL because I’ve worked with it before and found it does what I need it to do.
It’s important for me not to take on a project too big to complete. MMOs are fantastic but take dozens of people years to make. 3D games have their charm but my heart is in the simplicity of 2D gaming. I even cut out networking support for now because a multiplayer game would be a larger undertaking than I’m capable of.
If each game takes 2-5 years to create, a game developer might not finish many games in his/her lifetime. I would love to make a platformer engine but they’ve been done (I’ll probably save my ninja game for later and create it using the Frogatto engine).
It’s an intersection of many opportunities for me. I have the programming and art skill to put together a good 2D game. There isn’t a prominent open source 2D action RPG in existence. I have a good day job that I can leave at the office when I’m done for the day. OSARE begs to be made and I’m having a grand time making it.