ميهين

24
يهين هhttp://a-saker.blogspot.com http://e-saker.blogspot.com

Upload: ahmed

Post on 19-Jun-2015

331 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: ميهين

هيهين

http://a-saker.blogspot.com http://e-saker.blogspot.com

Page 2: ميهين
Page 3: ميهين

الوحتوى

مقدمة في تطوير األلعاب•

•Component-Based Architecture

Unityتطبيق على •

Page 4: ميهين

التعلين التواسي

”Tangential Learning”

Page 5: ميهين

صناعة األلعاب

Vs

$239 million First Week Revenue

$500 million First Week Revenue

Source : Video Game Industry Trends by Ferrarra

Page 6: ميهين

األلعاب

Page 7: ميهين

الوحتوي

التفاعلية

القدرة على االختيار املشاركة الفوز واخلسارة

Page 8: ميهين

Source : Learning To Make Your Own Reality by Jane McGonigal

Page 9: ميهين

األلعبة

Gamification

Page 10: ميهين

“And wouldn’t it be easier to innovate if life were more like a game.”

- Dan Newman, public

strategist

Page 11: ميهين

قواعد هنطقية

+ رسوم

=

ألعاب

Page 12: ميهين

Real-time Software

تقنياً

Page 13: ميهين

Game Loop

// a simple game loop in C++ int main() { Initialize(); while (true) { Update(); Render(); } ShutDown(); }

Page 14: ميهين

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

Page 15: ميهين

انتاج الرسوم

Page 16: ميهين

انتاج الووسيقى والوؤثرات الصوتية

Page 17: ميهين
Page 18: ميهين

Component-Based Architecture

!هكونات؟

Page 19: ميهين

Entity

Movable

Player

Enemy

Static

Door

OPP

Entity

Movable

Player

Enemy

DynamicDoor

Static

Door

Page 20: ميهين

Component-Based Architecture

Player

• Transform

• Renderer

• PMover

Enemy

• Transform

• Renderer

• AIMover

Door

• Transform

• Renderer

• DoorMover

Component

Transform Renderer Mover

PMover

AIMover

DoorMover

Page 21: ميهين

!أفكار لتطبيقها؟

Page 22: ميهين

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... } .. }

Page 23: ميهين

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; } }

إدارة الوكونات

Page 24: ميهين

Unityتطبيق على