Below is a screenshot of the engine as it was late last week. Shown are three features.
- Dynamic hierarchical and executable menu system with customizable actions
- Heightmaps based on *.tga files with associated texture images
- Dynamically loadable heightmaps and textures
Employing heightmaps and a menu system are nothing new to me (though the methods are currently improved and more stable) but I opted to throw in on-the-fly heightmap loading so I wouldn't have to a) recompile every time I wanted a new land, or b) edit a text file every time I wanted a new land.
As I stated in a post on Buzz, I'm having some difficulty working out the kinks of a particular feature. What I want to do is dynamically add objects to the world (in the form of primitives such as cubes, spheres, rectangles, cylinders). Adding them is easy. But I want to be able to adjust their locations and orientations via mouse gestures. In a previous iteration of the engine, I accomplished this through trig functions and doing rotational coordinate transformations by hand. It should suffice to say that that sucked. Trig functions are excessively computationally intense and bog down the engine.
Imagine my delight when it dawned on me that I could use OpenGL's built-in rotational transforms to achieve this! I've put it to good use thus far in general movement controls (wasd + mouselook) and want to do the same for object movement. Unfortunately, it's not working just yet. It's probably staring me in the face, but in the past two days I've spent inordinate amounts of time pouring over code and my brain is potentially fried (thus rendering problematic code invisible).
I'm eager to get that solved soon, because up next on my to-do list is something about which I am particularly excited. Behold, the glorious list:
3d engine templateMenu systemHeightmaps- World objects
- Collision detection of objects
- Time
- Physical motion of objects
- External forces acting on objects
- Linking of objects
- Sound
- Network?
I have a question mark on # 7 because I'm not sure if I'm going to make it multiplayer. I have some excellent ideas on how to make it multiplayer, but network code is a completely foreign topic to me and I'm not sure how well I'd be able to implement it.
Before I cut this off, I just want to say that my blog title is TOTALLY clever.
Totally.
No comments:
Post a Comment