Before asking a question, have you ...

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

[SAS]Solid Snake

New Member
Jun 7, 2002
2,633
0
0
40
New Zealand
www.digitalconfectioners.com
Have you,

- searched the forums for an equivalent problem
- searched http://wiki.beyondunreal.com
- searched http://udn.epicgames.com
- searched using http://www.google.com

All of the search engines do require good searching abilities. So start off with the first entry say replication and then be a bit more specific by adding other terms. There are usually two terms sensitivity and specificity.

Sensitivity
This is where you need to senstize the search your making to narrow down the many into collective groups. Say you want to find an answer involving karma and replication. The obvious ones to use for sensitive searchs are 'karma' and 'replication' ... but try not to use them both, as the 'karma' group may include a possible answer but the term 'replication' wasn't used, but say 'networking' was used instead.

Specificity
This is where you start picking out individuals from the group search. More exact terms used can weed out the ones that are no longer needed, or are not relevant in any way.

Secondly, analyze exactly what you have done and try to find an example in any way similar to what your trying to do, be it from an Epic game or an existing mod. Such an example is say where you wish to make a interfaceable GUI via different means than what is original provided. Some possible sources to research into is preexisting mods (USkaarj, UA). While it isn't possible to do this all the time, research in most directions will tend to make you more knowledgable about UScript in general and Unreal's class tree.

Lastly, have you spent a good amount of time to log it properly? A lot of replication issues can be solved by doing good logging such as using:
Code:
if(Role == Role_Authority)
  log("Server:: functionname("$syntax1$","@syntax2$")::"@Level.TimeSeconds$"::"@ErrorValue);
else if(Role < Role_Authority)
  log("Client:: functionname("$syntax1$","@syntax2$")::"@Level.TimeSeconds$"::"@ErrorValue);

Sure these types of logging is more extensive and more time consuming to write, but they do show a lot more of what is happening in the function, and may lead to answer. In the above example, the problem may have been that the function wasn't been replicated at all, say the client wasn't receiving the function but rather the server was.

While these forums are about asking questions and learning, the main focus is to ask questions in a manner which is deemed 'correct'. Remember that while you may/may not be a programmer, the fact that you may have done the above may help us to answer you. Or at least make us more willing to help.

I know some people feel that their time is better off making things that work, but remember that just because you want it to work, doesn't mean you can expect answers in cut-copy code format all the time...
 
Last edited by a moderator:

[SAS]Solid Snake

New Member
Jun 7, 2002
2,633
0
0
40
New Zealand
www.digitalconfectioners.com
Possibly, but this is a little more specific this time around. Especially in specifying links and how to use them (A lot of people don't seem to be able to use search engines, i.e when looking for free 3D meshes, they type in 'models' only and are surprised when they are whole tonne of crap). Also it's a bit more related to Unreal rather than just generic programming 'How to ask questions...' ... I may put some more logging techniques that I employ that I think are invaluable...
 

JonAzz

UA Mapper
Aug 1, 2003
1,180
0
0
35
North of Philadelphia
[SAS]Solid Snake said:
Possibly, but this is a little more specific this time around. Especially in specifying links and how to use them (A lot of people don't seem to be able to use search engines, i.e when looking for free 3D meshes, they type in 'models' only and are surprised when they are whole tonne of crap). Also it's a bit more related to Unreal rather than just generic programming 'How to ask questions...' ... I may put some more logging techniques that I employ that I think are invaluable...
:con: jsut typing in "free 3d meshes" works...


yay its stickied :) chances to be read +1 now :D
 

[SAS]Solid Snake

New Member
Jun 7, 2002
2,633
0
0
40
New Zealand
www.digitalconfectioners.com
Another debugging method
Sometimes using logs isn't the ideal way to see eventual changes unless your prepared to sift through time stamped log information with roughly ~95% of it being useless. Such examples are the testing of vehicle acceleration models with gear switching (dynamic changes to revs, accelerations and velocity which are dependent on the gear and power of the engine). Logging through to check if your model is correct by doing logs produces a lot of unneccessary data as well as wasting time and effort by actually having to go through this data.

For dynamic logging, a possible method may be to use the HUD to monitor these changes in variables and to test what exactly is going on. While this is a little more extensive to write and certainly isn't a novel idea (Epic have used it everywhere) it provides you with dynamic changes that you can visualize depending on your graphical model (By drawing a graph, text or other types of visual information).

There are various hooks that one could use such as the DisplayDebug function which is in some classes. Obviously from there, you will need to write more extraneous code to look at the data.

For example, vectors are usually somewhat foreign to people (especially those who have never or worked very little with 3D vectorial mathematics) as well as the extraneous functions such as Normal/Cross/Dot and '<<'. Otherwise sometimes people do not think abstractly enough to be able to visualize the answer in their head.

Remember that the Canvas has the WorldToScreen function which will allow you to plot vectors onto the HUD, and from there you can see the effects of your vector operations and using the Draw2DLine (I forgot the actual function name, but its a static native function that was used in the Onslaught HUD minimap) can also draw the resultant vector operations as well.

I have used the above often in my debug builds (which are later cleaned up) to help me debug and solve a lot of my vectorial problems.