Stuckie
Member
Well, I started this back in February, and only really just have stuff coming up on the screen!
Not that there's masses of code or anything, or pages and pages of tutorial stuff.. just lack of time as with everything else, sadly.
Anyway, since February, I've been plugging away at a little engine designed primarily for handheld devices such as the Pandora ( and Caanoo, Wiz, iThings, and Androids ) that can handle some form of GLES.
Having had recently done a lot of graphics programming at work at the time, I wanted to increase my knowledge further and spawn my own little engine for fiddling with graphics from scratch, rather than in the confines of a large scale production engine ( whereby fiddling about too much would get my knuckles wrapped should I break things! )
Seeing as it would probably be a good idea to document this process a bit so I understand what I'm doing, I decided to start writing down notes. Then after seeing some GLES gibberings in IRC, I thought perhaps tidying them up and stuffing them on the Wiki would be useful to other people - which is what I've been doing since. This is effectively the reason for "yet another engine" in that I'm trying to document and explain things a bit rather than just giving out a code dump. This is as much for my benefit than yours so I can satisfy myself in understanding what's going on.
So, this gives us GLESGAE - The GL ES Game and Application Engine. Both a mnemonic that works, and a Glaswegian colloquialism for Glasgow ( though I suppose that technically they drop the last 'e' but meh.. close enough! )
At the moment, it literally just renders a coloured quad to the screen, but can do so either via a fixed function pipeline, or a shader based pipeline... and it's mostly the shadery stuff I'll be concentrating on.
I'll also be looking at other bits - audio, networking, physics, scripting, entities, etc... - the further along I get. This is essentially my replacement engine for what I had been dragging around for several years.
My somewhat sane ordering is as follows ( though note that I can, and probably will move things about, expand things, and otherwise manipulate this ordering as I go along! I originally just had all Rendering Contexts as one "Chapter" for instance. )
[edit]
Actually, you should probably ignore that list and use the Wiki Table of Contents instead: http://pandorawiki.org/GLESGAE#Table_of_Contents
[/edit]
Currently, I'm around Part 2.3 .. I just have to clean up the code a bit better, commit it, and redo the Shader Context guide as I've recently done a fair amount of cleaning to the engine.
While I'm not really going to go taking requests as to what to focus on, if there's enough interest in a particular area, I can have a look into it; but primarily, the engine is meant more as a testing ground for me to fiddle with graphic techniques and shaders on GL ES platforms, and replacing my ancient engine with something more usable.
I will be building a game alongside this as well ( actually, a couple of games; Core 24 - a sortof more action orientated Tower Defence that borrows more from 1998's Battlezone than the usual Tower Defence mould and a lot of arcade sensibilities, and finally getting around to some serious work on Tiny Critters ) to ensure I don't just start making fancy engine features that won't be used ( as what happened last time. )
So, is it useful to others at the moment in it's current state?
Probably not.. but thought that I'd post about it anyway so people can start following along with what I'm up to.. I can also post here when I've done a new part, rather than just sticking it up on the Wiki for the brave to find.
I shall post again once I've finished cleaning up the Shader Based Contexts guide, and committed all the Rendering Context code which I'm aiming to have done by the end of the week. There's quite a fair bit of it, but the parts that are up already should give you a good head start as to what's going on, and some feedback is always nice Just remember that effectively, it's all "first draft" stuff for the moment, so there might be a few things wrong as I quickly threw stuff up on the Wiki, however once Part Two has been completed, it should start to become somewhat usable and I'll do an audit over everything I've written so far.
You can access it all from here: http://pandorawiki.org/GLESGAE
Not that there's masses of code or anything, or pages and pages of tutorial stuff.. just lack of time as with everything else, sadly.
Anyway, since February, I've been plugging away at a little engine designed primarily for handheld devices such as the Pandora ( and Caanoo, Wiz, iThings, and Androids ) that can handle some form of GLES.
Having had recently done a lot of graphics programming at work at the time, I wanted to increase my knowledge further and spawn my own little engine for fiddling with graphics from scratch, rather than in the confines of a large scale production engine ( whereby fiddling about too much would get my knuckles wrapped should I break things! )
Seeing as it would probably be a good idea to document this process a bit so I understand what I'm doing, I decided to start writing down notes. Then after seeing some GLES gibberings in IRC, I thought perhaps tidying them up and stuffing them on the Wiki would be useful to other people - which is what I've been doing since. This is effectively the reason for "yet another engine" in that I'm trying to document and explain things a bit rather than just giving out a code dump. This is as much for my benefit than yours so I can satisfy myself in understanding what's going on.
So, this gives us GLESGAE - The GL ES Game and Application Engine. Both a mnemonic that works, and a Glaswegian colloquialism for Glasgow ( though I suppose that technically they drop the last 'e' but meh.. close enough! )
At the moment, it literally just renders a coloured quad to the screen, but can do so either via a fixed function pipeline, or a shader based pipeline... and it's mostly the shadery stuff I'll be concentrating on.
I'll also be looking at other bits - audio, networking, physics, scripting, entities, etc... - the further along I get. This is essentially my replacement engine for what I had been dragging around for several years.
My somewhat sane ordering is as follows ( though note that I can, and probably will move things about, expand things, and otherwise manipulate this ordering as I go along! I originally just had all Rendering Contexts as one "Chapter" for instance. )
- Part One - Setup Stuff!
- GLESGAE Overview
- Engine Design Overview
- Environment Setup
- Setting up a Window and Context
- The Event and Input Systems
- Part Two - Show me Stuff!
- Making a Mesh
- Fixed Function Rendering Contexts
- Shader Based Contexts
- Dealing with Textures
- Making another Mesh with Vertex Buffers
- Dealing with Matrices
- Fun with Maths
- Part Three - Manage my Stuff!
- Managing Resources
- State Management
- Part Four - Make it do Stuff!
- Logic Processing Overview
- Dealing with Entities
- Playing with Scripts
- Part Five - Push Stuff around!
- Physics Processing Overview
- Implementing Box2D Physics
- Implementing Bullet Physics
- Part Six - Make Stuff squeak!
- Sound Processing Overview
- Implementing OpenAL
- Part Seven - Poke Stuff from afar!
- Networking Overview
- A Basic Networking System
Actually, you should probably ignore that list and use the Wiki Table of Contents instead: http://pandorawiki.org/GLESGAE#Table_of_Contents
[/edit]
Currently, I'm around Part 2.3 .. I just have to clean up the code a bit better, commit it, and redo the Shader Context guide as I've recently done a fair amount of cleaning to the engine.
While I'm not really going to go taking requests as to what to focus on, if there's enough interest in a particular area, I can have a look into it; but primarily, the engine is meant more as a testing ground for me to fiddle with graphic techniques and shaders on GL ES platforms, and replacing my ancient engine with something more usable.
I will be building a game alongside this as well ( actually, a couple of games; Core 24 - a sortof more action orientated Tower Defence that borrows more from 1998's Battlezone than the usual Tower Defence mould and a lot of arcade sensibilities, and finally getting around to some serious work on Tiny Critters ) to ensure I don't just start making fancy engine features that won't be used ( as what happened last time. )
So, is it useful to others at the moment in it's current state?
Probably not.. but thought that I'd post about it anyway so people can start following along with what I'm up to.. I can also post here when I've done a new part, rather than just sticking it up on the Wiki for the brave to find.
I shall post again once I've finished cleaning up the Shader Based Contexts guide, and committed all the Rendering Context code which I'm aiming to have done by the end of the week. There's quite a fair bit of it, but the parts that are up already should give you a good head start as to what's going on, and some feedback is always nice Just remember that effectively, it's all "first draft" stuff for the moment, so there might be a few things wrong as I quickly threw stuff up on the Wiki, however once Part Two has been completed, it should start to become somewhat usable and I'll do an audit over everything I've written so far.
You can access it all from here: http://pandorawiki.org/GLESGAE