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:
- Minimizing the amount of code required to set up a new game
- 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.














May 27th, 2009 at 8:10 pm
Nice work, guys. Small, focused, effective. I like it. :)
May 27th, 2009 at 8:10 pm
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.
May 27th, 2009 at 10:01 pm
Thanks. That might be useful
May 27th, 2009 at 10:54 pm
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.
May 27th, 2009 at 11:14 pm
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.
May 27th, 2009 at 11:59 pm
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.
May 28th, 2009 at 12:11 am
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!
May 28th, 2009 at 12:12 am
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 ?
May 28th, 2009 at 12:33 am
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!
May 28th, 2009 at 2:23 am
Thanks, I’ll give it a try once I get home. Maybe some function can come in handy for my own engine.
May 28th, 2009 at 3:21 am
@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…
May 28th, 2009 at 4:12 am
Yes truly thank you for supporting people who are beginners in this field.
May 28th, 2009 at 7:04 am
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”.
May 28th, 2009 at 7:10 am
@SteveC: i hereby grant everyone a license to do whatever they want with this framework. how’s that? :)
May 28th, 2009 at 8:21 am
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
May 28th, 2009 at 8:54 am
sounds rather like the MIT license :)
May 28th, 2009 at 8:58 am
Why not provide git repository address instead of just zip-file?
May 28th, 2009 at 9:33 am
thanks for that, really nice of you to share your work with others :)
May 28th, 2009 at 9:40 am
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.
May 28th, 2009 at 10:13 am
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.
May 28th, 2009 at 10:16 am
This is nice thing poster here:D
May 28th, 2009 at 11:39 am
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!
May 28th, 2009 at 12:55 pm
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.
May 28th, 2009 at 1:39 pm
[...] !games !wog 2dboy releases World of Goo engine source code. Sweet! http://2dboy.com/2009/05/27/rapid-prototyping-framework/ [...]
May 28th, 2009 at 1:55 pm
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.
May 28th, 2009 at 2:58 pm
ooh! youve got a spam bot above!
May 28th, 2009 at 3:03 pm
This is why indie development is so great. Thanks for sharing.
May 28th, 2009 at 3:24 pm
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.
May 28th, 2009 at 4:02 pm
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!
May 28th, 2009 at 5:48 pm
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 ;-)
May 28th, 2009 at 7:00 pm
[...] ahora los chicos de 2D Boy quieren compartir su experiencia como desarrolladores independientes publicando el núcleo del framework que desarrollaron para su gran [...]
May 28th, 2009 at 7:33 pm
Hey Guys, you can use google code, github or something like to host your code ;)
May 28th, 2009 at 7:37 pm
Nice work people! congratulations!!!!
Saludos desde Argentina.
May 28th, 2009 at 8:19 pm
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
May 28th, 2009 at 11:24 pm
This is great. Thanks, guys! :-)
May 29th, 2009 at 2:03 am
[...] 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: [...]
May 29th, 2009 at 5:40 am
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.
May 29th, 2009 at 6:12 am
[...] 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 [...]
May 29th, 2009 at 6:26 am
@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.
May 29th, 2009 at 7:03 am
[...] 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 [...]
May 29th, 2009 at 8:01 am
Now learn more outstanding programming through
May 29th, 2009 at 9:53 am
That’s what I was hoping to find from you guys,
Thanks a lot!
May 29th, 2009 at 10:00 am
Hi, thanks a lot for this FrameWork, hopefully my imagination will keep up with it :)
May 29th, 2009 at 10:44 am
vamos a ver q tal luego lo bajo ;)
May 29th, 2009 at 11:33 am
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!
May 29th, 2009 at 7:14 pm
[...] 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 [...]
May 30th, 2009 at 5:45 am
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.
May 30th, 2009 at 9:47 am
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.
May 30th, 2009 at 3:07 pm
Hm, C++ confuses me. I think I’ll stick with JavaScript…
May 30th, 2009 at 4:03 pm
Gracias, saludos desde Chile!
May 30th, 2009 at 5:50 pm
gracias :D
ahora a saber como hicieron el juego :D
thx :D
June 2nd, 2009 at 3:00 am
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.
June 2nd, 2009 at 2:12 pm
My brain is happy… prototyping means new game O_o
June 3rd, 2009 at 3:23 pm
[...] Woaaaaah http://2dboy.com/2009/05/27/rapid-prototyping-framework/ [...]
June 4th, 2009 at 12:34 am
[...] 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 [...]
June 4th, 2009 at 12:43 am
thanks…
I’ll download this immediately
June 15th, 2009 at 8:39 pm
I have no idea bout c++. But you’re still amaze. When will we get more of you?
June 19th, 2009 at 1:44 pm
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…
June 19th, 2009 at 1:45 pm
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]
July 10th, 2009 at 4:37 pm
[...] 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. [...]
July 15th, 2009 at 4:39 am
Thanks a lot, guys! Give it a try…
August 13th, 2009 at 11:33 am
jajajaja chido that is good for the game of goo good llolla I could play till the last level
August 13th, 2009 at 11:36 am
2dboy espetacular is very good and more good play throughout the world
buscar
September 16th, 2009 at 3:35 pm
Thank you very much for the engine, a really kick ass game, and have a wonderful day
September 16th, 2009 at 3:36 pm
also I would like to start a forum on indie-games for using the engine thank you very much
September 24th, 2009 at 9:38 am
Congratulations!
I wasn’t wrong when I bought a copy of this game!!!
Is there someone porting it for Linux?
Best Regards,
Alan
September 25th, 2009 at 8:37 pm
[...] 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. [...]
September 27th, 2009 at 4:25 pm
[...] 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 [...]
January 18th, 2010 at 6:39 am
[...] 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 [...]
June 27th, 2010 at 10:49 pm
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.
July 13th, 2010 at 4:14 pm
Thanks you guys. I’m writing my own framework including SDL, so it’s very helpful to build good OOP project.
Greetz from Poland ;)