Equinox Update

by Joe Flood on 27 September 2014

So we've paused Platformer2D. Why?

Well, I wanted to focus more on the game engine that powers it, Equinox. As I worked on Platformer2D, I realised a lot of things were missing from the engine – most noticeably, it had no way of playing sounds!

So I added a sound engine to complement Equinox, and we're calling it Solstice! It allows me to play sounds (obviously!), but because it hooks in with the existing entity system, I can vary the pitch, volume, and more using Equinox's built-in animation system. This means we get easing functions for free too!

Code example of a wacky sounding pitch-change event:
using namespace equinox::solstice;
 
SoundEffect *frog = SoundEffect::Get("/Sounds/Frog.wav");
frog->Animate(EQAnimate(1000, frog->Pitch, 1.0f, 2.0f));
frog->Play();

For those of you that are not developers, this'll change the pitch of the sound from 1 (normal) to 2 (very fast/high pitched) over the period of 1 second. Nice!

Okay, so that's pretty cool, and of course it can play .mp3 files as background music which is neat too – but want to know something way more exciting?

We can now build for iOS! The engine now builds and runs under iOS! However... while the engine runs, it shows a blank screen as we're not asking the OS for the correct version of OpenGL. Damn. Should be usable soon though!

Platformer Update!

by Joe Flood on 16 August 2014

Been a while!

Nothing too exciting to report on here, except for one thing – libEquinox (our internal Game Engine!) now uses SDL2 under the hood instead of GLFW.

Why's that you ask?!

Well, GLFW is amazing, and I'd recommend it to anyone, but there's quite a hitch with it – you can't use it with iOS or Android! We thought of this and created a plugin-based system where you could use various "window creators" for different platforms; however this proved too ridiculous to support and got really messy really quick!

However, SDL2 allows you to target any platform ever with the same code – result! It also gives you access to other things like TTF font support, sound support, and lots of other little "nice to haves" (also notable: proper PS3 controller support!).

So, without further ado, I present to you Platformer2D running within SDL2, with SDL_ttf doing its stuff and showing a nice label for us:

Screenshot

The eagle-eyed amongst you will see that there's also a crazy ropey thing coming out of our little dude – this is his ninja rope! The graphics are not final (thank god!), but this feature allows the poor guy to navigate our terrain (which now generates using cellular automata – yum!)

Screenshot

And there's another shot showing another bit of terrain – this time showing off scaling too – the graphics scale to match the window size which is rather nice!

Watch out for much more coming soon!

8 Months of C++

by Joe Flood on 30 June 2014

Looks like I've been working in C++ for 8 months now... how time flies!

While a lot of people are moving away from C++ and towards "managed" languages like Java and C#, I'm staying native – and this is why:

  1. You can compile and run almost anywhere, because there's no need for anyone to write interpreters (JVM, CLR, ...) for the language. (Okay, so the JVM and CLR are more JITted these days, but I'm sticking with "interpreters"!)
  2. It's actually a really, really nice language!
And I don't think I need to go much further than reason #2.

For example, I can do things like:

vec3 myVector = { 20, 10 };
vec3 myOtherVector = myVector + 20;

Which is rather nice. And I can do colours like this:

Colour red = 0xFF0000;
std::cout << "Red has " << red.R << " amount of red and " << red.G << " amount of green" << std::endl;

And last but not least, compare this in Java and C++:

Vector3f javaVector = someOtherObject.getPosition();
vec3 cppVector = someOtherObject->position();

What happens when I change javaVector now? someOtherObject is changed too because the 2 variables point to the same object (gah!). But when I change cppVector? Well, it was copied so someOtherObject is left well alone... yay!

Long live C++!

“Platformer2D”

by Joe Flood on 29 June 2014

Presenting our newest project: Platformer2D!

Clearly this is a working title, but the game idea is more or less complete. Basically, we're building a randomly generated platformer. It'll be different every time you play it, unless of course you manually override the seed number (like in Minecraft!).

The idea of the game will be to manoeuvre through dangerous dungeons and treacherous terrain to find gold, jewels, and most important of all: the door which leads to the next level down!

And here it is:
Screenshot

Our next focus is on making the level generator WAY better. While it currently creates levels which are traversable (they contain platforms and the rooms are connected together), they are not fun to play, nor are they challenging. And some of the levels are completely impossible with massive jumps or jarring walls.

Our next attempt will be using pre-created slabs of levels cemented together at random (a bit like Rogue Legacy, actually!). Watch this space!

Easy does it...

by Joe Flood on 18 May 2014

I've been having some issues with our in-house engine Equinox – memory management isn't where it should be and crashes were becoming a bit of a pain. Damn, blast, and shoot.

Well, I've managed to coax the thing to at least work and not *seem* to leak memory, so that's great. Seems to crash under certain conditions in one game, but not in the other 2 test projects though, so I'm guessing I've borked up that one game somewhere!

In other news though... managed to get something pretty cool to potentially work:

PS3 Controller







Hmm... watch this space!

Next Page

©2012-2014 Javawag. All rights reserved.