z-cub / GameVision

Advanced 2D Game Framework for Delphi

Home Page:https://gamevisiontoolkit.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GameVison Logo

Chat on Discord GitHub stars GitHub Watchers GitHub forks Twitter Follow

Overview

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!

Downloads

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.

Features

  • 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)

Minimum System Requirements

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

How to use in Delphi

  • 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 the makearc.bat in installdir\examples\bin will build Data.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.

Known Issues

  • 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

A Tour of GameVision Toolkit

Game Object

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;

How to use

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.

Media

GameVision.mp4
Get.GameVision.Today.mp4
AstroBlaster.Demo.mp4

Support

Project Discussions https://github.com/tinyBigGAMES/GameVision/discussions
Project Tracking https://github.com/tinyBigGAMES/GameVision/projects
Website https://tinybiggames.com
E-Mail support@tinybiggames.com
Discord https://discord.gg/tPWjMwK
Twitter https://twitter.com/tinyBigGAMES
Facebook Page https://facebook.com/tinyBigGAMES
Facebook Group https://www.facebook.com/groups/gamevisiontoolkit
YouTube https://youtube.com/tinyBigGAMES


Made for Delphi

About

Advanced 2D Game Framework for Delphi

https://gamevisiontoolkit.com/

License:Other


Languages

Language:Pascal 99.8%Language:GLSL 0.2%Language:Batchfile 0.0%