March 11th, 2016Cams & Tweens

I guess one more couldn’t hurt, if only because this has been a surprising amount of work.

Well then, as the title suggests there’s two significant additions this week: cameras and tweening. The former isn’t too complicated as it’s basically just an object holding offset values affecting any renderable objects and layers not fixed to their position. The renderer can also easily switch between different cameras, so you can use multiple camera “angles” without having to change their positions back and forth. And now that I think about it, offering split screen capability shouldn’t be far from here… Read more…

March 4th, 2016McStreamy

Remember when I went on and on about streaming and playing OGGs and stuff? Well, that’s about all I managed to get done this week, and since this is all sound, we’re once again left without another slight variation in the same dreary screenshot.

But done it got, no longer forcing you to have uncompressed audio taking up lots and lots of space on both disk and memory. It’s not even too hard to set up as OpenAL handily provides the functionality to queue and play buffers. If you ask nicely, it’ll also tell you if it’s done with one or more of those, leaving only the refilling and queuing of the next chunks up to you.

Read more…

February 26th, 2016The Sound of Choppy Music

Yes. It’s time for sound. Which you can’t see, so again, only a brief update for lack of pictures to make it seem longer than it truly is. Here’s what’s new:

  • Audio objects and player
  • WAV and preliminary OGG support
  • Lots of nifty functions you might like when tinkering with sounds

And here’s what sucks about it:

  • Choppy sound, presumably due to lack of proper buffering
  • Only 32kb worth of OGG sound at a time, same reasons
  • A separate DLL for ALUT which I only use for loading WAVs
  • No MP3 support

Read more…

February 19th, 2016Getting Physical

And with that brilliant pun another week has passed and we’re back again, for the 7th installment and 4th time since I proclaimed I’d stop writing about this boring nonsense, striking a perfect balance in keeping me motivated without making it feel like an obligation. Mh, exposition.

Anyway, what’s new? Well, for one, CORE manages the drawing of sprites and text elements entirely on its own now, leaving you free to tinker with the properties you need. It also supports collision between rotated sprites now, which is very helpful for this little bit of fun:

Yes! Physics! Now all I need to do is figure out how physics actually work!

Read more…

February 12th, 2016Fun with Fonts

They might as well be called FUNts! Or not, because fonts suck. Who knew that they’d be the most difficult and time consuming part to get working (thus far)? But no matter, all that matters now is that they do, and I have the gif to prove it:

I chose to go with FreeType, which is apparently used by Blizzard (oooooh!), and while setting up was easy enough, getting it to render and align the individual glyphs properly was an utter, confusing nightmare. It’s probably much less of a problem if you know what you’re doing, but this was a great reminder that I still don’t. Read more…

February 5th, 2016CORE Developments

All right, real quick and brief because all developments are of a technical nature and there’ll be no pretty pictures to help the boredom:

  • CORE now has full mouse and keyboard input handling
  • Sprites detect collision with given points and each other
  • Documentation!

Stuff missing:

  • Collision layers and callbacks
  • Proper rotation
  • Gamepad input
  • String manipulation capabilities
  • Rendering text/fonts

Read more…

January 29th, 2016Walking the Line

Now, of course we saw the lil’ guy moving already, but what’s moving without walking, I ask you! (It’s gliding.) So naturally that had to be remedied, with a brand new animation system at that! Just look at him go!


Isn’t he just darling? Read more…

January 22nd, 2016Moving Forward

And not just that! Forward, backward, sideways; there’s just no limit to the ways you can go! (within the limits of 2D space)

So, two small improvements to make that work: sprite values can be accessed and modified from script (which is actually just a matter of binding und returning values the script can understand), and the addition of an input handler, which currently only collects and checks mouse states and offers the possibility to bind callback functions to mouse events, like a click for example. Everything else can then be taken care of by script:

local target = {};

function init()
    // ...
    // ...

function update()
    // ...
    val <- sprites.player.GetPosition();
    if (val.x < target.x)
    else if (val.x > target.x)
    if (val.y < target.y)
    else if (val.y > target.y)
    // ...

function onClick(x, y)
    target.x <- x;
    target.y <- y;

And just like that we have movement that only required some care during recording in oder to not make it look as awful as that code allows!

Read more…

January 15th, 2016Making Room

Look at that, it’s been precisely a week and already there’s enough to talk about to sorta-justify another one of these thinly-veiled excuses to slowly move my blog away from all the serious seriousness of The Day to something a little more lighthearted and fun in the hopes that I can one day talk about cooking and movies without it being too jarring a change in tone.


Last time I was very excited about scripting and drawing houses, and in a way that hasn’t changed, except that now the house looks something like this:

Almost looks like an actual game, doesn’t it? Read more…

January 8th, 2016Codeventure Time!

Yeah it is! Especially since I just realized that it’s been more than 5 years since I last took the time to get cracking on something overly complicated and wholly unnecessary for which already established and infinitely better solutions exist and have existed for just about forever! Boy, do I miss those days… And so, in order to treat myself during these trying times, I’ve decided to give OpenGL another go. And when I say another, I mean I’ve glanced at it briefly while altering a friend’s code just enough for me and my roommate to pass a uni assignment without getting caught. Which we didn’t, so I guess moving that sphere a little to the left and rendering it in wireframe did the trick.

Anyway, like any self-respecting adventure enthusiast, I’ve been following along Thimbleweed Park’s development, and right there in the beginning, Ron Gilbert talks about his choice for an engine, a 2D graphics engine of his own making with Squirrel for a scripting language. So that’s what I want to do, naturally. Write myself a basic OpenGL engine and integrate Squirrel for scripting. It’ll be exciting because of course it’ll be, and I’ll name it: Read more…

July 10th, 2014All Roads Lead to Cake

If only.

Anyway, The Day the Laughter Stopped. I’m sure it’ll surprise no-one that there’s people who manage to miss the simple point it makes entirely – if anything, I’m actually surprised that there’s so few of those. But there are some, and now we can watch them missing it in video form:

Now, I suppose it’s kind of flattering that it had such an impact on them that they couldn’t let it go for months. After all, you don’t invest hours of work to mock a 5-minute jam game pretty much nobody has even heard of just for the heck of it. But of course I can’t really enjoy it, and not just because it’s about four minutes too long. Read more…

May 1st, 2014The Speech That Could’ve Been

Content Note: This post discusses The Day the Laughter Stopped. The usual trigger and spoiler warnings apply.

Two weeks ago, we attended the German video game awards, Deutscher Computerspielpreis, where The Day won an award as Best Not-Quite-Serious Game. The speech I gave was not entirely what I wanted it to be, but before we get into that, have a look at it here (English captions available):

Read more…

April 2nd, 2014Friends Don’t Let Friends Be Ignorant Asshats

A few weeks back, after we released The Day, I was approached about writing a little something on my journey from ignorant douchebag to slightly-less-ignorant douchebag. Seems like a good topic to start off this brain dump thingy, so I’m more than happy to oblige.

Now, before we get started, you should probably play the game and read the post-mortem for context, if you haven’t already. Or don’t. Whatever. Read more…

© 2014-2016 Hannes Flor