As a self-educated programmer, I started following my passion for programming and specifically developing video games 7 years ago as an independent developer. During this period, I worked on some engine development, AI programming, graphics programming, animations system, etc. using C++ and DirectX as well as developing some games on Unity 3D. After 4 years of being a lone-wolf, I joined Medrick Game Studio, a leading game company in Iran, as a senior client developer and 10 months later I stepped up to the studio technical lead. Currently, I am leading a team of 4 client developers working on several mobile games.
Component-based programming and inheritance are two important sides of game engine architecture. In this presentation, I will compare this two approaches and will share my experience with them. Then, I will go into details of component-based programming, how to send data from a component to another in a component system, how to design a suitable component based system in term of runtime optimization, reusability, development and maintenance time. Finally, I will wrap up my topic by comparing Unity3d engine component system and Cocos2dx inheritance system as two major mobile game engines.