Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 03 Nov 2006
Offline Last Active Today, 04:42 PM

#5211423 What do you use for handling sounds?

Posted by BarrySkellern on 18 February 2015 - 07:25 AM

To some extent though you get what you pay for. FMOD comes with the toolchain to package your sounds, easily manage the loading pipeline, set positional and environmental effects, etc etc, which is more than a mere API and will be worth the money for you if it saves three months of your £50,000 salary that could be better spent making a game rather than reengineering an audio engine from the raw API up.


Not that I'm a huge FMOD advocate, I'm just saying "free" is an illusion if it ends up costing you money ;-)

#5207448 How to pass content through the project's structure efficiently?

Posted by BarrySkellern on 29 January 2015 - 10:05 AM

Oh, and since this is for XNA you might look into using the SpriteFont generator for sprites generally. I don't know what it's like nowadays in XNA but I think the one in the native DirectXTK is basically the same. You can coopt the same functionality to pack any sprites you like into a 'spritefont' file, they don't have to be letters. Then you draw single frames by using the appropriate single-character 'string' for the sprite in question. It's a clunky API for the task because it annoyingly assumes you'll be drawing text, but it'll do the job effectively and saves you having to write your own sprite-sheet packing tools.

#5207383 How to pass content through the project's structure efficiently?

Posted by BarrySkellern on 29 January 2015 - 03:58 AM

I'd also question the wisdom of having so many small textures. Why not combine all frames of animation for one unit into a single texture? Or even all frames for multiple units in one texture? Reducing the number of textures will improve your ability to batch draw calls, with improved performance. In the limit, if every sprite in your game can fit in a single texture then you'll never need to switch textures at all. That's unlikely of course, and deciding what to combine into textures for maximum benefit is very much dependent on your content and how it's used. But you can potentially gain in both performance and simplicity by merging assets.

#5207152 Could you advice me which book or books should I go for?‏‏

Posted by BarrySkellern on 28 January 2015 - 06:40 AM

Physically Based Rendering is an excellent book with a huge amount of detail in it. But, it's not geared towards the real-time end of the scale, being more concerned with high-quality offline rendering methods. You can learn a lot (a LOT) about rendering from it, but whether you can apply it is another matter.


Real Time Rendering doesn't contain the same level of nitty-gritty detail, but as long as you're willing to do some further reading and research yourself then it's a great kickoff point for a wide range of topics that are a lot more applicable to game development.


I'd say experience is more important than reading though, so my main advice would be to spend as much of your time working as you can, rather than studying. They're both good books though, well worth their place on your desk.

#5204153 Ways to do Frame effects and filters algorithms

Posted by BarrySkellern on 14 January 2015 - 01:33 AM

The exact method to implement this stuff depends on what language, API or engine you're using, but in its most basic form you'll be either drawing a full-screen quad and implementing the effect you desire in a pixel shader, or potentially doing the equivalent operation in a compute shader.


Here's a post I wrote a while ago about the post processing I used for retro vector-style line art in my Asteroids clone. http://www.mugsgames.com/post-processing-effects-stroids/ - it doesn't go into technical detail, but it pretty much does the "simulating an old TV" effect you mentioned. Feel free to ask any details about it.


edit: Oh, and regarding links, Google/Wikipedia will give you plenty to go on if you know where to look. Common post effects include Gaussian blur, desaturation (i.e. grayscale), edge detection, bloom, motion blur, tone mapping (for HDR rendering), vignetting (that's the fade at the screen corners), and so on.

#5203633 Unable to toggle fullscreen mode

Posted by BarrySkellern on 12 January 2015 - 03:31 AM

This might actually have nothing to do with your code and everything to do with the NVidia/Intel "Optimus" graphics card management. I have a similar laptop (though mine's an older NVidia GPU) and I've had similar problems. Try going into the NVidia control panel and adding your exe to the list of programs, then selecting the 860M explicitly as the GPU to use for output. The NVidia control panel might know which GPU to select for the DirectX samples, but it won't know for your own application.

#5194759 Searching for a cheap 3D cloud algorithm

Posted by BarrySkellern on 26 November 2014 - 07:13 AM

Do you need to render all the clouds volumetrically in 5ms? I think MS Flight Sim used to render impostors for clouds more than a certain distance away and only update the impostors with low frequency, probably with the frequency depending inversely on the distance. That way they only had to really render a small subset of the clouds at full volumentric detail each frame, and most of the clouds were billboarded sprites on a low duty cycle update schedule. I guess this depends on how fast your lighting changes and how fast you travel through the clouds. For a real-time flight sim, both of these rates are slow.

#5182608 What kind of performance to expect from real-time particle sorting?

Posted by BarrySkellern on 24 September 2014 - 05:10 AM

Further to Hodgman's suggestion of order-independent transparency, this paper might be of interest.



#5180946 Simple 2D lighting effects

Posted by BarrySkellern on 17 September 2014 - 02:06 AM

I've been working on a method for real time lighting on pixel art. I've put some videos up on YouTube. Latest one here




I haven't written up my method yet as I'm still finishing up some details, but you can see the idea. I do it by offline rendering various normal, material and occlusion maps into my sprite sheet alongside the diffuse colour, then doing similar to a 3D deferred renderer but using the 2D sprites to populate the geometry buffer. It supports dynamic point lights and directional lights so far.


It's a bit similar to the Gamasutra article I guess (though that article hadn't come out when I started working on it.)

#5152013 The acceptance of gold loot in RPGs

Posted by BarrySkellern on 07 May 2014 - 05:06 AM

If you're worried about immersion and realism, you should question whether a mighty warrior on an important quest would stop to search the body of a snake at all ;-)

#5151562 Using Directx11 without using a Microsoft math library

Posted by BarrySkellern on 05 May 2014 - 02:16 AM

You can also change the default to row-major storage by specifying the /Zpr flag when compiling your shaders. It's probably a good idea to use the same convention for everything across your project.

#5141390 Does this type of collision phyisics have a name?

Posted by BarrySkellern on 23 March 2014 - 04:05 AM

As for drawbacks, the main problem is that a circle is not necessarily a close enough representation of your object. For a long thin object the bounding sphere will contain a huge amount of empty space. That will lead to a lot of false positives in intersection tests. An axis aligned or oriented box is a tighter fit in many cases.

Whether circles are good enough for your circumstances, well, that of course has more to do with your circumstances than the circles.

#5133306 How did you learn C++?

Posted by BarrySkellern on 21 February 2014 - 11:06 AM

Much like a lot of other answers here, I learned c++ for university projects (statistical physics).

I think it's important to work on projects that interest you, to help you stay motivated, so try to think of a small project that will give you a buzz.

Also, remember that different people will solve a problem in different ways, and c++ is a multi-paradigm language. There's no substitute for doing your own coding, but it can also be an eye-opener to read someone else's code (assuming you trust their abilities of course.)

Most of all, have fun with it, and don't be scared to try and fail. Nobody has to see your early coding horrors! And nobody here will judge you badly for making mistakes. Good luck!

#5125583 Side Scroller level textures

Posted by BarrySkellern on 22 January 2014 - 01:22 AM

You could also consider multitexturing, ie using lower frequency textures to modulate parameters or blending over large regions of similar tiles. The effect can still be quite obvious as it doesn't change the fact that the tiles do repeat, but it can add some an extra layer of variation in addition to the other effects mentioned.

#5125511 Voice recognition and third person open world games

Posted by BarrySkellern on 21 January 2014 - 05:24 PM

I think there's practical reasons why it would put some players off, no matter how cool an effect it is. I have a six month old son asleep upstairs and my wife's trying to do her college assignment on the sofa next to me: the last thing I want to do right now is scream at a hostage! I'd require some alternative input mechanism to carry out equivalent functionality, otherwise I simply wouldn't be able to play your game.