greenboxal's picture

Fimbulvetr Game Engine

Project Images

FimbulvetrEngine is an XNA-inspired game engine based on OpenTK. It provides high level Texture, Shader and VBOs management classes with a nice plugin system.
It also provides a FileSystem manager to implement custom file systems(like Zip) and a ContentManager to provide intelligent GC-aware content caching.

The engine supports background loading of resources(OpenGL context bound - like Textures and VBOs - resources are scheduled to be loaded in the main thread).
Also the resource management is GC-friendly so you don't have to manually dispose your Textures and other objects, you can just wait GC cleanup them.

GitHub Repository: FimbulvetrEngine
First game: FimbulvetrClient(a Ragnarök Online client)

FileSystem example:

    public class GrfFileSystem : IFileSystem
    {
        public Grf Grf { get; private set; }
 
        public string Type
        {
            get { return "Grf"; }
        }
 
        public GrfFileSystem(string filename)
        {
            Grf = new Grf(filename);
        }
 
        public bool Load()
        {
            try
            {
                Grf.Open();
            }
            catch
            {
                return false;
            }
 
            return true;
        }
 
        public Stream OpenStream(string name)
        {
            GrfFile file = (GrfFile)Grf.Files[name];
 
            return file != null ? new MemoryStream(Grf.GetDataFromFile(file)) : null;
        }
 
        public void Close()
        {
            Grf.Close();
        }
    }

ContentManager usage:

Texture2D texture = ContentManager.Instance.Load<Texture2D>("data/dog.png", loadAsBackground);

Releases