Making A Game


zacaj

void main()
Joined
Apr 3, 2007
Messages
362
Age
29
Location
NY
Website
zacaj.com
Since i couldnt find any good openGL ES 2.0 books, i bought a openGL book, and ive finished it, and am starting my first 3D game, and i was wondering, are there any major, hard to change later differences between an openGL game for Windows and an openGL ES 2.0 game for the pandora i should be planning for ahead of time besides the required vertex arrays(which should be used in openGL anyways)?
 
According to what i've read, one of them is compatible and built on embedded systems, the other is generalized.

Watch how the compiling and processor power will work out.
 
There is a book on OpenGL ES 2.0, just look around. It's something simple like "OpenGL ES 2.0 Programming Guide" or something.

And yes, there's a very significant difference. ES 2.0 doesn't have fixed-function which means you have to do everything via shaders.
 
zacaj said:
Since i couldnt find any good openGL ES 2.0 books, i bought a openGL book, and ive finished it, and am starting my first 3D game, and i was wondering, are there any major, hard to change later differences between an openGL game for Windows and an openGL ES 2.0 game for the pandora i should be planning for ahead of time besides the required vertex arrays(which should be used in openGL anyways)?
You didn't find the OpenGL ES 2.0 Programming Guide to be a good book? In either case, it would be easiest to download the PowerVR OGL ES 2.0 SDK[1].

1 - http://www.imgtec.com/powervr/insider/powervr-sdk.asp
 
Last edited by a moderator:
But if i make a game using Opengl 2.0 then i can compile easily to OpenGL2.0 ES or will it work without changing nothing? Is Pandora 2.0 ES compatible with normal 2.0 Opengl? Thank you :)
 
Rivroner said:
But if i make a game using Opengl 2.0 then i can compile easily to OpenGL2.0 ES or will it work without changing nothing? Is Pandora 2.0 ES compatible with normal 2.0 Opengl? Thank you :)
I dont think thats possible, the architecture for both are redesigned differently
 
Last edited by a moderator:
I know that there is a OpenGL ES 1.? to OpenGL 1.? wrapper exists, not sure if for 2.0 is avaliable.

try something like Google "OpenGL ES 2.0 tutorials"

there also many stuff in pdf format instead of web pages
 
But there's nothing major besides shaders?
OpenGL ES 2.0 Programming Guide seems a bit expensive...
 
laos said:
I dont think thats possible, the architecture for both are redesigned differently
The one is not a foregone conclusion. Go with ES to the regular OpenGL and it'll mostly work. Avoid a few things and you can go the other way, but it's not as simple


Rivroner said:
But if i make a game using Opengl 2.0 then i can compile easily to OpenGL2.0 ES or will it work without changing nothing? Is Pandora 2.0 ES compatible with normal 2.0 Opengl? Thank you :)
Make it for OpenGL ES 2.0 and it should go back the other way with only minor tweaks. OpenGL ES is an embedded subset of OpenGL, with a few additions that're reflective of an embedded system (such as fixed point...). Since you don't NEED fixed point on the Pandora, you should be mostly fine writing for ES 2.0 using the wrappers on Windows, MacOS, or Linux and then tweaking as needed to make it happy between the two that way.
 
Last edited by a moderator:
hey

I advise you make some sorta framework or interface to any of your core graphics routines, that way all your opengl code will be quite isolated and you could easily write classes specific for both opengl and openglES or whatever else.

Well this is kinda how my current 3d graphics/game library works :).

cyas
 
You could try the Clutter toolkit, but I'm not sure how well it works for games.
 
Also, what differences are there between GLSL and the ES version, if any, or where can i find them?
 
zacaj said:
Also, what differences are there between GLSL and the ES version, if any, or where can i find them?
WikiPedia entry on OpenGL ES said:
Several versions of the OpenGL ES specification now exist.

OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification.

Version 1.0 and 1.1 both have common and common lite profiles, the difference being that the common lite profile only supports fixed-point in lieu of floating-point data type support, whereas common supports both.

In creating OpenGL ES 1.0, much functionality has been stripped from the original OpenGL API and a little bit added. Two of the more significant differences between OpenGL ES and OpenGL are the removal of the glBegin–glEnd calling semantics for primitive rendering (in favor of vertex arrays) and the introduction of fixed-point data types for vertex coordinates and attributes to better support the computational abilities of embedded processors, which often lack an FPU. Many other areas of functionality have been removed in version 1.0 to produce a lightweight interface: for example, quad and polygon primitive rendering, texgen, line and polygon stipple, polygon mode, antialiased polygon rendering (with alpha border fragments, not multisample), ARB_Image class pixel operation functionality, bitmaps, 3D texture, drawing to the frontbuffer, accumulation buffer, copy pixels, evaluators, selection, feedback, display lists, push and pop state attributes, two-sided lighting, and user defined clip planes.

OpenGL ES 1.1 adds to the OpenGL ES 1.0 functionality by introducing additional features such as mandatory support for multitexture, better multitexture support (with combiners and dot product texture operations), automatic mipmap generation, vertex buffer objects, state queries, user clip planes, and greater control over point rendering.

OpenGL ES 2.0, publicly released in August 2005, eliminates most of the fixed-function rendering pipeline in favor of a programmable one. Almost all rendering features of the transform and lighting pipelines, such as the specification of materials and light parameters formerly specified by the fixed-function API, are replaced by shaders written by the graphics programmer. As a result, OpenGL ES 2.0 is not backwards compatible with OpenGL ES 1.1.

OpenGL ES also defines an additional safety-critical profile that is intended to be a testable and demonstrably robust subset for safety-critical embedded applications such as glass cockpit avionics displays.
There's more detailed bits and bobs and I'm looking for some good links for everyone. Long story short, if you code for OpenGL ES 1.1 for fixed functionality (OpenGL 1.5 type coding) and OpenGL ES 2.0 for shader type coding (OpenGL 2.0...) you should largely be able to hit both API sets with only a few possible (but not foregone conclusions...) gotchas going from ES to full OpenGL.

[edit]

Oh, here's a bit of usages of OpenGL ES to ponder:

OpenGL ES has been chosen as the official 3D graphics API in Symbian OS and the Android platform.
OpenGL ES 1.1 is used as the 3D library for the iPhone SDK.
OpenGL ES 1.0 plus some features of 1.1 and Cg are supported by the Playstation 3 as an official graphics API.

It remains to be seen if we're going to be stuck with ES 2.0 as the only one or not- but I'm hopeful we're going to have both which will make moving a goodly portion of the games we have available in 3D quickly ported over to Pandora.
 
Last edited by a moderator:
zacaj said:
That didnt answer my question at all :$
Oops.. That's what I get for posting while trying to sort out networking problems for my day job...

There's a few items... I'll dredge them up here shortly- sorry about the misunderstanding there.

[edit]

Back from dinner... There's a specs document for GLSL ES over at Khronos:

http://www.khronos.org/registry/gles/

The document is a difference specification from the GLSL spec that it's derived from and should be read alongside the official spec. Reading the GLSL ES doc should give you most of what you're looking for.
 
Last edited by a moderator:
Back
Top