Jump to content
  • Advertisement

Anon Mike

  • Content Count

  • Joined

  • Last visited

Community Reputation

1098 Excellent

About Anon Mike

  • Rank
  1. Anon Mike

    Property Editor

    My version of your PropertyList control was just a listview in report mode with 2 columns. For editting you respond to the click notifications by creating an editbox (or combobox or whatever) and positioning it over the cell in the second column. It's not that bad to implement and the listview handles the basics like scrolling automatically.
  2. Anon Mike


    Fun, innovative. No problems on 64-bit Win7 beta once I figured out I needed to install dx9. For some reason it took me a bit to realize that the idea was to swing and not just manuever and/or stack blocks. I had similar problems with forgetting which arm was which as others have. Once I got my Tarzan thing on it was good and I didn't really worry about it anymore. Needs a "You Win!" once you get all your blocks to the top :).
  3. Anon Mike

    Silly poll

    hmmm, I've always referred to what you're calling "CamelCase" as "PascalCase". Similiarly what you call "lowerFirst" I call "camelCase"... Wikipedia agrees with you that leading capitals can be called CamelCase also. To me, FunctionsAreLikeThis. At work variables areLikeThis. For my personal stuff i_like_underscores.
  4. Anon Mike


    I look forward to reading about your further attempts to secure a Darwin award :).
  5. Anon Mike

    Memory Management Part II

    Got to plug the NT memory manager tag system again. It's equivalent to your MEMTYPE stuff is "tags", that in general are arbitrary 32-bit integers but in practice are arbitrary multi-byte character contants. The advantages are that they're not as in-your-face as the MEMTYPE macros/enums, making things easier to read, you don't have to have a centrally defined list of tags so there's no reluctance to make new ones, and since the character/tag value is written to the memory block it's easier to see what's going on in a hex dump. e.g.: 00123450 51 75 65 75 e3 98 a8 3f 00 00 00 00 ff ff ff ff Queu...?........ 00123460 a9 01 23 93 51 72 75 64 11 22 33 44 55 66 77 88 ....Qrud.'3DUfw. You can see pretty easily that you're looking at a 'Queu' object and a 'Qrud' object. Of course you could get the hexdump stuff back by having explicit values for your enums.
  6. Anon Mike


    Strangly, most users don't like having 30 billion options confusing them. Besides, if you were faced with the option of "fast shutdown" vs not, which would you pick? Of course you'd pick the fast one, then joke to your buddies about how stupid the nerds making the software are for having a "slow shutdown" option. Either that or you'd freeze up, call your nerd friend, and ask them if your computer would blow up if you picked the fast one. But as to the main topic, one of the problems with having such a fast shutdown route is that it can make it difficult to track if you leaked resources. A lot of fancy resource managers will spit out a report of leaked objects at app shutdown and if you go bypassing things you'll get false reports. A good compromise might be to have such a fast exit (and turn off any reporting) unless it's a debug build of the app.
  7. Anon Mike

    Memory Management in Real Games

    In kernel mode NT programming every allocation that uses the system allocator (ExAllocatePoolWithTag) has a 'tag' associated with it that can be used to identify who allocated the memory and for what purpose, this sounds like basically the same thing as your "types". It's incredibly useful for debugging.
  8. Anon Mike

    AI in games

    An easy rule of thumb until you figure out who you like is to start with blogs with high view counts. rip-off's list is similiar to mine.
  9. Anon Mike

    A Complete Listing of C++ String Types

    Dragon, this doesn't really have anything to do with C++ the language. At least IMHO it's a more a commentary on legacy cruft and library developers constently reinventing the wheel. You'll see these things in the wild but you don't necessarily have to use them. std::basic_string is the native C++ type (counting the standard library as native). std::string and std::wstring are varients because there is more than one definition of "character". In this case "normal" and "wide". If you think "normal" should be good enough then I've got a billion Chinese people ready to argue with you. On the other hand if you think "wide" should be good enough then I've got a billion whining posts about wasted memory for you to peruse. char[], char*, wchar_t*, and similiar varients are legacy cruft from C that you don't need to use unless you're interfacing with older libraries. There are a lot of such library (including OS calls) so they come up a lot. Typically you shouldn't be using them in the guts of your own program. LPSTR, LPCSTR, etc. are just different names for the old C types. Windows likes to do this for some reason. BSTR is legacy cruft from Visual Basic that got co-opted into some parts of COM. boost::const_string is a third-party optimization. I think CString actually predates std::string. Legacy cruft. CStringT, PXSTR, etc. There are internal details of CString (assuming Promit's definition is correct). You normally wouldn't have to know about these anymore than you have to know what some helper class of std::map is called. Maybe they come up often in some circumstances, but I've never seen them. CComBSTR, _bstr_t. Having a RAII wrapper for a POD type isn't a bad thing. Having TWO wrappers is. wxString, MString, etc. These are libraries writers wanting to reinvent the wheel (unless like above they were created before the standard string type). VARIANT is not a string type. The fact that it can hold a string doesn't make it a string type. String^, StringBuilder^. These are from a language that is not C++. Granted, it's very similiar to C++ in many ways, but it's not C++. Spurious.
  10. Anon Mike

    On MMORPGs

    Woot, a bandwagon! Of your picks only Guild Wars is even vaguely "big", and I'm not even sure about that. Here's the big ones. Interestingly, Guild Wars doesn't show up anywhere on mmogchart.com that I can find (although I didn't look that hard either). I agree with the basic premise though. I've played UO, EQ1, EQ2, SWG, CoH, VG, and WoW, and WoW easily kicks the crap out of all of them for polish.
  11. Anon Mike

    Working With Unicode in the Windows API

    Originally Windows NT supported UCS-2. Support for surrogates (and therefore UTF-16) is a bit spotty, but increasing. XP required US users to explicitly enable Uniscribe which GDI needs to be able to output surrogates. With Vista it's always on plus some fonts were added for non-BMP characters. Joel Spolsky's post on Unicode is pretty good.
  12. Anon Mike

    Some Urban Empires Environment pics & Next game....

    The UE screens look great except, um, is it just me or are all the vehicles floating a few inches off the pavement?
  13. Anon Mike

    Iterative Improvement

    Other enhancement possibilities: As far as I've been able to tell a link only has two states - "definitely on" and "indeterminate". It would be useful to be able to mark a link as "definitely off" as well. Have a button that would backtrack the game to the point at which you made the first mistake. You could then replay from there.
  14. Anon Mike

    A Case for Trivial Setters and Getters

    Memory breakpoints slowing things down is why god invented hardware breakpoints. I don't know if VS supports them but the Windows platform SDK debuggers do (via the "ba" command), no clue at all about gdb. Set a write breakpoint on your value and you're off and running at full speed until such time as the write happens. Also handy for tracking down all sorts of buffer overwrite issues. In the case that you can't use hardware breakpoints it's not that hard to convert a C++ POD type to an object with appropriate operators and conversion functions that you can set breakpoints on. It's nowhere near as easy as C# but it can be done if all else fails.
  15. Anon Mike

    Which gun should I add??

    Brass knuckles Chain Brick Staff (varients - broom, rake, pool cue, etc) Fire extinguisher (swing or spray) Garbage can lid
  • 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!