Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Free Live Online Training from Unity Technologies

Discussion in 'Community Learning & Teaching' started by Adam-Buckner, Oct 11, 2013.

Thread Status:
Not open for further replies.
  1. Swiac

    Swiac

    Joined:
    Mar 6, 2016
    Posts:
    1
    Hi Adam!

    I do have some problems with your Live Training "Angry Birds".

    When I enable the 2d box collider on my Plank I lose the mouse input events on my asteroid. Works fine the minute I disable the 2d box collider on my Plank. Do you have any idea how can I fix it?

    The second thing is that particticle system dosent work as it should be...

    I did everything the same like you but there are these two probles that i can not fix. I do not know if I did a mistake or the problems is a new version of unity...

    Regards
     
    Last edited: Mar 6, 2016
  2. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Can you please post the details of your problem?

    We need enough information to be able to know what your issue is, exactly, to be able to solve it.

    Please write a complete and accurate description of your problem and include any relevant supporting material, such as screen captures and code snippets.

    Please display any images in-line so we can see them easily and post any code snippets using code tags. (How to use code tags: http://forum.unity3d.com/threads/using-code-tags-properly.143875/)

    Specifically:
    What's not working about it? How should they work and what's different?

    When it comes to the box collider and the plank... can you tell us anything more? At this point it seems very mysterious. The project should work as shown in the lesson... so I'm very unclear what's going wrong...

    First I'd suggest re-watching the video and checking all of your steps, and then I'd suggest trying to show us something of how you've done your setup, as I have no clue what you've done.
     
  3. TinmanTheLandofoz

    TinmanTheLandofoz

    Joined:
    Jun 16, 2014
    Posts:
    4
    I remember in some live training sessions they have said "go here to suggest live training topics" I just don't remember where "here" was and couldn't find it reference any where.

    I really want to see what the animation api is like. I want to be able to wire animations up to user created models or new models downloaded from the web as long as they are in an accepted format. I have the code to convert various model formats and just need to lay the skin over the animations.
     
  4. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    There are two live sessions - Animate Anything with Mecanim and Creating a Humanoid Avatar. Would these be what you are looking for?
     
  5. TinmanTheLandofoz

    TinmanTheLandofoz

    Joined:
    Jun 16, 2014
    Posts:
    4
    Adam, those were both great videos and I did learn a good deal from them. But they do not handle mapping the animations on to a new model through code. I was hoping for seeing the scripting side of the animation api that was release with 5.3
     
  6. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Ah well. Yes. It's something we could do, but it's not at the top of the list.
     
  7. Justice0Juic3

    Justice0Juic3

    Joined:
    Apr 29, 2013
    Posts:
    188
    Is anybody interested on a extension of the TANKS! Networking Demo?:oops:

    I'm in - interested on how to implement a team kind of system. The rest of the game core stays the same -> last living team (player) wins the match.
     
  8. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Hi,

    Any chance of a video tutorial about Goal-Oriented Action Planning AI?
     
  9. spromise2007

    spromise2007

    Joined:
    Dec 6, 2015
    Posts:
    21
    Hello Adam,

    I haven't been on for a while. I realize that this is probably the wrong thread, but i'm having a problem with one of the tutorials that you recommended, actually it's a "Live Lesson". ij couldn't find a forum thread for this tutorial or i would've posted this message there. There wasn't any FAQ file either. The asset link is totally different from the asset used in the video and i start off totally lost. i imported the one from the link, as the one in the video doesn't seem to exist any more. However, there is no convenient preexisting HUD or anything under the Main Camera scene and i don't see any other scenes. I'm running version 5.2.3f1 Personal Edition of the Editor.

    Thank you,
    Seanv
     
  10. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Did you follow these links?
    They are just below the video:
    Download the Unity version 5x base project HERE.
    Download the project images (including Character Icons and Demo UI Images) HERE.
     
  11. spromise2007

    spromise2007

    Joined:
    Dec 6, 2015
    Posts:
    21
    Yes. I also downloaded the newest version of Unity. After i loaded it, i found it in the assets/completed/scenes part of the project.

    Thank you,
    Sean
     
  12. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Yay!
     
  13. TinmanTheLandofoz

    TinmanTheLandofoz

    Joined:
    Jun 16, 2014
    Posts:
    4
    Any chance of the live training starting back up? It has been a couple of months since the last session.
    I mean if it is a matter of content you could start going through the two year old sessions and re-doing those until new content is ready. I am sure there are plenty of new to unity people that would love an updated version of even the editor basics done back in 2013.
     
  14. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    That's actually not a bad suggestion. We are all tied up doing some other training material. I *do* want to do more live training sessions. We are currently juggling lots of demands and desires with training - including more advanced material. Your suggestion, however is a good one. I'll float it with the team and see how it fares.
     
    MHUnity likes this.
  15. konstantin_lozev

    konstantin_lozev

    Joined:
    May 8, 2015
    Posts:
    99
    Hi, first wanted to say again what nice live training and other tutorials Unity has! I am experimenting with animated characters and ragdolls. I took the Unity Robot model from the Mechanim tutorial, which is the same as the robotguard from the Stealth Tutorial Project. I got my animations on those working quite well, but I am facing a brick wall on applying a ragdoll on it (of course, I switch off the Animator component). So, the assignment of ragdoll bones/joints is a fairly straightforward process, but relies on pre-defined transforms in the model. The Unity Robot model has, I think, a glitch in the transform of the left forearm so that the transform is not pointing correctly: https://imgur.com/a/aGvcm . When I assign the bones/joints, the resulting ragdoll looks like this https://i.imgur.com/gMH54or.jpg . I have no way to rotate that capsule collider on the left forearm to align it with the model's forearm and, of course, if I rotate the transform itself, the model's arm rotates unnaturally. Is there a way to fix that? Thanks in advance!
     
  16. Coach_Robi

    Coach_Robi

    Joined:
    May 4, 2015
    Posts:
    3

    Absolutely awesome idea!
     
    MHUnity likes this.
  17. Ham08

    Ham08

    Joined:
    Dec 28, 2013
    Posts:
    15
    Unity is awesome. You guys are awesome. Unity really has made a colossal difference in the industry and the entire world of game development. I have learned a lot over the years with all of your live training tutorial sessions. Thank you all from the bottom of my heart for your generosity in sharing your great knowledge and experience in programming and game development!

    If I may toss my vote in, I would like to see tutorials/training on more advanced game types. There are a great number of tutorials on shooters, platformers, match-three, etc. type games all over the internet, but there are no good, modern, complete, RPG tutorials from start to finish. I understand that the reason there are none is because this particular genre takes a great deal more time to develop and therefore a great deal more time to code and create training sessions for, so maybe there needs to be a brainstorming session on ways that can make this happen Possibly a kickstarter, patreon, or similar method could be used to raise awareness and provide funding to make this monumental project a reality. It would also take a webmaster who understands how to massage the google database to obtain high rankings in searches and is absolutely necessary to reach full potential of success.

    Personally, I would be happy with a full blown RPG with ascii art (or other very basic or free art) that would teach all the mechanics programming and development for a typical RPG. This way creating the great number of art assets for the series of sessions would not be necessary. Specifically, I would like to see training for an old-school, first-person, step-based, turn-based, dungeon crawler with all the basic functionality such as, turn-based movement, turn-based combat, spawning enemies, leveling-up and skill trees, stats, attributes, buffs, melee and magic combat, over head map, inventory, story and dialogue, player and party member portraits, shops, crafting, etc. (2D art for player and enemies, in first-person 3D space dungeon and world)

    I strongly feel that this is the very least anyone should learn and understand, the starting point if you get my meaning, before moving on to more advanced RPG development. I feel like the genre has gotten a bit stale with the same game-play in every big name release, but If more people could learn the skills necessary to even attempt a game of this genre, I believe there would be much more creativity and that would breathe new life and excitement, washing away the old which has become stagnant. (we all know big companies will never take any sort of risk by changing the formula but the indie scene can shine all their bright ideas if enough people only knew where to begin.)

    Well. that's my vote. Thank you for taking the time to read and consider.
     
    Last edited: May 31, 2016
  18. gram27

    gram27

    Joined:
    May 31, 2016
    Posts:
    1
    Hey! I'm hoping you will make a video / live training on how to develop VR games for the HTC Vive. Things like; UI, User interaction with objects, Scale and Ingame feedback, are things I'd like to see examples of in a video lesson or five. Especially the use of haptics on the controllers are on my top list of things to see good examples of. I'm gonna make a VR game with Unity for HTC Vive as my final bachelor project, as the university I'm attending to just received 2 HTC Vive sets.

    Love your vids, Adam, keep it up please!

    Kenneth.
     
  19. jeupedagoligne

    jeupedagoligne

    Joined:
    Jun 7, 2016
    Posts:
    1
    Hi, I'm a beginner and I love your tutorials, I've learn a lot with the space shooter, roll a ball, survivor shooter!
    Now I'm trying to make something like roll a ball with question poping when on trigger enter colider is hit. I'm not shure yet how to make the questions pops but I figure that something like the live session on UI Making a generic modal window part1 would be great!. But I encounter 2 main problems so far. I'm getting an error CS0176 that the member Display Manager.Instance cannot be accessed by an instance reference, qualify it by a type name instead. I don't know what that means. Here my code for the Test Model Panel c# script :

    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.UI;
    3. using UnityEngine.Events;
    4. using System.Collections;
    5.  
    6. public class TestModelWindow : MonoBehaviour {
    7.     private ModelPanel modelPanel;
    8.     private DisplayManager displayManager;
    9.  
    10.     private UnityAction myYesAction;
    11.     private UnityAction myNoAction;
    12.     private UnityAction myCancelAction;
    13.  
    14.     void Awake ()
    15.     {
    16.         modelPanel = ModelPanel.Instance();
    17.         displayManager = DisplayManager.Instance();
    18.  
    19.         myYesAction = new UnityAction(TestYesFunction);
    20.         myNoAction = new UnityAction(TestNoFunction);
    21.         myCancelAction = new UnityAction(TestCancelFunction);
    22.     }
    23.  
    24.     //send to the modal panel to set up the buttons and functions to call
    25.     public void TestYNC()
    26.     {
    27.         modelPanel.Choice("Le Nouvel An se célèbre partout sur la planète?\nVraiment?", myYesAction, myNoAction, myCancelAction);
    28.     }
    29.     //these ar wrapped into UnityActions
    30.     void TestYesFunction()
    31.     {
    32.         displayManager.DisplayMessage("Super, tu as bien répondu!");
    33.     }
    34.     void TestNoFunction()
    35.     {
    36.         displayManager.DisplayMessage("Faux, tu n'as pas raison!");
    37.     }
    38.     void TestCancelFunction()
    39.     {
    40.         displayManager.DisplayMessage("Tu ne sais pas trop... Allons revoir quelques notions!");
    41.     }
    42. }

    Also at 48 minutes or so, as in the live session I dropped the Modal Panel c# script on the Managers folder in the hierarchy and the script appears in the inspector but there's no place to put the ''Question, Icon Image, Yes Button, No button, Cancel Button and Modal Panel Object''. I've checked many times but cannot find what I did wrong... Or maybe something is changed since I'm working on the 5.3.2f1 personnal edition? Here is my code on the model panel c# script, hoping for some help! :

    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.UI;
    3. using UnityEngine.Events;
    4. using System.Collections;
    5.  
    6. public class ModelPanel : MonoBehaviour {
    7.  
    8.     public Text question;
    9.     public Image iconImage;
    10.     public Button yesButton;
    11.     public Button noButton;
    12.     public Button cancelButton;
    13.     public GameObject modelPanelObject;
    14.  
    15.     private static ModelPanel modelPanel;
    16.  
    17.     public static ModelPanel Instance ()
    18.     {
    19.         if (!modelPanel)
    20.         {
    21.             modelPanel = FindObjectOfType(typeof(ModelPanel)) as ModelPanel;
    22.             if (!modelPanel)
    23.                 Debug.LogError("There needs to be one active ModelPanel script on a GameObject in your scene.");
    24.         }
    25.  
    26.         return modelPanel;
    27.     }
    28.  
    29.     //yes/no/cancel: A string, a yes event, a no event and Cancel event
    30.     public void Choice (string question, UnityAction yesEvent, UnityAction noEvent, UnityAction cancelEvent)
    31.     {
    32.         modelPanelObject.SetActive(true);
    33.  
    34.         yesButton.onClick.RemoveAllListeners();
    35.         yesButton.onClick.AddListener(yesEvent);
    36.         yesButton.onClick.AddListener(ClosePanel);
    37.  
    38.         noButton.onClick.RemoveAllListeners();
    39.         noButton.onClick.AddListener(noEvent);
    40.         noButton.onClick.AddListener(ClosePanel);
    41.  
    42.         cancelButton.onClick.RemoveAllListeners();
    43.         cancelButton.onClick.AddListener(cancelEvent);
    44.         cancelButton.onClick.AddListener(ClosePanel);
    45.  
    46.         this.question.text = question;
    47.  
    48.         this.iconImage.gameObject.SetActive(false);
    49.         yesButton.gameObject.SetActive(true);
    50.         noButton.gameObject.SetActive(true);
    51.         cancelButton.gameObject.SetActive(true);
    52.  
    53.     }
    54.  
    55.     void ClosePanel()
    56.     {
    57.         modelPanelObject.SetActive(false);
    58.     }
    59. }
    Thanks a lot in advance for any hint!
    and sorry for my english, it's my second language!
    Martin

    ***************
    Edit
    I re-did the tutorial, exactly the same code but it works now...!
     
    Last edited: Jun 28, 2016
  20. stefan-velnita

    stefan-velnita

    Joined:
    Oct 28, 2015
    Posts:
    2
  21. kerg

    kerg

    Joined:
    Feb 20, 2013
    Posts:
    25
    Hi!
    First, thanks for your tutorials, great learning source, really!

    I am watching this video: Live Training 16th February 2016 - Introduction to Scriptable Objects
    and facing a problem right from the start...

    I have created a script with this basic code based on yours:
    using UnityEngine;
    using System.Collections;
    [CreateAssetMenu(fileName = "LevelsList", menuName = "Levels/List", order = 1)]
    public class MyScriptableLevelsList : ScriptableObject
    {
    public string[] levelsList;
    }

    which indeed create a menu in the asset menu, and indeed create a scriptable object in my project folder.
    But when i write this line in an other script:

    using UnityEngine;
    public class MenuManager : MonoBehaviour
    {
    public MyScriptableLevelsList levelsList;
    [...]
    }

    It tells me that the name or namespace "MyScriptableLevelsList" could not be found etc.
    What i don't understand also is that if i copy your script it works fine...

    These are the first few steps you seems to be following, and i'm already stuck ahah!
    Can you or someone else help here?
    Thanks a lot in advance!

     
  22. Vandarthul

    Vandarthul

    Joined:
    Dec 23, 2012
    Posts:
    20
    Hey there Adam and all Unity family,

    I was wondering if there is any plan on the roadmap of Live Training Sessions about explaining the details of Component Based scripting, best practices etc. By default Unity is component based and I know a lot of people tend to create setups that are Inheritance Based and at some point this setups would make coding a bit harder or complexer than a component based system. I wonder if there can be a basic tutorial about how to atleast make a proper component based setup for simple systems, like Health-Death system. Because I know that component based approach requires every component is unique and independent of eachothers (for instance a health script should not know that there is a death script but somehow they need to communicate). I was having problem to find out a way to make these components communicate eachothers without knowing that they exist and of course in an optimised way(perhaps to create an event system or something like that?).

    Thank you very much and keep up the great tutorials!
     
  23. LAWLESX

    LAWLESX

    Joined:
    Aug 11, 2016
    Posts:
    1
    Classes was a very tricky
     
  24. AnneAtLukkien

    AnneAtLukkien

    Joined:
    Aug 30, 2016
    Posts:
    2
  25. AnneAtLukkien

    AnneAtLukkien

    Joined:
    Aug 30, 2016
    Posts:
    2
    I was watching https://unity3d.com/learn/tutorials/topics/tips/unity-tips-tricks-2 and https://unity3d.com/learn/tutorials/topics/tips/unity-tips-tricks-3 today and I tried to combine the Inspector Properties List trick and the Inspector Properties Reset trick and created the following code:

    Code (csharp):
    1.  
    2. #regionReferenced Namespaces
    3.  
    4. using System;
    5. using UnityEngine;
    6.  
    7. #endregion
    8.  
    9. [Serializable]
    10. public class ExampleProperties
    11. {
    12.  public int myInteger = 1;
    13.  public float myFloat = 3.14f;
    14. }
    15.  
    16. public class ResetInspectorComponentValues : MonoBehaviour
    17. {
    18.  #regionPublicProperties(inInspector)
    19.  
    20.  public ExampleProperties _Properties;
    21.  
    22.  #endregion
    23.  
    24.  #regionUnity Methods
    25.  
    26.  ///<summary>
    27.  /// Component reset functionality
    28.  ///</summary>
    29.  void Reset ()
    30.  {
    31.  var defaultProperties = new ExampleProperties ();
    32.  
    33.  _Properties.myInteger = defaultProperties.myInteger;
    34.  _Properties.myFloat = defaultProperties.myFloat;
    35.  }
    36.  
    37.  #endregion
    38. }
    39.  
    When I attach this to a GameObject it works fine, however I also get the following error message:

    NullReferenceException: Object reference not set to an instance of an object
    ResetInspectorComponentValues.Reset () (at Assets/Scripts/ResetInspectorComponentValues.cs:32)
    UnityEditorInternal.InternalEditorUtility:InspectorWindowDrag(Object[], Boolean)
    UnityEditor.DockArea:OnGUI()

    What am I missing here that is causing this error message to appear?
     
  26. Tefas

    Tefas

    Joined:
    Sep 1, 2016
    Posts:
    1
    Hi,

    I just watched the "Using Interfaces to Make a State Machine for AI" lesson. I followed all the instructions but my state machine can't transition to the ChaseState. At first I thought that my code had mistakes, so I copied the code from the site,but the problem remains. It seems that my raycast can't hit the player.

    Can somebody help me?

    Thank you.
     
  27. sara_conagher

    sara_conagher

    Joined:
    Jul 9, 2015
    Posts:
    8
    Hi @Matthew-Schell during the yesterday session, you told me to post this question on the forums and tag you. So... I do that now :)
    "everytime an animation/effect/functionality is used while the game runs for the first time during that particular session, the game freezes for up to 2 seconds before displaying the animation/effect/functionality (after that the animation/effect/functionality is displayed normally as if it was "loaded" during the mentioned freeze) - why is this happening and how to prevent it?"
    I'm not using anything exotic - basically standard Unity UI stuff. This is visible on a lower end machine on Linux which runs the project perfectly otherwise.
    Are you able to help?
     
  28. redstealth

    redstealth

    Joined:
    Sep 24, 2016
    Posts:
    1
    hello
    please tell us how did you learn
    and thanks
     
  29. johnkork

    johnkork

    Joined:
    Sep 30, 2016
    Posts:
    1
    Hello Adam,

    Thanks a LOT for your tutorials, you are really good at teaching !
    I'm trying to port the space shooter tutorial to Android, as this is the last lesson for this tutorial, but once the game built and running on my Android device, the camera seems a bit off : it is slightly cropping the game.
    The ship is supposed to respect some boundaries on the X axis, and while on the Unity editor everything works just fine and the boundaries are kept inside the camera viewport, on my Android device these boundaries are slightly outside the camera viewport : when going on the extreme right/left, only few pixels of a wing are visible and the ship is off the screen.

    I did some research but the solutions seem not perfet AND way too complicated for my ultra beginner's knowledge about Unity.
    Did I miss something during the tutorial, or this issue is a real problem and I'll get used to deal with it once I'll get more experienced on Unity ?

    Anyways, thanks again for your tutorials, I wonder how people learned this game engine before your videos existed ;)

    Corentin
     
  30. workcel

    workcel

    Joined:
    Feb 17, 2014
    Posts:
    15
  31. MHUnity

    MHUnity

    Joined:
    Jan 11, 2015
    Posts:
    21
    Matthew-Schell likes this.
  32. MHUnity

    MHUnity

    Joined:
    Jan 11, 2015
    Posts:
    21
    @tora_chan Are you able to output the contents of the profiler tab, (Unity: window --> Profiler) when running the game (pause/step through) which should give you an indication on where this pause is generated from (for example CPU or GPU,etc.) and where the work is being done on this time lapse? From this you/we can get a rough idea on what area of the game is causing the issue.
     
    sara_conagher likes this.
  33. hangemhigh

    hangemhigh

    Joined:
    Aug 2, 2014
    Posts:
    56
    Hi Adams, thanks for your Unet tutorial. Didn't know you did that until now.

    I have another request. Please do Low-level graphics library tutorial. This Unity OpenGL library has been around for a while with no tutorial online for it. I just think this will help others searching too.
     
  34. MHUnity

    MHUnity

    Joined:
    Jan 11, 2015
    Posts:
    21
    Ok everyone, if you want a live training tutorial for

    Scripting With Particle Systems


    Please "like" this post and give Matt an indication that this is a topic we'd like to learn on [once we've given Matt a rest to recover and to survive his terrible NY wind!] :)
    For instance on changing the colour/speed/transparency state of particles in a particle system based in script events, etc.

    Especially as there's word that systems have changed since 5.5 came out ( and new things such as Noise, Tracing, etc. ).


    Cheer :)
     
  35. GameDev_Chuck

    GameDev_Chuck

    Joined:
    Jun 25, 2014
    Posts:
    22
    Really enjoying the Live Training tutorials! Would be awesome if movie textures could be covered. Things to go over might be:

    -pointing out the need to install quicktime (for non mac users)
    -scripts for playing/stopping the movie (from Start())
    -achieving a smooth animation, frame rate, etc
    -file types for import (when I import as .ogv movieTexture.duration returns -1... bug?)
    -implementing on a plane as a material versus as a raw texture on a UI panel (where you can use an aspect ratio fitter)
    -multiple cutscenes throughout a game/between levels (maybe load level async?)
    -anything else!

    Many thanks and keep up the great work!
     
    MHUnity likes this.
  36. Matthew-Schell

    Matthew-Schell

    Joined:
    Oct 1, 2014
    Posts:
    238
    Thanks guys for the kind feedback, and I appreciate the suggestions. Both seem like good ideas. I'll look into them and discuss further with the team. Watch the schedule, we'll have some new sessions popping up soon.
     
  37. aviraj115

    aviraj115

    Joined:
    Jun 12, 2015
    Posts:
    1
    Hello, I was following along the videos of "Making an Angry Birds style game" and Seems like I might have missed something. My catapult is not working as expected cause there are no bands appearing and it's not releasing asteroid. Compiler is not showing errors. Are there original script files that you created to download? So that I can compare them to mine and see what's missing? I am attaching my "Projectile Dragging" script, if you want that.
     

    Attached Files:

  38. MHUnity

    MHUnity

    Joined:
    Jan 11, 2015
    Posts:
    21
    I have found from even Unitys [almost] own teaching and reference materials ( http://wiki.unity3d.com/index.php/Server_Side_Highscores ) that security is almost non-existant. Various places where teaching is provided either don't even touch on security or give it such a limp shakeoff (see link) that would barely stop a determind 13yr old hacking the game.

    This isn't nessecarily about peoples private self-training games, but about those who are trying to develop multiplayer games and from my own experience there's not a whole lot around that's got a track record is a reliable and informative guide to trying to keep data secure. The short answer is of course that data can not be kept securely, but I get the destinct impression that because a window could be broken with a brick, why bother shutting the door when you leave the house?

    With Unitys fairly new Networking abilities as well the popularity of existing [free] systems such as Photon, I think it would be good to give folks a realisation of what they can/should protect and what they can't protect. I see here a blog post by a Unity Developer where they spent possibly ten minutes to break open the game and play with all the variables within. It was a real eye-opener to me:

    https://futrworld.blogspot.co.uk/2017/01/breaking-verified-game-scores-in-unity.html

    I realise that Matt has said before he's not well up on Security things and that's fine (we can't all be great at everything, unless we're Bruce Dickinson ) but that's the thing - I don't think the vast majority of people know the first thing about securing their scripts and codes.

    Topics such as :
    https://forum.unity3d.com/threads/best-practices-for-web-server-security.173128/

    and

    https://forum.unity3d.com/threads/w...ltiplayer-networking-x-post-r-unity3d.138437/

    Are abound, and show a thirst for such knowledge, but there's a distinct lack of a resolute response from Unity itself as to Best Practise dealing with these things, and that's worrying as it implies that this system [Unity] can not be secured, or there's a perception (more likely) that if no one's asking for it, it means it's not something that needs addressing.....

    So, as a suggestion I would feel happier if we could get some feedback details and pointers from Unity Network Devs as to how people should approach securing their P2P and/or Server-Hosted games. I am a LONG way from being a security Pro, but even with my basic level knowledge, It amazes me that programs I make in my job on the web are so much more secure than programs developed and executed on a local machine. I never realised local machine data was so easily vulnerable!!

    If Unity could provide some Manual material or live training sessions (probably several, for different environments) for how to secure network gaming, such as using either/both P2P or Hosted that would be brilliant and would go a long way to helping me re-trust Unity :)

    Sub topics:
    - Obfuscating code
    - Checking values given are correct types and within the correct range
    - Differences between P2P and Hosted gaming security requirements
    - Realisation and underlining that .exe files are not safe and CAN be opened with ease.
    - How to authentication each piece of data received (such as hashing)

    Intended Audience:
    - Intermediate unity developers with an eye on multiplayer.

    Sorry for this long post,
    And sorry for this big subject. 'Cos it is a big topic;

    Authentication, Identification, authorisation
     
  39. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    In the Live Training "2D Platformer Character Controller", in the 2nd video "Scripting Gravity" Time.deltaTime is used in FixedUpdate(). I thought that Time.deltaTime is only useful in Update() where a frame's update interval is variable. FixedUpdate() is never variable.
     
  40. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
  41. sathira_osmium

    sathira_osmium

    Joined:
    Nov 22, 2016
    Posts:
    1
    Hi Adam ,
    First of all Thank you for your amazing tutorials, This is about Live Training 17th December 2014 - Merry Fragmas: Multiplayer FPS.
    Lets say we have multiple levels and player can join and leave levels without affecting other players.How do we chage levels using unity scenes and photon servers.

    Thank you
     
  42. Deleted User

    Deleted User

    Guest

    @Adam-Buckner
    I've never followed a session live; I'm never available or I'm too tired when they occur, but, I do watch the archives! I just followed the session about the Localization tools that can be found here:

    https://unity3d.com/learn/tutorials/topics/scripting/overview-and-goals?playlist=17117

    I made it with the new 5.6.0f3 version of Unity and everything went flawlessly; the only problems I encountered happened because I didn't pay enough attention. Lack of attention is often the main reason for the error messages we get when we write a script. ;)

    Thanks for all this knowledge you offer us!
     
    Last edited by a moderator: Apr 6, 2017
  43. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664

    Thanks for the feedback. I'll pass it along to @Matthew-Schell.
     
    Matthew-Schell likes this.
  44. malialis

    malialis

    Joined:
    Feb 4, 2015
    Posts:
    24
    Hello.
    Great tutorials. I really love that you guys post a lot of new and neat ideas.

    I finished the Text Adventure 2. Great series. One thing I am not sure how to do to add to it. Is there a way to make each room have a different description when you re enter it. So say the starting room has its description of the entrance slams shut. but I would like it to say something different after you re enter it.

    Is this easier to set up by making an other room with a different description or could it be appended to the original room but in script it calls the 2nd description.

    Any help or guidance would be greatly appreciated.

    Thank you.
     
  45. Matthew-Schell

    Matthew-Schell

    Joined:
    Oct 1, 2014
    Posts:
    238
    Hey there, glad you liked it! I actually dealt with this in the final version of the demo by having the altar/orb room close off the first room when you open the secret exit. And yeah, that 'door slams shut' thing doesn't work very well so I removed it later. The problem of maintaining state in each of the rooms is kind of similar to general problems of branching narrative and state in bigger games too. You either have to make lots of different versions of things (which is the solution I'd suggest here) or figure out some other more tricky / complex solution to modify content based on the state of the game in some kind of procedural way.

    In the existing Text Adventure project the way I would think about it is using the ChangeRoom ActionResponse to shift the player into a different 'time line'. That time line will need unique versions of all the rooms the player can currently access. Some of those could be duplicates of existing rooms but as unique ScriptableObject Room assets. Since any room can reference another room you just want to make sure they never reference back into rooms that connect to rooms in a different state.

    Basically, once they change into the 'secret door open' version of the room the exits now change to a list of rooms which incorporate the fact that the state of the game has changed, and you can never go back to the earlier state. It's a slightly brute force approach but given that I was trying to keep the system relatively simple and linear I think it's probably the best one.

    Let me know what you do with it, and thanks for the feedback!
     
  46. Matthew-Schell

    Matthew-Schell

    Joined:
    Oct 1, 2014
    Posts:
    238
    Thanks so much Anne! Very glad to hear that you found the Localization session helpful. That was really the brain child of Kerry Turner who wrote the code for that one. And yes, human error is very very often the cause :) I know that's true for myself.
     
  47. Matthew-Schell

    Matthew-Schell

    Joined:
    Oct 1, 2014
    Posts:
    238
    FixedUpdate will return the correct value for Time.deltaTime automatically, so it's safe to use there.
     
  48. Matthew-Schell

    Matthew-Schell

    Joined:
    Oct 1, 2014
    Posts:
    238
    hey there,

    I do think this is an interesting and valuable topic, but as you allude to, I am hesitant to weigh in without doing a good amount of research first. The only thing worse than no security advice is weak or faulty security advice presented with bluff confidence. Also, as we venture into networking we get into a world of external variables AND it gets a lot harder to teach and make reliable examples. I looked into doing a simple networked high scores table but quickly ran into creating a MYSQL database, making some PHP scripts, and generally venturing outside of my areas of expertise. It turned out to not be the type of content that I think is a great fit for our approach to teaching. I much prefer to focus in on things I can teach with confidence and authority within the relatively controlled environment of scripting and the Unity Editor.

    Also, and I know this is probably not super satisfying to hear, once you get to the level where you're doing networking and security you're probably venturing outside the 'someone hold my hand with a tutorial' zone and into the 'there be dragons figure it out yourself' harsh world of real life video game development :)
     
    Socrates likes this.
  49. Deleted User

    Deleted User

    Guest

    Helpful it is indeed! Now I can use it in my personal projects.

    The tutorial covers everything we need to localize our games except one small thing: how do we use localized text when the texts are set by strings in scripts? For example, in the Roll a Ball tutorial, there is this piece of script that set texts content using strings:

    Code (CSharp):
    1.     void SetCountText ()
    2.     {
    3.         countText.text = "Count: " + count.ToString ();
    4.  
    5.         if (count >=12)
    6.         {
    7.             winText.text = "You Win!";
    8.         }
    9.     }
    How do we use localization in this case?

    Thanks a lot in advance for the answer! :)
     
  50. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Don't hardcode the text in strings. In place of the string, use an index or key to load the localised text string from the currently loaded language. I didn't see the tutorial, but whatever language is current could could have been loaded in various ways. e.g. a dictionary, a text file, etc.
     
Thread Status:
Not open for further replies.