Ogre for PocketPC

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Ogre for PocketPC

Post by GenericBum » Fri Dec 16, 2005 7:50 am

This is my second port for Ogre (the first was for Xbox).

I've been working on this for a little while now, and had to set it aside until Visual Studio 2005 came out with it's native support for PocketPC devices. The project is finally showing some results, so I thought I would give the community some screenshots running off my PocketPC Samsung i730. At this point, the engine (current Dagon code) is fully ported and executes.

Since most PocketPC devices do not contain any 3d hardware, this implementation uses a software implementation of OGLES.

There is certainly lots of room for optimization in the project, as I don't think existing Ogre games/demos will run efficiently "out of the box" on the PocketPC platform. However, I'm curious to see what can be produced if developers plan for the limited rendering power. I'm working with the author on the OGLES renderer and hopefully future optimizations will bring along the better frame rates. My sense is that scenes utilizing "baked" lighting, little or no vertex animation with less than 3k polygons should be fast enough right now.

Input from the hardware buttons on the device aren't glued up yet in the PlatformManager_WinCE, and there are some texturing bugs related to multi-pass overlay objects. Also, there is a memory bug in Zzip that causes zipped archives to be read incorrectly.

Special thanks to Joao Paulo Lima for helping out with the RenderSystem code and Hans-Martin Will for his open source OGLES project. All of the Ogre dependencies had to be ported to PocketPC including DevIL, ILU, Zzip, and more. And thanks to the ZlibCE project at http://www.ciprian-miclaus.com/sources/ ... id=5&tip=c, and the LibCE project at http://studierstube.org/handheld_ar/.

The source is checked into our SVN server right now and will be made available when the project stablizes. If you want read access you can PM me.

ImageImageImage


Thanks,
GenericBum
0 x

User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 1
Contact:

Post by Kencho » Fri Dec 16, 2005 8:30 am

Wonderful news! With OpenGL|ES supported, porting Ogre to mobile devices or even the PSP should be easier now :) Great work!
0 x
Image

User avatar
Kentamanos
Minaton
Posts: 980
Joined: Sat Aug 07, 2004 12:08 am
Location: Dallas, TX

Post by Kentamanos » Fri Dec 16, 2005 8:31 am

Very cool :)
0 x

Brun°oO
Halfling
Posts: 50
Joined: Thu Nov 13, 2003 12:50 pm
Location: Bordeaux, France
Contact:

Post by Brun°oO » Fri Dec 16, 2005 9:59 am

Very very good news, I'm looking forward to use such a rendering on a pocket pc, I'm so impatient :wink:
0 x
El °oO Masqué

User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
Contact:

Post by SunSailor » Fri Dec 16, 2005 10:42 am

Wow, this really rocks.
0 x

User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
Contact:

Post by betajaen » Fri Dec 16, 2005 11:56 am

Oh that is good, now my PDA can get some use.

I wonder if it could be put on Mobile phones, or at least the one's that run WindowsCE.
0 x

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19261
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
Contact:

Post by sinbad » Fri Dec 16, 2005 3:03 pm

Wow, that's very cool indeed. Well done!

As this develops we can add you to the addons project if you like (there aren't the legal issues with PocketPC as there were with the XBox port).
0 x

User avatar
skullfire
Gremlin
Posts: 150
Joined: Sat Mar 19, 2005 7:51 pm
Location: San Jose, Costa Rica
Contact:

Post by skullfire » Sun Dec 18, 2005 1:02 am

:shock: dude this is amazing!
I would love to put this onto good use!
0 x
I may have alzheimer, but at least I dont have alzheimer.

User avatar
Fiesch
Gremlin
Posts: 159
Joined: Mon Oct 10, 2005 11:08 am
Location: Bavaria, Germany
Contact:

Post by Fiesch » Sun Dec 18, 2005 1:34 am

same here, I'm really looking forward to see this in the addons!

(yay that even looks like my Xda mini there :D)
0 x
From all the things I've ever lost i miss my mind the most
S.Tyler, Aerosmith

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Sun Dec 18, 2005 8:04 am

I'm up for adding this to the add-ons once we get the major pieces working.

I have several questions on the best approach.

For something like this port, I have tried to keep the modifications to OgreMain to a minimum. There are perhaps four .h and four .cpp file changes. How do you recommend keeping this in CVS? As an entire project unto itself, or trying to merge the changes into the main OgreMain project?

Most of the changes are related to PocketPC's lack of "current directory" support.

Also, there are vc 8 project files that I created to compile for PocketPC. Should these be moved into some add-on project folder, but reference files in the main Ogre area?

As for the PlatformManager and RenderSystem, I'm hoping those projects can be reused in different combinations on other projects. Do those go under the "PlatformManagers" and "RenderSystems" folders or in another add-on area?

Thanks,
GenericBum
0 x

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19261
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
Contact:

Post by sinbad » Sun Dec 18, 2005 2:04 pm

It kind of depends what those changes are - if they can be integrated without affecting other platforms they could be incorporated into the core, otherwise they should be included as a patch file in your source tree so people can apply the patch to the standard version of OGRE if they want to use the addon.

Yes, the typical addon setup is to assume that the 'ogreaddons' folder is installed alongside the 'ogrenew' folder, and reference files in OGRE using relative folders assuming that structure.

Let me know what folder name you'd like to call it, and a list of Sourceforge usernames who should have commit access.
0 x

User avatar
Dark
Halfling
Posts: 63
Joined: Fri Jul 15, 2005 7:34 pm
Location: The Netherlands
Contact:

Post by Dark » Thu Jan 05, 2006 3:47 pm

We need more thing's like these! On your phone, your PDA, your handheld (psp would be great if u can make it happen without hacking the device.).

Just ogre evry were :)
0 x
Image
Domination Studios, making the sh*t you gonna play!

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Thu Jan 05, 2006 4:25 pm

I have my sites set on the PSP next. My company is an approved PSP developer for Sony... the PocketPC was a good intermediate platform to get some of the functionality up and running on.

The problem is that I spend too much time working on ports of Ogre and not enough time working on game content to go on those platforms.

GenericBum
0 x

User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
Contact:

Post by CaseyB » Thu Jan 05, 2006 4:59 pm

Are you planning on puting the PocketPC port in the addons section? Also would there be the same lisenceing issue with the PSP as with the Xbox?
0 x

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Thu Jan 05, 2006 5:24 pm

Are you planning on puting the PocketPC port in the addons section?
The PocketPC source is available now through my own Subversion server, although it's constantly being updated to improve performance and fix bugs. My preference is to formalize the WinCE platform in OgreMain and merge my changes into the main Ogre source. However, Sinbad is a very busy guy and it will take some time to sort through my changes to make sure everything is in line with the direction he wants for Ogre. There are some pretty large changes that were required to take advantage of the "Real" typedef and build a fixed-point math class.

I'm afraid that if we provide the project only as an add-on then it will eventually become too hard to maintain and die off.
Also would there be the same lisenceing issue with the PSP as with the Xbox?
I've been pondering this question for while now, and there are really two answers. I'm in a bit of a difficult position. Since my company is approved by Sony, we would be using the official SDKs and tools, so our source would only be available to other approved developers (similar to the port for Xbox that I worked on).

However, the PSPDEV project (http://ps2dev.org/psp) has made huge strides and their PSPSDK, and you can write applications that run on 1.5 firmwares and below. It would be entirely possible for anyone to build a PlatformManager and RenderSystem based on the PSPSDK open source. My strategy probably would have been to look at PSPGL (http://www.goop.org/psp/gl/) to make building a RenderSystem very easy.

Obviously, as a professional choice, I am avoiding the homebrew tools so I don't endanger our status with Sony.

GenericBum
0 x

User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
Contact:

Post by CaseyB » Thu Jan 05, 2006 5:55 pm

I completely understand your hesitation! Unfortunately I don't have enougn experience to head up a project like that, but I would love to see it happen and I would be more than will to contribute anything I could. Should we pull together and make a PSP port a community project?
0 x

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Thu Jan 05, 2006 6:03 pm

I think a PSP port is definitely something I would like to see, but more importantly, I'd like to see more Ogre games.

In my mind, the more projects that are using Ogre - the better. Ports are useless if you don't have any content.

Has Ogre done any small game contents recently?

GenericBum
0 x

User avatar
CaseyB
OGRE Contributor
OGRE Contributor
Posts: 1335
Joined: Sun Nov 20, 2005 2:42 pm
Location: Columbus, Ohio
Contact:

Post by CaseyB » Thu Jan 05, 2006 6:13 pm

I would like to get a PSP port up and running to see what it's capable of. Then you could design with those limitations in mind. Or, I guess you could design the game for a PC, then scale back the graphics for the PSP so that you end up with the same game play, but less intensive graphics.

-=EDIT=-
Also, being new to Ogre, is creating a new PlatformManager and RenderingSystem all that would need to be done?
0 x

User avatar
Dark
Halfling
Posts: 63
Joined: Fri Jul 15, 2005 7:34 pm
Location: The Netherlands
Contact:

Post by Dark » Thu Jan 05, 2006 7:32 pm

GenericBum wrote:I have my sites set on the PSP next. My company is an approved PSP developer for Sony... the PocketPC was a good intermediate platform to get some of the functionality up and running on.

The problem is that I spend too much time working on ports of Ogre and not enough time working on game content to go on those platforms.

GenericBum
You can contact DS (Domination Studios my team) but were currently working on a RTS for Windows. Anyhow i would like to keep in touch.
0 x
Image
Domination Studios, making the sh*t you gonna play!

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Mon Mar 13, 2006 7:09 am

Thanks to everyone who has PMed me and asked for access to the source. I finally found some time to play with this port some more.

I start this a while back before I saw a similar game posted on these forums. I call this "eating your own dog food". You never know what features the port is missing until you try to use them, so this is really just a small test project to see how far I can get with a "finished" product on the PocketPC.

Look out.. it's another: Puzzle Cube Game.

I made a mockup first of the general game controls and how they would work on PocketPC. Bear in mind I've turned on all the arrows in the mockup, but only arrows illustrating valid rotations will show up when you select a face, and then when you hover over a button arrow, it shows the arrow over the main cube to show which direction it will move if you click.

I thought the engine would run alot faster by building only colored vertex faces. However, 700+ polygons later, I might shift back to textured faces to significantly lower the polycount. As you can see in Debug mode- it's way too slow.

You can rotate the whole cube, or select individual faces and rotate them.

The mockup:
Image

The progress so far on my i703:
Image

GenericBum
0 x

User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
Contact:

Post by Praetor » Mon Mar 13, 2006 3:19 pm

very cool. Mobile development has its own unique challenges. Recent events in the game development world should be enought to prove that there's a place for mobile developers in the market and the community. It's a fast growing field. Getting Ogreing latched on in that area would be amazing. We need to get our claws out everywhere. Next: world domination! I want a giant Ogre flag flying over every major city in the world.
0 x

cando
Gnoblar
Posts: 1
Joined: Tue Feb 07, 2006 10:24 pm

Post by cando » Thu Apr 13, 2006 12:52 pm

@genericbum

hey. you made a good work.
after some problems with vs i can compile the samples and it works great.
are you still working on it?
why is the klimt renderer so much faster and the vincent so much better in the quality? what renderer do you prefer?
can i help you in some way to optimize it?

cu

ps: i love to see the robot walking on my pda... :-)
0 x

User avatar
danharibo
Minaton
Posts: 997
Joined: Sat Feb 25, 2006 8:14 pm
Location: Wales, United Kingdom
Contact:

Post by danharibo » Thu Apr 13, 2006 1:14 pm

cool, i would use(if i had a pda thatis),
i think that looks cooooooooooooooool 8)
0 x

GenericBum
Halfling
Posts: 72
Joined: Mon Dec 01, 2003 7:34 am

Post by GenericBum » Thu Apr 13, 2006 4:16 pm

cando:
hey. you made a good work.
after some problems with vs i can compile the samples and it works great.
Thanks. The "project setup" is a bit complex due to the number of Ogre Dependencies that I had to port to get it working correctly.
why is the klimt renderer so much faster and the vincent so much better in the quality? ... can i help you in some way to optimize it?
The difference between Klimt and Vincent is interesting. I wrote the port to use Vincent first. The Vincent project is very OGL-ES compliant, so it made more sense that an OGL-ES rendersystem would be more useful beyond just my own project. Dell Axim developers should be able to change the linking library and includes to have the GLESX renderer work with the Dell hardware 3d implementation of OGL-ES.

In speaking with Hans (the author of Vincent), his effort was definitely to build compliance before optimizing for speed- which I have to agree with. If you look at Klimt, it is blazing fast, but it has all sorts of rendering artifacts, zbuffer issues, texture issues. I'm honestly torn between trying to fix the Klimt issues and helping Hans get Vincent the speed improvements it needs to be viable. Hans has recently overhauled Vincent and is getting his project put back together to implement a bunch of speed enhancements. I'm waiting for the project to settle down and then I'll be helping him.
what renderer do you prefer?
I prefer Klimt as the more viable rendersystem right now due to its speed. I prefer Vincent for its cleaner implementation of OGL-ES.

Unfortunately Klimt is no longer under development- if you can sort out the texture UV issue in Klimt, then I think that renderer would be awesome. I can get over 20fps in release mode with a decent poly count, dynamic lights, and vertex animation. When I implemented the SoftGL (Klimt) rendersystem, I had to modify a couple spots in Klmit to get it to work with multiple data streams for graphic data. I have a feeling that is where the bug is.
are you still working on it?
I'm splitting my time between WinCE and PSP right now. I started a Rubix Cube demo for WinCE to work through the remaining platform and rendersystem issues. I have a small todo list to add GLU-ES and GLUT-ES for better handling of the render window, orientation problems, and fixes to the stylus input.

GenericBum
0 x

User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US

Post by xavier » Thu Aug 24, 2006 10:14 am

Kencho wrote:Wonderful news! With OpenGL|ES supported, porting Ogre to mobile devices or even the PSP should be easier now :) Great work!
PSP does not use OpenGL in any way, ES or otherwise. The sceeGu API that Sony gives you has an OpenGL-like feel to it, but is not OpenGL.

At any rate, it is not a matter of technical ability (someone can write a RenderSystem_sceeGu if they want) it's more a matter of licensing -- you cannot use DLLs on the PSP so you have to static-link. Which means Eihort.
0 x

Post Reply