Computer Game Development Architecture that truly is cross-platform

[gigya height=”360″ src=”https://d3mlfyygrfdi2i.cloudfront.net/321f/kickplayer.swf?” flashvars=”allowfullscreen=true&autostart=false&backcolor=000000&controlbar=over&file=https%3A%2F%2Fd2pq0u4uni88oo.cloudfront.net%2Fprojects%2F703679%2Fvideo-303069-h264_high.mp4&image=https%3A%2F%2Fs3.amazonaws.com%2Fksr%2Fprojects%2F703679%2Fphoto-full.jpg&project_creators=An+Open+Software+project+by+Asylum+7+Studios%2C+LLC.&project_title=Cgda%3A+Cross+Platform+Game+Development+API+%26+Framework&project_url=http%3A%2F%2Fwww.kickstarter.com%2Fprojects%2Fasylum7%2Fcgda-cross-platform-game-development-api-and-frame&screencolor=000000&skin=https%3A%2F%2Fd3mlfyygrfdi2i.cloudfront.net%2Fcc3a%2Fkickskin.swf&wmode=opaque” width=”480″ ]

Asylum 7 Studios is currently developing Cgda, a #new #game #development #framework & API.  Cgda is a 100% native code #API for game development, written in C++.  The primary goal of the project is to create an easy-to-use programming platform to simplify the game development process, much in the same way XNA served to simplify development for #indie #developers and hobbyists working in C#.

In the winter of 2012, Asylum 7 Studios began development of a next-gen space combat simulator, Expanse: First Contact.  The original project was to be written in C# using XNA as the primary game development API.  As the project progressed, it became clear that XNA was not properly suited to common needs. The XNA Framework, which was written for DirectX 9, lacking support for newer features, such as geometry and tessellation shaders, and was only well supported on Windows and XBox 360.  Also, Microsoft has not updated XNA in quite some time, and the project seems to be either dead or in limbo.

The open source community developed Monogame to attempt to bring XNA to other platforms, and they did so quite nicely.  However, Monogame still was not the right fit for us, as it has dependencies on either OpenTK or SharpDX depending on your target platform.  While the dependency on SharpDX was not a problem at first, OpenTK’s development had seemed to stagnate quite a bit as well.

Around that time, Asylum 7 Studios were toying with the idea of writing their game in C++ using <b>OpenGL </b>directly. In order to avoid dealing with as many stagnant dependencies as possible, writing the libraries needed from scratch were essential.

Cgda is similar in design to the XNA framework, however, it uses OpenGL for graphics and OpenAL for audio.  This allows games written with Cgda to be easily ported across various gaming platforms, helping to deliver your games not only to Windows users, but Mac users, a Linux users. With plans for gaming consoles and mobile devices later.
The framework includes a Content Pipeline to help manage assets, as well as support for newer advances in GPU acceleration, including Geometry shaders, Tessellation, and Compute shaders.  The Content Pipeline has built-in support for loading many basic file formats, including OBJ, PNG, BMP, TGA, GIF, JPG, with even more planned (FBX, Ogg, MP3).
Also, there are ContentManager’s serialization helpers that support serializing objects to and from XML, JSON, and raw binary formats. With plans to implement an audio authoring toolkit similar to XACT, making sound design easier.
As well as making Cgda freely available, both for Open Source, and Closed Source applications, and optionally, under an open license.  This would allow you to use Cgda as you see fit, creating your own masterpiece.
  • Written in C++11, using 100% native code
  • OpenGL and OpenAL backends for graphics and audio
  • True cross-platform support, Windows, OSX, Linux, and more
  • Content Pipeline for asset management
  • XACT-style audio authoring
  • Input library with support for keyboards, mice, and various gamepads
  • Networking stack for easy client/server development
  • Planned support for an optional steamworks extension to support deployment of your games on Steam (pending approval, greenlight, etc.)
  • Point sprite system using compute shaders for particle physics
  • Open Source licensing available.

Cgda is also cross-platform.  Primary development is being shared between Windows and Linux (for the newer OpenGL feature sets), but the API itself will run on OSX, FreeBSD, and nearly any other platform which supports OpenGL 3.2 or better.

Having completed several sections of the API, however much more work remains to be done.  The systems currently under development are as follows:

  • VertexBuffer classes
  • Matrix / Vector / Quaternion math library
  • SpriteBatch implementation
  • ContentManager / Pipeline
  • Basic input subsystem
  • 3D Model classes and transforms
  • Texturing,
  • GLSL-based per-fragment (per-pixel) lighting BasicEffect implementation
  • Game class and message pump
  • GraphicsDevice abstractions

More of the API is being completed every day,  with new videos posted on Youtube showing the state of the project throughout the course of this campaign. And will continue to do so long after its conclusion.

So, building a fully-featured API is a huge undertaking, something that generally requires months or years of development time for a large team.  Asylum 7 Studios are a small family-owned company with two full-time developers on staff. This requires your support to fund Cgda to the standards expected, making sure the full release will be available to the public, and funding the development time.

Having launched a Cgda Kickstarter project with a modest funding goal of only $2500. This is a game development API that features an XNA-like public/external interface, but is written in native C++, and it supports every major operating system.

”linux-game-gaming-gamer-news” title=

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: