Sorry, no flashy new screenshots today. I’ve been hard at work under the hood today. While I have a graphical engine that is well along, much of the actual business of running a game is lacking and so I’ll be concentrating on that for a while.
In particular, I’ve separated out the Chunk generating code into it’s own class. This will open the door to multiple Chunk generating algorithms in the future to give each world even more variety.
Of more immediate concern, I have completely moved NPC spawning into the Chunk generator. Up until now random NPCs were created at runtime to give you someone to shoot at. While good for testing, we needed a solution that not only was persistent between gameplay sessions ( once an enemy is dead, he’s dead ), but also would spread enemies out as far as the map will go. While the particulars of the scheme will be dabbled with ad nauseum, it is up and it works.
Finally, I’ve added a PositionManager. ( Behind the scenes, a Position is an X Y Z world coordinate ) the PositionManager will associate these positions with names. A classic and important example is the spawn point. Way points can also be added easily, as could other future points of interest. The World object has it’s own PositionManager to be used for things like the Spawn Point and points of interest. However, I am strongly considering giving each player and AI a PositonManager too. This can make sense considering that everyone is in space ships which must have powerful onboard computers. So it makes sense that player should be able to record his own waypoints. This can create interesting possibilities, like autopilot systems that will fly you back to previously recorded waypoints. Perhaps players can share waypoints like bookmarks in chat and private mail.