Ultraviolet.OpenGL 2023.8.0.3

dotnet add package Ultraviolet.OpenGL --version 2023.8.0.3                
NuGet\Install-Package Ultraviolet.OpenGL -Version 2023.8.0.3                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ultraviolet.OpenGL" Version="2023.8.0.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ultraviolet.OpenGL --version 2023.8.0.3                
#r "nuget: Ultraviolet.OpenGL, 2023.8.0.3"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Ultraviolet.OpenGL as a Cake Addin
#addin nuget:?package=Ultraviolet.OpenGL&version=2023.8.0.3

// Install Ultraviolet.OpenGL as a Cake Tool
#tool nuget:?package=Ultraviolet.OpenGL&version=2023.8.0.3                

For questions and discussion, check out our Discord.

What is Ultraviolet?

![Join the chat at https://discord.gg/ehQMumHJ]

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, and macOS using .NET 6, as well as Android through Xamarin. Support for iOS is no longer provided due to a lack of the requisite development hardware. If anyone wants to take responsibility for providing this support, please Create an issue.

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.

The Ultraviolet Framework's source code is available on GitHub.

Getting Started

If you don't want to build Ultraviolet yourself, official packages are available through NuGet.

The wiki contains a quick start guide for development using .NET 6.

A dedicated repository contains a number of sample projects which demonstrate various features of the Framework.

Requirements

Ultraviolet can be used with any version of .NET which supports .NET Standard 2.1.

Building Ultraviolet requires .NET 6 SDK.

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

Please file an issue if you encounter any difficulty building on any of these platforms. Linux distributions other than Ubuntu should work, assuming that they can run .NET 6 and you can provide appropriate versions of the native dependencies, but only Ubuntu has been thoroughly tested.

Building

Desktop Platforms

The Sources folder contains several solution files for the various platforms which Ultraviolet supports. Alternatively, you can run msbuild Ultraviolet.proj from the command line in the repository's root directory; this will automatically select and build the correct solution for your current platform, and additionally will copy the build results into a single Binaries folder.

Mobile Platforms

Building Ultraviolet for Android requires that Xamarin be installed. As with the desktop version of the Framework, you can either build the appropriate solution file or Ultraviolet.proj, but in the latter case you must also explicitly specify that you want to use one of the mobile build targets, i.e.:

msbuild Ultraviolet.proj /t:BuildAndroid
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Ultraviolet.OpenGL:

Package Downloads
Ultraviolet.Game.Desktop

The Ultraviolet Framework is a .NET game development framework written in C#. This package contains all of the components needed to create a simple game for the Windows and Linux platforms. Quick start guides for development using the Ultraviolet Framework are available on the project's wiki at https://github.com/tlgkccampbell/ultraviolet/wiki

Ultraviolet.Game.NETCore

The Ultraviolet Framework is a .NET game development framework written in C#. This package contains all of the components needed to create a simple game for the .NET Core 2.1 platform. Quick start guides for development using the Ultraviolet Framework are available on the project's wiki at https://github.com/tlgkccampbell/ultraviolet/wiki

Ultraviolet.Game.iOS

The Ultraviolet Framework is a .NET game development framework written in C#. This package contains all of the components needed to create a simple game for the iOS platform using Xamarin.iOS. Quick start guides for development using the Ultraviolet Framework are available on the project's wiki at https://github.com/tlgkccampbell/ultraviolet/wiki

Ultraviolet.Game.Android

The Ultraviolet Framework is a .NET game development framework written in C#. This package contains all of the components needed to create a simple game for the Android platform using Xamarin.Android. Quick start guides for development using the Ultraviolet Framework are available on the project's wiki at https://github.com/tlgkccampbell/ultraviolet/wiki

Ultraviolet.Game.Windows.Forms

The Ultraviolet Framework is a .NET game development framework written in C#. This package contains all of the components needed to create a simple game for the Windows platform that is embedded within a Windows Forms application. Quick start guides for development using the Ultraviolet Framework are available on the project's wiki at https://github.com/tlgkccampbell/ultraviolet/wiki

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2023.8.0.3 330 8/19/2023
2023.8.0.1 184 8/10/2023
2023.7.0.11 148 7/31/2023
2023.7.0.10 152 7/31/2023
2023.7.0.5 174 7/29/2023
2023.7.0.3 164 7/29/2023
2023.7.0.2 159 7/29/2023
2023.7.0.1 126 7/29/2023
2021.5.0.4569 681 5/8/2021
2021.5.0.4566 430 5/7/2021
2021.5.0.4563 506 5/4/2021
2021.5.0.4560 358 5/4/2021
2021.5.0.4557 373 5/4/2021
2021.5.0.4553 357 5/4/2021
2021.2.0.4548 383 2/20/2021
2020.12.0.4543 587 12/13/2020
2020.12.0.4516 447 12/10/2020
2020.12.0.4513 465 12/4/2020
2020.12.0.4509 521 12/3/2020
2020.11.0.4500 483 11/9/2020
2020.10.0.4488 553 10/10/2020
2020.9.0.4451 557 9/29/2020
2020.9.0.4388 530 9/3/2020
2020.9.0.4380 481 9/3/2020
2020.9.0.4377 513 9/3/2020
2020.9.0.4371 485 9/3/2020
2020.7.0.4298 603 7/10/2020
2020.4.0.4287 584 4/18/2020
2020.4.0.4278 569 4/16/2020
2020.4.0.4271 493 4/15/2020
2020.4.0.4267 473 4/14/2020
2020.4.0.4263 478 4/14/2020
2020.2.0.4055 2,767 2/4/2020
2019.9.0.4045 2,770 9/28/2019
2019.7.0.4030 2,625 7/19/2019
2019.6.0.4011 2,395 6/28/2019
2019.6.0.4004 2,813 6/24/2019
2019.6.0.4002 587 6/24/2019
2019.5.0.3923 2,639 5/31/2019
2019.3.0.3907 2,749 3/24/2019
2019.3.0.3902 2,752 3/16/2019
2019.3.0.3898 2,685 3/7/2019
2019.2.0.3893 2,764 2/21/2019
2019.2.0.3890 2,561 2/20/2019
2019.1.0.3888 2,655 2/1/2019
2018.12.0.3869 2,975 1/1/2019
2018.10.0.3805 2,726 10/29/2018
2018.10.0.3802 738 10/29/2018
2018.10.0.3801 770 10/29/2018
2018.8.0.3710 2,606 8/31/2018
2018.7.0.3669 1,743 8/1/2018
2018.5.0.3633 1,925 5/31/2018
2018.5.0.3604 1,874 5/7/2018
2018.5.0.3601 1,811 5/7/2018
2018.5.0.3594 1,772 5/4/2018
2018.5.0.3578 1,754 5/3/2018
2018.4.0.3555 1,985 4/28/2018
2018.4.0.3554 1,119 4/28/2018
2018.3.0.3429 1,895 3/30/2018
2018.3.0.3425 2,160 3/30/2018
2018.2.0.3374 2,225 2/25/2018
2018.2.0.3367 2,157 2/22/2018
2018.1.0.3301 2,092 1/27/2018
2017.12.0.3131 1,869 12/26/2017