Se state pensando di progettare un videogioco e volete che gli oggetti si muovano nel mondo virtuale con una certa dose di realismo allora avete bisogno di un motore fisico.
Se il gioco è in 2D dovreste considerare l'ottimo motore fisico opensource sviluppato da Erin Catto: Box2D.
La versione sviluppata da Catto è scritta in C++ (quindi compatibile con iOS), inoltre esistono una varietà di porting in Java, Flash, C#, JavaScript e Delphi. Viene offerto con licenza zlib e sebbene non avrete l'obbligo di citare Box2D nei vostri credits, Erin Catto apprezzerà una nota di riconoscimento.
Box2D è anche uno dei 2 motori fisici distribuiti insieme a cocos2d for iPhone (l'altro è Chipmunk). Vi basterà scaricare cocos2d, creare un progetto scegliendo il template basato su Box2D e avrete immediatamente un progetto cocos2d configurato per utilizzare la fisica di Box2D.
Tra le funzionalità offerte troviamo:
- Common Module: dedicato alle impostazioni, gestione della memoria e matematica vettoriale.
- Collision Module: relativo a figure geometriche e funzioni che operano su di esse.
- Fixtures: il collegamento tra una forma geometrica e un corpo.
- Bodies: hanno posizione e velocità , possono essere soggetti a forze e impulsi.
- Joints: sono usati per vincolare il movimento di un body a un altro.
- Contacts: oggetti usati per gestire le collisioni.
- World Class: è la classe con cui interagirete maggiormente, contiene i corpi e le relative giunture.
Insieme al codice sorgente è disponibile un manuale.
Tra i tantissimi giochi che lo utilizzano basta citare un piccolo grande capolavoro apparso negli ultimi anni su AppStore: Tiny Wings di Andreas Illiger.