I actually wrote most of what you're about to read first, but looking at it, I think it'd be more appropriate to start with what I was looking at the night before Humble Bundle 6 was launched:
Yeah. Not pleasant.
I had actually been working on Vessel for quite a while, and up until about late August, things were going fine. As long as it's taken to port Vessel, the engine is beautifully written overall. It's very complex, scary, and impressive all at the same time (Strange Loop has a couple tidbits of technical stuff on their site, you should definitely check it out). It was actually looking to be a pretty simple port, which is why this was my first assignment with Humble in the first place (note: not my first port overall, I've already published 2 on Steam).
Then I hit the renderer.
It's no secret that porting from Direct3D to OpenGL is a difficult task, but this was a port that was on a scale that I've never seen before. I'll be honest: this is probably the biggest port I've ever done. Definitely the hardest. Probably not a good way to debut as a porter working with Humble Bundle, and it's certainly not a good first impression for a lot of people who are playing a port of mine for the first time (and you've not even played it yet! Ack!).
However, that's not something you sit and think about during crunch time, so I sat down and burned through the first iteration of the OpenGL renderer pretty quickly and attempted to do an LLE version of what D3D was doing, "elegance" being secondary. Problem is, when you rush things, stuff gets broken, and the last thing anyone wants broken is the graphics renderer. Not just from the perspective of a user, but from the perspective of a programmer too. Debugging OpenGL: All of my NOPE.
It was around here that I was given help by both Ryan Gordon and Edward Rudd, who did a phenomenal job of getting things working while I finished the rest of the engine (scripting, system utils, etc.). Even with 3 people working on a port, however, you can only do so much given such a limited amount of time. The above screenshot was as far as we could get by the time HIB6 launched. But hey, that was a heck of a leap from where we were even a week before, so I bet we can get this thing out a few days after, right?
Wait, what? It's... Halloween now?
I actually have an image timeline prepared for when this port is done, but for now I'm going to save it, as this is more about why it's not out now. Here's the quick summary of what I've been doing, and this is just the stuff after HIB6 started:
And lastly, getting fluid to render. This is something I need to bring up as well: The Linux version of Vessel will be out first. I want to get the Mac version out extremely soon after, but it will almost certainly not be simultaneous. This is because Mac OSX does not support ARB_draw_instanced, which is essentially the reason that fluid is drawn efficiently and quickly in Vessel. There are a couple of options that I can take, and I'm trying to find the most pleasant option... currently the best-looking option is requiring OpenGL 3, and therefore OSX Lion or higher. Yeah. Trying to avoid that. EDIT: It's been pointed out that ARB_draw_instanced is available in the legacy OpenGL context as well (GL 2.1), but it's still limited to Lion. Thanks to Brad and Keith for letting me know.
Overall, it's taken a while to make OpenGL happy, but I'm really close. My schedule since late August has been 1. Wake up, 2. Work on Vessel, 3. Go back to bed, and that's not changing until this game is done. Anyone who's worked with me on my other various projects knows that I'm a pain about releasing products that work, and I know that you'd prefer a port that works rather than a port that's just "released". I'd be a jerk if I denied that this was an issue of late, and I'm not about to continue that tradition here.
To end, here's one more screenshot of Vessel on Linux. I have one more bug left before this game ships, can you guess what it is?
I do thank you for your neverending patience, though if you need to throw hatemail somewhere, please throw it at firstname.lastname@example.org. I feel awful that Humble's customer service has been taking a hit for this, when it's really just me back here. Sorry!