4年半、ゲーム系の専門学校教師をしてたせいか、今頑張ってゲームプログラミングしてる人を見ると、ついついアドバイスしたくなってしまうんだよなあ。AI生成すると、あいつらはだいたいフラグ制御系で提示してくるから、とてもじゃないけどそのまま使うとフラグのおばけになるので気をつけよう。
私が思う一番真っ当な作り方はステート管理(状態遷移管理)です。フラグだと複数の状態が入り交じるためバグの温床になりやすいですが、ステート管理だと混ざることがありません。複雑になればなるほどステートも増えていくので、その場合はサブステートを使います。
この辺りの作り方をマスターすると、バグが出にくい構造になっていきます。このさらに上の高度な管理術としては、タスクそのものをオブジェクトとして管理することかな。これは初期設定がきっちりしてないと破綻する事もあるけど、うまく機能すると無駄がないんです。
ということで、学生さんにはまずはステート管理から始めることをオススメします。