Gecko for Games
by Prairie Games · in Technical Issues · 11/17/2004 (11:18 pm) · 7 replies
... a continuation of this .plan
Holy crap!!!
Over the past few days, I have been increasingly blown away by the Mozilla Project. Especially the Gecko Runtime Environment, which is the minimum set of files required for embedding the Gecko browsing engine. This is the same rendering engine as used in Firefox and Mozilla... Gecko is cross platform and 100% legal to redistribute.
A couple important points about embedding Gecko:
1) You don't need to install/upgrade a browser/extensions on the user's box... it's integrated with your application.... and as you KNOW you're using Gecko, you can play specifically to Gecko's tremendous strengths... (XUL, etc)
2) Ignoring web technology could leave you in the dust... we're counting on the web to distribute our games... there's a ton of tech and tools to use in actually making your (cross-platform) product too!!!
I have been doing work with embedded Gecko and I'll say this: It's extremely solid. We are talking grade AAA web technology here folks... HTML rendering, Javascript, XML, DOM, XUL, etc, etc, etc... it comes fully loaded...
Macromedia Flash and Shockwave
One thing I have been EXTREMELY keen on for many years is using Flash/Shockwave for game menus and HUDS... I've done some fullscreen tests with this and I am completely 100% sold that this is the way to go... for anyone living under a rock, here's a nice example of some flash stuff http://www.terminator3.com... the movie sucked, the flash site is pretty cool... You can pack a whole lot of interactive goodness in Flash/Shockwave files... Great for download sizes too!
This is a snip from an email I just received from Macromedia:
... and here's a little more information:
Prairie Games, Inc is investing heavily in solid Gecko support for our games... this brings a host of wonderful technology and layout tools for us to use... the key is to make your application talk with all this stuff... well, check out XPCom and friends...
I have so much more to say, but I really have to get back to work...
-Josh Ritter
Technical Director
Prairie Games, Inc
Holy crap!!!
Over the past few days, I have been increasingly blown away by the Mozilla Project. Especially the Gecko Runtime Environment, which is the minimum set of files required for embedding the Gecko browsing engine. This is the same rendering engine as used in Firefox and Mozilla... Gecko is cross platform and 100% legal to redistribute.
A couple important points about embedding Gecko:
1) You don't need to install/upgrade a browser/extensions on the user's box... it's integrated with your application.... and as you KNOW you're using Gecko, you can play specifically to Gecko's tremendous strengths... (XUL, etc)
2) Ignoring web technology could leave you in the dust... we're counting on the web to distribute our games... there's a ton of tech and tools to use in actually making your (cross-platform) product too!!!
I have been doing work with embedded Gecko and I'll say this: It's extremely solid. We are talking grade AAA web technology here folks... HTML rendering, Javascript, XML, DOM, XUL, etc, etc, etc... it comes fully loaded...
Macromedia Flash and Shockwave
One thing I have been EXTREMELY keen on for many years is using Flash/Shockwave for game menus and HUDS... I've done some fullscreen tests with this and I am completely 100% sold that this is the way to go... for anyone living under a rock, here's a nice example of some flash stuff http://www.terminator3.com... the movie sucked, the flash site is pretty cool... You can pack a whole lot of interactive goodness in Flash/Shockwave files... Great for download sizes too!
This is a snip from an email I just received from Macromedia:
Quote:Congratulations! We have received and approved your licensing request to
distribute the Macromedia Shockwave Player (includes the Macromedia Flash
Player).
... and here's a little more information:
Quote:Both Macromedia Flash Player and Shockwave Player are also free to software developers who wish to distribute them on CD-ROM. In addition, software developers may distribute Macromedia web players through the Internet to end users (only if the web player is embedded in the licensee's installer which, in turn, is downloaded from the Internet). Macromedia requires specific marketing consideration in exchange for either of these methods of distribution, described more fully in the Macromedia Flash Player and Shockwave Player License and Distribution Agreement.
Prairie Games, Inc is investing heavily in solid Gecko support for our games... this brings a host of wonderful technology and layout tools for us to use... the key is to make your application talk with all this stuff... well, check out XPCom and friends...
I have so much more to say, but I really have to get back to work...
-Josh Ritter
Technical Director
Prairie Games, Inc
#2
Does anyone have modern information on any performance advantage for exclusive mode? I am thinking it's extremely marginal...
-J
11/18/2004 (12:39 am)
You chuck the title and taskbar... voila, fullscreen...Does anyone have modern information on any performance advantage for exclusive mode? I am thinking it's extremely marginal...
-J
#3
What do we need to do to integrate Gecko into our engine to allow flash animations to be played? We are unable to play movies for our intro and cut scenes. We have a great art depertment with many expert flash specialists. If we could get this working we would be way ahead of the game.
Thanks for your help,
Marrion Cox (Programmer)
11/18/2004 (4:01 am)
Hi josh,What do we need to do to integrate Gecko into our engine to allow flash animations to be played? We are unable to play movies for our intro and cut scenes. We have a great art depertment with many expert flash specialists. If we could get this working we would be way ahead of the game.
Thanks for your help,
Marrion Cox (Programmer)
#4
Could this be a solution ??
11/18/2004 (5:51 am)
Hmm, i've always wanted a web-based news interface intergrated in my TGE powered project ......Could this be a solution ??
#5
The source code could be used as a basis for embedding it in any framework. There also are embedding examples provided in the Mozilla source code distribution...
Once you have embedded Gecko it's just a matter of deciding how you want to communicate with the stuff... over the wire, javascript, XPCOM ,etc.. I haven't decided on exactly how WE are doing it yet... could be a combination of methods...
Prairie Games will have some good example stuff to look at soonish.
-Josh Ritter
Technical Director
Prairie Games, Inc
11/18/2004 (8:06 am)
I have branched wxMozilla ... This is a wxWidgets control that allows you to embed Gecko into any wxWidgets application... wxWidgets is our platform layer... for cross platform GUI, thread, etc... we generally use it via wxPython... in fact, wxMozilla has a wxPython extension!The source code could be used as a basis for embedding it in any framework. There also are embedding examples provided in the Mozilla source code distribution...
Once you have embedded Gecko it's just a matter of deciding how you want to communicate with the stuff... over the wire, javascript, XPCOM ,etc.. I haven't decided on exactly how WE are doing it yet... could be a combination of methods...
Prairie Games will have some good example stuff to look at soonish.
-Josh Ritter
Technical Director
Prairie Games, Inc
#6
How much do you use wxWidgets? I access it through C++ but find it a pain to use, though compared to Windows GUI programming it's a dream. It just seems anything I want to do, I need to write my own control.
Embedding a browser was something that I needed to do for a game I'm working on, but now you've conveniently solved that for me. I'm finding as I go along, that more of the game and associated tools I'm working on are being supported by FOSS: SDL, Python, wxWidgets, Gecko. I think it's great to see this happening.
Cheers,
Paul.
11/18/2004 (8:37 am)
This is really nice work. When I first heard about Gecko all those years ago and how it could fit onto a floppy disk (compressed), I was in awe. Then it turned into Mozilla: the great lumbering beast that wanted to be an operating system. Now as Firefox it's making a storm. Strange how the world works.How much do you use wxWidgets? I access it through C++ but find it a pain to use, though compared to Windows GUI programming it's a dream. It just seems anything I want to do, I need to write my own control.
Embedding a browser was something that I needed to do for a game I'm working on, but now you've conveniently solved that for me. I'm finding as I go along, that more of the game and associated tools I'm working on are being supported by FOSS: SDL, Python, wxWidgets, Gecko. I think it's great to see this happening.
Cheers,
Paul.
#7
On the exclusive mode thing, you give up an incredible amount of flexibility once you've gone into exclusive fullscreen mode... I can't believe it gives a very large performance boost... At any rate, we don't have the resources to push the polygon/shader technology envelope... end users can't tell the difference between exclusive mode and simply chucking the taskbar/titlebar for your application... in fact, task switching and things work BETTER by NOT using exclusive mode!!!
I put together a little information about building wxMozilla's wxPython extension HERE ... There's also some information about our branch HERE that may help... I've done some tweaking to the build system...
At the moment, this isn't for the faint of heart... a simple binary/distutils will solve that though...
Help???
-Josh
11/18/2004 (9:25 am)
Thanks :)On the exclusive mode thing, you give up an incredible amount of flexibility once you've gone into exclusive fullscreen mode... I can't believe it gives a very large performance boost... At any rate, we don't have the resources to push the polygon/shader technology envelope... end users can't tell the difference between exclusive mode and simply chucking the taskbar/titlebar for your application... in fact, task switching and things work BETTER by NOT using exclusive mode!!!
I put together a little information about building wxMozilla's wxPython extension HERE ... There's also some information about our branch HERE that may help... I've done some tweaking to the build system...
At the moment, this isn't for the faint of heart... a simple binary/distutils will solve that though...
Help???
-Josh
Torque Owner Dan MacDonald