• Fixed Time Step – η λογική του παιχνιδιού ενημερώνεται σε σταθερά χρονικά βήματα
(π.χ. 60Hz), ανεξάρτητα από το rendering.
• Variable Time Step – η λογική βασίζεται στον πραγματικό χρόνο (delta time) μεταξύ
frames.
• Hybrid Loops – συνδυασμοί των παραπάνω για σταθερότητα + απόδοση.
2.2.7
Physics engine (Μηχανή Φυσικής)
Η μηχανή φυσικής είναι υπεύθυνη για την προσομοίωση ρεαλιστικής κίνησης, δυνάμεων και
συγκρούσεων στον κόσμο του παιχνιδιού. Πρόκειται για ένα από τα πιο πολύπλοκα υποσυστή-
ματα, καθώς βασίζεται σε μαθηματικά μοντέλα και αλγορίθμους βελτιστοποίησης. Η μηχανή
φυσικής (physics engine) μπορεί να χωριστεί σε δύο βασικά μέρη: Dynamics – προσομοίωση
κίνησης με βάση δυνάμεις (π.χ. βαρύτητα, ώθηση, τριβή) και Collision Detection – εντοπισμός
συγκρούσεων μεταξύ αντικειμένων, ώστε να εμποδίζεται η διείσδυσή τους.
Οι ([7]) αναφέρουν ότι οι μηχανές φυσικής μπορούν να είναι είτε απλουστευμένες (arcade
physics) για παιχνίδια 2D/retro, είτε ρεαλιστικές (rigid body dynamics) για 3D παιχνίδια και
προσομοιώσεις. Κάποια υποσυστήματα φυσικής:
• Collision Detection
• Broad Phase: γρήγορη ανίχνευση πιθανών συγκρούσεων (π.χ. με spatial partitioning:
quadtrees, octrees, BVH).
• Narrow Phase: ακριβής υπολογισμός σημείων επαφής.
• Collision Response
• Εφαρμογή κατάλληλων δυνάμεων για να αντιδράσουν τα σώματα (π.χ. bounce, slide,
stop).
• Rigid Body Dynamics
• Υπολογισμός θέσης/προσανατολισμού με βάση τις δυνάμεις (F=ma, ολοκλήρωση
Euler/Verlet).
• Constraints / Joints
• Εφαρμογή περιορισμών (π.χ. άρθρωση τύπου hinge, spring, slider).
Στις εμπορικές μηχανές:
Η Unity χρησιμοποιεί το PhysX (NVIDIA).
Η Unreal Engine χρησιμοποιεί το Chaos Physics Engine.
Η Godot διαθέτει δικό της physics system για 2D και 3D.
14