No game would be complete without it, well.. except those that don’t need AI. We do however and thus it’s on the ToDo.
AI is a very.. very broad term that is used very lightly in most cases. I did a bit of research on the matter on what would be the best solution so far it’s been GOAP. An acronym for Goal Oriented Action Planning.
This will give the AI entities the freedom to do whatever they want within the boundaries set for each AI entity. You can read a lot more about it (in fine detail) at http://gamedevelopment.tutsplus.com/tutorials/goal-oriented-action-planning-for-a-smarter-ai–cms-20793
So yeah, AI.. I’ve started today with creating the necessary components to get this going. An AI Director class to handle registration/removal and for the client to actually render models. Network has already been hooked in for Entity State control allowing the server to send the client updates on entity movement and such.
It’s in a very infant stage as of yet and I hope to showcase some video later on this week or next week. It’s a tricky thing to make properly 🙂
In other news, we’ve improved speed on the engine quite a bit by removal and reusing instantiated objects, our network has doubled in performance thanks to this.
Our biggest performance hit at the moment is the terrain generation. Some of it got reduced a bit by caching results and reusing them whenever necessary but getting the terrain over to the client side requires serialization at the moment and that hits hard (We’re using SharpDX’s BinarySerializer for this, in combination with GZIP’ed stream that goes to client).
Not sure if I mentioned this in a previous post (might have…), we moved storing world files flatfile to a LocalDB SQL Server. This *should* work for PC’s even without .Net development tools installed but we’ll find that out once start sending out a few pre-pre-pre-alpha invites 😉
Oh and a new screenie below showing our now more ‘smooth’ sun and the render distance in comparison to FPS. 🙂