Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

909 Good

About j_uk_dev

  • Rank

Personal Information

  • Role
  • Interests
  1. j_uk_dev

    Visual Tools For Debugging Games

    Interesting article. Here's my 5 cents.   The debugging facilities are very often skipped and simply ignored by the programmers. It's seen as a waste of time when the product has to be deliver. It's a result of thinking "come on, what can possibly go wrong?". ALWAYS things go wrong It's just a law of entropy   I find several areas that should be carefully wrapped into the debugging shell:   - memory management - resource management - visuals ( usually known as "debug draw" ) - performance - objects interactions ( messaging/events )   Of course one may think we've got plenty of tools like memory and performance profilers and so on. But one my not know that very often we're going to find out that they simply do not work under current conditions! Did you try to use Valgrind on Android when the full app name exceeds 32 characters? Good luck to run the wrapper then without massive refactoring of your code just to change name of the package.   Currently I work on the project (I have joined the team when the project was already very advanced ) for which the developers totally ignored any sort of in-app debugging features. Even running it under the debugger got broken, so to debug the whole thing only very 'caveman-like' ways work ( I'm not against using terminal gdb, but come on, we have year 2015! ). It brought us to the point where we work long days and weekends because of memory leaks, performance issues and many unexpected behaviours. Well, it would be probably easy to track down certain things if only:   - we implemented own memory management that wraps up all allocations and allows us to control them, dump them, detects leaks quick and painless - if we added in-app profiling ( at least through profiling functions to be injected with gcc ) to identify bottlenecks. In here it's especially complicated as we are dealing with multithreaded renderer with pretty much stateless behaviour ( rendering triggers ALWAYS with vsync, regardless on where the update currently is, it may sound silly, but I must add, it's not for a game ). - If we wrapped messages sent between threads with little bit of debug information like who is a sender of the message. - If we had any resource tracking system ( we don't really know what is loaded, what has been unloaded etc. ) - And finally, if we implemented any debug draw features to find out why we got visual glitches.   I find writing tools, debug features and extensive logging systems essential in early stage of the development because it pays off later. For instance, I have spent last days writing a built-in memory profiler to intercept all allocations and deallocations. It's necessary to see the sapshots of how much memory we use, how we use it and what leaks as we see severe memory leaks and nobody really knows why, where etc. It's totally out of our control. This kind of facility should be there long time ago. Ignoring it to save some time became sort of problems now. It's a big issue on the management side for many projects ( not games only ). Those features are seen as not needed and not necessary. Pure waste of time. Because, as I said - what can possibly go wrong, right ;)?   Do not ignore adding debug features to your apps/games. Of course you will spend some time writing them but they will be life savers later! Things always go wrong, the only matter here is how much wrong they go. It's good to have your code ready for worst.
  2. It applies to any other tech industry. I think you have just found grown up life with responsibilities on the personal and working fields.   I have left the industry after 15 years. I grew tired of it, mostly because of being underpaid and because of a crunch which was happening more than just few times a year. Hell, sometimes it felt as if it was part of my contract to stay long overtime. I still work on games but only in my own time. My daily job is more a hardware related rather than software. Also pays lot better and maintains better life/work balance. It took me 15 years to realize how broken the industry is.   From what you wrote, I think teamwork and proper management ( also self-management ) are keys to success. The company is a huge machine with many gears. To keep it running it's necessary to make sure all gears work fine. Not all gears are equal though. Finding yourself inside of that machine is essential if you want to be able to do your job. This is another thing. You have to do your job, not do what you want. The lower position, the less you have to say and the final call will always come from leaders of team or department. I've seen people leaving the companies because of this lack of freedom. Obviously sometimes you clearly see, the decisions are being made wrong but since you're powerless to change things - you grow frustrated ;) I could tell lot about frustration in the game industry   As for beginners I would give one advice - know your value. I think this is one of the reasons why the industry is so broken, why crunch is known as something normal ( and believe me - it isn't! ), developers don't even ask about paid overtime ( good if they get days in lieu ), and they do more than expected without any reward, especially financial. Before you have any responsibilities other than just yourself it may be tempting to agree to anything. Just for a sake of working on the big titles you're gonna agree to really bad conditions of your contract, because simply it's cool to have own name in the ending credits In the long run though, the name in the final credits will not pay your bills, will not give you more time to spend with your family etc. Employers see this situation as something normal ( and again - it is not! ). I'm not saying all companies are like that, but majority of I worked for didn't leave good impression. Don't get me wrong, I'm not blaming anybody, but it's good if even beginner could see himself/herself in 5-10 years from now and make expectations that would not leave industry broken. From the point of view of the engine programmer the games industry is the lowest paid I've ever experienced.   So make dreams come true, but for the right pay ;)
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!