100,000 enemies, 1,000 times.
1Enemy
class Enemy { Vector3 m_position; // 0 ... 18 more fields ... Vector3 m_direction; // 144 ... 20 more fields ... float m_velocity; // 292 ... 19 more fields ... }; // 428 bytes, 60 fields
2Enemy, fields grouped
class Enemy { Vector3 m_position; // 0 Vector3 m_direction; // 12 float m_velocity; // 24 ... the other 57 ... // 28 }; // 428 bytes, 60 fields
3EnemyMove
class EnemyMove { Vector3 m_position; // 0 Vector3 m_direction; // 12 float m_velocity; // 24 }; // 28 bytes
4EnemyData
class EnemyData { int NumEnemies; Vector3* Position; Vector3* Direction; float* Velocity; ... one array per field };
ready