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

Techieman

Members
  • Content count

    39
  • Joined

  • Last visited

Community Reputation

276 Neutral

About Techieman

  • Rank
    Member
  1. Hey folks, recently I got an enlightenment and I grasped, how important unit tests actually are. Also I understood how practically "Test Driven Development" for solo developers can be. In theory it sounds really great (yet another holy grail for me).   However, I don't know how to pull it off.   My current situation is the following: I am developing a library, which provides facilities for cross-platform game development. My way of testing 'till now is/was like that: Does it display (or play the sound) as I expected, then it works. How would one test for these kind of results? I.e. how do I know, if I have a window actually being displayed on the screen? I feel really lost about this. It quite easy to check, whether my "fibonacci algorithm" calculates the proper results. But what about visual or aural results? Hopefully someone can help me out on this. :-) With best regards   Julien  
  2. As far as I know, it doesn't for Android, since it is compiling it to a .SO. That's the problem I am aiming to solve.
  3. Hi, my current project, is a small library for game developers. The library consists of classes, I used in earlier game projects, e.g. window creation or JSON parsing.   What's bothering me currently, is that I have different 'main'-signatures across different platforms, i.e. 'WinMain' on Windows or 'ANativeActivity_onCreate' on Android.    I'd like to map these into a DLL/SO-file, so that the user has only to write a 'main'-entrypoint once, which works across  multiple platforms.   Is it possible to move the entrypoint into a 'external module' or do I have to link statically? Thanks in advance, Julien
  4. Vulkan

    May I ask why everyone tends to load the function pointers dynamically *by hand* instead of leveraging the Vulkan SDK? If seen this in paper from Intel. But why?
  5. Few moments ago, I came across a post on stackoverflow. The thread owner states some problems when using DXGI with OpenGL,  implying, that DXGI actually can be used alongside OpenGL.   My question is what are the benefits of leveraging DXGI instead of GDI, when  developing with OpenGL? What are the drawbacks?   - Julien
  6. Hello folks!   Currently I am working on my engine again and I'd love to implement a threading mechanism,  that can easily scale with the number of cores avaible. So an agent-based solution won't fit.    Once, I implemented a Thread Pool for an earlier project, which used it mainly to save and process files in the background. However, I wondered if a threadpool would be appropriate for multi-threaded game engine and searched for some  'additional informations' and I found a blog post by Sean Middleditch. In his post, he explain one should settle for Thread Pools, with 'Jobs' and 'Batches'.  After finishing reading it, I felt enlighted :), still I am having trouble to understand the idea behind it. Basicly I don't understand what 'Batches' and 'Jobs' are.   TL;DR What are 'Batches' and 'Jobs' when generally speaking about Thread Pooling? What are the best way to identify a function call as a 'Batch' or either as a 'Job'? How would one go about creating a multi-thread system?   Thanks in advance P.S.: I hope I managed to express myself properly; Englisch ain't my native tongue.
  7. Well cosine and sine are you best friends when it comes to rendering circles.  cosine of an angle equals the x- and sine of an angle equals the y-coordinate.  Of course you can't generate a "perfect circle". It will always have edges. If you have more vertices the circle will look less angular and vice versa. I hope this enough of a hint. Sincerely,  Julien
  8. Hi, I have noticed something strange. Whenever my application closes, it releases all resources (theoretically). It just loops over it: Context::~Context(){ for(int i = 0; i < _VertexBuffers.size(); i++){ _VertexBuffers[i].release(); } for(int i = 0; i < _IndexBuffers.size(); i++){ _IndexBuffers[i].release(); } pSwapChain->Release(); pRTV->Release(); pDevice->Release(); pContext->Release(); // TODO: // Keep track of created resources and delete them then. } The release method is defined is following: virtual void release(){ if(valid && (pBuffer != nullptr)){ valid = false; pBuffer->Release(); } } However, I am getting an "Access Violation" when trying to clean up, even though the "valid" flag is set to true. I made sure, that "valid" is only "true" when a buffer was created successfully. I tried to eliminate the spots and as it seems void Context::setVertexBuffer(const unsigned int buffer_id){ UINT stride = sizeof(float) * 7; UINT offset = 0; if(_VertexBuffers[buffer_id].isValid()) pContext->IASetVertexBuffers(0, 1, &(_VertexBuffers[buffer_id].pBuffer), &stride, &offset); } As it seems, "IASetVertexBuffer" is kind of invalidating the resource. I am probably using it the wrong way, am I not? Cheers,  Julien
  9. Sorry, my question was too unprecise.  I couldn't find any ID for a equivalent of WM_CLOSE/WM_QUIT/WM_DESTROY for "XEvent.type".
  10. Hi, my next milestone is to port the Window class (or better the Window_Impl class) to X11 but I am uncertain how to catch and process events like "WM_CLOSE" known from WinAPI.   Are there even events like this in Linux/X11?     Sincerely Julien   P.S.: My team has a reason NOT to use GLFW etc. even if it's just personal preference.
  11. We're (or better I am, since Platform abstraction and rendering is my part in the engine) using our own classes for window creation.  Those classes are already ported and tested.  It's just about the context creation.
  12. Damn, what a pitty. So I have to implement the GLX and CGL part too. Thanks for your help.
  13. Hi, I've recently come across EGL, which happens to be a unified official cross-platform standard to replace (or at least abstract around) the platform-specific windowing/context-creation APIs. By my understanding it was made for OpenGL ES, but however, since Version 1.4 "eglBindAPI" takes another optional Parameter : "EGL_OPENGL_API".    Does this mean, I can create an OpenGL 4 Context on Windows, Linux and Mac OS using EGL? If yes, where do I find the development libraries? LG Julien      
  14. So, I am doing a prototype (a draft) based on the information you gave me. I've following classes: struct Mesh; // Data only struct Light; // Data only class MeshRenderer; class LightRenderer; class Scene; class RenderQueue; class Renderer; The idea is, that each renderable entity has it's own renderer. The structures are being submitted to the "Scene", the "*Renderer" class process the data and submit drawcalls to the "RenderQueue" using DrawItems. The RenderQueue sorts the draw calls (opacity hey ho!) and if it finds the same drawcalls (e.g. using same vertex/indexbuffers handles) it batches them into a "InstancedDrawCall". Finally the "Renderer" processes these DrawCalls.  Is this the way to go? I am still not sure on how much I should abstract things. Should the renderQueue be aware of updating/creating resources (loading vertices in a VertexBuffer?). EDIT: Should the render queue be like the "deferred context" as known from DirectX 11, yet stateless?  
  15. Well, actually I wanted to. Let's say a target machine doesn't support OpenGL 4 due to missing drivers. I'd fall back to OpenGL 2.   That's the problem I am trying to avoid at all cost.   So it's better to abstract the rendering api (perhaps into a stateless rendering api; I just stumbled upon this, kind of similar to hodgeman's approach, isn't it)?  About the sceneManager: Is it just a bunch of classes holding every mesh etc. in a std::vector (or something comparable)?  And is the sceneManager commiting the draw calls? So, finally: Thanks to any who replied. I've got some awesome content to think about (@L.Spiro, @Hodgeman) LG Julien