Jump to content
  • Advertisement
Sign in to follow this  
kiss_lawrence

How to debug a game more efficiently?

This topic is 2005 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi everyone,

 

Currently I'm developing a game with many stages, and I found it's very inconvenient to debug. For example, if I find a bug in the middle stage of the game, then I have to exit game and change codes, and run the game until it's in the right stage. And if that change doesn't work, I have to do that again, which really consumes a lot of time. (I can change to code so that the game can jump into the right stage as soon as the game starts, yet still it costs much work)

 

So I'm wondering if there's a way to speed up this procedure? Recently, I've heard about scripting languages, and it is said it's possible to change scripts at runtime?? If so, that would save a lot of time. But I'm not sure if my understanding on that is correct, so please offer some introductions(or examples) on that if possible.

 

More basically, my question is:

Is it possible to use script languages to debug a game more efficiently? If possible, how? If not, are there any other ways?

 

I would be very grateful if you can offer your ideas and thoughts.

 

PS:I hope my English is not confusing...since I'm still an English learner.

 

Share this post


Link to post
Share on other sites
Advertisement

The option of save/load looks like the fastest way to test it, but it depends on what you're trying to fix.

 

In the company I was working they had a cheat menu that was left out of the build in the final release. You can add cheats for everything you want like skip a level, earn more coins, create some unit, etc.

 

Anyway, with these methods you have to make sure that the save feature has no issues (it may be complex depending on your game) and that the cheats make valid changes (i.e. if you skip a level where a certain building should be placed, you should place the building while triggering the cheat).

Share this post


Link to post
Share on other sites

What language and environment are you using?

 

Debuggers generally let you change variables that allow for primitive test cases. Writing a debug interface that gives you full control in a swifter way is probably helpful.

 

It helps to have lots and lots of debug output that is conditionally compiled in, showing you paths through execution, state machine information etc and so on, with freezeframes of important variables, then you can compare these to get insight into the problem. Lots and lots of error and boundary checking in your code generally reduces dev time too. So does good practice coding technique, make your language's inbuilt tools work for you rather than work around them.

Share this post


Link to post
Share on other sites

Some tools allow you to edit the code while it is running.

 

Visual Studio supports "Edit and Continue", potentially allowing you to modify your code where it is recompiled, patched, and continues running without interference. 

 

Some tools support similar "hot-patch" or "hot swap" debugging. Eclipse supports it for some languages, Emacs supports it for some languages. JavaScript allows live changes in some browsers. When it is supported, it is just a matter of getting the configurations correct. Some tools and languages will replace a function entirely and make you start it over, others will apply changes mid-function. The details are up to the tools.

 

 

It is worth investing the time to get it working if your environment supports it. For a long project it can save thousands of hours of time spent debugging.

Share this post


Link to post
Share on other sites

More modular coding generally makes debugging easier and quicker. "Modules" of code may be permanently or temporarily (for the purpose of development) tied to interfaces which are specifically designed to aid the debugging tool (or tools) by turning sections of coding ON or OFF or SWAP the suspected buggy coding with your revision attempt. While we are on the issue of preventative structure to aid debugging, class files ( or jar ), dlls, a organized bin folder, and other modular forms of coding have some advantages in the debugging.  You should be able to better isolate where the bug might be if your modules of coding are well labeled.  For example, you would expect that a bug in the implementation of a particular entity would not be in seemingly unrelated class files nearby.

 

There are a few applications available (actually integrated into the source code) which track suspected bugs, but I have never used them. A C# programmer friend of mine loves them. 

 

Probably you just need to look for a better debugger for the time being.

Edited by 3Ddreamer

Share this post


Link to post
Share on other sites
Sign in to follow this  

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