AgateLib - the Awesome Game And Tool Engine Library - is a free, open source, cross platform .NET library for 2D game development. It supports multiple backends for hardware accelerated rendering and playing audio through a plug-in architecture. Best of all it's easy to use!
AgateLib
Download

News

Spam

Spammers have been hitting the website fairly hard lately, so I have installed some new spam controls. As always with spam control, they might block legitimate posts. If you are having trouble making legitimate posts, either send me a private message on the site or drop me an email at admin at agatelib dot org.

Shaders and Framebuffers

Well, HLSL is no longer supported. At least, writing your own custom HLSL shaders isn't supported. The reason is it is too difficult to create an API that can be supported by OpenGL as well as Direct3D, especially considering the miserable support for OpenGL 3 outside of nVidia and ATI on Windows and Linux. Instead, shader support has been redesigned to use built-in shaders, which may or may not be implemented with fixed functionality. This allows for OpenGL and Direct3D to have the same level of support in AgateLib, and also cleans up considerably AgateLib internals.

HLSL support and goodbye to MDX.

I have merged the branch where development on AgateSDX was occuring, which eliminates the dependency on the deprecated and annoying Managed DirectX 1.1 library. Now DirectX support is obtained through SlimDX, which is actively supported by the community. Also, this merge brings support for vertex buffers and shaders, so it's possible to do 3D drawing with AgateLib. Shaders also work with the 2D drawing capabilities with AgateLib, so you can use them to create interesting effects for your existing 2D projects.

Project management / issue tracking added to agatelib.org

I have installed Drupal 6's project module. It's a development snapshot, and still not quite ready for public consumption, so it is a little rough around the edges in places. It should be sufficient for issue tracking and feature requests, however. I have created three projects:

To submit issues to any of these projects, go to the project page, and the issues block will appear on the left side. Search for issues to check and make sure your issue isn't a duplicate, and then there will be a link to create a new issue if you don't find a duplicate. You can also do this by clicking the "create content" content link in the navigation block, and then choose "issue."

New Text Layout Engine

I have merged into the trunk the fonts branch where I was developing a new text layout engine. This provides an overload to FontSurface.DrawText which takes arguments like (string formatString, params object[] args), in a manner similar to string.Format, Console.WriteLine, or Debug.Print. This adds some special AgateLib specific features like being able to do:

  1. Surface swordIcon;
  2. FontSurface font;
  3. font.DrawText(0,0,"You found {0}Excalibur!", swordIcon);

AgateLib 0.3.1

AgateLib 0.3.1 is available.

This version removed features deprecated in 0.3.0, and adds a ZipFileProvider class. Online documentation is available here.

New Theme

I've created a new theme for the website. There are a few issues in a few browsers but it all seems to work rather well in FireFox, Safari and Chrome. Drop down menus don't work at all in Internet Explorer (big surprise), and the highlighting of dropdown menus in Opera doesn't work right. If anyone has any suggestions on how to fix that, they are welcome. Also any other comments, positive or negative, are welcome.

AgateLib 0.3.0

The latest release of AgateLib is available on SourceForge. Get it here.

Preview of AgateLib 0.3.0

Ok, I have uploaded an SVN snapshot of the next version of AgateLib here. The API is at the point where it is mostly stable, but there is still bug testing that needs to be done and there may still be some API changes. These things will go faster and be more complete if others can help out with the testing.

Edit: 0.3.0 has been released, so the preview download has been removed.

Documentation: http://www.agatelib.org/docs/docs-0.3.0/index.html

Archive File Support

I have refactored file opening in AgateLib. Surface, Sounds, etc. can be loaded from Streams now. This has been in there for a while, but now there is a class AgateLib.AgateFileProvider which is used internally to open Streams when creating objects and passing a filename. For example, the Surface(string) constructor looks in AgateFileProvider.Images to open image files. The reason for this approach is that AgateFileProvider.Images is a list of IFileProvider objects.

Syndicate content