• 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

2316 Excellent

About Alundra

  • Rank
    Advanced Member
  1. You can compute the angle using atan2 or dot product which will gives you an angle in [-PI, +PI]. Using this angle you can select the 2 animations and then compute the blend factor of the two. Mirroring is a tricky thing, you have to set the mirror bone + set the mirror axis, mirror the quaternion using that.
  2. For that you can simply have 4 animations : N,S,E,W and then do a blend by direction. For that you can do mirror of animation, but it's a tricky thing to have it working and you also need to do a mirror bone setup to set each mirror bone.   You can do a masked blend to animate the bottom part and animate the upper part, simply combine the pose.
  3. Good point, I simply clicked on the home page and answered.
  4. std is the namespace used for the standard library of c++. Maybe are you doing : using namespace std; If the answer is yes, then I hardly recommend to not do.
  5. it's not clear to me so 3 options : Array of array of int ​std::vector< std::vector< int > > Array of array of int* std:vector< std::vector< int* > > Array of array of array of int std::vector< std::vector< std::vector< int > > > If the size is fixed you can simply do : int* array[10][10] or int array[10][10][10]
  6. You take the depth from the depth map then you put this value in the "DepthValue" param of this function and that converts the value. float depthFromMap = DepthToViewZ( tex2D( DepthMapSampler, depthTex ).r ); To render in the depth map you can avoid the pixel shader, simply use the vertex shader.
  7. You can convert the depth from depth map like that : float DepthToViewZ(in float DepthValue) {   return Projection[3][2] / (DepthValue - Projection[2][2]); } You simply have to use the same projection matrix used to render the depth map. Another solution is to simply store the view-space depth in a render target, but since it's already stored in the depth map, better to use it.
  8. I don't understand this problem of relative transform, since the game object (or actor or scene object or entity ....) has the local transform, it contains a pointer of the parent, so you compute the relative transform with the current parent and when you change the parent you update the local transform. You will only win to move to a component based system if you are not already and then you can have a script component which contains a reference to one script. But you can also do all without script and later add a runtime compile, it can be seen as c++ script at the end.
  9. The dirty flag is something still used nowadays, you have a state to know if local space transform, world space transform or world space matrix needs to be updated. Since the flag is checked then you don't update the transform twice, when you do any update on the transform of the object, you have to set the flag to "needs update" correctly. The object store internally local space transform, when it has no parent, the local space transform is the same as world space transform. About the scene, you can have flat array and move the pointer of the object when you add child/remove child. Another solution is to have flat array for rendering and a root object (or array of root objects). Using the second solution, you update from root to children, the update is not twice. Using the first solution you simply for loop the flat array, the update is not twice.
  10. Ok, I see here page 78 it's explained and also says it comes from Schuler in Shader X7 : http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr_v2.pdf Apparently it's because these area are too small for the shadow map so the cavity map is used there.
  11. The solution said by Hodgman is the cleanest, when he said transform he speaks about the world space transform. You can combine all the meshes without any nodes or keep yout frame structure which is a node structure, I prefer the term "Node" than "Frame". The good point of a Node structured mesh is you can animate bone an geometry at the end (to me it's more clear "Geometry" than "MeshContainer").
  12. They create the render target on the fly if not one is available for the asked size using a render target pool ? Is it ok to downscale/upscale using the hardware filtering ?
  13. Yes, I do the same, I use a value 1 or 0 for little / big endian and then I have simple inline function which check the endian source to convert using the define of the actual compilation endian. So, basically it's more an issue to check the good endian based on platform because then all others place uses the #ifdef to know the actual endian.
  14. Hi, I see resolution scale for example in Quake Champions but also Unreal Engine has, and in forum posts it's sometimes said too. Is it a real must have because resolution scale means very bad visual quality since it's a render target upscaled to the screen resolution at the end if not 100%. Thanks
  15. Hi, Actually I use the first level of the displacement map because I didn't find a solid way to select the mip level based on distance. Any solution to solve this issue ? Thanks