Search Unity

Question Is it feasible to train on collected player behaviour?

Discussion in 'ML-Agents' started by victornor, Feb 24, 2024.

  1. victornor

    victornor

    Joined:
    Jan 17, 2014
    Posts:
    87
    Hey, i've been wondering if it's feasible or even possible to collect demonstration data from every player, send it to my server and use all of the collected demonstration as an AI Model for my agents?

    This would allow me to group demonstrations based on completion times and or player expertise, thus allowing me to create different ai difficulty levels with less training and more realistic human player behaviour.

    Any thoughts?
     
  2. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,909
    To be able to record "demo data" from players your game must be fully deterministic. Which means the recorded input events when played back lead to the exact same end state. This may be tricky to do with Unity, and near impossible if you use Physics for gameplay.

    The alternative of grabbing the entire game state every frame, essentially regarding every rendered frame as a keyframe also has issues. For one, the amount of data collected may be prohibitive, may even degrade user's performance significantly. And playback needs to occur at the same rate as the player's which may vary.

    Generally, if you have instructive player demo data on how to overcome obstacles or perform tasks this can be helpful guidance for the AI.

    The problem with taking any user data is the quality of that data. Perhaps the player was just strolling around, not playing seriously. Or even knowing that you'll use these recordings to train AI so player's might actually be keen on submitting recordings that dumb down the AI, if only to mess with you. ;)

    So you'd have to trust the data from selected players or screen it.