Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

169 Neutral

About SoulSpectre

  • Rank
  1. Back in my younger days my friends and I designed a pen and paper RPG, based on modern conflict, using realistic damage models and realistic attack styles. The pen and paper version was obviously slow to use because of the effect calculations, but my friends loved it. There was nothing like coming up against some street urchin, getting stabbed in the head with a knife, the blow landing squarely in the eye, and dying from the wound. The attack style was based on a multiplier approach where the more successful the roll was the more powerful (or precise) the attack was. Because of this approach characters had to always be fearful of combat in the event the enemy got a lucky hit and killed them instantly. To counter this potential of having a character killed by a fluke event characters were issued luck points that they received when they got a best roll for actions, they then used these to reduce or improve actions done by themselves or done by others that effected the player. Obviously there were other skills that could also be used aswell to offset other actions (eg blocking a melee attack, physical toughness slightly reducing blunt force damage etc). The whole system was convoluted as hell, and it took quite a time to balance everything out, but when we did, there was no going back to the ol' damage vs HP rubbish. And all players new what the potential of actions could be because the effects were realistic.
  2. SoulSpectre

    Seams between adjacent faces

    Gah I am the AP. Forgot that i deleted my cookies last night and auto login didn't complete. :P
  3. SoulSpectre

    New Hawking Theory: Black Holes

    Have you read the article about the recent discovery of another supermassive galactic blackhole? This one has a solar mass of 10 billion. Thats 10 billion suns, equivalent to the mass of our own galaxy, in a single black hole. The diameter of the event horizon is many times larger than our entire solar system. Now thats big!
  4. SoulSpectre

    Bitflags not working right

    1. How are you setting your flags, you only show how you are testing them. 2. You only need to do if(VAR & Value) as opposed to if((VAR & value) == value) because the bitwise AND will return true if both VAR and Value both have the same corresponding bits set.
  5. SoulSpectre

    Is There Love In Space?

    Quote: But will that creature know LOVE? Why? You want to get jiggy with it? :)
  6. SoulSpectre

    Problem with calling functions from array

    Quote: Since the answer is found i'm gonna go a bit off-topic here: is there any reason to do Quote: FObject* f; f->doSomething(); instead of Quote: FObject f; f.doSomething(); I STRONGLY suggest you read up on the uses of pointers.
  7. I thought about using a similar approach for semi-persistant vertex objects, however the inability to use the buffer optimisation flags prevented me from implementing that feature. Instead I chose to use the standard approach of static and dynamic buffers. Since dynamic buffers typically needed to be refilled each frame it is, IMHO, better to fill the buffer during the lock process by directly accessing the relevant vertex sources as opposed to having a cache system go-between that holds redundant copies. You may still be able to use your cache system on the static buffers since any additional writes to these buffers do not use the DISCARD and NOOVERWRITE FLAGS.
  8. SoulSpectre

    Problem with collision detection

    Quote: If a collision occurs, the end point is pushed back in the direction of the colliding plane If by "direction of the colliding plane" you mean the normal, then this is the incorrect approach, you should be pushing out by the opposite direction of the objects movement vector from the collision point, you will need to continue the push out along this vector till the object is at the required distance from the plane. If you push out by the plane normal than you run into all sorts of problems, including steep angle climbing and also wall punch-throughs where an object can be forced through a wall where two walls meet at an acute angle because one wall pushes the object out by the normal through the other wall. To handle wall sliding etc you simply workout the position as I stated at the beginning of the post, project the direction vector on this wall, then use the projection to continue the test. Repeat the test using the new vector(s) until you run out of distance or where the distance no longer changes (due to running directly into a wall or corner). Since a player can never move in upward direction (unless he is jumping) then there will be a point where the gravity vector (straight down vector) will override the wall climbing effect given by my first approach. Remember to save any residual gravitational effect to add on to the gravity vector in the next time frame if the object is still sliding down a face. This will accelerate the object down the face, as you would expect. You will also need to include minimum cutoff values so that the object will not slide down very slight inclines (friction).
  9. SoulSpectre

    Revenge, Mk. II

    Stab them in the head with an ice pick. Stop! Do not pass go. Go directly to jail.
  10. The site you listed does not appear to be working but I try to give you a few hints anyway along with __Daedalus__: 1. Check to see that you don't have your near plane value set too small, try to set it as large as you can allow. Very small values will cause z buffer problems. 2. Check your D3DRS_ZWRITEENABLE and D3DRS_ZFUNC values. ZFUNC shouldn't be a problem though as the default is what's normally used. 3. Make sure that you have properly created your zbuffer with the D3DPRESENT_PARAMETERS, specifically the EnableAutoDepthStencil and D3DFORMAT AutoDepthStencilFormat values. 4. Always check the return result of any d3d function that creates or initialises an object. (you should do it for all funcs but hey, who does? :P) I hope that helps you.
  11. SoulSpectre


    What I really hate is that I have to actually read the license agreements of programs that I install now adays. Just to make sure that there is no damn GAIN etc hidden in the fine print. I have better things to do than to read sleep inducing license agreements, like ranting on forums. /rant
  12. SoulSpectre


    I found that even with regularly updating the definitions in adaware and spybot they still don't help with some hijackers or trojans, a couple of days ago I had to manually search the registry to remove a http redirector that neither uptodate remover could locate. It is a good idea to learn yourself up on the registry editor (regedit) and do you own checks from time to time, especially when things get a bit fishy.
  13. Quote: Can someone give me an example of what this might look like as source? I'm using C++ of course I imagine it would look something like this: ctimer{ //blah blah float mAvtimearr[5]; float mAvTime; int mArrP; } ctimer::ctimer(){ mArrP = 0; } float ctimer::AddTimeToArr(float thisdelta){ if(thisdelta < mintime) thisdelta = mintime; elseif(thisdelta > maxtime) thisdelta = maxtime; mAvtimearr[mArrP++] = thisdelta; mArrP%=5; mAvTime = mAvtimearr[0] + mAvtimearr[1] + mAvtimearr[2] + mAvtimearr[3] + mAvtimearr[4]; mAvtime /= 5.0f; return mAvTime; }; float ctimer::Initialise(float deltatime){ for(int i = 0; i < 5; i++){ mAvtimearr = deltatime; } } I hope that helps, haven't used the averaging approach though so I cannot vouch for its effectiveness. I suggest you read the article that I linked in my previous post for a well designed high resolution timer.
  14. Here is an MSDN article that goes into some detail of QueryPerformance.
  15. SoulSpectre

    optimised rendering

    For sorting I use the following approach, which may not apply to your system. Going from major sort to subsort: 1. layer : as in your world layer, gui layer, popup layer etc. 2. alpha : sort the objects into those with transparency etc : because you will generally need to render transparent : after you render the solid stuff 3. effect file: DX related.. 4. texture: sort based on texture sharing 5. buffers: finally do the buffers. 6-8. whatever. None of the above values are fixed in type, ie 1. doesn't have to be layers, it is entirely up to the user to decide what the flags are used for. For instance you could skip layers and just rely on the old z depth approach. I have my system set up for a maximum of 8 sort values, Bitwise ops can also give you additional values since it is just a standard <> test. I am interested in how others sort their renderable objects too, as I am in the middle of revising my buffer manager, so lets hear them guys.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!