#### kaprikawn

##### Very Active Member

I've decided to learn OpenGL ES 2.0 for use on the Pyra. And as I started poking around I realised that there's not a lot of learning materials for the kind of stuff I want to do, and some of these things I'm learning might be useful to others.

So I'm writing a blog documenting my journey. There's very little in it at the minute, and I imagine it's going to be a long time before it's complete. But on the off chance that it's useful to anyone, feel free to follow along :

Intro :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-01/

Getting a dev environment running :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-02/

Creating a window using SDL2 :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-03/

Rendering a triangle (using the code from the Pandora Wiki) :

https://kaprikawn.wordpress.com/2018/01/14/learning-to-learn-opengl-es-2-0-part-04/

EDIT : to clone the repo :

MORE EDITS : later blog posts since original post...

Setting up a Dev Environment (Windows and Linux incl. Pyra) :

https://kaprikawn.wordpress.com/2022/02/13/learning-to-learn-opengl-es-2-0-dev-build-instructions/

Refactored code :

https://kaprikawn.wordpress.com/2018/01/20/learning-to-learn-opengl-es-2-0-part-05/

Simplified 'Open Triangle' code :

https://kaprikawn.wordpress.com/2018/02/11/learning-to-learn-opengl-es-2-part-06/

Indices :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-07-indices/

MVP Matrix :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-08-the-mvp-matrix/

Adding Colour to Vertices :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-09-adding-colour/

Adding a Game State Machine :

https://kaprikawn.wordpress.com/201...arn-opengl-es-2-0-part-10-game-state-machine/

Back to Basics :

https://kaprikawn.wordpress.com/2018/03/10/learning-to-learn-opengl-es-2-0-part-11-a-new-approach/

Improved 'Cube' Code :

https://kaprikawn.wordpress.com/2018/03/17/learning-to-learn-opengl-es-2-0-part-12-back-to-the-cube/

Gamepad Support :

https://kaprikawn.wordpress.com/201...-opengl-es-2-0-part-13-added-gamepad-support/

Moving a Box Around the Screen :

https://kaprikawn.wordpress.com/2018/03/24/learning-to-learn-opengl-es-2-0-part-14-moving-the-box/

Moving a Spaceship Around the Screen :

https://kaprikawn.wordpress.com/2018/03/25/learning-to-learn-opengl-es-2-0-part-15-takeoff/

Added Analogue Stick Support :

https://kaprikawn.wordpress.com/2018/04/01/learning-to-learn-opengl-es-2-0-part-16-analogue-support/

Unified Buffers :

https://kaprikawn.wordpress.com/201...n-opengl-es-2-0-part-17-buffers-code-cleanup/

Pew Pew (can now shoot bullets) :

https://kaprikawn.wordpress.com/2018/04/08/learning-to-learn-opengl-es-2-0-part-18-pew-pew/

Added floor and scenery object :

https://kaprikawn.wordpress.com/2018/04/16/learning-to-learn-opengl-es-2-0-part-19-were-moving/

Collision detection :

https://kaprikawn.wordpress.com/201...rn-opengl-es-2-0-part-20-collision-detection/

Moving camera :

https://kaprikawn.wordpress.com/2018/05/05/learning-to-learn-opengl-es-2-0-part-21-moving-camera/

Placeholder music and enemy :

https://kaprikawn.wordpress.com/2018/10/09/learning-to-learn-opengl-es-2-0-part-22-enemy-and-audio/

Enemy fires, and dies when hit :

https://kaprikawn.wordpress.com/201...earn-opengl-es-2-0-part-23-the-enemy-attacks/

Level data offloaded to JSON files :

https://kaprikawn.wordpress.com/201...-es-2-0-part-24-loading-level-data-from-json/

Loading GLTF2 files :

https://kaprikawn.wordpress.com/201...rn-opengl-es-2-0-part-25-loading-gltf2-files/

Texture Mapping :

https://kaprikawn.wordpress.com/2020/01/19/learning-to-learn-opengl-es-2-0-part-26-texture-mapping/

Batch Rendering :

https://kaprikawn.wordpress.com/2020/02/23/learning-to-learn-opengl-es-2-0-part-27-batch-rendering/

Particle system :

https://kaprikawn.wordpress.com/2020/03/15/learning-to-learn-opengl-es-2-0-part-28-particles/

HUD :

https://kaprikawn.wordpress.com/2020/03/22/learning-to-learn-opengl-es-2-0-part-29-hud/

Re-added collisions + debugging using VSCode :

https://kaprikawn.wordpress.com/202...-part-30-improved-collision-debugging-vscode/

Scorched Earth - staring again from scratch (this is the first build which will actually compile on the

https://kaprikawn.wordpress.com/2021/02/07/learning-to-learn-opengl-es-2-0-part-31-scorched-earth/

Removing the GLM dependency :

https://kaprikawn.wordpress.com/202...pengl-es-2-0-part-32-removing-glm-dependency/

Added lighting :

https://kaprikawn.wordpress.com/2021/09/21/learning-to-learn-opengl-es-2-0-part-33-lighting/

Adding back floor and movement :

https://kaprikawn.wordpress.com/2022/02/13/learning-to-learn-opengl-es-2-0-part-34-code-refactor/

So I'm writing a blog documenting my journey. There's very little in it at the minute, and I imagine it's going to be a long time before it's complete. But on the off chance that it's useful to anyone, feel free to follow along :

Intro :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-01/

Getting a dev environment running :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-02/

Creating a window using SDL2 :

https://kaprikawn.wordpress.com/2018/01/07/learning-to-learn-opengl-es-2-0-part-03/

Rendering a triangle (using the code from the Pandora Wiki) :

https://kaprikawn.wordpress.com/2018/01/14/learning-to-learn-opengl-es-2-0-part-04/

EDIT : to clone the repo :

Code:

`git clone https://github.com/kaprikawn/pyragles.git`

MORE EDITS : later blog posts since original post...

Setting up a Dev Environment (Windows and Linux incl. Pyra) :

https://kaprikawn.wordpress.com/2022/02/13/learning-to-learn-opengl-es-2-0-dev-build-instructions/

Refactored code :

https://kaprikawn.wordpress.com/2018/01/20/learning-to-learn-opengl-es-2-0-part-05/

Simplified 'Open Triangle' code :

https://kaprikawn.wordpress.com/2018/02/11/learning-to-learn-opengl-es-2-part-06/

Indices :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-07-indices/

MVP Matrix :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-08-the-mvp-matrix/

Adding Colour to Vertices :

https://kaprikawn.wordpress.com/2018/03/03/learning-to-learn-opengl-es-2-0-part-09-adding-colour/

Adding a Game State Machine :

https://kaprikawn.wordpress.com/201...arn-opengl-es-2-0-part-10-game-state-machine/

Back to Basics :

https://kaprikawn.wordpress.com/2018/03/10/learning-to-learn-opengl-es-2-0-part-11-a-new-approach/

Improved 'Cube' Code :

https://kaprikawn.wordpress.com/2018/03/17/learning-to-learn-opengl-es-2-0-part-12-back-to-the-cube/

Gamepad Support :

https://kaprikawn.wordpress.com/201...-opengl-es-2-0-part-13-added-gamepad-support/

Moving a Box Around the Screen :

https://kaprikawn.wordpress.com/2018/03/24/learning-to-learn-opengl-es-2-0-part-14-moving-the-box/

Moving a Spaceship Around the Screen :

https://kaprikawn.wordpress.com/2018/03/25/learning-to-learn-opengl-es-2-0-part-15-takeoff/

Added Analogue Stick Support :

https://kaprikawn.wordpress.com/2018/04/01/learning-to-learn-opengl-es-2-0-part-16-analogue-support/

Unified Buffers :

https://kaprikawn.wordpress.com/201...n-opengl-es-2-0-part-17-buffers-code-cleanup/

Pew Pew (can now shoot bullets) :

https://kaprikawn.wordpress.com/2018/04/08/learning-to-learn-opengl-es-2-0-part-18-pew-pew/

Added floor and scenery object :

https://kaprikawn.wordpress.com/2018/04/16/learning-to-learn-opengl-es-2-0-part-19-were-moving/

Collision detection :

https://kaprikawn.wordpress.com/201...rn-opengl-es-2-0-part-20-collision-detection/

Moving camera :

https://kaprikawn.wordpress.com/2018/05/05/learning-to-learn-opengl-es-2-0-part-21-moving-camera/

Placeholder music and enemy :

https://kaprikawn.wordpress.com/2018/10/09/learning-to-learn-opengl-es-2-0-part-22-enemy-and-audio/

Enemy fires, and dies when hit :

https://kaprikawn.wordpress.com/201...earn-opengl-es-2-0-part-23-the-enemy-attacks/

Level data offloaded to JSON files :

https://kaprikawn.wordpress.com/201...-es-2-0-part-24-loading-level-data-from-json/

Loading GLTF2 files :

https://kaprikawn.wordpress.com/201...rn-opengl-es-2-0-part-25-loading-gltf2-files/

Texture Mapping :

https://kaprikawn.wordpress.com/2020/01/19/learning-to-learn-opengl-es-2-0-part-26-texture-mapping/

Batch Rendering :

https://kaprikawn.wordpress.com/2020/02/23/learning-to-learn-opengl-es-2-0-part-27-batch-rendering/

Particle system :

https://kaprikawn.wordpress.com/2020/03/15/learning-to-learn-opengl-es-2-0-part-28-particles/

HUD :

https://kaprikawn.wordpress.com/2020/03/22/learning-to-learn-opengl-es-2-0-part-29-hud/

Re-added collisions + debugging using VSCode :

https://kaprikawn.wordpress.com/202...-part-30-improved-collision-debugging-vscode/

Scorched Earth - staring again from scratch (this is the first build which will actually compile on the

**Pyra**) :https://kaprikawn.wordpress.com/2021/02/07/learning-to-learn-opengl-es-2-0-part-31-scorched-earth/

Removing the GLM dependency :

https://kaprikawn.wordpress.com/202...pengl-es-2-0-part-32-removing-glm-dependency/

Added lighting :

https://kaprikawn.wordpress.com/2021/09/21/learning-to-learn-opengl-es-2-0-part-33-lighting/

Adding back floor and movement :

https://kaprikawn.wordpress.com/2022/02/13/learning-to-learn-opengl-es-2-0-part-34-code-refactor/

Last edited: