Search Unity

Thoughts on the "Creating a Text Based Adventure" Live Training Session (2017/3/22)

Discussion in 'Community Learning & Teaching' started by Deleted User, Mar 27, 2017.

  1. Deleted User

    Deleted User

    Guest

    First of all, thank you for providing those tutorials for free. They helped me a lot to get acclimated to the Unity ecosystem and concepts. And even brought me some new ideas to handle my non Unity projects. But i think there is still room for improvement.

    In the latest session (Creating a Text Based Adventure), i really missed a text-file with all the phrases that would go into the various description boxes. That way following along much easier and we don't get overwhelmed by the amount of information that is flung in our general direction.


    Some of the architectural decisions are rather puzzling to me. For example, why fragment functionality over different classes (UnpackRoom/UnpackExits), when it can be done much cleaner within the same method, or even within the Room class itself? This and many other things that can lead to a fairly messy code-base, wich in turn can confuse people that just started out with scripting.

    Further adding to the confusion is all that jumping around from creating data structures to adding logic and vice versa. Wouldn't it be much easier to outline and define the data structure first, then add logic/functionality? In case of the Room class, i would have done the following:
    1. Outline the classes that are needed for that segment.
    2. Add those classes from within Unity.
    3. Define all segment relevant variables/fields/properties to those classes.
    4. Add editor attributes where needed.
    5. Add methods and logic.
    6. Run the written code and hope that nothing explodes ;)
    Very straight forward and fairly easy to follow.


    Another thing that could be done, especially in beginner focused tutorials, is avoiding the use of data-types that are magnets for user-errors. In this case the keyString in the Exit class could have been an Enum instead of a String. We have a finite amount of fixed possibilities within our design, i.e. north, south, east and west (maybe up and down), the perfect opportunity to use an Enum. They integrated nicely into the editor and are super easy to use, even for beginners.


    That's it for now. I hope that my feedback/critique will help shaping future tutorials and thank you guys for your awesome work.

    Greetings beStrange
     
  2. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    1,998
    It's a matter of knowing the audience. For a video "How to make an X" the audience is all over the place. The problem is, for any single thing you want to do in Unity, a project video isn't the best.

    I mean, make a list of things you want to learn, then write after them the best way: Learn C#; learn advanced C#; find Unity features; learn Unity tricks; get started right now making a text adventure game; see how a complete text adventure game can be made (for this, Unity used to make free projects for you to look at, like the Robots one.)

    Put another way, if you're making this video, your audience is: people who want to see a little programming, are maybe thinking about making a text game, wouldn't mind seeing a few new cool Unity features. But nothing too serious. Your real goal is to motivate them to learn more about one topic, and give them a good feeling about Unity3D.

    I'm not talking that down. If a school gets requests based on these, licenses Unity for a lab and kids learn programming, 3D systems, stumbles into Agile/Scrum ... that's great. And if those kids tell their friends to skip the videos and go straight to the scripting docs, that's also great -- the videos did their job.
     
  3. Rockwall33

    Rockwall33

    Joined:
    Mar 4, 2016
    Posts:
    186
    How does the game controller control the rooms, it seems to stop at 3, I have more then 3 rooms, is it possible to up that range up?

    Cheers!
    NuclearRasberry
     
  4. ig3d

    ig3d

    Joined:
    Feb 11, 2015
    Posts:
    5
    If anyone could tell me why it doesn't work that'd be great.
    Here's the whole project completed on github, but it's broken .Whyyyyy?