• Advertisement

Burnt_Fyr

Member
  • Content count

    797
  • Joined

  • Last visited

Community Reputation

1665 Excellent

About Burnt_Fyr

  • Rank
    Advanced Member
  1. Writing a 3D engine, advice

    Eberly's book is a bit dated, many concepts have changed since 2014. Lunas books are great, if you work slowly he really gives you what you need to learn how to START into 3d, i've gone through his dx9, and dx10 books. After that Practical rendering and computation(by JasonZ, MJP, and JJ here at gamedev) was a great addition to the library, as I had the background to understand the code, and it really helps you understand whats going on under the hood. Gregory's book is definitely one i would recommend, as it covers a gamut of concepts that are important to deal with, but it's not for the beginner, once you are comfortable with the rendering, it will help flesh out the other areas, like physics, bones, input, etc. On the subject of physics, both RTCD by Christer and physics for game developers(D.Bourg) are great books, the former as a reference for intersections, and CD, and the second as it walks through the creation of a simple 2d and 3d physics sim. On AI, Matt Bucklands book is high on my list. I'd recommend trying out your library first. and don't focus on game programming when buying books. So many are just old, out of date, or... well rehashings of old out of date books. Code Complete, is one that should be read by every programmer. You can spend an awful lot on books, but in the end, those that i've mentioned here have had the biggest impact on my own work.
  2. Rudder force

    ^this. you are correct in understanding the drag opposite velocity, but you need to account for the effect that force has on the rudder. the rudder directs the flow to the left, which creates an opposite force on the rudder, pushing the rear of the boat to the right. There is a ton of good info on the web about this stuff. I know that "https://www.amazon.com/Physics-Game-Developers-David-Bourg/dp/0596000065" does a decent job of describing the background math behind this problem, check your local library
  3. HLSL see through effect

    Seems like a standard alpha blending  situation. I'd start with understanding how alpha blending is done and go from there, as it's not too difficult. Is there anything specific you are having issues with?
  4. +1 on the blender/gimp train. I've been using blender since... maybe 2001 ish? and it's workflow has improved greatly since then. There is a large community of talented artists that share their skills and knowledge through online tutorials. Gimp is easily as good as illustrator(as it is a 2d drawing program) and can match most of photoshop's capabilities as well. you can't beat the price on these 2, and they are more than capable of creating everything you could ask for as far as art assets go.   side note: one piece of software i have no problems with price wise is CrazyBump. With that and the wife's dslr I can create beautiful seamless textures(in gimp) and generate normal, occlusion, bump, and spec maps in minutes.
  5. Building game architecture

    Do you know anything about your world? can you find things in it? your units will need to be able to do the same if they want to survive.
  6. There are a number of things that could be the issue, and without a bit more info it will be hard to narrow it down. Shortlisted are 1) what type of multiplication are you using, V*M or M*V. 2) what handedness are the spaces(and are they all the same).  Can you provide some code to show how you are attempting to use it?
  7. in windows systems(linux too i assume) ..\ can be used to point to the parent directory, but this is the parent of the working directory.   if you mean to go from c:\windows\system to c:\windows, then you will need to parse out tokens with the backslash as a delimiter, and then recombine the tokens into a new string.
  8. [WIP]BattleCards - auto card battler

    I'll definitely add this to my regular reading if you journal it. Just a heads up though, I think battlecards is a SJG trademark. I still have some in packs buried somewhere.
  9. _CrtSetBreakAlloc() not breaking

      That was my initial thought(that they were pointers), but sizeof(int*) returned 4, so it threw me for a bit.   I have since found that since they are all created outside of main, they are allocated before the call to _CrtSetBreakAlloc() is executed, and this explains why there is no breakpoint in the debugger. This makes me think they are false positives, as they are global state objects. (I use them sparingly so i can quickly implement new ideas, which are then refactored so that the objects they require to function are passed in arguments in their constructors.)   However i still have no method to test this hypothesis.
  10. I'm trying to resolve a memory leak but have not been able to get the debugger to break on allocation of the leaked memory.   _CrtSetBreakAlloc() sets the proper value(I have verified it's not -1), but the program never breaks, or indeed any allocation. Is there something I'm missing?   The problem is deterministic as each time it is the same Alloc id(147), with the same size (8 bytes, which leads me to wonder, what could i be allocating that is 8 bytes? a wchar_t maybe?). Unfortunately as each time the program is run it's address in memory changes I have not been able to easily see it in the Memory watch window.   I'd prefer to find out why the debugger is not breaking as it should, but at this point my eyes are bleeding and I'm open to any other options on finding the leak. Anyone have any suggestions, anything would be appreciated.
  11. I'm amazed no one has replied to this yet, so I'll take a stab. Can you debug the shader? If so, try pushing the world space position from the vertex shader to the pixel shader, in the VSOUTPUT,  and then compare results of your depth reconstruction to the WSP you pushed through. It should at least give you an idea of what is going wrong.   I've not worked with linear depth, so i can't comment on #1, but #2 should be using the InverseViewProjection, I can't see the shader but i don't think that's what your variable describes. So it could be you are getting a position in Viewspace. Maybe post the full vertex and pixel shaders so we can see the whole routine?
  12. Does anyone have any experience working with these devices in windows? I'd like to try and integrate these into lessons at my day job as a teacher, and want to know if they are a viable option. I've got the 360 controller for windows, which i can use via XInput, but these seem to use their own USB, so i assume that there is some in game code to handle routing inputs, on top of or outside the standard wireless controller interface. I I'm looking for perhaps a link to an SDK or really any info anyone has on these.
  13. Water rendering

    I think the same, and actually just followed this thread so i can digest Promit's excellent reply when i have more time
  14. Inversion of control across libraries

    Why can EngineLib not be dependant? Would you ever use engine without graphics and physics? If so, perhaps the stuff that is common to both graphics and physics can be broken out into it's own lib?   I'm not an expert by any means, but i have dealt with an issue similar to what i think you are describing. I bundled up anything math related into it's own library. The graphics library objects includes the headers it needs from this, and the physics library behaves the same way. The engine includes the graphics, physics, and math headers, and the application being worked on includes the engine headers. Since the actual translation units exist only once in their respective libs, I have no issues including each library into the application.   I've even kept the graphics library as agnostic as possible, and created one library that implements a dx9 version(which is what all of my existing code was based on), and another for DX11(which i have slowly been implementing), and yet another for gl4(which i've barely done anything with. The engine only knows about the base graphics library, while the app has the choice of including/linking to the implementation it wants. #include "GraphicsDX9.h" App game(new GraphicsEngineDX9( ... ), new PhysicsEngine(...), new InputEngine(...)); GraphicsEngineBase * renderer = game.GetGraphics(); // or #include "GraphicsGL4.h" App game(new GraphicsEngineGL4( ... ), new PhysicsEngine(...), new InputEngine(...)); GraphicsEngineBase * renderer = game.GetGraphics(); // etc Yes it's a bit of the PITA, but it works well enough for what i need.  
  15. I seem to be doing this often as of late, but i second the recommendation to check out "AI game programming by example" by buckland. In fact, it's probably one of the best "game dev" books i have seen on the subject. Matt actually does a soccer pitch as a multi agent sim. It would definitely give you a good starting point. the key points are that agents use steering behaviors (such as seek, interpose, and wall avoidance) to navigate the pitch.
  • Advertisement