Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

8652 Excellent

About BitMaster

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  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. BitMaster

    Disable Ubuntu shortcuts

    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. BitMaster

    Different Versions of VS C++.

    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. BitMaster

    Estimating development time

    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. BitMaster

    How To Fix This Ugly Code Here?

    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.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. 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!