View Full Version : PyroGineび「 SDK v2.0

22-09-2008, 12:28 AM
Version v2.0.0: (Beta 1)

PyroGine SDK (http://jarrodavisoftware.com/index.php?option=com_content&view=article&id=55:pyrogine-sdk&catid=40:gamedev) is and advanced 2D game application framework for PC's running Microsoft Windows and Direct3D with 3D hardware. It is made with and usable from the Delphi programming language from CodeGear. PGSDK is feature complete and can easily create any type of 2D game with D3D for rendering. It was designed to be easy to use, robust and feature rich and should be easy to use in your projects. It is suitable for making 2D games and graphic simulations. There is a complete set up of classes which give you a solid foundation and you can then can build on top of this layer to any level of complexity that is required for your project.

The SDK includes support for surfaces, textures, sprites, audio, streams, archives, INI files, configuration variables, render targets, swap chains, scripting and much more. In addition to the low-level, to the metal access, there exist a thin high level framework unit that includes classes such as TPyroObject, TPyroObjectList, TPyroActor, TPyroActorList, TPyroEntity and TPyroGame and more to give you a rich high level support to make it very easy to get started with your projects in an object oriented way.

* Added plugin support (think MODs, extensions, addons) (PyroPlugin).
* Added support for inter process communication (PyroIPC)
* Added a flexible starfield simulation effect class (PyroStarfield).
* Added RenderTiled method to TPyroImage class to add support for tiling large images across the viewport (PyroGraphics).
* Changed TPyroConfigFile class to be able to work with native string types (PyroResources).
* Added light weight test case framework for simple feature testing (PyroTestCase).
* Added a persistence framework system (PyroPersistence).
* Added support for posting/listing (threading also) high score data to a MySQL database (PyroDatabase).
* Added support for connecting to local/remote MySQL databases and with the options of threaded connection/query (PyroDatabase).
* FontStudio 4.1 is now being distributed with the SDK.
* Added support for the Unicode font editor FontStudio 4.1 (PyroFonts).
* Added support for custom fonts (PyroFonts).
* Rebuild the SDK to use ECOM (extendability component object model). Doing this allows the whole SDK to be classed based. Now you can use all the classes from the SDK in the normal fashion. You can even extend them on the client side and the SDK will continue to use these extended classes.

* Developed in/for Delphi 2009.
* Based on ECOM developed by JDS (Extendable Component Object Model). With ECOM you are able to extend high level classes exported from a standard Win32 DLL.
* Uses Direct3D 9 for hardware 2D rendering.
* 32 bit surfaces and textures.
* Free scaling, rotation, alpha blending and other special effects.
* Windowed and full screen modes.
* Frame based timing support.
* INI file configuration support with config file variables.
* Configuration file variable support.
* Unified Streaming system (memory, file, EXE resources, zip archive).
* Can render to default application window or to a specified window handle.
* Advanced render target and swap chain support.
* Textured fonts (includes a new Unicode font editor tool and support for custom fonts).
* Graphics primitives (lines, circles, rects, points).
* Advanced polygon rendering (scale, rotate, control line segment visibility).
* Support for rendering large images (640x480, 800x600, 1024x768 for example).
* Advanced sprite management.
* Polypoint collision system for fast precise collision detection.
* Mouse and keyboard input management.
* Unified audio system with support for WAV | MP3 | MID| OGG | MOD | IT | S3M | XM music formats.
* Comprehensive math routines (vectors, angles, line intersection, clipping).
* Log file support.
* Scripting system with full debugging support (modified version of Lua 5).
* SQL database support (MySQL | SQLite).
* Actors, Entities and AI classes.
* Networking (UDP, SMTP, HTTP, network object streaming).
* Plugin support (MODs, extensions, addons).
* Object persistence framework.
* Inter process communication support.
* Test Case framework for rapid prototyping.
* High level game framework for quickly building your game application.
* Application class helper to make interfacing with VCL more intuitive.
* Basic UI features (startup dialog, text menu).
* low-level system and common routines (dynamic dll management, directory, exe modification).
* Rich high-level framework for OOP game development, robust and full featured.

22-09-2008, 12:32 AM
We now have an API (http://jarrodavisoftware.com/temp/pgsdk_api.zip) layer (currently being tested) that will allow you (in theory) to use most of PGSDK features with any 32bit version of Delphi. It should now also be usable from other languages such as c/cpp. We plan to include c/cpp bindings in a future build. The API layer is basically a "flatten" version of the OOP layer so it should be very intuitive and easy to use. The API layer and the additional language bindings will be part of the normal distro.

22-09-2008, 01:10 AM
Did you use any automated process to make the flat (no OOP) layer? I'm asking because I was thinking of doing the same thing for my engine, to allow usage from C programs. i was thinking of using PasDoc parser for this, and writing a specialized generator that outputs "flat" Pascal code (I'm a devel of PasDoc, so I know the necessary internals..).

Never really got to implementing it, but it would be nice if others would find it useful too (or if others already implemented something similar :) ).

22-09-2008, 02:34 AM
I did it manually, and what a pain it was. This time around I finally took advantage of Delphi's macro recorder (interesting how all these years I never used that thing). It helped with some of the more boring repetitive tasks. In the end it still took a whole day. If you have a tool to automate this stuff I would for sure use it.

While I was cut 'n pasting I had a few random thoughts about how nice it would be to have a tool to help out and in good programmer fashion got slightly side tracked into what it would take for it's implementation. It quickly become complicated so I continued with my cut 'n paste operation, LOL.

I've contemplated this over the years but never really got anything working properly. I read somewhere of a guy generating Delphi binding for his physics library using Perl. Don't know Perl and no time to even consider building something that is not implemented in Pascal. If you do have a tool or planning on making a tool lets talk. This is something that would come in handy.

02-10-2008, 04:55 AM
We've added additional compiler support (http://jarrodavisoftware.com/temp/pgsdk_v2.0.0.990.zip) (currently being tested). Now you have full OOP support for D2009, D2007 and D2006 (including Turbo Delphi). Previous version has support via the API layer. Depending on the compiler it will dynamically load either PyroGine2D06.dll or PyroGine2D09.dll.

06-10-2008, 08:57 PM
Jarrod Davisび「 Software is pleased to announce the latest beta (http://jarrodavisoftware.com/products/downloads/download/13-pgsdk_v2-0-0-993.html) release of PyroGineび「 SDK (http://jarrodavisoftware.com/component/content/article/40-gamedev/55-pyrogine-sdk.html), an advanced 2D game application framework for PC's running Microsoft Windowsャニ and Direct3D with 3D hardware.

New in this release:
* Fixed a problem loading fonts directly from file
* Added full OOP support for D2006-2009
* Added a procedural API layer (support most of pgsdk) compatible with all 32bit versions of Delphi.

12-11-2008, 04:47 PM
Version 2.0.1 (http://jarrodavisoftware.com/component/content/article/1-latest-news/113-pyrogine-sdk-201-stable-released.html) released. Now has better support for component based development (http://jarrodavisoftware.com/news/blogs/Component-Based-Development.html).

14-11-2008, 01:06 AM
Jarrod Davis Software (http://jarrodavisoftware.com/company/about-us.html) is pleased to announce that we now offer shared web hosting (http://jarrodavisoftware.com/component/content/article/58-webdev/117-web-hosting.html) for customers of small personal or business websites who need to host only one or a few domains. We offer one simple plan featuring all the technologies necessary to create the web site you desire. PyroGineび「 SDK (http://jarrodavisoftware.com/component/content/article/40-gamedev/55-pyrogine-sdk.html) licensees now get a free 1 year web hosting account.

31-12-2008, 12:53 AM
Small update to add support for C/C++ compilers. Just add PyroApi.h and PyroApi.cpp to your project.