Its been a while since I have posted about anything to do with this class. This is because of the shotgun of work being blown my way recently. 3rd year game dev = hardest year yet. Its hard in the sense that there are not enough hours in a day that allow me to accomplish everything required of me. So its gotten to the point where some work gets prioritized over others and the rest falls through the cracks.
Anyways moving onto Ogre. Its an amazing engine from what I have seen of it. The only issue is that it requires a higher level of programming skill to debug. Last year the errors were solvable through simple debugging methods (stepping through, print statements, etc.). This year you really have to have a good handle of how your code gets compiled and what it is asking the engine to do. Which involves using the call stack. I don’t really know how to use the call stack that well, so this is an EXCELLENT learning opportunity.
So the easy question deadline got pushed to Monday. I managed to finish 4 easy questions (1-2. 4-5).
Easy_1 was easy. The key was understanding how Ogre worked. Create a Scene node pointer for your entity to attach to. Create a entity pointer that you attach to a prefab cube and all thats left are the two lights.
Easy_2 was a bit more work. This question was mostly about understanding the hierarchy of the parent-child relationship of scene nodes. We know that we have to create 10 separate cubes for the robot arm. Right away you should think about 10 scene nodes and 1 entities. But it would be stupid to make them all children of the scene manager. So you would just make them all children of whatever entity they would be rotating around. The only problem about only having 10 scene nodes is that the rotations look fairly wonkey. You need to have rotation joints halfway in between each entity.
Easy_4 was probably the most ‘difficult’. Since it involved dealing with .material files. They are still simple however. Once you figure out how to edit the resource.cfg file to load resources into your game, the next step is the .material file. Its pretty much a plaintext structure that is easily readable. You just need like 5 lines of code to create your textured material for your ingame object.
This goes after pass. scene_blend does something with the alpha values, and I had to turn the lighting off because I was having an issue with the object turning black for some odd reason (Thanks Kevin! @Iceninja77).
This goes after texture_unit. This pretty much textures your object.
The rest of the code involves making 4 planes rotated at 90, 180, 270 increments textured to look like an imposter and calling the createBillboardSet command to create your billboard.
Easy_5 was probably the one I finished the fastest. TwoLoc has an interesting dynamic texture class and a base example called BlitTexture something that is a huge help for this. If you use this as your base project and solve a small error you are worthy to use it! There is a function randCol(x,y) that can access the data of a pixel on the plane/billboard that you would like your texture to be put on. You can modify the RGBA values given a row and column point. So be creative and make something cool! I was lazy so i just made a few designs using a for loop. Some people made mini-games, drawing tools and even an etch-sketch!