Showing posts from March, 2009

Quick thought on timed events

I think I"m going to just have a time-stamp and compare the time-stamp at some point in the loop.

That is part of what I meant by single threading the server. There are a couple of reasons for this one is it is easier to develop & two this allows servers with multiple cores to be used as multiple realms. If I multi-thread it I will need a bunch of sync logic which will make it very inefficient on single core systems.

I'm concerned about the fact I'm already flip flopping on some prior decisions but this one I think it justified. I can't go down the wrong path because I don't want to change course.

wasting time

Alright so per my last post I have been wasting tons of time playing a game I don't really like. I'm getting back into a more reasonable schedule now and I'm prioritizing my coding efforts. I'm thinking right now that I have been spending a ton of time on combat stuff which I'm not even close to adding into the game. I mean I can't even connect to the server from the client yet. So here is my new short term plan I'm doing to single thread the server and then I'm going to work on the chat features. That shouldn't be too hard and it will develop all the basic client server stuff.

I hope to be able to run around with others on a map by the end of the year. Lets hope I can stay focused that long haha.


I have been idle on my project for a little while now. This is mostly due to the fact that a friend of mine talked me into playing wow with a few friends.

The dungeons/instances are pretty fun with a good group. However leveling feels like an endless grind. I'm not sure I can take it long enough to get to the "fun" stuff.

As a matter of fact I would rather be coding than doing solo stuff in wow. That doesn't mean a whole lot I guess because I enjoy coding but a game should be fun.

Somehow all the new games seem to want to make me do boring and sometimes irritating things before I get to anything fun. And then I have to go back to the boring & irritating stuff. It is like some kind of sick torture.

This is unacceptable. This reminds me of why I started this project. Commercial games these days are horrible. I expected to develop this as a sample and wanted to pass the torch but at this point I'm not sure any of these people can be trusted to make anything worthwhi…

Damage order of application

Ok, so I'm realizing I need to get the order in which damage is added down before I forget what I was thinking about.

1. base damage range (example 1-10).
2. Apply Stat bonuses
3. Apply Bloodline traits.
4. Apply Proficiencies.
5. Apply Buff/hex effects.

On that note I'm probably going to make blood line traits there own collection in the combatant class.

Quick thought on passive skills.

As I was thinking about passive skills I'm thinking about having them be completely different from active skills in the system. I'm thinking about having just a collection of actual passive skills objects in the combatant class. The reason I'm using a locator & vector approach with active skills is because the client requests their use via id. That does not happen with passive skills.

Also if I make passive skills held in the combatant manager I will have a circular dependency because the active skills will need access one way or another to the passive skills to calculate damage. The passive proficiency skills as well as any applicable bloodline traits need to be applied the weapon damage before the active skill runs it's calculations.

I'm probably going to run with this idea and hope I don't run into any blockers. So far I feel pretty fortunate everything in the design seems to fit together nicely. Too bad it will all fall apart in the testing phase. :-(

ISkill, Skill, and Skills

Alright so all of my skills are going to inherit ISkill and Skill.

ISkill as you can guess is an interface there is only one virtual function as of right now. I may extend it later but executing a skill is the only thing we really care about most of the time. So in that sense it is a functor.

Skill on the other hand contains useful functionality for skills to use such as applying damage. I move all of those functions from the combat manager and added a few extras.

Part of the reason for moving this functionality to this base class is to prevent circular dependencies. The other being that this allows for better encapsulation.

There is currently no support for passive skills and the only skill on the server is lunge. Also keep in mind that the server code hasn't been tested in the slightest. I have a feeling I'm going to regret not building and testing more of the protocol related code first. However it is hard to test anything other than basic login without having the state machin…