Hacker News new | past | comments | ask | show | jobs | submit login
Buildy, a real-time HTML5 building game - come build in our biggest world yet (playbuildy.com)
214 points by RoboTeddy on Nov 8, 2012 | hide | past | web | favorite | 45 comments

Hey, this world started on the Something Awful forums, and we thought it'd be fun to continue it here. Feel free to contribute anywhere in the world.

It's still early for this project (alpha). Chrome and Firefox only for now. Please don't grief or ruin the fun!

Some tech details: canvas-based rendering engine, firebase for chat and presence, sockjs for realtime events, phantomjs + beanstalkd for rendering static tiles (for zooming way out), python on the server side, mysql where convenient and mongodb where convenient.


Are you using PhantomJS to render the page? (that "Notice: last satellite flyover was [x] minutes ago")

I'm guessing you queued the job via beanstalkd and call phantomjs renderBase64 against your URL?

It's nice to see more people using PhantomJS these days (I'm using it myself in my current work)

You are a very good guesser.

Today's activity has given us a few ideas about how to make those "flyovers" more frequent.

I hope these few nuggets about PhantomJS can help your app:

- Use JPG and not PNG (for renderBase64), we tested it and JPG gives a much more better performance, but then again it depends on how crisp you want your output

- (You may already done this either using PhantomJS or using image manipulation) Don't forget you can also scale the image using page.zoomFactor :)

- (Not sure how useful this one is for your case) You can clip the viewport too in PhantomJS

- PhantomJS seems to use a lot of memory (main page of twitter.com may resulted in at least 45MB of memory).

- CasperJS is probably the best wrapper of PhantomJS out there for now if you ever need to do something more complicated

NB: We've only tested on recent Chrome and Firefox builds on OS X. Bug reports in other browsers are appreciated, but I can't promise we'll be able to act on them in the near future.

Also doesn't work very well on iOS.

Safari looks good so far

Chrome, MacOS X, running good..

Awesome, this reminds me of GoonTower and GoonBase (spiritually inspired by them I take it?[1]). Interesting tech stack too, I'd love to make a game like this sometime in the future. I tried googling for buildy somethingawful but got no hits - did you guys rename it, or are you launching it on IRC/in a private group?

I agree with the comments that you guys should consider putting avatars in. It would increase immersion and expand your future possibilities dramatically. But I'm sure you guys have already thought about this.

Kudos, once again.

[1] There's a tradition of "collaborative building" projects on the SomethingAwful Forums. Some examples:

Goon Tower: http://www.goontower.com/

Goon City: http://forums.somethingawful.com/showthread.php?threadid=292...

Goon Base (the grandaddy): http://pictures.deadlycomputer.com/d/16192-1/goonbase.jpg

Hmm, Seems like they copied the idea of Goon Tower from Mr Wong's apartments. This is the original idea: http://www.mrwong.de/myhouse/

Kudos for using SockJS! (sockjs-tornado, as I see) Shout if you run into any troubles.

Kudos for writing SockJS! Are you seeing the adoption you expected?

Nice! It works great and seems fun! Congrats :)

What tech excludes IE10? Or is it just untested?

Just untested. It may work in IE9 and IE10.

IE8 doesn't work - obviously;

IE9 has some odd layering issues - depending on the zoom level some elements from the UI don't show up - zooming back in or out restores them. Other than that it seems to work well from quick testing.

Don't have IE10 so can't test that for you.

* Looks awesome btw!

Everything feels really polished. Congrats guys, this looks fantastic. :)

If you want to get updates about Buildy, you can follow our blog:


Awesome, did this just launch? People love this kind of thing, i'd be surprised if it wasn't successful.

Performance seems great for javascript/canvas. Though I would love to see a high performance native app. Good luck to you guys!

This is cool. I would highly recommend you sheet your sprites because ATM you are loading in each graphic individually via an HTTP request, which is pretty inefficient.

This is really nice! Looks like you're using Firebase for the realtime stuff?

See RoboTeddy's comment above.

Some tech details: canvas-based rendering engine, firebase for chat and presence, sockjs for realtime events, phantomjs + beanstalkd for rendering static tiles (for zooming way out), python on the server side, mysql where convenient and mongodb where convenient.

This reminds me of something... As someone who LOVED rollercoaster tycoon, please please please consider object/character movement, such as NPC's that move and do stuff. Like puke on the ground after roller coasters =) Also other players who are in control of a character (like Sims game) would be fun to highlight and watch interact with NPC's.

Yeah, while it's fun to scroll around and see what stories people are trying to tell through this medium, it'd be really cool to have some actors moving around in the world. Riders on the roller coasters (which seem to be among the most fun things to build in any building game; even when the tools don't make it easy to do so), people roaming around exploring (and occasionsally being chopped up by the chainsaw guy or eaten by the scary smoke monster thing, or turned into a newt when walking over a black magic altar, etc.) would make this absolutely magical to just watch and play with. Not to say it's not cool today, as it is, just that if the dinosaurs roared and flung cars, it'd be a mild form of ecstasy.

Exactly, it looks great as it is right now. Where's waldo like. But I'm a video guy and motion would make this world epic.

I've seen a few HTML5 games for sometimes now but have only been impressed by two - first Subbania and now this one. And I must say Buildy tops them all. Good Job. The thing that I like most about it is that people don't use the canvas element as creatively as it can be but you did it. Such games must be developed more to popularize HTML5.

Cool. I don't know how expensive it is to create a new world. If it's cheap, it'd be cool to offer unregistered accounts a way to play around in their own private, non-persistent sandbox before making the jump and registering.

Reminds me of Paul Bakaus' Aves Gaming Engine (also canvas based and isometric view).

He was very active documenting his research on it's performance: http://paulbakaus.com/2010/07/19/why-canvas-is-not-an-obviou...

I know this is mean, but you know what's really fun... undoing what people are doing in real time... someone just planted a tree.. and then I moved that tree.. (tee hee hee) - sorry. maybe this type of moves shouldn't be allowed? - but I just had the best 10 minites of my week!!!

If you're in the world and someone is doing this to you, please say something in chat and we'll ban them.

The page loaded and the Paperboy theme immediately started playing in my head.

OMG! Addicted already.

Really awesome. Although I suspect some people might take advantage of the ability to delete/move anything they want. What would be the solution to this?

We're gonna allow people to create invite-only worlds. In the mean-time, the entire history of the world is evented, so we can actually filter out events from a given user and it'll be like they never existed.

It'd be so awesome if the engine and code behind this world builder can be opensourced.

We may at least do a couple write-ups about some of the tech behind it.

This is really freakin' neat. The beginning of the future of the interwebz

Looks great, needs rotation though!

That raises the barrier to object creation, as the objects appear to be just flippable 2D images.

Works such as this are very near to my heart. As a developer of collaborative games in emerging technologies including "HTML5" I want to articulate the intense delight I feel each instance I discover others pursuing this strange, new, often difficult, but ultimately vastly rewarding path to success. I found this particular exchange exceptional.

The developers (chatting in-game) were rather friendly and particularly forthcoming about their sound choices for their technology stack which I found to be refreshing. This kind of transparency, at least in this industry, is somewhat rare and is absolutely commendable.

If you indeed enjoyed the experience, as I suspect most did, please continue to support these developers and their work. It is through this process we, as a community, will continue to manifest works such as this.

Do not underestimate the power of getting the word out about these endeavours. A "like" on Facebook. A tweet. A blog post. It all adds up. And we really do appreciate such a priceless commodity.

Thanks for another great example why 'HTML5' is not (yet) an alternative to Flash when it comes to vector performance and games.

it performs fine. what are you talking about?

Please could you provide more information? What problems are you seeing, what platform are you using?

Why would flash work?

Thanks for another great example of fear, uncertainty and doubt surrounding the undeniable ubiquity of HTML.


I told you to stop using IE6....

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact