GROG - Tech Demo

1.1

By Alban, 10 months ago

Controls: D-Pad: [Arrows / WASD] - A: [J] - B: [K] - Menu: [U] - Home: [I]
Enjoy games at full speed with sound and lights on the Gamebuino META!
Emulator by aoneill

G.R.O.G.: Graphics Renderer Optimized for Gamebuino

I've had this project going on since the release of my previous game, Project88. This is a proof of concept for a Virtua Racing-like engine. 

Although I am very proud of the performance level I have reached, I don't feel like I will build a game on this. What eats up CPU cycles is mostly the rasterization part, which I've tried to optimize to the bone, but not leaving many cycles left. On the memory side, my implementation is fairly light. I believe one could do a game like a space shooter, where triangles don't cover the screen, but this feels limited.

I've documented as much as I estimated relevant: specifics to the implementation, API usage, tricks etc. For 3D rendering 101, which is a huge domain, I suggest you have a look on the web at how transformation and projection matrices work, and how vertex buffers are usually used. You'll find all these notions put to good use in my code.

The link to the documentation is here: http://htmlpreview.github.io/?https://github.com/alban-rochel/grog/blob/master/grog/doc/html/index.html


Last comments

avatar
Chip Tracy
3 months ago

Thank you very much! I might be able to peek at the code, and whip up a converter that can add the colors as well. I wrote my own 3d engine in QB64, and it mainly dealt with OBJ models, and so i can probably take and make it so that it’ll peek at material names, and if it sees a material has a name such as “RED”, "YELLOW’, etc, it sets any groups that use that color to the appropriate colors.

avatar
Alban
3 months ago

I have written a converter for my internal use : in the “grogqt” sub-project of my repository, you can build a wrapper GUI above the grog scene. https://github.com/alban-rochel/grog/tree/master/grogqt/grogqt

Using this GUI, you can load an obj file. The corresponding code gets written on the standard output. However, you still have to tweak the colors by hand (everything is set to white by default). Hope this’ll help!

avatar
Chip Tracy
3 months ago

Hey, this is pretty cool, but i have to ask, how do you get models into a readable format? Do you have a converter, or do i have to manually enter all the data? The colors are gonna be a pain to enter if so.