Rapid Prototyping Framework

asteroidsWe’re starting to dip our toes in the waters of prototyping again. One of the first steps was trim down the framework we built for World of Goo and gear it towards a rapid prototyping workflow.  This means two things:

  1. Minimizing the amount of code required to set up a new game
  2. Providing all the basic facilities so as to avoid wasting time reinventing the wheel (2D rendering, sound, input, persistence layer, and resource management)

There’s nothing revolutionary about this framework,  but in the hope that it is useful to others, we decided to throw out the source code.   Download, unzip, and check out the readme.html file for setup instructions.  There is no documentation and we’re not going to support this code.  There are two example projects included, so check those out and hopefully everything will make sense :).

Also, we set up a new board on our forum in case people want to discuss the framework or share their creations.

72 Responses to “Rapid Prototyping Framework”

  1. Ben Garney Says:

    Nice work, guys. Small, focused, effective. I like it. :)

  2. SteveC Says:

    From the readme.html:

    “It is provided as is, without any license or warranty.”

    If it is “without any license,” then I have no license to it. You have to grant a license of *some kind* or nobody can legally use it.

    If you mean to put it in the public domain, then you have to *say that*.

    Saying it is “without license” means nobody can use it for anything.

  3. Pyronimous Says:

    Thanks. That might be useful

  4. DEFE Says:

    Woooooooo! Rapid prototyping! New stuff! You guys are great. Just don’t work too hard. Have some hot chocolate and popcorn now and again. You deserve it.

  5. Donovan Says:

    I’ve been following you guys for awhile and thought it was really cool when you started doing the World of Goo wasn’t made in a day posts. But this is just awesome! thanks for everything.

  6. Mark Cooke Says:

    Hey Ron,

    Just curious – was there any reason you decided to go with a C++ framework for prototyping other than the fact that you obviously already have familiarity with the code because it was used for WOG?

    I was wondering if you considered Flash, Unity, XNA, or any other frameworks that might offer faster iteration and would save you from having to write a custom allocator, for example. If you evaluated other options and decided against them I’d love to hear your thoughts as to why.

  7. Javier Says:

    Great! Thank you again for your support to newbies and amateurs, it’s greatly appreciated. I will take a look at your code as soon as I’m back from work. Hope I can put my two cents in it!

  8. Steren Says:

    Sharing your engine is so cool, there are not so many great 2D game engines.
    But there isn’t any license information ? Is it ok to use it in a commercial indie project ?

  9. dracks Says:

    oh! it seems a fantastic framework.

    Thanks for share it with us.

    One question, it work un osX or linux? the readme only explain how install in windows.

    Thanks!

  10. David Amador Says:

    Thanks, I’ll give it a try once I get home. Maybe some function can come in handy for my own engine.

  11. pascal Says:

    @Mark Cooke: I’m most thankful they decided against these, because they are not really cross platform. While Flash runs everywhere, Unity only does Windows and Mac OS X, XNA obviously only Windows. Apps written for these frameworks are quite hard to extract and port to some other base, like the Wii etc…

  12. Elie Says:

    Yes truly thank you for supporting people who are beginners in this field.

  13. Ron Carmel Says:

    hi mark. although i hear great things about unity, i don’t have any experience with it, nor with flash or xna. any prototyping i do on those platforms wouldn’t be very rapid, at least not at first :). i’m so familiar with c++ that it just feels like i’m working with the ideas directly rather than with a development environment. personal preference, i don’t think it’s “better”.

  14. Ron Carmel Says:

    @SteveC: i hereby grant everyone a license to do whatever they want with this framework. how’s that? :)

  15. Ashley Says:

    I believe you need to include the license with the software for it to be valid.

    Might be worth just dropping a copy of the MIT license, as it’s the simplest you can find, and hands over everything without limitation:

    http://en.wikipedia.org/wiki/MIT_License

  16. Torn Says:

    sounds rather like the MIT license :)

  17. plaes Says:

    Why not provide git repository address instead of just zip-file?

  18. Gtz Says:

    thanks for that, really nice of you to share your work with others :)

  19. mark Says:

    Now that is interesting – I really hope that the word “rapid” comes into effect :-)

    PS: XNA is a joke, seriously. Anything that ties you (by license conditions) to one plattform should be avoided completely.

  20. Travis from SmartFlix Says:

    Mark Cooke JAPAN wrote:

    > Just curious – was there any reason you decided to go with a C++ framework for prototyping other than the fact that you obviously already have familiarity with the code because it was used for WOG?

    He answered this question in his post, when he wrote “One of the first steps was trim down the framework we built for World of Goo”.

    It’s a framework EXTRACTED from an existing code base.

    > I was wondering if you considered Flash, Unity, XNA, or any other frameworks that might offer faster iteration and would save you from having to write a custom allocator, for example. If you evaluated other options and decided against them I’d love to hear your thoughts as to why.

    This question typifies a certain perspective that I find really frustrating when talking to people – instead of appreciating an example of WORKING code, they ask me to justify why I made every single choice the way I did. I’m not saying that Mark is this way, but in general the kind of person who asks question like this of me tends to be a blue sky dreamer, and not someone who is in the habit of actually SHIPPING PRODUCT.

  21. Virtual game corporation Says:

    This is nice thing poster here:D

  22. Greg Dunn Says:

    That’s extremely generous of you guys to take the time to strip down code from a shipping game and make it available to everyone. Looking forward to checking it out!

  23. Nick Quaranto Says:

    Just a suggestion: How about you release this on GitHub so others are encouraged to contribute back to it? http://github.com

    I’d love to see a decent game programming community grow on the site, and perhaps 2DBoy could help with that by throwing their code on there.

  24. aukondk's status on Thursday, 28-May-09 21:39:46 UTC - Identi.ca Says:

    […] !games !wog 2dboy releases World of Goo engine source code. Sweet! http://2dboy.com/2009/05/27/rapid-prototyping-framework/ […]

  25. Jon Says:

    I was very impressed by the game-a-week demos your team put together (and WoG is obviously fantastic). I had thought on several occasions what an impressive fast-prototype library you must have created over that time. I shall dig into it tonight and see for myself.

    It’s a great thing you’ve done, turning this out into the world for others to use as a springboard for their own creations. Cheers.

  26. Zsxd Says:

    ooh! youve got a spam bot above!

  27. drawlabs Says:

    This is why indie development is so great. Thanks for sharing.

  28. Ziv Says:

    hi,
    I understand it’s C++, so I can’t use it in C#. is there any engine or SDK like this for C#? (I don’t mean XNA, something simpler for beginners to fiddle around with). I was just thinking to begin w/ some physics simulations and whatever comes to my mind as a game.

  29. Oxygen Says:

    Fantastic work guys – what a great thing to release to us hungry masses!
    I understand this represents some serious work on your part, and is a fantastic commitment to the future of indie games.

    I think you have just saved me the pit of despair of trying to write a game in my half finished engine, and spending all my spare time on the engine, not the important stuff.

    Glad I bought WoG too. :-) Thanks for everything!

  30. Matt Says:

    Do we really need to hear the same “Why dontcha’s ..” over and over again? This will seem a little rude, but it plays out again and again and I really want to say something:

    Do not put it on github
    Do not port it to OSX/Ruby/C#/Flash/ASM/TI-83 ;-)
    Do not spend time setting up a community.
    Do not spend more than 15 minutes zipping this up from your hard drive and posting it to a site.

    Of course if the author wants to do any of those things, they are welcome to do so! But the moment it goes from an act of giving, to instead becoming a litany of seemingly individually harmless suggestions. Well, it just becomes less fun.

    Read the source, and learn some new techniques from a good programmer!

    Now hurry up and sell me another game ;-)

  31. Creadores de World of Goo entregan el fuente de su núcleo : Blogografia Says:

    […] ahora los chicos de 2D Boy quieren compartir su experiencia como desarrolladores independientes publicando el núcleo del framework que desarrollaron para su gran […]

  32. Bastos Says:

    Hey Guys, you can use google code, github or something like to host your code ;)

  33. LE[22] Says:

    Nice work people! congratulations!!!!
    Saludos desde Argentina.

  34. Bill Mill Says:

    Sounds like the license you want is my favorite, the WTFPL: http://sam.zoy.org/wtfpl/ .

    -A random dude who enjoys the WTFPL and WoG on the wii

  35. James Says:

    This is great. Thanks, guys! :-)

  36. links for 2009-05-29 « boblog Says:

    […] Rapid Prototyping Framework We’re starting to dip our toes in the waters of prototyping again. One of the first steps was trim down the framework we built for World of Goo and gear it towards a rapid prototyping workflow. This means two things: […]

  37. jph Says:

    Nick Quaranto et al,.if you want to see it on GitHub or what ever, YOU put it there! (and maintain it),. did he not just say; “hereby grant everyone a license to do whatever they want with this framework.” it is extreimly odd that ppl see something posted as a gift and ask for stuff, that was not offered.
    Personaly I have been considering trying to code a simple c++ game,. mostly out of curiousity. (currenly I am prototypeing with ZGameEditor, free-opensource-crossplatform!) this may give me the push,. If I can understand it, thanks guys.

  38. David Amador » Blog Archive » Game Contests Says:

    […] 2dBoy has released a rapid prototype framework for those who want to start 2d games the quicker the possible. I haven’t had the time to […]

  39. Mark Cooke Says:

    @pascal:

    Certainly, you are correct, C++ is much more portable. That said, when prototyping ideas I don’t particularly care about portability. I care about what allows me to prototype an idea most quickly.

    For actually shipping something that is totally different!

    @Travis from SmartFlix:

    The only reason I asked was to find out why Ron felt it was the best tool for the job. Not for him to justify his position, or justify why the code is the way it is, or anything like that. Just to share his thoughts, as clearly he has a reason. That’s it!

    I’m not sure why people are accusing me of demanding a justification. I know Ron personally and respect his opinion so I just wanted to hear if he had experience with other platforms for prototyping and why he decided against using them. If it came out some other way, well, now I’ve explained what I meant.

    @Ron Carmel:

    That’s what I figured but wanted to check just in case. Thanks for the clarification and for sharing the code. I look forward to seeing what you guys come up with next.

  40. World of Goo Rapid Prototyping Framework - Future Steve Says:

    […] indie developers, programming 2D Boy, the folks behind “World of Goo”, have released a Rapid Prototyping Framework. Tags: game development, rapid prototyping framework, world of […]

  41. masato Says:

    Now learn more outstanding programming through

  42. Luis Correia Says:

    That’s what I was hoping to find from you guys,

    Thanks a lot!

  43. DasEFX Says:

    Hi, thanks a lot for this FrameWork, hopefully my imagination will keep up with it :)

  44. D@S Says:

    vamos a ver q tal luego lo bajo ;)

  45. dridk Says:

    We are making something like that on kde/linux. With the qt4 api, called : GLUON.
    So, thanks to publish this source! It will help us!

  46. Eddie on Games - Weekly Link Roundup Says:

    […] World of Goo guys released a game prototyping framework. Apparently it lacks documention, which would probably be very important to the type of people that […]

  47. Gauntlet Says:

    Thanks guys!
    You have a small typo in the project settings of the 2 demo games.

    At least when using Release-build, “d3d9x.lib” is linked — whereas it should be called “d3dx9.lib”, else there will be a linker error.

  48. JP Says:

    You guys are heroes for releasing this. Thanks so much, looking forward to messing with it.

    Ignore people asking to port it to whatever language or framework, but attaching a very simple license to it (by including it in the ZIP) like MIT or WTFPL probably would uncomplicate people’s usage of it – I know it’s prototyping-focused, but I can imagine some of this code making its way into an actual released game.

    For those who want extra features, platforms, compatibility or access via a version control system, why don’t you set up a project on one of the hosting sites and make a branch of this? That’s what people have done with id software’s engines every time Carmack GPLs their source ( http://ioquake3.org/ ).

    If someone does, add UNIX makefile support, I could use that.

  49. GermanSeabass Says:

    Hm, C++ confuses me. I think I’ll stick with JavaScript…

  50. Elvis Brevi Says:

    Gracias, saludos desde Chile!

  51. francisco Says:

    gracias :D
    ahora a saber como hicieron el juego :D

    thx :D

  52. zander Says:

    Thanks for this guys! I’ve been trapped on xna and c# for a while now, and this is the springboard I need to start hacking together little games in c++!

    Just added controller support on the asteroids game, which took about 10 minutes. Considering it took me about 3 hours in previous c++ attempts just to get a DirectX window open, this is awesome.

  53. Paul from Have Game Will Play Says:

    My brain is happy… prototyping means new game O_o

  54. catwell's status on Wednesday, 03-Jun-09 23:24:02 UTC - Identi.ca Says:

    […] Woaaaaah http://2dboy.com/2009/05/27/rapid-prototyping-framework/ […]

  55. Gimme Indie Tools: 2D Boy unleash open-source rapid prototyping framework | Gamr Src Says:

    […] World of Goo creators 2D Boy, as they gear up to develop their next game, have just released this simple open-source framework for rapid prototyping, a process which 2D Boy Kyle Gabler notably employed to create the original Tower of Goo at the […]

  56. ace Says:

    thanks…

    I’ll download this immediately

  57. María Paz Says:

    I have no idea bout c++. But you’re still amaze. When will we get more of you?

  58. João Santiago Says:

    Hey, why don´t you guys the iphone version of world of goo??
    Since its kinda drag and drop, it could work very well on the iphone interface, plus this game is so awsome that you guys would literally make millions…

  59. João Santiago Says:

    Hey, why don´t you guys do the iphone version of world of goo??
    Since its kinda drag and drop, it could work very well on the iphone interface, plus this game is so awsome that you guys would literally make millions…

    [small correction, sorry]

  60. Indie Vault » La strategia di Kyle Says:

    […] Quel che infine può interessare, per rimanere in tema di autoproduzione, è la pubblicazione del framework su cui i ragazzi di 2D Boy stanno smanettando per creare un degno successore del loro puzzle game. […]

  61. Michal Says:

    Thanks a lot, guys! Give it a try…

  62. jano Says:

    jajajaja chido that is good for the game of goo good llolla I could play till the last level

  63. jano Says:

    2dboy espetacular is very good and more good play throughout the world
    buscar

  64. Gant Says:

    Thank you very much for the engine, a really kick ass game, and have a wonderful day

  65. Gant Says:

    also I would like to start a forum on indie-games for using the engine thank you very much

  66. Alan Carvalho Says:

    Congratulations!

    I wasn’t wrong when I bought a copy of this game!!!

    Is there someone porting it for Linux?

    Best Regards,

    Alan

  67. *null » 2D Boy’s Rapid Prototyping Framework Says:

    […] I hope many of you have played World of Goo, and thusly know of it’s developer, 2D Boy.  If not, it’s one of the better indie 2D puzzle titles out on the market right now and definitely worth a shot.  But I’m not here to review World of Goo. You see, recently, 2D Boy has done something fabulous.  They took World of Goo, stripped it down to it’s basic framework (state machine, input, sound, graphics, math helpers, etc) and released the source code. […]

  68. Playing with Prototyping Tools « The Toolsmiths Says:

    […] of many projects that was sidelined during the summer), I stumbled upon the (now not-so) recent blog post of 2D Boy, announcing the release of their rapid protyping framework (”BoyLib“). I don’t […]

  69. The Magic Pantry › Postal Worker 06 Says:

    […] and so on), and RocketHands wants to release it as our rapid prototyping framework, much as 2D Boy did with theirs. I’m hoping that working on a mobile device version of KranzkyEngine will help me to clean up […]

  70. Andrew Says:

    I just wanted to say thank you. I am in high school and am learning to make games and being able to pick apart your engine has really helped me learn and advance my own engine. I had never heard of the singleton design pattern before, but I sure do now! So, because you guys just don’t get it enough, thank you.

  71. Paweł Says:

    Thanks you guys. I’m writing my own framework including SDL, so it’s very helpful to build good OOP project.

    Greetz from Poland ;)

  72. DonReno Says:

    Thx, 2DBoy, im evaluating some frameworks so this’ll be very helpfull.

    Greetings from Chile.