GameVision Toolkit™ is a 2D professional indie game library that allows you to do game development in Delphi for desktop PC's running Microsoft Windows® and uses OpenGL® for hardware accelerated rendering.
It's robust, designed for easy use and suitable for making all types of 2D games and other graphic simulations, You access the features from a simple and intuitive API, to allow you to rapidly and efficiently develop your projects. There is support for bitmaps, audio samples, streaming music, video playback, loading resources directly from a compressed and encrypted archive, a thin object oriented actor/scene system, entity state machine, sprite management, collision detection and much more. GameVision Toolkit, easy, fast & fun!
Development - This build represents the most recent development state an as such may or may not be as stable as the official release versions. If you like living on the bleeding edge, it's updated frequently (often daily) and will contain bug fixes and new features.
Releases - These are the official release versions and deemed to be the most stable.
- Free for commercial use. See License agreement.
- Written in Object Pascal
- Support Windows 64 bit platform
- Hardware accelerated with OpenGL
- You interact with GameVision via the global
GV
object and the various classes in the toolkit - Archive (custom archive format, password protection)
- Window (OpenGL, anti-aliasing, vsync, viewports, primitives, blending)
- Input (keyboard, mouse and joystick)
- InputMap (map an action 'up', 'down' for example to multiple input devices)
- Texture (color key transparency, scaling, rotation, flipped, titled, BMP, DDS, PCX, TGA, JPEG, PNG)
- Video (play, pause, rewind, OGV format)
- Sprite (pages, groups, animation, poly-point collision)
- Entity (defined from a sprite, position, scale, rotation, collision)
- Actor (list, scene, state machine)
- Audio (samples, streams, WAV, OGG/Vorbis, FLAC formats)
- Speech (multiple voices, play, pause)
- Font (true type, scale, rotate)
- Timing (time-based, frame elapsed, frame speed)
- Shaders (vertex, fragment, GLSL)
- Misc (collision, easing, screen shake, screenshot, starfield, colors, INI based config files, startup dialog, treeview menu)
- Delphi Community Edition
- Microsoft Windows 10, 64 bits
- OpenGL 3
- Remote database support uses FireDAC, thus requires your Delphi edition to support FireDAC with remote connectivity.
- Unzip the archive to a desired location.
- Add
installdir\libs
, folder to Delphi's library path so the toolkit source files can be found for any project or for a specific project add to its search path. - In Delphi, load
GameVision Toolkit.groupproj
to load and compile the project files. - Compile and use
GVArc
utility for making archive files (standard password protected zip format). Running themakearc.bat
ininstalldir\examples\bin
will buildData.zip
that is used by the examples. - Compile and run
GVExamples
which will showcase GameVision features and how to use them. - See examples in the
installdir\examples
for more information about usage.
- This project is in active development so changes will be frequent
- Documentation is WIP. They will continue to evolve
- More examples will continually be added over time
You just have to derive a new class from the TGVGame
base class and override a few callback methods. You access the toolkit functionality from the GameVision
unit.
uses
GameVision;
type
{ TMyGame }
TMyGame = class(TGVGame)
public
procedure OnSetSettings(var aSettings: TGVSettings); override;
procedure OnStartup; override;
procedure OnShutdown; override;
procedure OnUpdateFrame(aDeltaTime: Double); override;
procedure OnRendeFrame; override;
procedure OnRendeFramerHUD; override;
end;
A minimal implementation example:
uses
System.SysUtils;
{ TMyGame }
procedure TMyGame.OnSetSettings(var aSettings: TGVSettings);
begin
inherited;
// add your settings code
aSettings.WindowWidth := 960;
aSettings.WindowHeight := 540;
aSettings.WindowTitle := 'My Game';
aSettings.WindowClearColor := DARKSLATEBROWN;
end;
procedure TMyGame.OnStartup;
begin
inherited;
// add your own startup code
end;
procedure TMyGame.OnShutdown;
begin
// add your shutdown code
inherited;
end;
procedure TMyGame.OnUpdateFrame(aDeltaTime: Double);
begin
inherited;
// add your update code
end;
procedure TMyGame.OnRenderFrame;
begin
inherited;
// render your render code
end;
procedure TMyGame.OnRenderHUD;
begin
inherited;
// add your render HUD code
end;
To run your game, call
GVRunGamen(TMyGame);
NOTE: For GameVision to work properly, execution MUST start with GVRunGame(...)
. This call will property setup/shutdown the library and log and handle errors. Only one GameVision app instance is allowed to run and will safely terminated if more than one is detected.
See the examples for more information on usage.
GameVision.mp4
Get.GameVision.Today.mp4
AstroBlaster.Demo.mp4
Project Discussions | https://github.com/tinyBigGAMES/GameVision/discussions |
Project Tracking | https://github.com/tinyBigGAMES/GameVision/projects |
Website | https://tinybiggames.com |
support@tinybiggames.com | |
Discord | https://discord.gg/tPWjMwK |
https://twitter.com/tinyBigGAMES | |
Facebook Page | https://facebook.com/tinyBigGAMES |
Facebook Group | https://www.facebook.com/groups/gamevisiontoolkit |
YouTube | https://youtube.com/tinyBigGAMES |