VGC is a 3D game engine I developed back when I probably should have been at school. It features its own scripting system with GUI functions, WYSIWYG real-time editing and networking capabilities.
- Object-Oriented Design
- Plug-in Architecture
- Network editing (one scene, multiple AGE users.)
- Direct3D 9 support.
- Distance based loading system.
- Customisable engine GUI (and GUI functions.)
- Plug-in architecture.
- BASIC-like scripting language (including loose, easy object-oriented variable approach.)
- Sliding collision.
- GUI Shaders may be supported in the future.
- Depth of Field
- Fog DirectX fog is supported, and billboarding is already implemented for foilage.
- Multi-texturing More graphical features are planned.
- Mesh Loading Mesh data is loaded from objects automatically.
- Occlusion Culling
- LOD Level of Detail is used in particular with the included (with source) foilage entities (so grass, etc). Billboarding used here, and occlusion culling is automatic.
- Keyframe Animation Animation data is loaded from the objects’ mesh data files.
- Rendering A plugin is included, to create terrain meshes from heightmap and texture files. This can then be inserted into the scene, inside the AGE editor.
- Collision Detection
- Essential collision detection functions are provided, as well as functions to automatically move an object upon collision.
- Further physics support is planned.
- Client-Server Uses Benjamin’s ‘Multisync’ network plug-in, for Client-Server mode TCP/IP networking.
- 2D Sound
- Uses DirectSound for high-quality sound, supports multiple formats for loading music/sfx files.
- It may be theoretically possible to ‘stream’ sounds over a network, but it isn’t included as such.
Tools & Editors
- Integrated script editor, linked to the entity and object selection menus. ‘Script’ affects current level, entities that are selected, have their code changed and then inserted, are one-off variations on the entity model.
- Integrated 3D environment editor that enables you to view, modify, and place objects and scripted entities (although it is possible to make programs that do not use 3D at all.)
- Syntax highlighting is supported within the AGE editor for scripts and entities.
- Gui editor.
- Compact, Object-Oriented scripting language gets things done fast and safely.
- AGE editor enables you to position and navigate in your 3D world, as it will be shown, and to develop and edit code and run your build.
- Supports plugins; simple terrain builder (based on heightmap & texture input) currently available, more planned! (And of course more can be made easily, as the API is open.)
- Support for custom functions within the script editor.
You can grab the source and the executable with some demo media off of GitHub: