Game Jam

Game Jam van periode 1 Jaar 3

Tijdens de eerste week van periode 1 van het schooljaar 2025-2026 kregen we drie dagen de tijd om deel te nemen aan een Game Jam. Hierbij was het bedoeling om binnen een korte tijd een creatief gameconcept te bedenken en uit te werken. Ik heb ervoor gekozen om een Commands-systeem te ontwikkelen waarmee objecten in de game via tekst commando’s aangestuurd kunnen worden.

Naast het Commands-systeem heb ik gewerkt aan een Enemy Patrol-systeem. Hiermee kunnen vijanden zelfstandig door de omgeving navigeren via vooraf ingestelde waypoints. Hiervoor heb ik onder andere gebruikgemaakt van C#, Unity en de NavMeshAgent-component.

public class CommandExecutor : MonoBehaviour
{
    /// <summary>
    /// Voert een command uit in de vorm van "ObjectName MethodName [param1] [param2] ..."
    /// </summary>
    public void ExecuteCommand(string command)
    {
        if (string.IsNullOrWhiteSpace(command))
        {
            Debug.LogWarning("[CommandExecutor] Leeg commando ontvangen.");
            return;
        }
}

Commands Script

De CommandExecutor is een script dat verantwoordelijk is voor het verwerken en uitvoeren van commando’s binnen Unity. Het script controleert eerst of er een geldig commando is ingevoerd. Wanneer het commando leeg is, wordt er een waarschuwing weergegeven en stopt de uitvoering. Dit vormt de basis voor een systeem waarmee objecten en hun bijbehorende methodes via tekstcommando’s aangestuurd kunnen worden.

public class EnemyPatrol : MonoBehaviour
{
    public Transform[] waypoints;
    public float waitTime = 2f;

    private int currentWaypointIndex = 0;
    private NavMeshAgent agent;
    private float waitTimer;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();

        if (waypoints.Length > 0)
        {
            agent.SetDestination(waypoints[currentWaypointIndex].position);
        }
    }
}

Enemy AI Script

De EnemyPatrol is een script dat ervoor zorgt dat een vijand zelfstandig tussen verschillende vooraf ingestelde waypoints beweegt. Hiervoor wordt gebruikgemaakt van een NavMeshAgent, waarmee de vijand automatisch zijn weg kan vinden binnen de omgeving. Bij het starten van het script wordt gecontroleerd of er waypoints zijn ingesteld. Als dit het geval is, beweegt de vijand naar het eerste waypoint. Daarnaast zijn variabelen toegevoegd om onder andere de wachttijd tussen bewegingen te bepalen.