Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Orientation about tools to make Point and Click / Adventure Games

Discussion in 'General Discussion' started by mariocesarc, Mar 19, 2018.

  1. mariocesarc

    mariocesarc

    Joined:
    Mar 19, 2018
    Posts:
    1
    Hey guys,
    Im currently making my computer science thesis to get my degree. The goal of the work is to implement a module that can do the work of the screenwriter of a Point & Click game using some kind of IA. So, the output of the module doesn't need to be a full game with UI but like a graph of the possible actions that the player can do. Now I have a simple model based in ideas of some articles that I read about interactive narrative/storytelling. I can actually play a simple game with the console giving a few parameters at the beginning (data about characters, items, etc). First it says the state of the game and then the actions of the game I can do, for example

    STATE:
    you are in the woods
    there are flowers
    you have 5 dollars
    there is an old man

    ACTIONS:
    1. say hello! to old man
    2. pick up a flower
    3. walk to the left


    So I can choose one of the actions and the terminal gives me a new state with a different set of actions and so on. Obviously the stories that come out from this are not the most fun thing in the world. In order to improve the system I want to develop a full game with UI that can be playable from browser or mobile to get stats from people that is actually playing this thing so with their feedback I can modify the IA system for creating more engaging stories. I've tested a few frameworks (not unity frameworks) for building point and click games but the problem is that they are too simple and UI based (drag and drop) to integrate with the IA system that I'm trying to build.

    Any recommendations of tools to make the UI for point and click game in a more programmatic way?

    thanks and sorry for my english :)
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    What you're describing is similar to smart objects. Each entity in the current state has a set of actions. For example:
    • Old man: say hello
    • Flower: pick up
    • Woods: walk left
    • etc.
    When you follow an action (e.g., walk left), it changes the state. Maybe the new state removes the Woods and adds Beach. And the Beach entity has an action "swim". You can see how this generates a graph.
     
  3. RichardKain

    RichardKain

    Joined:
    Oct 1, 2012
    Posts:
    1,261
    That seems like an effective structure for a touch-screen focused adventure game.

    Classic adventure games frequently had a menu of different options that you would click on before interacting with objects in the world. This allowed you to select what type of action you were going to use before using it. Lucas Arts did this with a list of words, and Sierra did it with a bar of different icons indicating standard actions.

    But this manner of format doesn't necessarily work quite as well with touch-screen focused controls. It could be adapted to work with it, but it definitely isn't nearly as simple or user-friendly as most people expect from a modern touch-screen interface.

    Some later adventure games employed more context-sensitive approaches to these action prompts. Full-Throttle would be an example of this, where you clicked on an item and then made a selection of four or five standard actions. (look, touch, talk, kick, etc...)

    A smart-object approach where actions and their names were stored on a per-object basis could work well with modern touch-screen interfaces. No matter what object you touch on the screen, you could pop up a list of the defined actions that are attached to it. The list would likely have to be text-based, but that's fine. You would just need to add a standard function to your component that returns a formatted list of the actions' text descriptions for rendering to the interface. (and linking back to the scene)

    The one real drawback to this approach is that it would require you to define ALL the actions for any object that can be clicked on. It might be a good idea to come up with some standard, default actions that get applied to each clickable object automatically.