diff --git a/articles/getting_to_know/whatis/index.md b/articles/getting_to_know/whatis/index.md index fe31a237..47d57254 100644 --- a/articles/getting_to_know/whatis/index.md +++ b/articles/getting_to_know/whatis/index.md @@ -58,3 +58,7 @@ This section details some general aspects of the operation of a MonoGame Framewo * [What Is MonoGame Class Library](./monogame_class_library/index.md) An overview of the MonoGame Class Library reference, containing all the API calls available to the MonoGame Framework. + +* [What Is the MonoGame Hub](./monogame_hub/index.md) + + An overview of the MonoGame Hub tool, a new launcher and project generator hub for managing MonoGame projects. diff --git a/articles/getting_to_know/whatis/monogame_hub/images/01-HubSplashscreen.png b/articles/getting_to_know/whatis/monogame_hub/images/01-HubSplashscreen.png new file mode 100644 index 00000000..36040302 Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/01-HubSplashscreen.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/02-HubStartupWizard.png b/articles/getting_to_know/whatis/monogame_hub/images/02-HubStartupWizard.png new file mode 100644 index 00000000..cba9c2f0 Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/02-HubStartupWizard.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/03-HubCreateScreen.png b/articles/getting_to_know/whatis/monogame_hub/images/03-HubCreateScreen.png new file mode 100644 index 00000000..01b63885 Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/03-HubCreateScreen.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-1.png b/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-1.png new file mode 100644 index 00000000..986868c4 Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-1.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-2.png b/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-2.png new file mode 100644 index 00000000..827d59ce Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/04-CreateProject-2.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/05-ProjectList.png b/articles/getting_to_know/whatis/monogame_hub/images/05-ProjectList.png new file mode 100644 index 00000000..f91f9469 Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/05-ProjectList.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/06-BlogsView.png b/articles/getting_to_know/whatis/monogame_hub/images/06-BlogsView.png new file mode 100644 index 00000000..8ee8517b Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/06-BlogsView.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/images/06-ResourcesView.png b/articles/getting_to_know/whatis/monogame_hub/images/06-ResourcesView.png new file mode 100644 index 00000000..3137deea Binary files /dev/null and b/articles/getting_to_know/whatis/monogame_hub/images/06-ResourcesView.png differ diff --git a/articles/getting_to_know/whatis/monogame_hub/index.md b/articles/getting_to_know/whatis/monogame_hub/index.md new file mode 100644 index 00000000..fe56731c --- /dev/null +++ b/articles/getting_to_know/whatis/monogame_hub/index.md @@ -0,0 +1,116 @@ +--- +title: MonoGame Hub +description: Introducing the MonoGame hub, an onboarding tool for building projects with MonoGame. +requireMSLicense: false +--- + +The MonoGame Hub is a new tool whose sole purpose in life is to accelerate the creation of MonoGame projects using well-defined templates and simplify the management of your MonoGame project, with some additional flavour built in to see blog posts and available resources in one handy place. + +![Hub Splashscreen](./images/01-HubSplashscreen.png) + +> [!NOTE] +> Sponsors only +> +> While the tool is still being developed, we are only allowing supporters of MonoGame to get early access and drive the roadmap for the tool. + +The Hub offers the following capabilities: + +- Surfaces official MonoGame project templates, with capabilities far beyond the simple templates available through DotNet commands today. +- Details more information and highlights of the capabilities of the template prior to generation. Images/videos/descriptions and so on. +- Solution generation from a template for your selected platforms, allowing you pick the platforms you want and ignore the ones you do not. +- Lists/Manages a set of registered MonoGame Projects either generated through the Hub or imported from pre-existing. +- Lists out the blog posts from the main website, with announcements on launch for new news. +- Provides direct access to published resources from the MonoGame website, searchable and filterable via tags. + +## Startup wizard + +![Hub Splashscreen](./images/02-HubStartupWizard.png) + +When you first start the Hub, a wizard will walk you through getting your development environment ready for building MonoGame projects, including: + +- Checking you have DotNet installed (mandatory, as MonoGame runs on DotNet) +- Confirming the IDE you wish to use, and pointing you to the download page if it is not yet installed. +- Optionally connecting the Hub to your GitHub account, required if you want to access Private/Sponsored content (for sponsors), or your own templates on your own private repositories. + +> [!NOTE] +> GitHub connectivity is completely OPTIONAL. +> +> Without a GitHub connection, you will only be able to see public repositories and samples, which is fine. + +From there, everything is ready to create your next great MonoGame creation, or just switch to the Project list and import your current wonder. + +> [!NOTE] +> This solves 90% of the "How do I get my machine setup correctly" questions we always face with MonoGame! + +## Templates/Create view + +![Hub Splashscreen](./images/03-HubCreateScreen.png) + +MonoGame is trying to open up access to "Good Templates" for starting your next great project, there are only a few at the moment, but expect this to grow quickly over the next few months, with templates ranging from: + +- A blank project +- The 3D Platformer sample project +- A quick start project with some default components (the current Blank Starter Kit) +- A 2D platformer sample +- (Sponsors only) The new City Builder Starter kit + +Each template contains all the details required to choose which template you want to start from, such as screenshots, videos and a full featured description of what is included. + +In the near future, we will open this up to user templates and even community catalogs to make even more types of projects available to create directly from the hub. + +> [!NOTE] +> This solves the second most asked question for MonoGame newcomers, HOW do I create my project, what commands to use and where are the samples anyway! + +## Project Generation + +|![New Project view](./images/04-CreateProject-1.png)|![Platform selection view](./images/04-CreateProject-2.png)| +| :-: | :-: | +|Create Page 1|Create Page 2| + +Once you have selected your template, the Hub vastly simplifies the MonoGame project creation by offering you the following options: + +- Name of your game +- Assembly Name (also folder name as it cannot have spaces) +- Selected platforms, default is auto-selected and you can add more or change the choice +- Select the folder the game will be created in. *Note, this will create a new folder with the assembly name in this folder, you do not need to create a game specific folder unless you want to. + +> [!NOTE] +> Due to dotnet limitations, you **CANNOT** start your Game assembly name with a number, else it puts a "_" character at the beginning and messes up the template. It is a DotNet thing not the Hub. + +Once you are ready (and the button is enabled, which will only happen when everything is correct), click the "Create Project" button, you game will be generated and automatically open with your chosen IDE. The project will also automatically be added to the Hub Project view below too. + +## Project Management + +![Hub Splashscreen](./images/05-ProjectList.png) + +Not much to show off here, it is a very basic Project list view at the moment allowing you to: + +- Open projects registered with the hub +- Remove a project from the list +- Import existing projects to the Hub + +We have plans to do more to manage your project later, but for now, it is just the quickest way to get your game project open to get to work. + +## Blogs and Resources + +|![Hub Splashscreen](./images/06-BlogsView.png)|![Hub Splashscreen](./images/06-ResourcesView.png)| +| :-: | :-: | +|Blogs|Resources| + +The blogs and resources are simple lists, detailing information predominately available on the main `MonoGame.Net` website in a more readily accessible way, including the ability to filter/sort or search for what you need. + +## Sponsors only + +While we are in this early alpha/preview phase, access to the hub is for Sponsors only, providing essential feedback and testing while it is still in heavy development, also as a reward to those helping to fund the evolution of the framework! + +With a GitHub connection, private, sponsor only templates (like the City Builder) will also show up. + +## The future + +As stated, these are early days for the hub and more is planned, including: + +- .NET version selection for templates +- Platform management for existing projects +- More templates! + +Welcome to the future. diff --git a/articles/toc.yml b/articles/toc.yml index afffdb73..292ea54d 100644 --- a/articles/toc.yml +++ b/articles/toc.yml @@ -46,6 +46,8 @@ items: href: getting_to_know/whatis/vector_matrix_quat/index.md - name: MonoGame Class Library href: getting_to_know/whatis/monogame_class_library/index.md + - name: MonoGame Hub + href: getting_to_know/whatis/monogame_hub/index.md - name: How to href: getting_to_know/howto/index.md items: diff --git a/build.ps1 b/build.ps1 index 1e42f8cc..40facc44 100644 --- a/build.ps1 +++ b/build.ps1 @@ -27,14 +27,19 @@ dotnet docfx build docfx.json New-Item -ItemType Directory -Force -Path "_pdf" | Out-Null -# Generate PDF (using PDF-specific config that includes pdf/** files) +# Generate PDF (using PDF-specific config that includes pdf/** files), if available Write-Host "Generating PDF..." -ForegroundColor Green dotnet docfx pdf docfx.pdf.json --output _pdf -# Copy PDF to downloads folder and clean up -Write-Host "Copying PDF to downloads folder..." -ForegroundColor Green -New-Item -ItemType Directory -Force -Path "_site/downloads" | Out-Null -Copy-Item "_pdf/pdf/MonoGameGuide.pdf" "_site/downloads/" -Remove-Item -Path "_pdf" -Recurse -Force +if (Test-Path "_pdf/pdf/MonoGameGuide.pdf") { + # Copy PDF to downloads folder and clean up + Write-Host "Copying PDF to downloads folder..." -ForegroundColor Green + New-Item -ItemType Directory -Force -Path "_site/downloads" | Out-Null + Copy-Item "_pdf/pdf/MonoGameGuide.pdf" "_site/downloads/" +} +else { + Write-Host "PDF was not generated. Skipping copy to downloads folder." -ForegroundColor Yellow +} +Remove-Item -Path "_pdf" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Build and documentation generation completed successfully!" -ForegroundColor Green \ No newline at end of file diff --git a/serve.ps1 b/serve.ps1 index 56d27fe0..204d6330 100644 --- a/serve.ps1 +++ b/serve.ps1 @@ -2,7 +2,16 @@ $ErrorActionPreference = "Stop" # Run the build script to make sure there's something to serve -.\build.ps1 +try { + .\build.ps1 +} +catch { + if (-not (Test-Path ".\_site")) { + throw + } + Write-Host "Build reported an error: $_" -ForegroundColor Yellow + Write-Host "Continuing to serve the existing _site output." -ForegroundColor Yellow +} # Start DocFx serve dotnet docfx serve .\_site \ No newline at end of file