ميهين
TRANSCRIPT
هيهين
http://a-saker.blogspot.com http://e-saker.blogspot.com
الوحتوى
مقدمة في تطوير األلعاب•
•Component-Based Architecture
Unityتطبيق على •
التعلين التواسي
”Tangential Learning”
صناعة األلعاب
Vs
$239 million First Week Revenue
$500 million First Week Revenue
Source : Video Game Industry Trends by Ferrarra
األلعاب
الوحتوي
التفاعلية
القدرة على االختيار املشاركة الفوز واخلسارة
Source : Learning To Make Your Own Reality by Jane McGonigal
األلعبة
Gamification
“And wouldn’t it be easier to innovate if life were more like a game.”
- Dan Newman, public
strategist
قواعد هنطقية
+ رسوم
=
ألعاب
Real-time Software
تقنياً
Game Loop
// a simple game loop in C++ int main() { Initialize(); while (true) { Update(); Render(); } ShutDown(); }
Real-time Loops
Coupled Approach Twin-Threaded Approach Single-Threaded Fully
Decoupled
Source : Core Techniques and Algorithms in Game Programming By Daniel Sánchez-Crespo Dalmau
انتاج الرسوم
انتاج الووسيقى والوؤثرات الصوتية
Component-Based Architecture
!هكونات؟
Entity
Movable
Player
Enemy
Static
Door
OPP
Entity
Movable
Player
Enemy
DynamicDoor
Static
Door
Component-Based Architecture
Player
• Transform
• Renderer
• PMover
Enemy
• Transform
• Renderer
• AIMover
Door
• Transform
• Renderer
• DoorMover
Component
Transform Renderer Mover
PMover
AIMover
DoorMover
!أفكار لتطبيقها؟
Class Entity { Movable moveSystem; boolean canMove; public Entity(boolean canMove, Movable moveSystem){ this.canMove = canMove; this.MoveSystem = MoveSystem; } public Movable getMoveSystem() { if(canMove) return MoveSystem; else throw some exception... } .. }
public boolean hasComponent(Class<C> klass) { return component_table.Contains( klass ); } public C getComponent(Class<C> klass) { final C component = component_table.get( klass ); if ( component != null ) { return component; } else { return null; } }
إدارة الوكونات
Unityتطبيق على