Page 1 of 2

Fullscreen on the desktop?

PostPosted: Aug 10, 2007 @ 8:47pm
by Kzinti
If fullscreen support for the desktop was added to PocketHAL... How would you like it to work?

Here is the design problem: mobile device screens have a fixed size and they have low resolution. Desktop have multiple resolutions and high resolution.

Should the desktop be 240x320? 320x240? Something else? (Mobile devices all have different dimensions) Should it be stretched if the monitor/video card don't support the modes? Etc. Etc.

Post your thoughts here.

PostPosted: Aug 12, 2007 @ 11:24pm
by fast_rx
I've been using some non-ppc resolutions on windowed desktop builds - so I definitely wouldn't want to be forced into using ppc resolutions. Stretching would be nice for both windowed and full screen modes.

Could/should you supply some method of retrieving valid resolutions?

PostPosted: Aug 13, 2007 @ 9:59pm
by PointOfLight
Personally, I would think desktop support would have to be at least 640x480, and possibly 800x600, or it wouldn't be worth it. Nothing drives me nuts more than when I go to run a modern game on my PC and it runs at a 320x240 resolution. For that kind of screen I'll go play on my PPC :)

PostPosted: Aug 13, 2007 @ 11:31pm
by Dan East
Basically there are two reasons to run a ported PPC game on a PC.

One is for level design and debugging on PC, which is greatly streamlined compared to moving content back and forth to the PPC. In that case, it is akin to an emulator, where specific PPC resolutions and orientations need to be supported.

The other is for cross platform development, where the game would also be distributed in PC form (either for profit or simply given away). When it comes to the latter, complete flexibility is required - ie supporting pretty much any resolution, in both full screen and windowed.

So I guess the question is which of those do you anticipate your developers will require. That will determine how the fullscreen should work.

Dan East

PostPosted: Aug 14, 2007 @ 2:17am
by Kzinti
I've always taken the first approach: PocketHAL being some sort of device emulator on the desktop. It only runs in windowed mode because debugging fullscreen apps is simply not efficient.

I do get request for desktop fullscreen support (ie: your 2nd point about cross-platform development). What I am wondering is if I should expose any resolution enumerated by DirectX, and I guess the answer is yes.

So sounds like any resolution (windowed or not) is what is needed. It will also mean providing a way to enumerate resolutions.

So be it.

PostPosted: Aug 14, 2007 @ 3:03am
by PointOfLight
In the end, Kzinti, your efforts will be appreciated (even if it doesn't feel like it to you). I'm sure with the growing popularity of PPL, there will be more developers who want to do cross platform development, and full-screen at multiple resolutions on the desktop will be a blessing. And, for those who don't know, PPL is a language originally conceived for the PPC that now supports desktop as well which has a built in game API sitting on top of PocketHAL. If you're looking for a development language for PocketHAL, you might want to check it out: http://www.arianesoft.ca (sorry for the plug).

PostPosted: Sep 14, 2007 @ 3:31pm
by kornalius

PostPosted: Sep 14, 2007 @ 4:33pm
by Kzinti

PostPosted: Sep 14, 2007 @ 4:48pm
by kornalius

PostPosted: Sep 29, 2007 @ 9:33pm
by PsychoChris
Wow, that is the last big feature i miss in PocketHAL. Having fullscreen on a pc shouldn't be limited to ppc resolutions so i fully agree with fast_rx.

Greetings,
Chris

PostPosted: Nov 2, 2007 @ 2:20pm
by hrissan
Dear Kzinti!
I agree with you - PocketHAL on desktop is just for development, it does not make sense to create real game/application with it. There is plenty other hardware abstraction layers on desktop, like DirectX or OpenGL which is relatively easy to use.
PocketHAL game on Desktop will look awful because of 16bit color depth. It looks awful enough on Pocket PC, but there we do not have choice. And changing color depth to 24 or 32 bits in PocketHAL does not make sense because all graphics algorithms created with PocketHAL in mind would cease to work on Pocket PCs... Also this will make rendering on Pocket PCs slower.
If someone is going to develop modern game for desktop, even as simple as Tetris, it is better to use 3D hardware from start, because it gives you almost unlimited freedom in using modern lighting/texturing techniques.
Regarding speed - World of Warcraft runs nice on my office computer with builtin GMA950 video (it gives about 25 fps there, but I played for month without any trouble)! You can safely assume that OpenGL will give you 100fps in any 2D-looking graphics on any practical machine.

So please do not waste your efforts on "providing DirectX resolutions" via PocketHAL. This is useless and will lead in best case to very bad-looking ancient games ported back from Pocket PCs. :)

BTW I speak as game developer with experience - you can look at

http://www.tank-o-box.com/

the game was created in late 2004 with "modern" features, like 3D shaders support, 3D sound, force feedback controllers support, etc. It took about 4 months of work in the team of 4. Later the shaders support (which made game Microsoft rendering context semifinalist) was turned off because office computers 3 years ago were not fast enough for shaders. Also the game was ported to Mac OSX without significant efforts (changed 3D HAL from DirectX to OpenGL and DirectSound to OpenAL).

So any game should be prepared for changing its HAL. My advice to anyone who wants to create modern game for Desktop is sticking with OpenGL + OpenAL and your game will run on both PCs and Macs without significant efforts from your side.

PostPosted: Nov 2, 2007 @ 3:27pm
by hrissan
Small addition:
For ease of debugging/development with PocketHAL (our software supports any resolution from 176x180 up to any supported by PocketHAL with a technology of anchoring/scaling "controls" in hierarchies)
we have added the following code to Game.cpp:

#if !defined(PHAL_PLATFORM_WCE) && !defined(__SYMBIAN32__)
Point ret;
read_from_registry(L"Software\\VITO", L"DebugResolution", &ret);
params.m_width = ret.x;
params.m_height = ret.y;
#endif

Also we have a number of .reg files, named like "PPC_320x240.reg" "PPC_240x320.reg" "PPC_480x640.reg" so we just double-click corresponding reg-file and run PocketHAL-based software on Desktop. We even check for changes of DebugResolution on every frame and re-create Display object in new resolution so we can see if our software correctly responds to screen rotation.

This approach is simple and powerful.

PostPosted: Nov 3, 2007 @ 7:05pm
by PsychoChris
Hello hrissan,

i disagree that fullscreen for PocketHAL would be useless. It is quite obvious that most people using PocketHAL use it for pocket pc development. But what if you would like to release the same game on PC too? Keeping to you suggesting we would have to use something like DirectX/OpenGL, which of course would bring up many more possibilities but also a lot of additional work to do. If you want to use the features those SDKs offer you better rewrite almost all grafics and audio related parts of the game. But exactly here it comes were the initial intention is broken. Having fullscreen for PC on PocketHAL would enable you to just exchange some grafics with higher resolutions, do some GUI changes and launch the same game without any big changes.
If you want to create PC games just keep to DirectX/OpenGL/SDL or whatever. But i think you missed the point behind that idea and i'm sure i'm not the only one that would appreciate fullscreen for PocketHAL.

Greetings,
Chris

PostPosted: Nov 3, 2007 @ 10:02pm
by PointOfLight
I completely agree with you, PsychoChris. We're not talking about people who want to write PC games and maybe dabble in the PocketPC realm as well. We're talking about people that are either going from PocketPC to PC or want to develop for both at the same time. They aren't going to want to use two different sets of rendering mechanisms if they don't have to. Personally, I think the concept of full screen PocketHAL on the PC is great, and for debugging purposes you can still run your application in windowed mode.

Also, I can't believe anyone would think it's impossible to make a good looking 2D game with 16 bit graphics. I've seen people make decent 256 color graphics even in this day and age, so a cap at 16 bit doesn't seem unreasonable at all.

PostPosted: Nov 6, 2007 @ 10:16am
by hrissan
OK, I agree with you that not every game should balance on the cutting edge of graphics technology, so running PocketHAL on Desktop in fullscreen will help some people and that is good thing (unless it does not interfere with main reason - debugging Pocket PC apps). :)