As a game designer and developer i’ve come across many tips and tricks regarding the development of games. The gameworks SDK is my interpreteation of how a game engine should run based on the “Director Camera Scene Actor Prop” system i have developed the Gameworks SD platform will help to transform your ideas into realitys.
One thing you should first understand is that Gameworks is not a game however it is a game engine.
What is a game engine? As defined by wikipedia a game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game developmentis often economized, in large part, by reusing/adapting the same game engine to create different games.
So how and what does Gameworks SD do? Gameworks is based on the DCSAP system i have developed the ‘director’ holds a ‘camera’ pointed at a ‘scene’ filled with ‘actors’ and ‘props’ just like a hollywood movie actors and props are placed inside of a scene where they perform their various duties. the ‘scene’ is observed by the camera and the director controls and schedules all events within your game.
Gameworks will take care of: Actor and Prop Events such as collision detection, movement, animation and any other user defined events Rendering using GDI with an advanced rendering engine capable of scaling to various platforms such as XNA Allegro OpenGL SDL with a template for XNA included. Framerate Counting Event Counting Initializing Mouse and keyboard input Game states Debug states for scheduling events that only happen in debug mode Timer states for scheduling various actions with callback functions i.e Actor1 could shout ‘I am hungry’ and throw an event “FindFood” where you would call your AI Module and have Actor1 find the nearest occurrence of Prop type “Large Steak” Direction Actors Game Objects (Props) Scenes (Collections of actors and props and their events to be directed and observed by a camera) Basic collision detection Object.isinside(object2) this could be used for the bullets of your gun If Bullet.IsInside(Enemy1) then Enemy1.DeathFunction
Gameworks SD is heavily commented so making modifications to the core will not be hard should you wish to add functionality or change the way core features work. It is designed in such a way that modules can be ‘dropped in’ without effecting the way other modules behave for example if a ‘networking’ module for online gameplay is developed to suit the Gameworks SD engine it can easily be added to any existing Gameworks SD project or future projects even if the project is compiled its a simple matter of recompiling the assembly with a compatible networking module and replacing the library, providing the game is using the standard Actor Scene Camera and Object classes even if you have made modifications as long as they inherit the “AssetBase” they will automatically be compatible with any future updates / modules.
The included Demo Project “GameWorksTest” is a small demonstration of the core functionality provides just remember that the creativity you wish to express with the GameWorks engine is up to you and because the source is provided, heavily commented and not 1000’s of pages long making the modifications you want is a going to be a breeze.
Gameworks SD’s internal rendering engine is geared towards 2D Games however the constructs of the engine are not limited to 2D games. the actor scene director events props states events timers and all game related classes are not limited to any dimension and can easily be expanded to handle 3D games by modifying the rendering engine as you please you can easily make 2D or 3D games however to keep the project small, simple and to the point i have only developed the 2D rendering modules.
Gameworks SD is compatible with any .net language through the use of a compiled library.
Please leave any comments and i will try answer them as soon as possible.