• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

834 Good

About pinacolada

  • Rank
  1. sounds like a challenging problem.. I think "game" is probably defined as "a sequence of moves that terminates in one player winning or a draw" You'd have to start with 9! and then subtract all the games that are impossible. Specifically, any game where there are moves after a player has reached 3 in a row is impossible. So.. in the whole game there are 9 moves. We don't have to worry about a winner until move number 5 (when X might win). How many different ways can we have a winner in 5 moves? There are 8 different ways to win, and order is important, there are 6 different ways to order 3 moves. Also, O is also playing- there are 6 remaining spots on the board (after you subtract the 3 that X uses to win), so there's 6*5 ways that O could play before losing. So that's 8*6*6*5, or 1440 games that end at move #5. With that number you can figure out how much the 9! total has overcounted. After a victory in 5 moves, there's 4! ways to keep playing. So the 9! number has overcounted by 1440*4! = 34560. So the final answer would be 9! minus 34560. But let's not forget the 1440 valid games that ended after 5 moves, so add 1440 back in. I think you would have to continue and find numbers of games that are impossible because of victories after move #6, #7 and #8. It gets complicated quickly. What class is this for?
  2. Quote:Original post by onfu Pretty good example for this case would be the backlash leveled against Killzone 2 for having just the TINIEST amount of controller input lag. For many COD and Halo gamers the feel was just unacceptable and an outright deal-breaker. Excellent article on the subject: http://www.eurogamer.net/articles/digitalfoundry-lag-factor-article The thing is, the local controller lag in Killzone 2 wasn't tiny, it was 150ms. And it still sold a lot of copies. GTA4 measured even worse, at 200ms, and that one also sold a ton of copies. Those numbers aren't too hard for cloud gaming to compete with. Honestly they are probably already doing better than that on the faster games. I think there's a certain small group of gamers who will start to complain about input lag over 100ms or 150ms, but most people don't mind it that much.
  3. It's hard to go wrong if you're in the general area, it's all pretty affluent and the schools are all good (from what I hear). Some specific areas I know about: Mountain View itself is very nice, it's one of my favorite towns down there. Palo Alto is nice but it tends to be sharply more expensive than neighboring areas. East Palo Alto should be avoided as it's a crime hotspot. But in general, all the suburbs are nice, and they all kind of blend together. If you find that those areas are a little too pricey, things get cheaper in the east bay, like possibly Fremont. But your commute will be longer.
  4. It sounds like you know what you're doing, so no, there aren't really any major disadvantages. If you write your code in a standards-compliant way then you shouldn't run into any problems. I have a 20k LOC project that I support on OSX/Linux/Windows and I've never had problems related specifically to the 32-bit / 64-bit difference. The worst thing that happens is that some of your data structures will get bigger, since pointers have 8 bytes instead of 4. Moving to Linux also sounds like a good idea to me; I vastly prefer it as a dev platform. Being able to use apt-get to install your dependencies in seconds is great, and Valgrind is a fantastic tool. The only thing I'd recommend against is continuing to support Windows after you move. Supporting multiple platforms is a pain, you should only do it if it's something that's really valuable for you. Writing cross-platform makefiles is a pain, managing your external library files for each platform is a pain, and you have to double the amount of testing that you do.
  5. Ignore the error codes, just look at the line number.
  6. I like this thread, I get where OP is coming from. History and psychology research has shown us many times that people can be coaxed into doing bad things, in the right environment. We all have the ability to be evil. But no one will admit it, instead we tell ourselves "Those people aren't like us, we're better than that". So I don't know what I would have done if I had the same life as one of the terrorists. But there's a chance that I would have done the same thing they did. So I guess I'm sorry too!
  7. Unless you're looking at 64 bit code, those arguments are going to be 4 pairs of hex digits, not 8. I think your value for nCmdShow is the second half of the 0x0012FD14 line, so it's equal to 01 00 00 00. Intel is little-endian so that's the hex you'd expect to see for 1 or SW_SHOWNORMAL.
  8. There's a control panel for this too, dunno where it is on 7 but on Vista it's at Control Panel -> Problem Reports & Solutions -> Change Settings -> Advanced Settings It's possible for the network administrator to change these settings, maybe that's why it suddenly stopped working? Though usually they will just disable the "Send report to Microsoft" option so that no one accidentally sends private info to Microsoft. It would be weird for an admin to disable the crash dialog completely.
  9. .dir sounds like it might be a Macromedia Director file (but it might not be). I don't think the early versions of Director were cross platform, but the new versions are. So maybe if you open it up in Director, there's a small chance that it will be able to read the old file format and let you run it. A very small chance.
  10. Flash can be decompiled and javascript can be run through an obfuscator; they are probably equally readable after that. HTML5 might be replacing Flash in some areas (like video) but I think Flash will be a better choice for games for many years to come. I'd suggest Flash unless you would rather work on a platform that has fewer features, fewer tutorials, fewer libraries, fewer tools, and is supported by less browsers.
  11. No, on Windows nothing comes close to Visual Studio.
  12. You bought stock 2 years ago? I think you missed the lesson that you're supposed to buy low and sell high- you bought the stock when it was already really high.
  13. Quote:My question is this: If I create pure C "objects", but these objects contain C++ STL containers such as "map", "vector", etc. will that still create a vtable that can break when the plugin is compiled on a different compiler? No, just having more fields won't touch the vtable for that object. So you could safely access the other fields in that object, but the foreign binary probably won't be able to safely access the contents of the map/vector/etc. I think the best strategy (which the Building Your Own Plugin Framework article mentions at the end), is to pass around opaque pointers to C++ objects, and provide pure C accessors for those objects. You can even go further and write a shim C++ class that wraps around the C accessors, if you want to. Edit: Yeah, just like Kwizatz said. Then if you wanted to put a C++ shim on top of that, it would look like this: class MyShimClass { public: MyShimClass() { _data = CreateSomeObject(); } ~MyShimClass() { DeleteSomeObject(_data); } void callSomeFunction(int i) { CallSomeFunction(_data, i); } private: void* _data; };
  14. I'll guess it took 20 skilled engineers (at Bay Area prices) a period of 2 years, so that's roughly 4.5 million.
  15. Some things you can do with a DLL: - See a list of all the publically exported functions (difficulty: easy) - See all the string literals (difficulty: easy) - Figure out the types of the exported functions by examining how they use the stack (difficulty: medium) - Figure out what it does by examining the machine code (difficulty: hard) If I was going to reverse engineer a DLL, the first thing I would do is load it in Python with ctypes, and just try calling each exported function with plausible arguments.