{"id":19700446,"url":"https://github.com/ultravioletframework/ultraviolet","last_synced_at":"2025-05-15T10:02:18.647Z","repository":{"id":22009090,"uuid":"25334511","full_name":"UltravioletFramework/ultraviolet","owner":"UltravioletFramework","description":"The Ultraviolet Framework is a .NET game development framework written in C#.","archived":false,"fork":false,"pushed_at":"2023-08-23T23:56:21.000Z","size":185498,"stargazers_count":546,"open_issues_count":3,"forks_count":50,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-05-13T14:21:49.121Z","etag":null,"topics":["c-sharp","fna","game-development","game-engine-framework","graphics","monogame","xna"],"latest_commit_sha":null,"homepage":"https://github.com/UltravioletFramework/ultraviolet/wiki","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UltravioletFramework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MORE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-10-17T02:47:56.000Z","updated_at":"2025-05-04T02:57:19.000Z","dependencies_parsed_at":"2024-06-18T15:52:04.843Z","dependency_job_id":null,"html_url":"https://github.com/UltravioletFramework/ultraviolet","commit_stats":null,"previous_names":["tlgkccampbell/ultraviolet"],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltravioletFramework%2Fultraviolet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltravioletFramework%2Fultraviolet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltravioletFramework%2Fultraviolet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltravioletFramework%2Fultraviolet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UltravioletFramework","download_url":"https://codeload.github.com/UltravioletFramework/ultraviolet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319716,"owners_count":22051072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","fna","game-development","game-engine-framework","graphics","monogame","xna"],"created_at":"2024-11-11T21:06:02.617Z","updated_at":"2025-05-15T10:02:12.972Z","avatar_url":"https://github.com/UltravioletFramework.png","language":"C#","readme":"_For questions and discussion, check out our [Discord](https://discord.gg/ehQMumHJ)._\n\nWhat is Ultraviolet?\n====================\n\n[![Join the chat at https://discord.gg/ehQMumHJ]](https://discord.gg/ehQMumHJ)\n\nUltraviolet is a cross-platform, .NET game development framework written in C# and released under the [MIT License](http://opensource.org/licenses/MIT). 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](http://www.monogame.net/) and similar projects, Ultraviolet is not intended to be a drop-in replacement for XNA. Its current implementation is written on top of [SDL2](https://www.libsdl.org/) and [OpenGL](https://www.opengl.org/), but its modular design makes it (relatively) easy to re-implement using other technologies if it becomes necessary to do so in the future.\n\nAt 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](https://github.com/UltravioletFramework/ultraviolet/issues).\n\nSome core features of the Ultraviolet Framework:\n\n * __A runtime content pipeline__\n   \n   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.\n \n * __High-level 2D rendering abstractions__\n   \n   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.\n \n * __High-level 3D rendering abstractions__\n   \n   Built-in support for [glTF 2.0 models](https://www.khronos.org/gltf/) 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.\n \n * __Low-level rendering functionality__\n   \n   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.\n \n * __A powerful text formatting and layout engine__\n   \n   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.\n \n * __XML-driven object loader for easy content creation__\n   \n   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\u0026mdash;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.\n\nThe Ultraviolet Framework's source code is [available on GitHub](https://github.com/UltravioletFramework/ultraviolet).\n\nGetting Started\n===============\n\nIf you don't want to build Ultraviolet yourself, official packages are available through [NuGet](https://www.nuget.org/packages?q=ultraviolet).\n\nThe wiki contains a [quick start guide](https://github.com/UltravioletFramework/ultraviolet/wiki/Getting-Started) for development using .NET 6.\n\nA [dedicated repository](https://github.com/UltravioletFramework/ultraviolet-samples) contains a number of sample projects which demonstrate various features of the Framework.\n\nRequirements\n============\n\nUltraviolet can be used with any version of .NET which supports .NET Standard 2.1.\n\nBuilding Ultraviolet requires .NET 6 SDK.\n\nBuilding the mobile projects requires the appropriate Xamarin tools to be installed.\n\nThe following platforms are supported for building the Framework:\n* Windows\n* Linux (Ubuntu)\n* Android\n* macOS\n\nPlease 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.\n\nBuilding\n========\n\n__Desktop Platforms__\n\nThe `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.\n\n__Mobile Platforms__\n\nBuilding 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.:\n\n    msbuild Ultraviolet.proj /t:BuildAndroid\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultravioletframework%2Fultraviolet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultravioletframework%2Fultraviolet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultravioletframework%2Fultraviolet/lists"}