NPC dialogs are working again.
One more for the evening. I made a quick change to the character class to disable player controls for characters flagged as NPCs. I created an NPC and put him by the water. I also threw some quick coloring on the various materials to make things a little easier to see.
Next, I want to have a conversation with this guy, perhaps about fishing.
I needed a Blender refresher, and it so happens that I recently found a tutorial online that shows how to model, rig, and animate Steve from Minecraft. I followed the modelling portion of that which took all of 15 minutes, then worked out how to use my custom Blender exporter again.
Here’s my Steve-like mesh, untextured standing at the edge of the water.
I figure that sometime soon I’ll need to reactivate my animation system, which is going to require writing rig and animation exporters for Blender. The Steve tutorial will be a perfect introduction to those topics within Blender since the character only has a few bones.
Next comes placement of an NPC.
I reorganized the terrain code a bit, splitting the heightmap out into a seperate object. Next I wrote a function to get the height at an arbitary x, z coordinate, and am positioning the player character at that height. I have not intergrated the heightmap into the collision detection \ resolution system yet. But the current implementation is sufficient for a simple game.
I think this is a sufficient amount of groundwork to move the tutorial code over to 3D, so I think I will get started on the NPC class. First though, maybe I’ll add a simple water plane and punch a lake in somewhere.
I took a break around Thanksgiving and haven’t done much programming since. However over the last couple of weeks I have been poking around with things here and there.
When I last left off with the adventure game I was trying to make grass tiles and was not very happy with the results. That led me to start thinking about implementing the game logic in 3D as the next step, and that’s exactly what I’ve been up to. I am planning to merge the previous 3d game “voyage” with the integrated editor, and the 2d game “adventure”.
Step one has been to get terrain up and running so I can easily generate a foundational gameplay area. Over holiday break I have just finished that up. Now I have an untextured terrain that is created from a hieghtmap from Terragen. I am using dimensions that match Oblivion and Skyrim, which includes ripping the heightmap down to quadrants and cells. There is no terrain texturing or collision yet but that will probably come soon. For now I have created a small section of terrain with a mountain, and placed the original two-room building that I exported from Blender onto the terrain.
I also attached my point light to the camera so that I could easily test the terrain vertex normal generation. Maybe I will add time of day simulation.
I am not sure what order I will approach the next tasks, but it depends on my interests. I would like to add terrain collision so the player character can follow the terrain, a couple of box NPCs, get the NPC scripting and inventory to work similar to Adventure, and add multi-texture blend maps for the terrain. I think currently the gameplay elements are more important than the visuals though.
Finally once Adventure is up and running in the new 3D world I would like to write a shader \ effect management system – everything is very basic and hard coded right now, then I would like to refactor my object creation \ handle \ management systems to be a little more intuitive.