-
Notifications
You must be signed in to change notification settings - Fork 47
Home
This wiki provides a conceptual overview of the Ultraviolet Framework.
Ultraviolet is a cross-platform, .NET game development framework written in C# and released under the MIT License. It is heavily inspired by Microsoft's XNA Framework, and is intended to be easy for XNA developers to quickly pick up and start using. However, unlike MonoGame and similar projects, Ultraviolet is not intended to be a drop-in replacement for XNA. Its current implementation is written on top of SDL2 and OpenGL, but its modular design makes it (relatively) easy to re-implement using other technologies if it becomes necessary to do so in the future.
At present, Ultraviolet officially supports Windows, OS X, Linux, and Android.
Some core features of the Ultraviolet Framework:
-
A runtime content pipeline: Easily load game assets using Ultraviolet's content pipeline. Unlike XNA, Ultraviolet's content pipeline operates at runtime, meaning no special Visual Studio projects are required to make it work. Content preprocessing is supported in order to increase efficiency and decrease load times.
-
High-level 2D rendering abstractions: Familiar classes like SpriteBatch allow you to efficiently render large numbers of 2D sprites. Ultraviolet includes built-in support for texture atlases and XML-driven sprite sheets.
-
High-level 3D rendering abstractions: Built-in support for glTF 2.0 models and skinned animation makes it easy to get started with 3D rendering. Alternatively, you can write your own GLSL shader programs to take full control of the rendering process, and support for additional model types can be provided by extending the runtime content pipeline.
-
Low-level rendering functionality: In addition to the abstractions described above, Ultraviolet's graphics subsystem allows you to push polygons directly to the graphics device, giving you complete control.
-
A powerful text formatting and layout engine: Do more than draw plain strings of text. Ultraviolet's text formatting engine allows you to change your text's font, style, and color on the fly. The layout engine allows you to easily position and align text wherever you need it.
-
XML-driven object loader for easy content creation: Ultraviolet's object loader allows you to easily create complicated hierarchies of objects from simple XML files. This is more than just an XML serializer—because it is integrated with Ultraviolet, it has direct knowledge of your game's content assets and object lists, making it possible to reference them in a simple, flexible, and readable way.
You can get started using Ultraviolet by adding the assemblies to your project with NuGet.
- Contributing
- Dependencies
- Basic Concepts
- First Look- Platform
- First Look- Graphics
- First Look- Audio
- First Look- Input
- First Look- Content
- First Look- UI
- sRGB Color
- Customizing SpriteBatch
- Creating Fonts
- Creating Effects
- Creating Glyph Shaders
- FreeType2 Fonts
- Rendering 3D Models