What debugging tools will we have for the Alpha and Beta external test cycles?

To Frogboy:

Hi Brad,

    During the Alpha/Beta external test cycles of GC1 and GC2, we were provided with comprehensive instructions for "bug reporting", spelling errors, etc., including a program that automatically captured debugging information any time a program exception occurred, called "SmartException". I have noticed that SmartException is still available on the StarDock website, but since GC3 is in 64bit addressing mode, some questions occur to me.

1). Is SmartException going to be the tool for trapping program exception data and transmitting same to StarDock? (has it been updated to handle 64bit code?)

2). Will a tool be provided that will allow us to initiate the capture and transmission of debugging data if GC3 gets into an infinite code loop (regardless of whether the loop is real or only an apparent loop)?

3). Some of us might see performance problems due to older hardware tied with using game settings that are too high for our equipment. Will StarDock be recommending tools for monitoring performance that will help us discover such cases for ourselves? One idea here is that the devs may like to collect data from the wider diversity of equipment that will be used during the external tests to provide initial values when a game is started, or perhaps warning a user to not set game settings above a certain level.

 

25,668 views 14 replies
Reply #1 Top

I would not expect to see SE any more. Steamworks provides built-in support for capturing and auto-uploading memory dumps when crashes occur, so we'll probably continue to leverage that.

Reply #2 Top

Hhhhmmm. Is there something I have to do to activate that? I have had a number of times recently where GC2 has simply vanished without any explanation of what happened, nor any indication that any diagnostic material had been transmitted anywhere. How does one know anything was captured and transmitted?

Reply #3 Top

GC2 doesn't use Steamworks (LH and Rebellion do).

Reply #4 Top

Quoting kryo, reply 3

GC2 doesn't use Steamworks (LH and Rebellion do).
End of kryo's quote

Of course. Something I should have realized. Thanks for straightening me out.

Reply #5 Top

Whatever Gc3 is going to use I want to know, and how are we going to accomplish that. If you are going to make this easy. Please do anounce when this comes out.

Reply #6 Top

Quoting admiralWillyWilber, reply 5

Whatever Gc3 is going to use I want to know, and how are we going to accomplish that. If you are going to make this easy. Please do anounce when this comes out.
End of admiralWillyWilber's quote

Already answered above. They'll use Steamworks for it.

Reply #7 Top

Actually,

Quoting satoru1, reply 6
They'll use Steamworks for it.
End of satoru1's quote

is too simplistic an answer, although it is probably all the answer we will get for the time being. Unanswered are any steps we will have to take to enable this (if any), and what we will see when exception data is captured and transmitted, if anything (Note: I insist on being notified of any such events).

Also missing is how to initiate gathering and transmitting diagnostic data for "loops" or "hangs" (which will definitely require user intervention).

I expect StarDock to include this information with the announcement of the availability of the Alpha code (or sooner).

Reply #8 Top

Quoting Lucky, reply 7

Actually,


Quoting satoru1, reply 6They'll use Steamworks for it.

is too simplistic an answer, although it is probably all the answer we will get for the time being. Unanswered are any steps we will have to take to enable this (if any), and what we will see when exception data is captured and transmitted, if anything (Note: I insist on being notified of any such events).

Also missing is how to initiate gathering and transmitting diagnostic data for "loops" or "hangs" (which will definitely require user intervention).

I expect StarDock to include this information with the announcement of the availability of the Alpha code (or sooner).
End of Lucky's quote

Yes dido. If Steamworks is an answer does that mean I'm going to have to buy steamworks, or does it come with steam, and how do I install it. What do I need to know to run it. Will it come with the Alpha install, or will I have to buy it. Where will the Alpha be for me to look for it. If it comes with steam how do I find it on steam.

Reply #9 Top

Quoting admiralWillyWilber, reply 8

Yes dido. If Steamworks is an answer does that mean I'm going to have to buy steamworks, or does it come with steam, and how do I install it. What do I need to know to run it. Will it come with the Alpha install, or will I have to buy it. Where will the Alpha be for me to look for it. If it comes with steam how do I find it on steam.
End of admiralWillyWilber's quote

Steamworks is a free API given to developers who want to publish games on Steam. It basically gives devs the infrastructure that Steam allows like achievments, matchmaking, VAC, etc.

As stated before GalCiv3 is s Steam game so you'll need Steam to play it. Likely the way it will work is that when the alpha is ready, your Stardock profile will give you a cd-key you can register on Steam. This will then give you access to the beta. For example, Klei's new game Invisible Inc. is working the same way. You buy their game on their store, and you get a c-dkey for the current alpha/beta access, which you register on Steam to add to your library to play.

Reply #10 Top

Quoting satoru1, reply 9


Quoting admiralWillyWilber, reply 8
Yes dido. If Steamworks is an answer does that mean I'm going to have to buy steamworks, or does it come with steam, and how do I install it. What do I need to know to run it. Will it come with the Alpha install, or will I have to buy it. Where will the Alpha be for me to look for it. If it comes with steam how do I find it on steam.

Steamworks is a free API given to developers who want to publish games on Steam. It basically gives devs the infrastructure that Steam allows like achievments, matchmaking, VAC, etc.

As stated before GalCiv3 is s Steam game so you'll need Steam to play it. Likely the way it will work is that when the alpha is ready, your Stardock profile will give you a cd-key you can register on Steam. This will then give you access to the beta. For example, Klei's new game Invisible Inc. is working the same way. You buy their game on their store, and you get a c-dkey for the current alpha/beta access, which you register on Steam to add to your library to play.
End of satoru1's quote

In addition, Valve distributes the Steam client code without charge.

Reply #11 Top

Here's a tidbit from the Steamworks page.

http://www.steampowered.com/steamworks/developmenttools.php

Bug reporting

Track most frequent crashes in real time and then triage based on number of unique users. Auto–collection of minidumps and minidump parsing tools to make your job easier. Find and address bugs even before customers contact support.

End of quote

This is likely what they're talking about. Basically Steam does certain things for you to a degree. This doesn't catch everything of course or every situation imaginable. But it's easier than making users upload dumps to a dropbox location for at least certain kinds of game crashes.

As I've said before, Steam is popular because of Steamworks. It's a free middleware product that does a ton of stuff for devs so they don't have to bother to make certain things. The trojan horse into Steam is Steamworks, which solves the 'content' problem most other stores  have.

Reply #12 Top

Quoting satoru1, reply 11

Here's a tidbit from the Steamworks page.

http://www.steampowered.com/steamworks/developmenttools.php


Bug reporting

Track most frequent crashes in real time and then triage based on number of unique users. Auto–collection of minidumps and minidump parsing tools to make your job easier. Find and address bugs even before customers contact support.


This is likely what they're talking about. Basically Steam does certain things for you to a degree. This doesn't catch everything of course or every situation imaginable. But it's easier than making users upload dumps to a dropbox location for at least certain kinds of game crashes.

As I've said before, Steam is popular because of Steamworks. It's a free middleware product that does a ton of stuff for devs so they don't have to bother to make certain things. The trojan horse into Steam is Steamworks, which solves the 'content' problem most other stores  have.
End of satoru1's quote

Does steamworks include loops and hangs in their definition of crashes? Does steamworks provide a hot key for forcing termination of a game? Does steamworks detect the use of the Task Manager to force the termination of a game?

Reply #13 Top

Quoting Lucky, reply 12

Does steamworks include loops and hangs in their definition of crashes? Does steamworks provide a hot key for forcing termination of a game? Does steamworks detect the use of the Task Manager to force the termination of a game?
End of Lucky's quote

No idea! :(

I assume that unless the game makes a dump somehow it's not going to send data. So a task manager kill, which generaly just obliterates the PID, isn't likely to do much? Take the steamworks page for waht its worth. There's it may do more or less than indicated. Only a dev would really know what kinds of things it's capable of. But it does.... 'something'

Reply #14 Top

Quoting satoru1, reply 13


Quoting Lucky Jack, reply 12
Does steamworks include loops and hangs in their definition of crashes? Does steamworks provide a hot key for forcing termination of a game? Does steamworks detect the use of the Task Manager to force the termination of a game?

No idea!

I assume that unless the game makes a dump somehow it's not going to send data. So a task manager kill, which generaly just obliterates the PID, isn't likely to do much? Take the steamworks page for waht its worth. There's it may do more or less than indicated. Only a dev would really know what kinds of things it's capable of. But it does.... 'something'
End of satoru1's quote

Actually, now that I think about it, the OS services provide the ability to register exits for the abnormal conditions a program wishes to handle. If steamworks is smart enough it will register with the OS that it wants notification when the game is terminated. And the more I think about it, the more I suspect that game producers have made sure that steamworks provides the capability to handle a game's termination.

OK. I have no more questions on this subject.