I’m changing the rendering engine. I was using the deferred rendering technique, the new one will be using the light pre pass one. This will lead to me having more varied materials. I used the code from this blog to guide me along with the numerous online articles out there. Here’s what i got so far:
currently 2 directional lights lighting that sphere.
I’m doing this as a separate project so i can still work on the prototype. When its done i’ll swap the current renderer with this one.
I create a character to play around with. I cal him bob (still not good at coming u with names)
Bob here was modeled in Blender3D, the tool i’ll be using to make all my 3d models.
I created a few animations for him as well.
They’re not professionally done, its was just something i rushed.
Getting skeletal animations working in XNA is a bit tricky. First you have to export the models with the right settings:
I couldnt use the code from the SkinnedModel demo from the msdn site since it only supports one action(not really their fault tho). I found an animation library called sgMotion that deals this issue. It was made for SunBurn so i had to modify the code and add the patch to make it load multiple animations. I lost the actual project with the source but i still have the DLL files. Download them here.
I’ll put up a tutorial later about how to use it.
The player can walk, run and stand. I created an AI and party system as well.
Creating a party is as simple as:
party = new ActorParty(); party.addMember(player); party.addMember(bot1); party.addMember(bot2); party.setLeader(player);
The AI currently only follows the main player. But i’ll having varying AI over time. I made it in a way that changing how a character behaves is done by creating a subclass of the AIController class and assigning it to the player with the setAIController function:
FollowBotAI botAi = new FollowBotAI(); botAi.setActor(this); botAi.setTarget(target); botAi.setNearDist(2); setAIController(botAi);
instead of my last approach of coding the ai in the charcater’s update(float dt) function.
That’s it for now, more updates coming next week.