Global Game Jam 2014: CraftStudio Free Premium week-end


The CraftStudio free Premium week-end once again returns in celebration of the Global Game Jam 2014.

Make games with CraftStudio!

If you want to try your hand at making games, now is your chance. Head over to, create an account and you’ll get access to all features of CraftStudio, the cooperative game-making platform for the next 5 days.

You’ll find tutorials & references at Also check out this awesome video tutorial playlist by Adam Clarke.

Pirate v02

Have fun!

Spelunky Death Roulette!

Oh my, looks like I never posted about it here!

Spelunky Death Roulette is a little betting meta-game I built around Spelunky livestreams a couple weeks ago.

But first: Spelunky is an AWESOME platformer rogue-like by Derek Yu. If you haven’t played it yet, you should totally go do that now. I’ll be waiting for you.


I built the Death Roulette after I got the idea all of a sudden at 8AM (after an all-nighter on a different project), using my Node.js Stack of Awesome Productivity along with for real-time bet updates and passport-twitchtv for authentication. First version was operational after a couple of 8 hours-long coding sessions, then I improved on it based on feedback & some performance issues.

Spelunky Bets!

It got covered on Rock Paper Shotgun a couple days ago, on Wired yesterday and on PC Gamer today!

Lots of pretty big Spelunky streamers have used it including the lovely BaerTaffy which I’ve been watching regularly die in Spelunky for a couple of months now :D. You should totally follow him on Twitch, it’s great fun.

Improved network & text editor performance

Hi! I just released client 1.2.11, runtime 1.6.0 and server 1.1.5 with the following changes:

  • Improved TextArea rendering performances (affects script editor, server manager log)
  • Improved network performance by pre-allocating message buffers whenever possible (affects client, server & runtime)
  • Runtime: Don’t crash when sending a remote message with no recipients, just ignore
  • Fixed highlighting of Vector3 in the script editor
  • Made Map.LoadFromPackage asynchronous (the function’s parameters and return value changed but it’s backwards compatible)
  • Localized “Blacklist” and “Approve” buttons in Admin tab
  • Fixed error message when setting up a  network sync twice
  • Updated German localization (thanks sk2k!)

Web Player 1.5.5

I’m almost done implementing a first version of the network API in the Web player, which is very exciting news paving the way for networked games in the browser!

Until then, here’s another release with lots of improvements:

  • Fixed long-standing bug: the Web player’s object rendering order now matches the native runtime’s!
  • Implemented Camera:GetFOV and Camera:SetFOV
  • Implemented Map.LoadFromPackage. The API was changed to be asynchronous, assorted native runtime update coming soon (the change is backwards compatible with existing games so nothing should break)
  • Fixed Transform:SetLocalOrientation which was utterly broken. Oops.
  • Fixed GameObject:CreateScriptedBehavior to support passing property values as 3rd parameter
  • Fixed CS.Destroy to properly mark game object destruction pending status and never start destroyed components
  • Improved Web API error reporting a bit
  • Fixed bug in Web API: don’t add keys with null values when converting JSON to Lua

Client 1.2.9, Runtime 1.3.6, Web Runtime 1.2

Welcome to all the new CraftStudians joining us for the free week-end!

I just pushed some updates with the following changes:

Web runtime 1.2 & 1.2.1

  • Implemented text rendering support!
  • Implemented asset texture cache for better memory usage
  • Implemented CS.Audio.SetMasterVolume / CS.Audio.GetMasterVolume
  • Implemented a bunch of visual scripting blocks that were previously missing
  • Fixed Transform:SetLocalOrientation, Transform:RotateGlobal and Transform:RotateLocalEulerAngles
  • Fixed a map renderer chunk update bug introduced in the last update
  • Fixed CS.Input.UnlockMouse to actually unlock the mouse
  • (1.2.1) Assets are now downloaded in parallel for shorter load times

Runtime 1.3.6

  • Fixed TextRenderer setup when no font was set
  • Update TextRenderer bounding volume before casting a ray on it
  • Improved performance when marking map chunks as dirty (e.g. after a call to Map:SetBlockAt)
  • Implement dynamic map physics shape update (finally!)

Client 1.2.9

  • Avoid crashing when a sound effect couldn’t be loaded for some reason

Monkeypatching the CraftStudio Web player

This morning I released an update to the CraftStudio Web player adding sound support and fixing various other stuff. You can start CraftStudio to get the latest version and read more about the update. This isn’t the main subject of this blog post though!

Have you found yourself wishing a particular feature was available in CraftStudio?

For instance, maybe you’d like to make HTTP requests to download some dynamic data to display in your game or integrate with some Web API.

Sadly, there’s no HTTP request API currently in CraftStudio (this is something that I intend to address at some point). Well I’ve got good news: if you’ve got some Web development chops then instead of waiting for me to get there, you can expose your own functions in the CraftStudio Web player!

Continue reading

The Daily Frenzy Challenge

Rosalie and I spent the last week building a little Web game thingy called Daily Frenzy!

It’s an action game played with the mouse with randomly generated caves to slide through. It’s pure die-and-retry, there’s a leaderboard and each day, a new level is automatically generated for all to play.

Go try it out now, it’s fun, a bit addictive and way hard! :D

The Daily Frenzy!

Click the image to play!

You can follow @FrenzyChallenge on Twitter to be notified when a new high score is reached or when the new daily level is released!

CraftStudio Client 1.2.6, Runtime 1.3.4

Here comes another update!


  • You can now paste images in textures (with Ctrl+V) after copying them from your file browser. No need to use an external program anymore!
  • The embedded color management info (if any) will now be used when pasting an image
  • On Windows, the window will now flash in the taskbar when you receive a message from a friend
  • Updated the wiki button to point to the new wiki


  • Vector3.Transform has been renamed to Vector3.Rotate to be more descriptive (the old function name still works)
  • Fixed TextRenderer:GetFont() to return nil (thanks @FlorentPoujol)
  • Fixed TextRenderer:GetTextWidth( string ) to return the proper value (it always returned zero)

CraftStudio Client 1.2.5 (+ server & runtime)

Hi you!


Here’s a new minor update featuring:

  • New visual scripting blocks for Text Renderer components
  • New CS.Network.MessageSide.Any value for registering message handlers which can be called both by players and the server
  • New Map.EmptyBlockID constant for identifying an empty map block (no need to use 255 anymore!)

Enjoy! :)