So, I've decided for my first game of this challenge, I want to learn to use Irrlicht, a free and open source, lightweight 3D game engine. It's extremely mature technology having been out since 2003, and has been used in tons of titles, including the greatest game of all time, SuperTuxCart. All hail Tux Cart.
I have never used Irrlicht.
First step was to install Code::Blocks, a free and open source IDE that seems to be the recommendation for using with Irrlicht. Note that this is not required and you can use pretty much anything at all, but I felt like using the tool that I kept seeing mentioned in relation to it.
Honestly, not a bad IDE. I think I always avoided it because of the name when I was younger. I really appreciate the amount of easy to use project wizards, and the native UI looks great with my Windows Classic theme. I think it's wxWidgets, which is cool - it is my personal favourite UI framework. I might switch to this, it works so well with my theme and is very cozy. I like the classic Office/Windows IE ReBar toolbar UI design, it really works for me - I still use Office 2003 for this reason.
Anyway, enough gushing about the IDE. Downloading Irrlicht is straightforward, just go to Downloads – Irrlicht Engine - A free open source 3D engine and grab the SDK, then import the Compile All Examples project.
Reading through the examples, I'm liking what I see here. There are tons of examples:
The API seems extremely straightforward to get going with too. It would be nice if there was an example though that demonstrated sort of an actual game built with their intended workflow, but as I understand it that wouldn't be appropriate here as Irrlicht is intended to give all the tools to write that part yourself for your game's needs.
So, looking at the fact that this can load Quake maps, my first instinct is to make a Boomer Shooter with it - seems logical, right? I also see that it has a render texture example that renders 6 times and runs at 2500 FPS on my machine - and as well that Stencil shadows are supported which allows for a very particular look I love - I think there's a lovely visual style that could be achieved here. Here's some of the examples I'm talking about:
Quake map
Delicious harsh parallax mapping shadows
Crispy, pixel-perfect stencil shadows
6 rendertextures
These demos all run at 1000-2000FPS reliably (in most cases, after clicking out to screenshot it dips, so the counter is not always accurate). I'm wondering if this might be my new engine of choice; it looks capable of doing everything I need for my projects, while also running everywhere and being really performant. This may replace Unreal in my workflow in a lot of cases depending on how my development experience goes here.
Well, okay, I know what I want to do now, kind of: Boomer shooter with harsh shadows, realtime lighting, deep parallax mapping for a cool Doom 3 esque style, modern dual render scopes for some flair.
I think I'll make a new entry in my Viral Insurgent series. Viral Insurgent was built in Unity, and Viral Insurgent: Redux after it in Unreal. Both games take retro inspired gameplay and aesthetics, so building the next one in this engine makes sense. Plus, it means I don't have to do much enemy AI, as the enemies in those games are stationary turrets, and it's really about getting the best time. I think I'm going to retool the art style though, a lot less neon, more sort of 8 bit style textures but with displacement and other tricks. I think I have a unique art style in mind. Almost GoldSrc or Voices of the Void but with those deep black shadows and parallax surfaces. Perhaps I can take a page out of System Shock: Redux's book and go for a foreboding, horror atmosphere.
Next, I'll be fleshing out design and making a new post with plans and hopefully the beginnings of the game.
Signing off,
The Runk