Jump to content
Double Fine Action Forums
Sign in to follow this  
DF Oliver

Programming Update 10: Broken Age's Approach to Scalability

Recommended Posts

Welcome friends of registers and cache-lines.

I was invited to this year’s GDC Europe to talk a little bit about our tech and how we are approaching the platform diversity issue. The core of the problem is that Broken Age will have to work great on beefy PCs as well as weaker mobile devices. If you read some of the other forum posts you probably already noticed that a lot of our tech and art decisions were made with platform diversity in mind.

Before I went to Köln I did a test run here in the office and 2 Player Productions filmed the whole thing. But wait there is even more good news! GDC already released the official slides and you can download them for free from the Vault. So feel free to grab the talk slides if you want to follow along.

So sit back, relax and enjoy the presentation:

[vimeo]75264579[/vimeo]

I had a great time in Köln and GDC Europe was very interesting. A lot of people came to see the presentation (as you can see in the photo below), which went pretty well I think.

GDCE_Lets_do_this.jpg

We even got some interest from the press, which is not common for tech talks. You can check out the interview I did with Polygon here and if you are a German speaker you can also listen to the podcast with the nice folks from Superlevel.de.

I hope you guys enjoyed this post and please feel free to ask questions.

Oliver.

Share this post


Link to post
Share on other sites

Awesome! Thanks for sharing, Oliver! Keep up the great work, guys! We're all very proud of what your studio does for all gamers around the world :) I mean, come on, I got my mom into wonderful gaming thanks to DF!

Share this post


Link to post
Share on other sites

Hi Oliver and all programmers!

Thanks for a great talk - I really enjoyed the walkthrough of the different programming techniques you have applied. Nice solutions with the lightning and shadows. I think the game looks stunning. Made my head spin on how to implement my next 2D game!

So much going on behind the scenes... I once read an article which stated - building a computer game is like building a racing car with lots of high tech, that keeps everything running smoothly - your talk was a nice look into that process.

Keep up the good work!

Share this post


Link to post
Share on other sites

Wow, this is a really nice suprise. I have to watch it again to ask an insightful question, but I love how the tech and the art meet in this video. Very interesting. Thanks!

Share this post


Link to post
Share on other sites

With Open GL ES 3.0 now available on Android 4.3 and iOS 7, will you be able to take advantage of that? Or is this not possible due to time constraints?

Also, thanks for being awesome, and sharing this presentation with us! :-)

Share this post


Link to post
Share on other sites

Wow, really cool info in this talk. Personally, I feel like the technical solutions found in 2D games can sometimes be more interesting than in 3D games simply due to the variety of approaches.

It sounds like you had to have a lot of considerations for mobile that required some very crucial changes. I know you considered mobile early on, but did these solutions come from prior experience in mobile, a lot of research beforehand, or just early testing? I can imagine doing a lot of things not thinking they would be a problem only to have it come up later.

Share this post


Link to post
Share on other sites
With Open GL ES 3.0 now available on Android 4.3 and iOS 7, will you be able to take advantage of that? Or is this not possible due to time constraints?

No we won't use OGL ES 3, since we set our target to ES 2 and OGL 3 early on, which is important because we want to make the game available to as many people as possible.

I really would love to use some of the features introduced in ES 3, but that will have to wait until later. :-)

Share this post


Link to post
Share on other sites

It sounds like you had to have a lot of considerations for mobile that required some very crucial changes. I know you considered mobile early on, but did these solutions come from prior experience in mobile, a lot of research beforehand, or just early testing? I can imagine doing a lot of things not thinking they would be a problem only to have it come up later.

Both really. Thankfully we had some in-house experience with Middle Manager of Justice. In addition to that I was responsible for getting the Monkey Island Special Editions to run on mobile devices and that certainly gave me some perspective. Of course we also did a bunch of research and even talked to some of the mobile GPU vendors.

There will still be plenty of 'oh-no!' moments (especially with the fragmented Android market), but I hope we have a good foundation to tackle all issues that we may run into.

Share this post


Link to post
Share on other sites

I remembered another question. You talked about using Moai for the game early on. Has that been a big help in general? Or is it more of just a small base at this point as the team does more and more custom work?

Share this post


Link to post
Share on other sites
I really would love to use some of the features introduced in ES 3, but that will have to wait until later. :-)

/me jumps to conclusions and assumes this means future Adventure games from Double Fine built on this engine. :-D

Share this post


Link to post
Share on other sites
I remembered another question. You talked about using Moai for the game early on. Has that been a big help in general? Or is it more of just a small base at this point as the team does more and more custom work?

It was a great starting point, in fact at the time when we started the project it was our only (realistic) starting point since our Buddha engine wasn't supported on mobile devices back then. You can read more about that in programming update #2.

The nice thing about MOAI is that it is a reasonably clean and well structured engine, which means we were able to easily add a lot of things to it. I would say that most of the work went into tools and the data build pipeline, since MOAI didn't provide anything in this direction. All in all I'm very happy with our decision! :-)

Share this post


Link to post
Share on other sites

Oliver, I just wanted to say that I really appreciate all of the stuff you post for us in the community.

Share this post


Link to post
Share on other sites
Oliver, I just wanted to say that I really appreciate all of the stuff you post for us in the community.

You are welcome! I'm glad that you guys enjoy the forum posts. :-)

Share this post


Link to post
Share on other sites

@Oliver: At ~33:00 you talk of minimizing overdraw by using vector masks authored directly in Photoshop. In an earlier thread you mentioned that these masks where being constructed by the artists and it was a balance between the number of vertices vs. the number of transparent pixels eliminated. Are the vector masks still done by hand or has a tool been developed? Did you run any tests to try and find the optimal balance for mask vertex/# of eliminated pixels?

BTW, Super Interesting Talk!

Share this post


Link to post
Share on other sites

Nice! Sadly i missed this one but you can't get them all in Kölle. :o) Puhh, it's good to hear that you're taking care of drawing more optimised polys and using Clipper. When i asked in another thread about this, it sounded like you wouldn't take care of it and considering the platforms you want to target, this would have been... I like the shadow implementation. Btw. do you have the FAQs, uh questions, available here as well?

Share this post


Link to post
Share on other sites
@Oliver: At ~33:00 you talk of minimizing overdraw by using vector masks authored directly in Photoshop. In an earlier thread you mentioned that these masks where being constructed by the artists and it was a balance between the number of vertices vs. the number of transparent pixels eliminated. Are the vector masks still done by hand or has a tool been developed? Did you run any tests to try and find the optimal balance for mask vertex/# of eliminated pixels?

Good question Bent. Yes the artists are still creating those masks by hand. It never became a bottleneck, so we stuck with it. One could imagine a computer vision based solution to this problems, but in my experience it's not worth it since there are usually lots of corner cases. Also our artists have a good intuitive feeling for the tesselation of the clip geometry, which would be hard to express in an algorithm.

We haven't much analysis to find the optimal vertex density, but those masks are pretty easy to adjust, so I think we'll optimize them on a case by case basis.

Share this post


Link to post
Share on other sites

It seems there's no mention of Direct3D, do you use OpenGL on Windows too? How about ES 1.x on mobile, do you target that?

Yep OpenGL all the way! Sadly ES 1 won't be supported, since we need shader support for a lot our visual effects.

Share this post


Link to post
Share on other sites
Btw. do you have the FAQs, uh questions, available here as well?

Sadly no. But I'll try to answers all the questions here on the forum. :-)

Share this post


Link to post
Share on other sites

Debug mode totally needs to be in the final game!!! Maybe it can be un-lockable after completion ... eh eh!!

Seth B.

Share this post


Link to post
Share on other sites

Damn you Oliver for further distracting me from things I need to do with your cool presentation.

Share this post


Link to post
Share on other sites

Thank you for sharing this, it was a really interesting talk. I'm currently working on a 2D game for iOS and Android and we too had quite a few headaches when dealing with all the different Android devices. In order to handle all the different resolutions we identified all the aspect ratio groups we wanted to support (e.g., 1.77, 1.66, etc) and asked our artists to create assets for every group in the biggest resolution possible. Of course this method produces a lot of overhead for the artists, and the situation becomes more complicated when you consider the software bar on Android devices (it basically changes the aspect ratio). I was wondering if you guys faced that kind of problem and if you could share some of your experiences when dealing with it.

Share this post


Link to post
Share on other sites

Fascinating talk. This is one of those topics where I feel like I just just barely follow along. A couple of years back I was marginally involved in the community effort to get the original Bioshock working on Shader Model 2.0b video cards, and some of this information really helped explain WHY certain things were and weren't working.

When I hear you discuss weak Android devices, I'm excited to think I might be able to run Broken Age on my phone but I'm curious how anything will be legible on its tiny screen.

22:40 - DLC hats for Shay and Vella? Sweet!

Share this post


Link to post
Share on other sites

Thank you, Oliver! It's always great to see your updates. I admit the math/rendering talk isn't my strong point, but from what I gathered, it'll still look good on mobile devices, or on my old Mac laptop, even if scaled down a bit. Which is lovely to hear.

I do wonder, though, will I be able to play my copy of BA on both my iOS device AND my Mac, or would I have to buy a separate copy if I wanted it for a second console as well?

Share this post


Link to post
Share on other sites

I'm sure you've already seen it, Oliver, but recently there was a blog-post doing the rounds reporting on different vendors' support for OpenGL ES 3.0; to summarise, desktop GPUs and drivers are reasonable, mobile GPUs and drivers are terrible. OpenGL ES 2.0 is more mature and I'm sure more reliably implemented than 3.0 seems to be, but have you had similar issues with unexpected bugginess, as opposed to the predictable differences in raw power?

Share this post


Link to post
Share on other sites

Thank you so much for taking the time to do this. Is very useful to see in depth the technical process behind the game. I'm amazed you guys are able to take care of all this stuff. Also I would have banned Android if it where that unreliable and fragmented, this platform just can't be called one platform when you'll have to consider so many different devices and GPU's.

When it's done, I'd love have some Broken Age experience and see the world that you guy's made for us!

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...