Skip to content

hayate891/ultraviolet

 
 

Repository files navigation

Builds

Branch Integration Release
master Build Status Build Status
develop Build Status Build Status

What is Ultraviolet?

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, Linux, macOS, iOS, 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

    Coming in a future release.

  • 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.

The Ultraviolet Framework's source code is available on GitHub. If you're developing on Windows, and you just want to get started making games, you can use the installer provided as part of the latest release. It will ensure that you have the necessary DLLs and install Visual Studio templates for developing Ultraviolet applications.

Requirements

Building Ultraviolet requires Visual Studio 2015 or later, or an equivalent version of Mono.

Building the mobile projects requires the appropriate Xamarin tools to be installed.

The following platforms are supported for building the Framework:

  • Windows
  • Linux (Ubuntu)
  • Android
  • macOS
  • iOS

Please file an issue if you encounter any difficulty building on any of these platforms. Linux distributions other than Ubuntu should work provided that they can run Mono, but only Ubuntu has been thoroughly tested.

Building

On Windows

From the Developer Command Prompt for VS2015, navigate to the root of the Ultraviolet source tree and run the following command:

msbuild Ultraviolet.proj

This will build the Desktop version of the Framework assemblies and copy them into the Ultraviolet Framework Samples/Dependencies directory so that the sample projects can be built.

On Unix

With Mono installed, navigate to the root of the Ultraviolet source tree and run the following command:

xbuild Ultraviolet.proj

This will build the Desktop version of the Framework assemblies, plus the macOS compatibility shim if you are building on a Mac, and copy them into the Ultraviolet Framework Samples/Dependencies directory so that the sample projects can be built.

Mobile Platforms

Building Ultraviolet for iOS and Android requires that Xamarin be installed. As with the desktop version of the Framework, you need to run either msbuild or xbuild on Ultraviolet.proj, but you must also explicitly specify that you want to use one of the mobile build targets, i.e.:

msbuild Ultraviolet.proj /t:BuildAndroid

or

msbuild Ultraviolet.proj /t:BuildiOS

Building the iOS version of the Framework should only be done on a Mac. While Xamarin theoretically supports building iOS assemblies remotely on Windows using a Mac as a server, in practice this doesn't work reliably (at least not for Ultraviolet).

Sample Projects

The sample projects in the Ultraviolet Framework Samples directory cannot be built until the Framework itself has been built and its output files have been copied into the Ultraviolet Framework Samples/Dependencies directory. Once that has been done, simply run msbuild or xbuild on the appropriate solution (.sln) file in the samples directory.

Known Issues

  • The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\CodeSharing\Microsoft.CodeSharing.CSharp.targets" was not found...

    This was an issue with the MSBuild targets provided by the RTM version of Visual Studio 2015. This issue has been fixed in Visual Studio 2015 Update 1; please make sure you're using the latest update.

Documentation

Reference Documentation

Overview

Sample Projects

Advanced Topics

Project Road Map

What follows is a tentative road map for the next several major revisions of Ultraviolet. This list is subject to change at any time. Items which have been struck through are basically complete, though they may not yet be part of an official release.

  • Ultraviolet 1.4
    • Graphics
      • Improved 3D rendering support
      • Model class or equivalent
      • Support for model instancing
      • Support for skeletal animation
    • Signed distance field fonts
  • Ultraviolet 1.3
    • UI
      • Continued work on UPF
  • Ultraviolet 1.2
    • UI
      • Ultraviolet Presentation Foundation (UPF)
  • Ultraviolet 1.1
    • Miscellaneous
      • Android support
      • Performance improvements
      • Design assembly (i.e. TypeConverter implementations) for Nucleus
      • Design assembly (i.e. TypeConverter implementations) for Ultraviolet
    • Input
      • New input device: GamePad
      • New input device: TouchPad
    • Graphics
      • Support for Direct State Access (DSA)
      • Better support for East Asian character sets in SpriteFont
  • Ultraviolet 1.0
    • Miscellaneous
      • First release

About

The Ultraviolet Framework is a .NET game development framework written in C#.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE.md
Unknown
LICENSE-MORE.md

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.5%
  • Other 0.5%