• Advertisement

Daniel Miller

Member
  • Content count

    1113
  • Joined

  • Last visited

Everything posted by Daniel Miller

  1. Yeah, I learned C++ in about 3 minutes. I don't understand what people find so difficult.
  2. Selling computer -- help!

    I have a legal copy of Windows on this machine. Should I clear Windows off, or can I keep it on? Either way, I want all sensitive data to be reasonably unrecoverable. What free software can I use to do this? Is there any?
  3. Selling computer -- help!

    Thanks for the link! Unfortunately this is a laptop without a floppy, so is there a way of getting it to work without one? Also, what's the easiest way of refreshing windows without a disk or anything (this is a Dell Inspiron).
  4. Super Mario source code

    Wow. Did programmers feel ridiculously limited back then? Or was working around these limitations "all in a day's work"?
  5. World Map

    Yeah, there are a few.
  6. StarCraft 2!

    I sure hope there's another tourney! What's your apm?
  7. Xna Sprite Rotation Problem

    What exactly are you trying to do...? Do you want the sprite to rotate without actually "tilting around"?
  8. There has been discussion about this already, but no real answer was given. How do modern RTS games (which all employ synchronized simulations for each client) handle floating point numbers? Normally, floating point numbers can vary slightly between different computers, which would throw each and every game off sync. Does anyone know how they pull this off? Games can't trust one of the clients for "corrections", that would completely open the door for all sorts of hacking.
  9. Synchronized games and floating point

    The angles could not be pre-computed. They would be movement and firing angles for each unit. I think I'll just waltz ahead and use floating point, and if it doesn't work I'll just break down crying.
  10. Synchronized games and floating point

    Quote:Original post by jdi Quantization errors between two different computers can theoretically happen, but they are so rare that in the last couple years that I've been working on games that use this type of networking, I've never seen one happen. I have seen plenty of sync errors caused by programming mistakes though. What we do where I work is just use floating point, run the simulation on all machines, and terminate a network game if it goes out of sync instead of trying to get it back into sync. It works well enough. j That's good! Haha What sort of games are you talking about? How are floating point values used in the game?
  11. Synchronized games and floating point

    Quote:Original post by Fingers_ Quote:Original post by Vorpy No you do not need to use a lookup table for sin/cos. A float will have more than 16 bits of precision, and 16 bits should be more than enough for the fractional part of the fixed point numbers (8 bits could also work). The precision does not matter; the problem is quantization of values where an *arbitrarily small* difference can go across a threshold between two quantization levels. For example: Computer A says sin(pi/6) = 0.499999999999999999999999999999999999999999999999999 Computer B says sin(pi/6) = 0.500000000000000000000000000000000000000000000000001 When you quantize these into a 16-bit fixed point fraction, A returns 32767 and B returns 32768. The simulation diverges and all hell breaks loose. Is that really what would happen? In binary, that isn't how those numbers look. The first bits would be the same, but the bits "past" your needed precision would be different. Wouldn't taking the first 16 bits be safe?
  12. Synchronized games and floating point

    I'm not worried about intentional de-syncing. I'm not going to have any record keeping, so de-syncing will be the same as just closing the game. Thanks a bunch for the tips, though. Is the only solution a look-up table for sin/cos? That seems... bad.
  13. StarCraft 2!

    Quote:Daniel, when did I talk about opponents? Thats true for me too. When I beat an opponent that had a better strategy just because I knew all the hotkeys better, its not really satisfying. Right here: Quote:My grip is, when I play Starcraft or W3, I feel that the best (casual) players dont win because they played a better strategy, they win because they are more efficient better at using the dubious controls and UI. They think less, click faster. It doesn't take long to memorize hotkeys, and your hands don't even have to move that quickly. Basically, you have to think quickly in addition to thinking "well". Some people would rather not have to think quickly, but don't act like fast-gameplay is a game-design fault.
  14. StarCraft 2!

    Quote:Original post by Steadtler Good points, Scint, but you're thinking old gen :) Selecting fast moving flying units is not a chore with clever UI and controls. I didnt play Frozen Throne. I think thats always been something with Blizzard, their games only realize their potential when the expansion comes out. It seems FT fixes many of the original game annoyances. My grip is, when I play Starcraft or W3, I feel that the best (casual) players dont win because they played a better strategy, they win because they are more efficient better at using the dubious controls and UI. They think less, click faster. Oh well, at least I hope the 128 unit cap show in the video is not universal. You know, you don't really have to play that quickly in order to be a great player. 150 actions per second is plenty to be considered an excellent player. Considering that includes both mouse clicks and key presses, that isn't very fast for your hands to have to move. Perhaps the problem isn't that your opponents aren't thinking, it's that they are thinking faster than you? I'll go ahead and add that you don't really need to scroll much in Starcraft. If you want to jump to some units, you double-tap their hotkey.
  15. Synchronized games and floating point

    Yeah, doubles have about 15 digits of precision, so if I take 10 of those and throw them into an integer, I'm almost guaranteed not to have any issues. Thanks to everyone for clearing this up!
  16. StarCraft 2!

    Quote:Original post by Steadtler Quote:Original post by Prozak Quote:Original post by Steadtler That gameplay video is kinda disappointing. Same old 1995 gameplay. I know thats what a lot of people want, so I cant blame Blizzard, but they have become so safe and boring. Same small scale, tactical-level micromanagement click-frenzy. And whats with those air units? They look like hovering turrets shooting at each others. Dogfighting anyone? Someone is shooting at you, try moving a bit? I'll pass, and stay on SupCom. It's a new GameDesign concept called Fun. Look it up. Yeah, the shitty small view is fun. Boring action is fun. Dumb ai targeting is fun. (look at those tanks killing each other!). Scrolling the mad like a madman is fun... Come on. Starcraft was fun, but had its drawback. I just wish they'll would have innovated a bit to cover those faults, especially regarding the UI and AI. Well, like the guy said, its not final, but I dont see anything impressive in there. OK, so you don't like RTS games that require quick thinking... so what? Most people prefer them over relaxed RTS like SupCom, and considering that SC1 was of the action-packed variety, why would they make SC2 slow?
  17. Synchronized games and floating point

    Thanks for the link. How would I get sin and cos values if I only used integers? edit: I should elaborate. If sin and cos return doubles, I couldn't trust the returned value to be the same across all systems. [Edited by - Daniel Miller on May 23, 2007 1:00:32 AM]
  18. Synchronized games and floating point

    Quote:Original post by CTar Quote:Original post by Daniel Miller How do modern RTS games (which all employ synchronized simulations for each client) handle floating point numbers? What modern RTS games do employ synchronized simulations? I don't have any actual info, but I'm quite sure that a client-server model is usually used. Supreme Commander does, it was mentioned in an interview. Warcraft 3 does as well, judging from their replay files.
  19. Tactics vs. Strategy

    Generals don't build bases, or do much else for that matter. In an actual war, decisions are made all over the place by different people, and it's not fun to play as just one person. By making RTS games fast-paced and tactical, you keep the average player from getting bored to tears.
  20. .01f != 0.0099999998 !!!!!!!!!!

    Quote:Original post by oliii hey? Fixed Point is just converting floating points into another representation. Sin / Cos works just the same. For example, in a very basic way I guess, multiply the sin / cos result value by say, 32000.0f, and round to get a 16 bit number in the range [+32000, -32000], then convert back. Or use precomputed tables, or whatever. That would only work if sin/cos return the same value on different comps. F*ck it, I'm just going to use floating point and just see if it works. Oh well.
  21. .01f != 0.0099999998 !!!!!!!!!!

    I'm sorry to bring back an old topic like this, but I have two more questions... how could you find out sin/cos using fixed point? Would you need different math libs? If that isn't possible... would I be safe if I stuck with the .NET Framework and GDI+? Any discrepancy breaks the entire game. I wish I understood this better. >.<
  22. RTS - Learning More.

    I wouldn't bother with a spreadsheet, or even bother with spending tons of time before release trying to balance everything. With RTSs, it's all about how units work together, so the only way to balance is to actually play the game and see if one side has any unfair advantages.
  23. Image Of The Day

    I think they may be caught as a popup.
  24. .01f != 0.0099999998 !!!!!!!!!!

    Quote:Original post by Rockoon1 In networked games, when you solve the latency issue you simultaneously solve this "problem." If floating point has different results on each computer, I don't see how latency has anything to do with this.
  25. .01f != 0.0099999998 !!!!!!!!!!

    Quote:Original post by Washu Quote:Original post by Daniel Miller Quote:Original post by Washu You forget that the errors will work both for and against each unit. In the long run the cummulative effect of these errors will cancel out. Some basic precautions should be taken to prevent things the error delta from growing, such as calculating new positions from an absolute origin (instead of moving relative to the last position, which would cause the error of the last move to accumulate with the error of the latest move). What do you mean "will work for and against"? If I unit is killed when it shouldn't have been, I don't see how anything can make that up. Sorry for all of the questions, I'm not trying to be annoying. The chances of an error being such that one critical shot will be the one that kills the unit is fairly small, but even assuming that happens... there will also be a time such that a shot would have killed a unit but was off by just enough that it lived. Again, the errors cancel out in the long run. But in a game, the first problem would de-sync the whole game, and the second would de-sync it even more. I think I"m just going to go with fixed point as it sounds much safer.
  • Advertisement