Sign in to follow this  
Followers 0
DF Oliver

Programming Update #2

214 posts in this topic

greeting:

print "Hello friends of 13h! (http://en.wikipedia.org/wiki/Mode_13h)

Welcome to the second programming update. First of all I would like to thank you guys for showing so much interest in what the engineering team is up to! It is great to see that there are so many people out there who are interested in coding. :-)

A lot of you have been asking about which technology we are using to make the game, so this post will hopefully answer questions about whether we are writing a new engine from scratch or using some pre-existing codebase. In fact this was one of the hardest decisions we had to make during the initial planning stage. Obviously Double Fine already has a proprietary engine which was used to make many of our previous games such as Brütal Legend, Costume Quest, Stacking, Iron Brigade and Once Upon a Monster. For this project, however, we decided not to use it and I will explain why.

Taking the gathered requirements into account our options realistically looked like this:

1) Write a completely new engine from scratch

2) License an existing adventure game engine (e.g. Adventure Game Studio, Wintermute, ...)

3) Use the Brütal Legend engine (BLE)

4) Use and modify an existing open source engine

"

option1:

print "Starting completely from scratch may sound inviting as first, since you have full control over every aspect of the technology. You can program the engine so that it perfectly fits the needs of the project. As a programmer it makes you feel smart to design complex systems like this, so why did we decide not to implement a new engine from scratch?

For us it was mostly a question of timing and money. Writing new technology takes up a lot of time and we really want to concentrate on the game instead. This might be different when you are planning to create a 3D game with photo-realistic graphics, because in this case it is very important to fully use the power of the underlying hardware. The art style for the Double Fine Adventure will be quite different though and our main focus isn't to make the GPU sweat but to create a awesome looking 2D world and release it on desktop as well as mobile devices.

Also there are many low-level systems that are important to get right (e.g. memory management) and there is almost never a good reason to reinvent the wheel unless you are doing something very, very different and difficult.

"

option2:

print "Using an existing adventure game engine would have the advantage that you already have all the features you'll need like an inventory, character animations, scripting and so on. So why did we decide not to go for this option?

Many of these engines support only a limited amount of platforms, which is obviously a huge problem. In addition to that for a lot of these projects the source code isn't available. For us however it is very important to have full control over the source, so that we can fix bugs, implement new (and awesome) features and to make the game run on all the different devices. But even is the source code is available the license terms are very often too restrictive (or undefined), which isn't good for us.

"

option3:

print "I already mentioned above that we chose not to use BLE. Let's look at some of the reasons for this decision. BLE is a great piece of technology that supports many advanced features such as an open-world environment, multi-player support, eye gouging 3D graphics and great authoring tools to name just a few benefits.

A 2D adventure really isn't what BLE was built for however. In fact its focus is on complex 3D games and it is fantastic for this kind of game. Unfortunately the third dimension always adds a lot of overhead when you want to create a (much lighter) 2D game. Another problem is that it hasn't been ported to mobile platforms yet.

"

option4:

print "So since we didn't use any of the options above this must be our choice then? Yep! We decided to use the excellent Moai platform (http://getmoai.com/) as the technology base for this project. But why did we make this decision?

Moai SDK is a lightweight 2D game engine developed by our friends at Zipline Games. It is implemented in C++ and exposes almost all of the low-level services to Lua. This makes it possible to write pretty much all of the game-play code in this scripting language, which is awesome because it means we can iterate very quickly and make a lot of progress in a short amount of time. Since we don't have to write the low-level services ourselves we can concentrate on the architecture of the game-play systems which saves us a lot of time too. In addition to that Moai already supports pretty much all the platforms we want to support and it has successfully been used to release many games. Yay!

On top of these SDK benefits, Moai also makes it easy to run and scale game logic in the cloud. Even at this early stage in the game's development, it's great to know that we'll have this great infrastructure that can support updates and continued improvements to the game even after it's released.

Another great thing about Moai is that it's open source!!! This is awesome because we can benefit from the active developer community that constantly improves and extends the codebase and it allows us to give something back to the community by contributing bug fixes for example.

So you can already check out the source code of the technology that we use to make the game. That's pretty cool, no?

"

epilogue:

print "

So I hope I answered many of your questions about the technology base for the game and that I provided a very detailed view on one of the most difficult decisions so far. As usually please feel free to ask questions. I'll be out of the office for a little bit, so I might not reply quite as often this time, but please be assured I still like you guys! :-)

The other interesting news is that the programming team has grown and we now have Anna and Brandon working on the project too. They are both super talented engineers so please give them a very warm welcome! The next update(s) will be written by them, so stay tuned for more coding goodness.

Okay that's it from me for now. Redbot just called me and I'll have to help him with his AI core (again). Understanding humans sometimes overloads his brain you know... :-)

"

if that_was_interesting()

goto greeting

sleep()

cRRpSu4JelI

Share this post


Link to post
Share on other sites

Welcome aboard the crazy train Anna and Brandon. And thanks for the update from Oliver always cool to know where the game is going.

Share this post


Link to post
Share on other sites

Sounds promising. So, was Redbot's Adventure was built on Moai, then?

Share this post


Link to post
Share on other sites

PS - Oliver is still on honeymoon. Greg used advanced internet magics to post this under his name, but Anna, Brandon, and I will field questions in his absence.

Share this post


Link to post
Share on other sites

Nice. The flexibility of Moai sounds awesome.

I noted that the cloud capabilities allow you guys to gather telemetry data. Is this during testing or will you also gather data after public release?

Share this post


Link to post
Share on other sites

Yay! The first animated pictures of Redbot's Adventure! ;)

Interesting post, thank you!

Share this post


Link to post
Share on other sites

The capability for gathering player data sounds like an excellent way of testing the puzzles on top of the normal player-submitted feedback during beta testing, so hopefully the puzzle designers can avoid creating that one puzzle.

Share this post


Link to post
Share on other sites
I noted that the cloud capabilities allow you guys to gather telemetry data. Is this during testing or will you also gather data after public release?

We haven't made any final decisions yet but we'll likely collect lightweight, anonymous stats after launch on critical items like progression (i.e. where do players stop playing), per-puzzle time (i.e. where do players seem stuck), and other stuff that will help us improve the quality of the game over time, especially for players will less experience playing adventure games.

Share this post


Link to post
Share on other sites

Cool stuff and have a good honeymoon Oliver

Share this post


Link to post
Share on other sites

Awesome video. Moai hadn't been on my radar before, but it definitely is now. Love that you're utilizing open source tech for this ( and plan to contribute back).

Lua is an awesome scripting language, my only. Eef with it is that I'm a JavaScripter, and it's just different enough syntactically to give me trouble.

Share this post


Link to post
Share on other sites
I noted that the cloud capabilities allow you guys to gather telemetry data. Is this during testing or will you also gather data after public release?

We haven't made any final decisions yet but we'll likely collect lightweight, anonymous stats after launch on critical items like progression (i.e. where do players stop playing), per-puzzle time (i.e. where do players seem stuck), and other stuff that will help us improve the quality of the game over time, especially for players will less experience playing adventure games.

That presents an interesting design dilemma. Should the finished creation be modified after its release because customer data shows holes or problems in the design? Would that affect the integrity of the creation? This is especially true with adventure games which are singular experiences that aren't driven by stats balancing as much as creative and often memorable puzzles. They are unique creations in and of themselves.

Anyway, that's unrelated to this thread. Data's always cool to look through. But perhaps something for future design threads.

Share this post


Link to post
Share on other sites

I believe harebrained schemes which did the shadowrun returns kickstarter is using moai as well and has been for a while

Share this post


Link to post
Share on other sites

Wow, I didn't realize all the different kinds of game software out there. This has been enlightening.

Share this post


Link to post
Share on other sites

So will Moai allow the "depth scrolling" mocked up in After Effects?

Share this post


Link to post
Share on other sites
Awesome video. Moai hadn't been on my radar before, but it definitely is now. Love that you're utilizing open source tech for this ( and plan to contribute back).

Lua is an awesome scripting language, my only. Eef with it is that I'm a JavaScripter, and it's just different enough syntactically to give me trouble.

The only problem with LUA I have is that it's type agnostic. Having learnt to program in Pascal it sort of makes me cringe.

Share this post


Link to post
Share on other sites

I know Hare Brained Schemes was talking about Linux support not there for Moai yet, will this affect DFA's linux status? Or will you guys help with the Moai to linux porting?

Share this post


Link to post
Share on other sites

Very cool stuff, guys!

I noted that the cloud capabilities allow you guys to gather telemetry data. Is this during testing or will you also gather data after public release?

We haven't made any final decisions yet but we'll likely collect lightweight, anonymous stats after launch on critical items like progression (i.e. where do players stop playing), per-puzzle time (i.e. where do players seem stuck), and other stuff that will help us improve the quality of the game over time, especially for players will less experience playing adventure games.

That presents an interesting design dilemma. Should the finished creation be modified after its release because customer data shows holes or problems in the design? Would that affect the integrity of the creation? This is especially true with adventure games which are singular experiences that aren't driven by stats balancing as much as creative and often memorable puzzles. They are unique creations in and of themselves.

Anyway, that's unrelated to this thread. Data's always cool to look through. But perhaps something for future design threads.

This sounds really cool and helpful during testing, but I'm hoping not so much after public release. Patches make sense for balancing big multiplayer games and the like, but patching out puzzles that are "too hard" would be kinda lame.

Share this post


Link to post
Share on other sites

Using the open source engine is exciting because all the people out there excited about this game can go play with it too! Thanks for the update!

Share this post


Link to post
Share on other sites

So, we have an open-source engine, for an open-source game development. Seems to make sense.

Share this post


Link to post
Share on other sites

I have absolutely nothing to say here, other than I enjoyed the breakdown of why they felt scratch, (ags/wintermute), or Ble weren't going to work.

Although I'm not sure how difficult the licensing on AGS could be, yes, it won't allow for the options of development on platforms, but the licensing factor can't be hard at all, plenty small developers have gotten it and sold their games.

The video on the Moai website showing Tim being a really hands-on kind of guy was really sweet. Although it seemed like that wasn't filmed or edited by 2 Player Productions.

(oh wait, I had something to say after all)

Share this post


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