Sunday, October 2nd 2011
Mozilla are developing a full-on 3D game engine for their Firefox browser. It looks like having a viable high performance game engine built right into the browser could allow first person shooter type games to reach a much wider audience and possibly even raise the bar for integrated graphics - we're already seeing this with the upcoming Sandy Bridge E processors. The project is called Paladin, which is developing the Gladius 3D gaming engine. To help test it, a basic 3D game, RescueFox has been prototyped, although that’s not going to be developed further, but forking is welcomed. We’ll let the Mozilla development blog take it away from here.
Paladin is a Mozilla project to push 3D gaming on the Web. As a part of our efforts, we’re building a game engine called Gladius. We’ll blog proper introductions to both of these projects in the upcoming weeks. We’ve built RescueFox, a first prototype game, as a way to validate the Gladius game engine work we’re doing and find issues in the Gecko and Web platforms as well. Note that we do not intend this as a prototype for a larger-scale game.Source: mozillalabs.com
Don’t you hate it when you’re traveling at light speed, and your pet space fox escapes to an asteroid belt?
I know it drives me nuts. Fortunately, you have an invisible fox detector to figure out where she is, and you can use a tractor beam that pulls you from asteroid to asteroid to the fox herself. And you’ve got about 90 seconds until she runs out of air.
The game works in current versions of Firefox, and cursory testing suggests that works in Chrome on MacOS, albeit more slowly and without sound.
If you’re interested in learning more about RescueFox, Paladin, and Gladius, or in contacting us, have a look at the (still-in-progress!) Paladin wiki page.
The Value of the Prototype
RescueFox was developed to make sure that the Gladius gaming engine was really going to be suitable to build games against. CJ Cliffe started by doing lots of work initially directly against CubicVR.js, a great 3D engine that Gladius depends on. It’s the same 3D engine used to build the No Comply and Flight of the Navigator demos. Alan Kligman and Bobby Richter started porting chunks of it to the higher-level Gladius APIs, and I started working with some of the input APIs, the timer, and finding visual assets to use.
This is where it started to get interesting. As we progressed, the game coding started to make clear to us that some of the factoring of the existing APIs was actually making the game more complex to build rather than easier.
After more work, a super simple prototype engine that Bobby whipped up, and more discussion, we came to the conclusion that we needed to do some refactoring on Gladius. This was great, because it meant that we figured it out much sooner than we otherwise would have.
We still needed a game prototype as a way to communicate more broadly the part of the Web gaming space we want our engine and the larger project to explore, so we mostly stuck with the lower-level APIs and did just enough work to make it basically playable.
Note that we think we’ve learned most of what we can from RescueFox and don’t intend to drive it forward any further at this point (though that shouldn’t stop anyone who feels inclined to fork it). But we’ll be prototyping another microgame soon once the Gladius refactoring is a bit further along, and we’ll be very interested in having folks help out there…
RescueFox was very much a group effort. Thanks ever so much to….
- James Burke (modularizing Gladius with require.js)
- CJ Cliffe (game mechanics, design, coding, modeling, physics, and CubicVR.js)
- David Humphrey (design, Gladius sound API, music selection)
- Alan Kligman (game mechanics, design, coding, engine design)
- Dan Mosedale (coding, model selection, game mechanics, project mgmt)
- NASA (spacesuit model & textures)
- Perfect Blind (background music: “Three Spires” and “Ethernion II”)
- Bobby Richter (game mechanics, design, modeling, coding, engine design)
- ro.me team (fox model and textures)
- Alon Zakai (physics & ammo.js)
Apologies to anyone we’ve inadvertently omitted!