December 7th, 2010
So I have a basic engine working. I have sound provided by OpenAL-soft. Collision detection by Bullet. I have OpenEmbedded recipes for both. I also have an OpenEmbedded recipe for the game itself. I have submitted the Bullet physics recipe to the OpenEmbedded patch list. So far it has not been accepted.
I have mouse and keyboard input working well through the kernel event interfaces. I need to buy a USB gamepad so I can add that in. Using the kernel event system it is pretty easy to make a very user configurable input subsystem.
I have textures working well. A strange thing happened. The SGX 3d coprocessor on the OMAP3530 on the Beagleboard is supposed to be able to handle textures up to 2048 by 2048. When I try to use a texture that big it seg faults. I can load the texture from a file but if I try to send it to the SGX I get a seg fault. The seg fault happens before any of my code gets executed as far as I can tell. Like just setting up for the transfer is causing the problem. I figure it is probably something that can be fixed by adjusting settings somewhere but I decided that 1024 by 1024 would be enough.
I have an animated model loaded in. It is simple frame animation, nothing too fancy but it works. I can shoot the model thanks to ray casting also provided by Bullet. I actually have it set up to do a ray cast every frame now so that the color of the crosshair can change depending on what you are aiming at. Something like Deus Ex where the crosshair would change colors depending on whether your target was friend, foe, or neutral.
I have started to neaten the code and add classes in where they would be useful. I have an object class that keeps track of each mesh. Drawing is done with a loop through an array of this class. Textures and buffers are stored in the SGX section of memory.
I have two shading programs set up. One is for drawing the HUD. The other, for everything else, is right now just a simple texture shader. Just looks up the texture coordinates and applies the texture. Next is to get lighting working properly.
December 9th, 2009
My original plan was to interface controls to the Beagleboard through GPIO. It looks like the gpio-keys driver would make this pretty simple. But then there are people with expansion boards that use some of the IO on the expansion header. Also, from looking at the uboot source for Pandora, it seems they use GPIOs that are not available on the Beagleboard header.
In the end I think it would be better to use a USB game pad. Also, since I am using the /dev/input/event* interfaces it would be pretty easy to add in support for any controls that have drivers that use the event system.
November 26th, 2009
Bullet is integrated as collision detection only. It seems to work well. I am not planning on using the dynamics part of Bullet, just collision detection and ray casting.
I have a collision shape for the camera, two character shapes that I just placed in to test with, I don’t move them around, and the world. It makes a small difference in the speed of execution.
Just to get an idea of speed what I do is store the system time just before the loop starts executing, count each pass through the loop then at the end check the time again.
Before integrating Bullet I was getting about 130 loops through per second. Now I’m getting about 120. This is without any models and only a single texture on the world. Still a lot of work to go.
November 17th, 2009
So this is the new blog for developement on Revolt 2405 for OMAP3.
After getting both Irrlicht and Ogre running on Beagle Board I realized I would have work to do on either one. I felt that with my limited knowledge it was best to start from scratch. The work I am doing now is using OpenGL ES 2.0 directly from the console. Input is so far through the kernel event system.
I have an empty map loaded into OpenGL ES 2.0 with a texture but not the final textures yet. I have input working so I can move around and exit. I was looking at CEGUI but since it seems I would need to work on a renderer for it and it is a bit more full featured than I need, I will probably just make my own user interface. I have Bullet physics compiled for Beagle Board but have not tried using it yet.
I will be working on getting a GUI up, getting Bullet integrated, and getting some decent shaders done. My short term goal is to have a decent looking but empty walk through in time for the next lightning talks.
At this point I am coding on my own. I have an artist for models and textures and he says he has a musician lined up for music and sound effects.