Workin’ the monkey

Workin' the monkey

Morning! Samurai Programmer Sawa (and cub) here!

Is everyone finding the dev blog useful!? Chat with us in the comments whenever you like~!

Ok, so have you ever seen the credits of a PixelJunk game? Anyone that hasn’t, get straight over to the PSN Store, buy all the PixelJunk games and clear them! Did you notice a name that appears every time in our credits? Yep that’s right, it’s our CEO Dylan Cuthbert… ..wait no, i’m talking about Game Monkey!!

It might feel weird, but over 70% of PixelJunk games are made in script. PixelJunk Inc. is of course no exception. The name of that scripting language is Game Monkey, our dearly beloved, stylin’ monkey friend.

And with that, here’s this week’s “imagination shot”!

gamemonkey

As you can see, there’s lots of ‘sleeps’. If you want to put a brief delay between this thing and that thing a ‘sleep’ can help you out. Although, if you’re not careful the code can get overrun with them.

It’s still better than the alternative though, of implementing ‘sleeps’ in C++, then having any small tweak trigger an entire C++ build each time… that’s a big waste of time we’ve avoided.

GameMonkey lets you easily make threads (typically called fibers or coroutines) making it super convenient!

If only it could get more exposure…

Waah♪ O-ooh a-aah♪

Oh!.. My cub and monkey are calling.. I’ll leave it here for today.

monkeybot

3 thoughts on “Workin’ the monkey

  1. Very interesting post. I’d love to hear more about what’s written in C++ and what’s written in Game Monkey.

    Also, why do you prefer Game Monkey over other scripting languages like, for example, Lua, which seems to be the most used these days.

    • Hi Hyaku,

      Most of the core game logic is done in GameMonkey. The C++ side tends to be the supporting systems – rendering, networking, physics and so on. Anything that is performance-sensitive is done in C++, with the controlling high-level logic done in gm code.

      The gm codebase is quite easy to work with, letting us quickly add new features – inline co-routine forking, new operators, etc, that simplifies a lot of common game code patterns.

      Lua would certainly be a viable contender, but we just have a lot of experience and tools for gm that let us get stuff done quickly. LuaJIT would definitely be nice to have!

      • Thanks for your answer kalin! Sorry for the late reply, totally forgot about this.

        Is great to know that scripting performance is good enough to do most gameplay programming outside of C++.

        On PCs and mobiles there’s a lot of diferent technologies to choose if you prefer to work with high level languages, but on game consoles you don’t have too many options.

Comments are closed.