mirror of
https://github.com/AlexMacocian/MonoGame.Extended.git
synced 2026-07-15 15:09:29 +00:00
Cleanup (#862)
* Removed Roadmap The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis. This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only. * Added new note at top of readme * updated information for installing nuget * Made using content pipeline extensions a section and not a quote * Removed information about MyGet feed * Removed patreon from readme * Update License * renamed master branch to main * Remove community forum link MonoGame is closing the community forums in favor of discord and github discussions * Update workflows
This commit is contained in:
committed by
GitHub
parent
0a17af4829
commit
9a7ce46635
@@ -3,44 +3,42 @@
|
|||||||
### Clones the `develop` branch and performs a build, test, then pack of the
|
### Clones the `develop` branch and performs a build, test, then pack of the
|
||||||
### Monogame.Extended source code. Once the build job is finished, the deploy
|
### Monogame.Extended source code. Once the build job is finished, the deploy
|
||||||
### job will upload the nupkg files created to the MonoGame.Extended GitHub
|
### job will upload the nupkg files created to the MonoGame.Extended GitHub
|
||||||
### and NuGet sources.
|
|
||||||
###
|
###
|
||||||
### - Only runs on a push to the `develop` branch
|
### - Only runs on a push to the `develop` branch
|
||||||
### - Sets the IS_PRERELASE and BUILD_NUMBER environment variables which are
|
|
||||||
### picked up in the Directory.Build.props file to set the version suffix
|
|
||||||
### so the packages are build as prerelease packages.
|
|
||||||
################################################################################
|
################################################################################
|
||||||
name: "Build MonoGame.Extended (Develop)"
|
name: "Create Release"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
workflow_dispatch:
|
||||||
branches: develop
|
inputs:
|
||||||
|
prerelease:
|
||||||
|
description: 'Is this a prerelease?'
|
||||||
|
required: true
|
||||||
|
default: 'true'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: "Build MonoGame.Extended"
|
name: "Build MonoGame.Extended"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
IS_PRERELEASE: true
|
IS_PRERELEASE: ${{ inputs.prerelease == 'true' }}
|
||||||
BUILD_NUMBER: ${{ github.run_number }}
|
BUILD_NUMBER: ${{ inputs.prerelease == 'true' && github.run_number || '' }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone Repository
|
- name: Clone Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
ref: develop
|
|
||||||
|
|
||||||
- name: Setup DotNet
|
- name: Setup Dotnet
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: 6.0.x
|
dotnet-version: 6.0.x
|
||||||
|
|
||||||
- name: Test MonoGame.Extended
|
|
||||||
run: dotnet test --nologo --verbosity minimal --configuration Release
|
|
||||||
|
|
||||||
- name: Build MonoGame.Extended
|
- name: Build MonoGame.Extended
|
||||||
run: dotnet build --nologo --verbosity minimal --configuration Release
|
run: dotnet build --nologo --verbosity minimal --configuration Release
|
||||||
|
|
||||||
|
- name: Test MonoGame.Extended
|
||||||
|
run: dotnet test --nologo --verbosity minimal --configuration Release
|
||||||
|
|
||||||
- name: Pack MonoGame.Extended
|
- name: Pack MonoGame.Extended
|
||||||
run: dotnet pack --nologo --verbosity minimal --configuration Release
|
run: dotnet pack --nologo --verbosity minimal --configuration Release
|
||||||
|
|
||||||
@@ -50,25 +48,27 @@ jobs:
|
|||||||
name: build-artifacts
|
name: build-artifacts
|
||||||
path: ./.artifacts/source/package/release/*.nupkg
|
path: ./.artifacts/source/package/release/*.nupkg
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
name: "Deploy NuGets"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [ build ]
|
||||||
|
permissions:
|
||||||
|
packages: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
deploy-job:
|
steps:
|
||||||
name: "Deploy Nugets"
|
- name: "Download Artifacts"
|
||||||
runs-on: ubuntu-latest
|
uses: actions/download-artifact@v4
|
||||||
needs: [build]
|
with:
|
||||||
permissions:
|
name: build-artifacts
|
||||||
packages: write
|
path: ./.artifacts
|
||||||
contents: write
|
|
||||||
|
|
||||||
steps:
|
- name: "Push Packages"
|
||||||
- name: "Download Artifacts For Deploy"
|
env:
|
||||||
uses: actions/download-artifact@v4
|
SOURCE_URL: ${{ inputs.prerelease == 'true' && 'https://nuget.pkg.github.com/craftworkgames/index.json' || 'https://api.nuget.org/v3/index.json' }}
|
||||||
with:
|
API_KEY: ${{ inputs.prerelease == 'true' && secrets.GITHUB_TOKEN || secrets.NUGET_ACCESS_TOKEN }}
|
||||||
name: build-artifacts
|
run: |
|
||||||
path: ./.artifacts
|
PACKAGES=(".artifacts/*.nupkg")
|
||||||
|
for PACKAGE in "${PACKAGES[@]}"; do
|
||||||
- name: "Push Packages"
|
dotnet nuget push "$PACKAGE" --source "$SOURCE_URL" --skip-duplicate --api-key "$API_KEY"
|
||||||
run: |
|
done
|
||||||
PACKAGES=(".artifacts/*.nupkg")
|
|
||||||
for PACKAGE in "${PACKAGES[@]}"; do
|
|
||||||
dotnet nuget push "$PACKAGE" --source "https://api.nuget.org/v3/index.json" --skip-duplicate --api-key "${{ secrets.NUGET_ACCESS_TOKEN }}"
|
|
||||||
done
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
################################################################################
|
|
||||||
### Build MonoGame.Extended (Release)
|
|
||||||
### Clones the `main` branch and performs a build, test, then pack of the
|
|
||||||
### Monogame.Extended source code. Once the build job is finished, the deploy
|
|
||||||
### job will upload the nupkg files created to the MonoGame.Extended NuGet
|
|
||||||
### source.
|
|
||||||
###
|
|
||||||
### - Only runs when there is a new version release tag created.
|
|
||||||
################################################################################
|
|
||||||
name: "Build MonoGame.Extended (Release)"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- 'v*'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: "Build MonoGame.Extended"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Clone Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
|
|
||||||
- name: Setup DotNet
|
|
||||||
uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: 6.0.x
|
|
||||||
|
|
||||||
- name: Test MonoGame.Extended
|
|
||||||
run: dotnet test --nologo --verbosity minimal --configuration Release
|
|
||||||
|
|
||||||
- name: Build MonoGame.Extended
|
|
||||||
run: dotnet build --nologo --verbosity minimal --configuration Release
|
|
||||||
|
|
||||||
- name: Pack MonoGame.Extended
|
|
||||||
run: dotnet pack --nologo --verbosity minimal --configuration Release
|
|
||||||
|
|
||||||
- name: Upload Artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-artifacts
|
|
||||||
path: ./.artifacts/source/package/release/*.nupkg
|
|
||||||
|
|
||||||
|
|
||||||
deploy-job:
|
|
||||||
name: "Deploy Nugets"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [build]
|
|
||||||
permissions:
|
|
||||||
packages: write
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: "Download Artifacts For Deploy"
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-artifacts
|
|
||||||
path: ./.artifacts
|
|
||||||
|
|
||||||
- name: "Push Packages"
|
|
||||||
run: |
|
|
||||||
PACKAGES=(".artifacts/*.nupkg")
|
|
||||||
for PACKAGE in "${PACKAGES[@]}"; do
|
|
||||||
dotnet nuget push "$PACKAGE" --source "github" --skip-duplicate --api-key "${{ env.GITHUB_TOKEN }}"
|
|
||||||
dotnet nuget push "$PACKAGE" --source "https://api.nuget.org/v3/index.json" --skip-duplicate --api-key "${{ secrets.NUGET_ACCESS_TOKEN }}"
|
|
||||||
done
|
|
||||||
+5
-5
@@ -9,7 +9,7 @@ Please read this document completely before contributing.
|
|||||||
|
|
||||||
## How To Contribute
|
## How To Contribute
|
||||||
|
|
||||||
MonoGame.Extended has a `master` branch for stable releases and a `develop` branch for daily development. New features and fixes are always submitted to the `develop` branch.
|
MonoGame.Extended has a `main` branch for stable releases and a `develop` branch for daily development. New features and fixes are always submitted to the `develop` branch.
|
||||||
|
|
||||||
If you are looking for ways to help you should start by looking at the [Open Issues](https://github.com/craftworkgames/MonoGame.Extended/issues). Please let us know if you plan to work on an issue so that others are not duplicating work.
|
If you are looking for ways to help you should start by looking at the [Open Issues](https://github.com/craftworkgames/MonoGame.Extended/issues). Please let us know if you plan to work on an issue so that others are not duplicating work.
|
||||||
|
|
||||||
@@ -43,9 +43,9 @@ We prohibit tools like dotPeek, ILSpy, JustDecompiler, or .NET Reflector which c
|
|||||||
It is **NEVER ACCEPTABLE** to decompile copyrighted assemblies and submit that code to the MonoGame.Extended project.
|
It is **NEVER ACCEPTABLE** to decompile copyrighted assemblies and submit that code to the MonoGame.Extended project.
|
||||||
|
|
||||||
* It **DOES NOT** matter how much you change the code.
|
* It **DOES NOT** matter how much you change the code.
|
||||||
* It **DOES NOT** matter what country you live in or what your local laws say.
|
* It **DOES NOT** matter what country you live in or what your local laws say.
|
||||||
* It **DOES NOT** matter that XNA is discontinued.
|
* It **DOES NOT** matter that XNA is discontinued.
|
||||||
* It **DOES NOT** matter how small the bit of code you have stolen is.
|
* It **DOES NOT** matter how small the bit of code you have stolen is.
|
||||||
* It **DOES NOT** matter what your opinion is of stealing code.
|
* It **DOES NOT** matter what your opinion is of stealing code.
|
||||||
|
|
||||||
If you did not write the code, you do not have ownership of the code, and you shouldn't submit it to MonoGame.Extended.
|
If you did not write the code, you do not have ownership of the code, and you shouldn't submit it to MonoGame.Extended.
|
||||||
@@ -62,7 +62,7 @@ We accept contributions in "good faith" that it isn't bound to a conflicting lic
|
|||||||
|
|
||||||
## Need More Help?
|
## Need More Help?
|
||||||
|
|
||||||
If you need help please ask questions on our [community forums](http://community.monogame.net/c/extended) or come [chat on Discord](https://discord.gg/xPUEkj9).
|
If you need help, please ask questions in our [Discord](https://discord.gg/xPUEkj9), or you can ask questions in the official [MonoGame Discord](https://discord.gg/monogame).
|
||||||
|
|
||||||
|
|
||||||
Thanks for reading this guide and helping make MonoGame.Extended great!
|
Thanks for reading this guide and helping make MonoGame.Extended great!
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2015-2020:
|
Copyright (c) 2015-2024:
|
||||||
- Dylan Wilson (https://github.com/dylanwilson80)
|
- Dylan Wilson (https://github.com/dylanwilson80)
|
||||||
- Lucas Girouard-Stranks (https://github.com/lithiumtoast)
|
- Lucas Girouard-Stranks (https://github.com/lithiumtoast)
|
||||||
|
- Christopher Whitley (https://github.com/aristurtledev)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
> :warning: **If you are interested in helping out with the future and direction of this project**: Please direct message @lithiumtoast on Discord.
|
> [!NOTE]
|
||||||
|
> Hi MonoGame community, MonoGame.Extended is currently being updated to resolve outstanding bug issues, included those surrounding Tiled, and to update for MonoGame 3.8.1.303. Please bear with me as I work through the backlog. You can follow the progress in the [v4.0.0 Milestones](https://github.com/craftworkgames/MonoGame.Extended/milestone/8) page.
|
||||||
|
>
|
||||||
|
> - AristurtleDev
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -12,12 +15,23 @@ MonoGame.Extended is a set of utilities (in the form of libraries/tools) to [Mon
|
|||||||
|
|
||||||
Code is distributed as NuGet packages in the form of libraries (`.dll` files). You can easily install the NuGet packages into your existing MonoGame project using the NuGet Package Manager UI in Visual Studio or by using the command line interface (CLI) in a terminal.
|
Code is distributed as NuGet packages in the form of libraries (`.dll` files). You can easily install the NuGet packages into your existing MonoGame project using the NuGet Package Manager UI in Visual Studio or by using the command line interface (CLI) in a terminal.
|
||||||
|
|
||||||
> :wrench: CLI
|
**Current Stable Release**
|
||||||
`dotnet add package MonoGame.Extended`
|
> [!WARNING]
|
||||||
|
> The current stable release is not compatible with MonoGame 3.8.1.303.
|
||||||
|
|
||||||
> :hammer: To use the content pipeline extensions, you will need to edit your `.mgcb` file to reference the `.dll`. To see an example of how to do this with NuGet see the samples at https://github.com/craftworkgames/MonoGame.Extended-samples. The important pieces are the `NuGet.config` file and the `.mgcb` file.
|
```sh
|
||||||
|
dotnet add package MonoGame.Extended --version 3.8.0
|
||||||
|
```
|
||||||
|
|
||||||
> :eyes: To access pre-releases including rolling builds of the repository after every commit or PR commit, you can see add the NuGet feed `https://www.myget.org/F/lithiumtoast/api/v3/index.json`. See https://github.com/craftworkgames/MonoGame.Extended-samples with the `NuGet.config` file for an example of how to setup the feed.
|
**Current Prerelease**
|
||||||
|
> [!NOTE]
|
||||||
|
> Prerelease is based on current `develop` branch snapshot. There it is not considered stable and may contain bugs
|
||||||
|
```sh
|
||||||
|
dotnet add package MonoGame.Extended --version 3.9.0-prerelease.3
|
||||||
|
```
|
||||||
|
|
||||||
|
### Using the Content Pipeline Extensions
|
||||||
|
To use the content pipeline extensions, you will need to edit your `.mgcb` file to reference the `.dll`. To see an example of how to do this with NuGet see the samples at https://github.com/craftworkgames/MonoGame.Extended-samples. The important pieces are the `NuGet.config` file and the `.mgcb` file.
|
||||||
|
|
||||||
## Where to next?
|
## Where to next?
|
||||||
|
|
||||||
@@ -34,21 +48,15 @@ Code is distributed as NuGet packages in the form of libraries (`.dll` files). Y
|
|||||||
We're in the process of developing MonoGame.Extended 4.0! Stay tuned.
|
We're in the process of developing MonoGame.Extended 4.0! Stay tuned.
|
||||||
|
|
||||||
## Patreon Supporters
|
## Patreon Supporters
|
||||||
|
The patreon has been removed. If you would like to support the maintainers of this project, please consider using the GitHub sponsors link for one of the maintainers.
|
||||||
|
|
||||||
Thanks to all those that support the project on Patreon! You're helping to keep the project alive.
|
As a special thanks to those that supported this project through Patreon in the past, their websites were linked in this readme and have been preserved below:
|
||||||
[](https://www.patreon.com/craftworkgames)
|
|
||||||
|
|
||||||
## Special thanks
|
|
||||||
|
|
||||||
As a reward to some of my patrons I've linked thier websites here:
|
|
||||||
|
|
||||||
- [PRT Studios](http://prt-studios.com/)
|
- [PRT Studios](http://prt-studios.com/)
|
||||||
- [optimuspi](http://www.optimuspi.com/)
|
- [optimuspi](http://www.optimuspi.com/)
|
||||||
|
|
||||||
If you're not on the list and you should be please let me know!
|
|
||||||
|
|
||||||
Also thanks to:
|
|
||||||
|
|
||||||
|
## Special Thanks
|
||||||
- Matthew-Davey for letting us use the [Mercury Particle Engine](https://github.com/Matthew-Davey/mercury-particle-engine).
|
- Matthew-Davey for letting us use the [Mercury Particle Engine](https://github.com/Matthew-Davey/mercury-particle-engine).
|
||||||
- John McDonald for [2D XNA Primitives](https://bitbucket.org/C3/2d-xna-primitives/wiki/Home)
|
- John McDonald for [2D XNA Primitives](https://bitbucket.org/C3/2d-xna-primitives/wiki/Home)
|
||||||
- [LibGDX](https://libgdx.badlogicgames.com) for a whole lot of inspiration.
|
- [LibGDX](https://libgdx.badlogicgames.com) for a whole lot of inspiration.
|
||||||
|
|||||||
-28
@@ -1,28 +0,0 @@
|
|||||||
# Roadmap of MonoGame.Extended
|
|
||||||
|
|
||||||
## [Katabasis]([Katabasis](https://github.com/craftworkgames/katabasis))
|
|
||||||
|
|
||||||
### Highlights
|
|
||||||
|
|
||||||
* MonoGame.Extended is the bridge for MonoGame and [Katabasis](https://github.com/craftworkgames/katabasis), a fork of FNA.
|
|
||||||
* Date: Summer, 2021
|
|
||||||
* Runtime: .NET 5 Desktop (Windows, macOS, Linux)
|
|
||||||
|
|
||||||
### Forking MonoGame
|
|
||||||
|
|
||||||
#### Why
|
|
||||||
|
|
||||||
For building extensions on top of MonoGame, MonoGame itself can be limiting and frustrating. Some frustration is that some "core" types are at odds with extensions. Take the `Rectangle` type in the `Microsoft.Xna.Framework` namespace as an example. `RectangleF` was introduced to be an equivalent to `Rectangle` but for floats (`float`) instead of 32-bit signed integers (`int`). This raises a couple questions however... Should there be 16-bit integer version? What about signed vs unsigned integers? Assume the answer is yes to having these types in the spirit of creating extensions... Then what would that type be called exactly? It would be much easier if the extensions library owned the `Rectangle` type instead so not only the naming is consistent, but also the fields, properties, and methods are consistent aswell! The example is small, but the idea of this frustration with the core types bleeds to many larger problems. In order to solve the very concrete example mentioned above, to solve the larger problems with creating extensions, and to increase the quality of MonoGame.Extended, *FNA* is forked.
|
|
||||||
|
|
||||||
#### XNA
|
|
||||||
|
|
||||||
MonoGame/FNA has heritage being XNA. It's my opinion that XNA on it's own has some poor choices in design for *game-dev*. To add insult to injury, XNA is a DirectX 9 API. While older graphics APIs are ubiquitous (e.g. OpenGL), the world is moving on! With newer APIs how modern real-time rendering can technically be solved is very different, challenging, and in some cases more complex. (If you are interested in learning more about the newer modern APIs [check out this blog post comparing them](https://alain.xyz/blog/comparison-of-modern-graphics-apis) by Alain Galvan which is updated frequently.) This difference however opens the door to possible innovations. If MonoGame is ever to reach for these newer graphics APIs, it's my opinion that the very first step is that XNA has to go. What does this mean? It means that `IUpdateable` axed! `Rectangle` gone! `DrawableGameComponent` deleted! `BoundingSphere` poof! It's my opinion that if you *really* needed these types you would, and should, just implement them yourself. Or, get this, copy paste the code from the Extended library!
|
|
||||||
|
|
||||||
To make this a possibility for version 4.0, MonoGame.Extended forks FNA. Why FNA? Because MonoGame is evolving, but perhaps not in the direction that makes it easier to write extensions on top of. MonoGame in my opinion is adding a bunch of additions that go beyond XNA and bleed into the domain of extensions. FNA is focused on being a drop in replacement for XNA 4.0 with minimal or carefully considered additions to the APIs. This makes it a good, solid, choice to rip out the gut bad stuff of XNA and leave the good stuff.
|
|
||||||
|
|
||||||
### Deliverable
|
|
||||||
|
|
||||||
Version 4.0 will be focused on desktop only. Porting games to other devices is challenging. In my opinion, development of a game prototype should start on desktop, the ubiquitous dev-environment. Once you have something going you should *then* think about developing for mobile, console, etc. .NET 5 will be iteresting to see in action however as Microsoft has intended [.NET 5 to be the next .NET Core that will unify desktop, mobile, browser, consoles, and other platforms](https://devblogs.microsoft.com/dotnet/introducing-net-5/).
|
|
||||||
|
|
||||||
Of course, then there is the MonoGame.Extended itself. For version 4.0, minimal changes the MonoGame.Extended code will be made. For requested new features, version 4.x will be the window of opportunity.
|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.0 KiB |
Reference in New Issue
Block a user