• 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

8651 Excellent

About BitMaster

  • Rank
  1. While I can understand a certain amount of frustration with Kylotan in particular there will always be people who are unhelpful and/or distracting. That said, Hodgman pretty much answered your question in the very first reply of that thread. After that there was only the option of silence or talking about the usefulness of the question. Granted, Kylotan started talking about something completely unwarranted and mixed that in with some valid points but, as I said, that's the way he is and one just needs to learn to deal with that.
  2. By setting a global shortcut, I explicitly define that I want to dedicate that key-combination for that particular function. What makes an application believe it can ignore my choice? How do I reach that particular function if it overrides the one connection I have? From what I understand one of the key issues here is not that this is not about me setting but an obnoxious preconfiguration. If this was something you had to explicitly opt in for this whole discussion would be moot, but it is instead something the average user will encounter, not even understanding why the game does not work as intended. Setting that aside, it is very much not uncommon for games to knowingly circumvent some platform behaviors. That is always a thin line to walk but considering games are typically used very differently from normal desktop applications this can be justified.
  3. Then either those are not built correctly as static libraries or something else you are linking pulls in a dynamic OpenSSL dependency. If you changed those dependencies recently it's also possible (though unlikely) that you need to force a complete rebuild of the project. You can also see if you can set the linker to verbose. It should then list every library it is linking and you can verify you are only linking exactly what you expect. Even if you made no mistakes yourself all it takes is a single well-hidden #pragma comment(lib, ...) to screw you over.
  4. That is absolutely not the case. The /MT switch links the static C++ runtime. If you use any 3rd party dependencies you will have to ensure you compile them to static libraries and link to those. Note that getting some libraries to compile in this way can take some knowledge and work since a lot of projects are not intended to be used that way. There are also potentially problematic license issues unless you originally picked your libraries with an eye towards that.
  5. Personally I would much rather use something like CMake or Premake to generate my project files. Not only does that eliminate the potential headache when switching to a different version of MSVC I also get additional build environments for several platforms and compilers for free. I haven't had to deal explicitly with an MSVC project file at work for years and it made me a happier person.
  6. Unity

    I do not agree with your point 5. The heuristic I have been exposed to suggests to change to the next higher unit of time (day to week, week to month, ...) and multiply by pi, then round as reasonable.
  7. You would need an additional renderbuffer (or a qualified texture) acting as depth buffer, yes, unless there is some kind of mixed color/depth format around (to my knowledge, there is no such thing). If you will only render to your FBOs, you do not need a depth buffer with your window's framebuffer.
  8. As already said above, the rules you specify in most consumer class modems/routers are for traffic from the external to the internal network interface. For simple consumer use-case it is usually explicitly wanted that any two devices on the internal network are allowed to communicate with each other freely.
  9. That's not an area I have much experience in, but if you do not create a texture to render on but a renderbuffer (which you can render to in an FBO but not use as a texture) you can blit extremely fast between renderbuffers (including the implicit renderbuffer of your window). Thta's pretty much what OpenGL already has to do anyway, but hidden from you. A monitor cannot display multiple samples per pixel. They must be collapsed into a single sample before display anyway. I would have a look at the OpenGL wiki regarding multisampling, I remember reading it a while back and it cleared up a lot of misconceptions. As far as I know, no one really does multisampling outside of FBOs anymore.
  10. You can build GLEW in a way that it can deal with different function pointers, but that requires an additional context parameter in each OpenGL function call. For games though I would try to do whatever I can to avoid having to deal with this issue. Why exactly do you need to do that anyway? Wouldn't it be far easier to have no multisampling in the pixel format and just use FBOs with/without multisampling?
  11. std::map<int, bool> keyState; bool isPressed(int key) { auto it = keyState.find(key); if (it != keyState.end()) return *it; else return false; } void setKeyState(int key, bool pressed) { keyState[key] = pressed; } void clearState() { keyState.clear(); } Not the ideal solution but I'm in no mood to check the range of key values SDL can deliver and just about everything is better than the mess you currently have.
  12. I recently stumbled over flatbuffers, although I have not yet tested them myself.
  13. There are many rectangle packers with different advantages and disadvantages. This paper makes an effort to explain and evaluate several of them.
  14. Take input textures, put them in one sufficiently large texture using the rectangle packing algorithm of your choice. This implicitly defines texture coordinate mapping functions for each textures from their original coordinate space into the new combined atlas. Apply the respective mapping function to the texture coordinates stored with the model. Done. Extremely general questions will lead to extremely general answers. The tasks needed to get a texture atlas are rather straight forward (although dealing with some issues like tiled textures can cause a certain amount of headache). The core of the whole issue is going to be the rectangle packing, after that everything should really fall into place. If not, ask specific questions.
  15. If you already depend on Boost, Spirit might be a relatively simple way to get a decent tokenizer. I'm not a big fan of writing one by hand unless you know your whole language from the start, know it's simple and never needs to be extended afterwards.