1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. 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.

Before asking a question, have you ...

Discussion in 'Programming' started by [SAS]Solid Snake, Feb 17, 2005.

  1. [SAS]Solid Snake

    [SAS]Solid Snake New Member

    Joined:
    Jun 7, 2002
    Messages:
    2,633
    Likes Received:
    0
    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: Feb 18, 2005
  2. JonAzz

    JonAzz UA Mapper

    Joined:
    Aug 1, 2003
    Messages:
    1,180
    Likes Received:
    0
    Can we get this stickied? please! :D

    :tup::tup::tup:
     
  3. Dark[NSF]

    Dark[NSF] Northwest Secessionalist Forces

    Joined:
    Mar 12, 2003
    Messages:
    632
    Likes Received:
    0
    Agreed, highly useful links for sure.
     
  4. MrBond

    MrBond ZHP Founder

    Joined:
    Sep 23, 2003
    Messages:
    452
    Likes Received:
    0
  5. JonAzz

    JonAzz UA Mapper

    Joined:
    Aug 1, 2003
    Messages:
    1,180
    Likes Received:
    0
    yes but with two stickies about the same thing then people have a better chance of viewing it...

    instead of 1/100000000
    its now 2/100000000

    :p
     
  6. MrBond

    MrBond ZHP Founder

    Joined:
    Sep 23, 2003
    Messages:
    452
    Likes Received:
    0
    So....if we have 100000000 stickies on it, does that mean there's a 100% chance people will read it?
     
  7. [SAS]Solid Snake

    [SAS]Solid Snake New Member

    Joined:
    Jun 7, 2002
    Messages:
    2,633
    Likes Received:
    0
    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...
     
  8. Kantham

    Kantham Fool.

    Joined:
    Sep 17, 2004
    Messages:
    18,034
    Likes Received:
    2
    Nice job SAS.SS , Must be sticky , i totally agree.
     
  9. [SAS]Solid Snake

    [SAS]Solid Snake New Member

    Joined:
    Jun 7, 2002
    Messages:
    2,633
    Likes Received:
    0
    Thanks for fixing my code Mychaeel, only just noticed the problem with it a few minutes after I posted, but I got a little lazy.
     
  10. JonAzz

    JonAzz UA Mapper

    Joined:
    Aug 1, 2003
    Messages:
    1,180
    Likes Received:
    0
    :con: jsut typing in "free 3d meshes" works...


    yay its stickied :) chances to be read +1 now :D
     
  11. [SAS]Solid Snake

    [SAS]Solid Snake New Member

    Joined:
    Jun 7, 2002
    Messages:
    2,633
    Likes Received:
    0
    Yeah I know, but some people aren't very good at searching full stop. It's like how many countless people who don't know who to search for certain files on the net without getting xxx material and so on.
     
  12. [SAS]Solid Snake

    [SAS]Solid Snake New Member

    Joined:
    Jun 7, 2002
    Messages:
    2,633
    Likes Received:
    0
    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.
     

Share This Page