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

Vladimir128

Members
  • Content count

    9
  • Joined

  • Last visited

Community Reputation

229 Neutral

About Vladimir128

  • Rank
    Newbie

Personal Information

  • Location
    Russia
  1. OpenGL

    Thanks for reply I listened to your advices, and these few days we were testing different applications with friends, who have Linux. VSync works fine, looks like it was a problem of Virtual Machine. But there's another problem with extensions. There are a lot of similar code, so I'll show you just a pseudocode, with a few lines, how it is structured in files. Something like this   File GLXExtensions.h   class GLXExtensions { public:     GLXExtensions(void);     ... private:     bool Initialize(void);     ... };   File GLXExtensions.cpp   #include "GLXExtensions.h"   static PFNGLXSWAPINTERVALSGIPROC glXSwapIntervalSGI = NULL;   GLXExtensions::GLXExtensions(void) {     Initialize(); } ... bool GLXExtensions::Initialize(void) {     glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glXGetProcAddress(reinterpret_cast<const GLubyte*>("glXSwapIntervalSGI"));       // CASE 1       return true; }   File GLExtensions.h   extern PFNGLXSWAPINTERVALSGIPROC glXSwapIntervalSGI;   File GLRenderDevice.h   #include GLExtensions.h   class GLRenderDevice { ...     bool initialize(void); ...     GLXExtensions *glxExt; }   File GLRenderDevice.cpp   #include "GLRenderDevice.h"   GLRenderDevice::initialize(void) {     glxExt = new GLXExtensions();       // CASE 2 }   The problem is - if I call glXSwapIntervalSGI in the "CASE 1" line, everything is fine, but if I call it in "CASE 2" line, program crashes. Even if pointer is not null. And also, if pointer is declared without "static" attribute, just as "PFNGLXSWAPINTERVALSGIPROC glXSwapIntervalSGI = NULL;", than program crashes even in "CASE 1". The same thing with other extensions, for example with VBO. So the question - how these pointers should be initialized properly? By the way - everything works fine on Virtual Machine, it crashes only on real Linux. Also the same code with wglGetProcAddress works on Windows, even without "static". Does anyone have suggestions?
  2. It's difficult to recommend you NeHe tutorials, because they don't use shaders, except one lesson So, don't worry about that GLUT is the library for studying OpenGL, and as far as I know, it is not recommeded to use in serious applications. FreeGLUT is probably also a little bit deprecated. GLU is the library with some functions that can be written with just standart GL. So, it's helpful when you study OpenGL, but not necessarily too. To create window and initialize OpenGL you probably should use GLFW or API methods of your OS, if you prefer low-level programming SDL is also a popular library
  3. Hi everyone. I've got some troubles with OpenGL on Linux in my graphical application. Actually, I cannot turn vsync on. glXSwapInterval returns GLX_BAD_CONTEXT. So I took the code for Linux from NeHe tutorial, as a simple example, but the situation is the same. I tried to call the function after glXMakeCurrent and before, but anyway it returns an error. Probably, there's no need to show you the code, because it is available on the NeHe website, and you can try it yourself. Has anyone got some suggestions, what can be the reason and how to fix it? P.S. There are few functions glXSwapInterval, for example glXSwapIntervalSGI. I run Linux on the virtual machine with a simple videocard, so the function available there is glXSwapIntervalMESA. Maybe this is the reason ) And other functions would work on the real PC. But I'm not sure
  4. First - strange lines: #include <DirectXMath.h> using namespace DirectX;   OK, I replaced it with: #include <xnamath.h>   Second - D3DCompileFromFile not found. MSDN says it's from d3dcompiler.h file, but there's no such function Of course, as a last resort, shaders can be loaded manually and compiled with D3DCompile :)
  5. Has anyone got executable files, which were available with tutorials?
  6. Calculation of VB each draw is probably not really neccessary. Because you can add something like "dirty" flag, and calculate buffer only if text was changed
  7. DX11

    Yes, try to do that, and when you get the message, check if your application was activated and call the method IDXGISwapChain::SetFullscreenState with parameter Fullscreen set to TRUE. That should work :)
  8. It looks like in this case you won't be able to check different multisample quality levels, because the method ID3D11Device::CheckMultisampleQualityLevels should be used with already created Device, but before creating SwapChain
  9. Try to mix shaders in HLSL code again, and to make it work. Because, even if you will successfully apply two shaders to one object, all pixels of this object will be processed twice. That's not very good for performance, especially when there are a lot of objects