From 9b31b8524b832da7326ca5aadccebcde8830e0fa Mon Sep 17 00:00:00 2001 From: SimonDarksideJ Date: Sat, 17 Aug 2024 11:17:48 +0100 Subject: [PATCH 01/14] rename windows setup --- ...=> 1_setting_up_your_development_environment_visual_studio.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename articles/getting_started/{1_setting_up_your_development_environment_windows.md => 1_setting_up_your_development_environment_visual_studio.md} (100%) diff --git a/articles/getting_started/1_setting_up_your_development_environment_windows.md b/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md similarity index 100% rename from articles/getting_started/1_setting_up_your_development_environment_windows.md rename to articles/getting_started/1_setting_up_your_development_environment_visual_studio.md From 94ad04b3e33f8c13637caa402721d675267a5a86 Mon Sep 17 00:00:00 2001 From: SimonDarksideJ Date: Sat, 17 Aug 2024 11:56:19 +0100 Subject: [PATCH 02/14] Checkpoint before reorg --- ...ng_up_your_development_environment_unix.md | 130 +++++++++++++----- ...r_development_environment_visual_studio.md | 29 ++-- ..._up_your_development_environment_vscode.md | 122 ++-------------- .../content_pipeline/using_mgcb_editor.md | 5 +- articles/getting_started/index.md | 17 ++- articles/getting_started/platforms.md | 18 +++ articles/toc.yml | 32 +++-- 7 files changed, 171 insertions(+), 182 deletions(-) diff --git a/articles/getting_started/1_setting_up_your_development_environment_unix.md b/articles/getting_started/1_setting_up_your_development_environment_unix.md index 39e5ca05..733600a1 100644 --- a/articles/getting_started/1_setting_up_your_development_environment_unix.md +++ b/articles/getting_started/1_setting_up_your_development_environment_unix.md @@ -1,63 +1,125 @@ --- -title: Setting up your development environment for macOS and Linux +title: Additional steps for setting up your macOS and Linux development environment description: This section provides a step-by-step guide for setting up your development environment on macOS and Linux. --- -The only development environment that MonoGame officially supports on Linux is [Visual Studio Code](https://code.visualstudio.com/). +The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). -## Install .NET 8 SDK +> [!IMPORTANT] +> This guide assumes you have already followed the steps outlined in [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) +> +> This article only contains additional information specific to Mac/Linux hosts -- .NET SDK at: [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) -- If you are intending to target mobile platforms, make sure that you have the corresponding workload installed +## MacOS considerations -```sh -dotnet workload install ios -dotnet workload install android -``` +For the time being, MonoGame requires that you install the x64 version of the .NET SDK even if you are running on an Apple Silicon mac. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. -## macOS considerations +## Setup Wine For Effect Compilation -For the time being, MonoGame requires that you install the x64 version of the .NET SDK even if you are running on an Apple Silicon mac. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. +Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). -## [Optional] Install Visual Studio Code +### [macOS](#tab/macos) -You can install Visual Studio Code at: [https://code.visualstudio.com/Download](https://code.visualstudio.com/Download) +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: -In order to code and build C# projects, you will also need to install a Visual Studio Code C# extension. You can do this with the following commands: +- **curl** must be installed +- **p7zip** must be installed +- **wine-stable** must be installed. -```sh -code --install-extension ms-dotnettools.csharp -``` +These can be installed using **brew**. -If you want, you can also install the C# Dev Kit extensions, which are not open source: +1. Open a terminal window. +2. Enter the following command: -```sh -code --install-extension ms-dotnettools.csdevkit -code --install-extension ms-dotnettools.dotnet-maui -``` + ```sh + brew install p7zip curl + brew install --cask wine-stable + ``` + + > [!CAUTION] + > It is recommended that you use `wine-stable` and not `wine-staging`. -## Install MonoGame templates +3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: ```sh -dotnet new --install MonoGame.Templates.CSharp +wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash ``` -## [Optional] Setup Wine for effect compilation +This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. -Effect (shader) compilation requires access to DirectX, so it will not work natively on Linux systems, but it can be used through Wine. Here are instructions to get this working (providing that your distribution is using apt). +### [Linux](#tab/linux) -Install wine64: +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: -```sh -sudo apt install wine64 p7zip-full curl -``` +- **curl** must be installed +- **p7zip** must be installed +- **wine64** must be installed. -Create wine prefix: +For Debian-based distributions like Ubuntu, you can perform the following: -```sh -wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash +1. Open a terminal window +2. Enter the following command + + ```sh + sudo apt install curl p7zip-full wine64 + ``` + + > [!TIP] + > If you receive an error stating that either of the packages do not have an install candidate, you may need to enable the universe apt repository. To do this, enter the following commands in the terminal + > + > ```sh + > sudo add-apt-repository universe + > sudo apt update + > ``` + > + > Then try installing the packages again. + + > [!CAUTION] + > If you plan to install Wine using the `winehq-*` package instead, it is recommended that you use the `winehq-stable` package and not `-staging`. + +3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: + + ```sh + wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash + ``` + +This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. + +--- + +## Apple Silicon Known Issues + +There is currently a two known issue when building content on an Apple Silicon (M1/M2) Mac: + +1. **Building Textures**: An exception occurs stating that the **freeimage** lib could not be found. +2. **Building SpriteFonts**: An exception occurs stating that the **freetype** lib could not be found. +3. **Building Models**: An exception occurs starting that the **assimp** lib could not be found. + +These issue occur due to needing compiled versions of these libs for the M1/M2 architecture. [There is currently work being done to resolve this](https://github.com/MonoGame/MonoGame/issues/8124), however in the meantime, you can use the following workaround that has been provided by community members. + +1. Download and install the x64 version of [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). This will place an x64 version of .NET 6 in a `/usr/local/share/dotnet/x64` directory. +NOTE: It MUST be the x64 version in order for this to work. This will allow the x64 native libraries that the MonoGame Content Pipeline uses to function on the Apple Silicon device. +Currently it also needs to be .NET 6 for the 3.8.1 Release of MonoGame. + +2. Open your .csproj and add the following lines to the first `` section. + + ```xml + /usr/local/share/dotnet/x64/dotnet + ``` + +3. (Alternative) The directory above is not in the path. But we do not want the system to be confused on which .NET is should be using. So rather thatn putting the x64 verison in the path we should instead create a symlink named `dotnet64`. + + ```sh + sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/share/dotnet/dotnet64 + ``` + +We can then use this value as the value for `DotnetCommand` + +```xml +dotnet64 ``` -If you ever need to undo the script, simply delete the `.winemonogame` folder in your home directory. +> [!IMPORTANT] +> A fast follow release is planned for Mac/Linux support to improve the content management side of MonoGame. **Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md b/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md index ae83b91d..efa74acd 100644 --- a/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md +++ b/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md @@ -1,15 +1,18 @@ --- -title: Setting up your development environment for Windows +title: Setting up your development environment for Visual Studio on Windows description: This section provides a step-by-step guide for setting up your development environment on Windows. --- MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) -Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). +> [!NOTE] +> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). +> +> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). -## [Recommended] Install Visual Studio 2022 +## Install Visual Studio 2022 -Before using MonoGame, you will need to install [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) +Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): @@ -25,6 +28,8 @@ When installing Visual Studio, the following workloads are required depending on > **Targeting Windows** > > If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. +> +> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. ### Install MonoGame extension for Visual Studio 2022 @@ -51,16 +56,10 @@ To create new MonoGame projects from within Visual Studio 2022, you will need to You now have the MonoGame templates installed and are ready to create new projects. -**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) - -## [Alternative] Install the .NET 6 SDK (compatible with JetBrains Rider and Visual Studio Code) - -If you prefer to use JetBrains Rider or Visual Studio Code, and after installing either of them, you will also need to [install the .NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0). - -Once the .NET 8 SDK is installed, you can open a Command Prompt and install the MonoGame templates by typing the following command: - -```sh -dotnet new --install MonoGame.Templates.CSharp -``` +> [!NOTE] +> +> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) +> +> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. **Next up:** [Creating a new project](2_creating_a_new_project_vs.md) diff --git a/articles/getting_started/1_setting_up_your_development_environment_vscode.md b/articles/getting_started/1_setting_up_your_development_environment_vscode.md index af59200b..ae78feab 100644 --- a/articles/getting_started/1_setting_up_your_development_environment_vscode.md +++ b/articles/getting_started/1_setting_up_your_development_environment_vscode.md @@ -5,8 +5,8 @@ description: A step-by-step guide for setting up your development environment us This is a guide on setting up your development environment for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary .NET SDK for developing C# applications, set up MonoGame C# templates for new projects, and configure Visual Studio Code with recommended extensions for C# development. By the end, you'll be fully equipped to start creating games with MonoGame using Visual Studio code. -> [!NOTE] -> The only development environment that MonoGame officially supports on Linux is [Visual Studio Code](https://code.visualstudio.com/). +> [!IMPORTANT] +> The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). > > [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. @@ -14,9 +14,6 @@ This is a guide on setting up your development environment for creating games wi To develop with C#, you will need to install the .NET SDK. At the time of this writing, the current version is .NET 8.0. You can follow the instructions below based your operating system to install the .NET 8.0 SDK -> [!NOTE] -> The current version of MonoGame (3.8.1.303) targets .NET 6.0. Regardless you can, and it is recommended to, use .NET 8.0. The only requirement for having .NET 6.0 installed is if you are developing extensions for the MGCB Editor. - ### [Windows](#tab/windows) 1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) @@ -163,116 +160,13 @@ To transform Visual Studio Code from a simple text editor into a powerful develo --- -## Setup Wine For Effect Compilation - MacOS/Linux Only - -Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). - -### [Windows](#tab/windows) - -> [!NOTE] -> Windows users do not require an additional setup for effect compilation and can skip this section. - -### [macOS](#tab/macos) - -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: - -- **curl** must be installed -- **p7zip** must be installed -- **wine-stable** must be installed. - -These can be installed using **brew**. - -1. Open a terminal window. -2. Enter the following command: - - ```sh - brew install p7zip curl - brew install --cask wine-stable - ``` - - > [!CAUTION] - > It is recommended that you use `wine-stable` and not `wine-staging`. - -3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: - -```sh -wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash -``` - -This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. - -### [Linux](#tab/linux) - -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: - -- **curl** must be installed -- **p7zip** must be installed -- **wine64** must be installed. - -For Debian-based distributions like Ubuntu, you can perform the following: - -1. Open a terminal window -2. Enter the following command - - ```sh - sudo apt install curl p7zip-full wine64 - ``` - - > [!TIP] - > If you receive an error stating that either of the packages do not have an install candidate, you may need to enable the universe apt repository. To do this, enter the following commands in the terminal - > - > ```sh - > sudo add-apt-repository universe - > sudo apt update - > ``` - > - > Then try installing the packages again. - - > [!CAUTION] - > If you plan to install Wine using the `winehq-*` package instead, it is recommended that you use the `winehq-stable` package and not `-staging`. - -3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: - - ```sh - wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash - ``` - -This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. - ---- - ## Apple Silicon Known Issues -There is currently a two known issue when building content on an Apple Silicon (M1/M2) Mac: - -1. **Building Textures**: An exception occurs stating that the **freeimage** lib could not be found. -2. **Building SpriteFonts**: An exception occurs stating that the **freetype** lib could not be found. -3. **Building Models**: An exception occurs starting that the **assimp** lib could not be found. - -These issue occur due to needing compiled versions of these libs for the M1/M2 architecture. [There is currently work being done to resolve this](https://github.com/MonoGame/MonoGame/issues/8124), however in the meantime, you can use the following workaround that has been provided by community members. - -1. Download and install the x64 version of [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). This will place an x64 version of .NET 6 in a `/usr/local/share/dotnet/x64` directory. -NOTE: It MUST be the x64 version in order for this to work. This will allow the x64 native libraries that the MonoGame Content Pipeline uses to function on the Apple Silicon device. -Currently it also needs to be .NET 6 for the 3.8.1 Release of MonoGame. - -2. Open your .csproj and add the following lines to the first `` section. - - ```xml - /usr/local/share/dotnet/x64/dotnet - ``` - -3. (Alternative) The directory above is not in the path. But we do not want the system to be confused on which .NET is should be using. So rather thatn putting the x64 verison in the path we should instead create a symlink named `dotnet64`. - - ```sh - sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/share/dotnet/dotnet64 - ``` - -We can then use this value as the value for `DotnetCommand` - -```xml -dotnet64 -``` +> [!IMPORTANT] +> Please see the [Apple Silicon Known Issues](./1_setting_up_your_development_environment_unix.md#apple-silicon-known-issues) section in the [Mac/Linux](./1_setting_up_your_development_environment_unix.md) guide for help in resolving content build issues. +> +> This is only temporary a we are working in a "Fast Follow" release which will greatly improve and simplify content building on Mac/Linux -## Conclusion +--- -By following this guide, you have successfully set up your development environment for game development with MonoGame using Visual Studio Code. You've installed the .NET SDK, added MonoGame project templates, and configured Visual Studio Code with the necessary C# extensions. Now, you're ready to start creating your games! [Continue to the next section to create your first project and begin development](2_creating_a_new_project_netcore.md). +**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/content_pipeline/using_mgcb_editor.md b/articles/getting_started/content_pipeline/using_mgcb_editor.md index c47c5e41..91e28f9b 100644 --- a/articles/getting_started/content_pipeline/using_mgcb_editor.md +++ b/articles/getting_started/content_pipeline/using_mgcb_editor.md @@ -3,9 +3,10 @@ title: Using MGCB Editor description: Learn how to use the MGCB Editor to organize and build content for use with MonoGame. --- -# Using MGCB Editor +The [MGCB Editor](../tools/mgcb_editor.md) is used to organize and build content for use with MonoGame. It is accessed by either: -The [MGCB Editor](../tools/mgcb_editor.md) is used to organize and build content for use with MonoGame. It is accessed by double-clicking a "**.mgcb**" file from within the Visual Studio solution explorer (providing that you installed [MonoGame's Visual Studio extension](../1_setting_up_your_development_environment_windows.md)). +* Double-clicking a "**.mgcb**" file from within the Visual Studio solution explorer (providing that you installed [MonoGame's Visual Studio extension](../1_setting_up_your_development_environment_visual_studio.md#install-monogame-extension-for-visual-studio-2022)). +* Right-clicking a "**.mgcb**" file from within the Visual Studio code and selecting "Open in MGCB Editor" (provided you have installed the [VSCode extension](../1_setting_up_your_development_environment_vscode.md#install-visual-studio-code-c-extensions)) Alternatively, you can build it [directly from source](https://github.com/MonoGame/MonoGame/tree/develop/Tools/MonoGame.Content.Builder.Editor) if needed. diff --git a/articles/getting_started/index.md b/articles/getting_started/index.md index e735023e..039b5dc6 100644 --- a/articles/getting_started/index.md +++ b/articles/getting_started/index.md @@ -7,17 +7,24 @@ First, select the operating system and toolset you will be working with to creat By the end of this tutorial set, you will have a working project to build for your target platform and will be ready to tackle your next steps. -## 1. Setting up your development environment +## 1. Setting up your OS for development -- [Windows](1_setting_up_your_development_environment_windows.md) -- [macOS and Linux](1_setting_up_your_development_environment_unix.md) +- [Windows]() +- [macOS]() +- [Ubuntu 20.04]() -## 2. Creating a new project +## 2. Setting up your development environment + +- [Visual Studio for Windows](1_setting_up_your_development_environment_visual_studio.md) +- [VS Code](1_setting_up_your_development_environment_vscode.md) +- [Rider](1_setting_up_your_development_environment_unix.md) + +## 3. Creating a new project - With [Visual Studio 2022](2_creating_a_new_project_vs.md) - With [the .NET command line interface](2_creating_a_new_project_netcore.md) (compatible with JetBrains Rider and Visual Studio Code) -## 3. Building your game +## 4. Building your game - [Understanding the Code](3_understanding_the_code.md) - [Adding Content](4_adding_content.md) diff --git a/articles/getting_started/platforms.md b/articles/getting_started/platforms.md index 35dbde1d..8d967db3 100644 --- a/articles/getting_started/platforms.md +++ b/articles/getting_started/platforms.md @@ -43,6 +43,9 @@ Beside these target platforms, MonoGame provides additional templates for shared WindowsDX uses WinForms to manage the game window, **DirectX** (9.0c or newer) is used for graphics, and XAudio is used for audio. +> [!NOTE] +> DX 12 for Windows and Xbox coming very soon. + You can target **Windows*** 8.1 and up with this platform. WindowsDX requires the [DirectX June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=8109) runtime to both build and run games. Make sure that your players have it installed (otherwise you might be missing sound and gamepad rumble support). @@ -65,6 +68,9 @@ You can target Windows 8.1 (and up), macOS Catalina 10.15 (and up), and Linux wi DesktopGL currently does not have a `VideoPlayer` implementation. +> [!NOTE] +> New native platform with upgraded libraries and Metal/Vulkan support coming very soon. + ### Android | **Supported Systems** | **NuGet Package** | **Template ID** | @@ -77,6 +83,9 @@ Building for Android requires the .NET Xamarin component to be installed. You ca Building for Android also requires the Java 11 JDK (we recommend that you use [the Microsoft's distribution](https://docs.microsoft.com/en-us/java/openjdk/download#openjdk-11)) as well as the Android SDK 31. +> [!NOTE] +> New native platform with upgraded libraries and Metal/Vulkan support coming very soon. + ### iOS | **Supported Systems** | **NuGet Package** | **Template ID** | @@ -91,6 +100,9 @@ The latest version of Xcode will also be required. You can test and deploy an iOS game on Windows by [pairing your Visual Studio 2022 with a mac on your local network](https://docs.microsoft.com/en-us/xamarin/ios/get-started/installation/windows/connecting-to-mac/). This feature is not available for Rider, Visual Studio Code, or the CLI. +> [!NOTE] +> New native platform with upgraded libraries and Metal/Vulkan support coming very soon. + ## Other templates ### .NET Class Library @@ -99,6 +111,9 @@ You can test and deploy an iOS game on Windows by [pairing your Visual Studio 20 A project template to create [.NET](https://learn.microsoft.com/en-us/dotnet/standard/class-library-overview) libraries to distribute code through a DLL. This can be used to redistribute libraries or to share code between multiple projects (like different platforms). +> [!NOTE] +> See the [MonoGame Samples](https://github.com/MonoGame/MonoGame.Samples) for examples of how a .NET class library is used to share code between platforms. + ### Shared Project **Template ID**: mgshared @@ -110,3 +125,6 @@ A project template to create a [shared project](https://docs.microsoft.com/en-us **Template ID**: mgpipeline A project template for writing custom logic for handling content and building it into XNB files. + +> [!NOTE] +> See [What Is the Content Pipeline?](../getting_to_know/whatis/content_pipeline/CP_Overview.md) for more infomation and read about [What is a Custom Importer](../getting_to_know/whatis/content_pipeline/CP_AddCustomProcImp.md) here. diff --git a/articles/toc.yml b/articles/toc.yml index 5fa23a5c..91791f7e 100644 --- a/articles/toc.yml +++ b/articles/toc.yml @@ -9,27 +9,35 @@ - name: Introduction href: getting_started/ - name: Supported platforms - href: getting_started/platforms.md - - name: 1. Setting up your development environment + href: getting_started/platforms.md + - name: 1. Setting up your OS for development items: - name: Windows - href: getting_started/1_setting_up_your_development_environment_windows.md - - name: macOS / Linux + href: getting_started/1_setting_up_your_development_environment_visual_studio.md + - name: macOS + href: getting_started/1_setting_up_your_development_environment_vscode.md + - name: Ubuntu 20.04 href: getting_started/1_setting_up_your_development_environment_unix.md + - name: 2. Choosing your IDE + items: + - name: Visual Studio 2022 + href: getting_started/1_setting_up_your_development_environment_visual_studio.md - name: VSCode - href: getting_started/1_setting_up_your_development_environment_vscode.md - - name: 2. Creating a new project + href: getting_started/1_setting_up_your_development_environment_vscode.md + - name: Rider + href: getting_started/1_setting_up_your_development_environment_unix.md + - name: 3. Creating a new project items: - name: Visual Studio 2022 href: getting_started/2_creating_a_new_project_vs.md - name: .NET CLI (Rider or Visual Studio Code) href: getting_started/2_creating_a_new_project_netcore.md - - name: 3. Understanding the Code - href: getting_started/3_understanding_the_code.md - - name: 4. Adding Content - href: getting_started/4_adding_content.md - - name: 5. Adding Basic Code - href: getting_started/5_adding_basic_code.md + - name: 4. Understanding the Code + href: getting_started/4_understanding_the_code.md + - name: 5. Adding Content + href: getting_started/5_adding_content.md + - name: 6. Adding Basic Code + href: getting_started/6_adding_basic_code.md - name: Packaging href: getting_started/packaging_games.md - name: Preparing for consoles From 7206ab2ba1d0808179f8a3508807aef6017f2c24 Mon Sep 17 00:00:00 2001 From: SimonDarksideJ Date: Sat, 17 Aug 2024 12:14:46 +0100 Subject: [PATCH 03/14] Restructure --- ...tting_up_your_os_for_development_macos.md} | 0 ...tting_up_your_os_for_development_ubuntu.md | 65 +++++++ ...ting_up_your_os_for_development_windows.md | 65 +++++++ ...vscode.md => 2_choosing_your_ide_rider.md} | 0 .../2_choosing_your_ide_visual_studio.md | 65 +++++++ .../2_choosing_your_ide_vscode.md | 172 ++++++++++++++++++ ...md => 3_creating_a_new_project_netcore.md} | 0 ...t_vs.md => 3_creating_a_new_project_vs.md} | 0 ...he_code.md => 4_understanding_the_code.md} | 0 ..._adding_content.md => 5_adding_content.md} | 0 ...g_basic_code.md => 6_adding_basic_code.md} | 0 articles/toc.yml | 20 +- 12 files changed, 377 insertions(+), 10 deletions(-) rename articles/getting_started/{1_setting_up_your_development_environment_visual_studio.md => 1_setting_up_your_os_for_development_macos.md} (100%) create mode 100644 articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md create mode 100644 articles/getting_started/1_setting_up_your_os_for_development_windows.md rename articles/getting_started/{1_setting_up_your_development_environment_vscode.md => 2_choosing_your_ide_rider.md} (100%) create mode 100644 articles/getting_started/2_choosing_your_ide_visual_studio.md create mode 100644 articles/getting_started/2_choosing_your_ide_vscode.md rename articles/getting_started/{2_creating_a_new_project_netcore.md => 3_creating_a_new_project_netcore.md} (100%) rename articles/getting_started/{2_creating_a_new_project_vs.md => 3_creating_a_new_project_vs.md} (100%) rename articles/getting_started/{3_understanding_the_code.md => 4_understanding_the_code.md} (100%) rename articles/getting_started/{4_adding_content.md => 5_adding_content.md} (100%) rename articles/getting_started/{5_adding_basic_code.md => 6_adding_basic_code.md} (100%) diff --git a/articles/getting_started/1_setting_up_your_development_environment_visual_studio.md b/articles/getting_started/1_setting_up_your_os_for_development_macos.md similarity index 100% rename from articles/getting_started/1_setting_up_your_development_environment_visual_studio.md rename to articles/getting_started/1_setting_up_your_os_for_development_macos.md diff --git a/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md new file mode 100644 index 00000000..efa74acd --- /dev/null +++ b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md @@ -0,0 +1,65 @@ +--- +title: Setting up your development environment for Visual Studio on Windows +description: This section provides a step-by-step guide for setting up your development environment on Windows. +--- + +MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) + +> [!NOTE] +> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). +> +> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). + +## Install Visual Studio 2022 + +Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. + +When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): + +* Mandatory for all platforms: + * **.Net desktop development** +* Optional + * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. + * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. + +![Visual Studio optional components](images/1_installer_vs_components.png) + +> [!WARNING] +> **Targeting Windows** +> +> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. +> +> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. + +### Install MonoGame extension for Visual Studio 2022 + +To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. + +1. Launch Visual Studio 2022 +2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. + + ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) + +3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. + + ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) + +4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. + + ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) + +5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. + +6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. + + ![VSIX Installer Window](images/1_vsix_installer_window.png) + +You now have the MonoGame templates installed and are ready to create new projects. + +> [!NOTE] +> +> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) +> +> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. + +**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_windows.md b/articles/getting_started/1_setting_up_your_os_for_development_windows.md new file mode 100644 index 00000000..efa74acd --- /dev/null +++ b/articles/getting_started/1_setting_up_your_os_for_development_windows.md @@ -0,0 +1,65 @@ +--- +title: Setting up your development environment for Visual Studio on Windows +description: This section provides a step-by-step guide for setting up your development environment on Windows. +--- + +MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) + +> [!NOTE] +> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). +> +> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). + +## Install Visual Studio 2022 + +Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. + +When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): + +* Mandatory for all platforms: + * **.Net desktop development** +* Optional + * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. + * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. + +![Visual Studio optional components](images/1_installer_vs_components.png) + +> [!WARNING] +> **Targeting Windows** +> +> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. +> +> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. + +### Install MonoGame extension for Visual Studio 2022 + +To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. + +1. Launch Visual Studio 2022 +2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. + + ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) + +3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. + + ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) + +4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. + + ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) + +5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. + +6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. + + ![VSIX Installer Window](images/1_vsix_installer_window.png) + +You now have the MonoGame templates installed and are ready to create new projects. + +> [!NOTE] +> +> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) +> +> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. + +**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) diff --git a/articles/getting_started/1_setting_up_your_development_environment_vscode.md b/articles/getting_started/2_choosing_your_ide_rider.md similarity index 100% rename from articles/getting_started/1_setting_up_your_development_environment_vscode.md rename to articles/getting_started/2_choosing_your_ide_rider.md diff --git a/articles/getting_started/2_choosing_your_ide_visual_studio.md b/articles/getting_started/2_choosing_your_ide_visual_studio.md new file mode 100644 index 00000000..efa74acd --- /dev/null +++ b/articles/getting_started/2_choosing_your_ide_visual_studio.md @@ -0,0 +1,65 @@ +--- +title: Setting up your development environment for Visual Studio on Windows +description: This section provides a step-by-step guide for setting up your development environment on Windows. +--- + +MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) + +> [!NOTE] +> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). +> +> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). + +## Install Visual Studio 2022 + +Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. + +When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): + +* Mandatory for all platforms: + * **.Net desktop development** +* Optional + * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. + * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. + +![Visual Studio optional components](images/1_installer_vs_components.png) + +> [!WARNING] +> **Targeting Windows** +> +> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. +> +> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. + +### Install MonoGame extension for Visual Studio 2022 + +To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. + +1. Launch Visual Studio 2022 +2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. + + ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) + +3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. + + ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) + +4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. + + ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) + +5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. + +6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. + + ![VSIX Installer Window](images/1_vsix_installer_window.png) + +You now have the MonoGame templates installed and are ready to create new projects. + +> [!NOTE] +> +> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) +> +> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. + +**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) diff --git a/articles/getting_started/2_choosing_your_ide_vscode.md b/articles/getting_started/2_choosing_your_ide_vscode.md new file mode 100644 index 00000000..ae78feab --- /dev/null +++ b/articles/getting_started/2_choosing_your_ide_vscode.md @@ -0,0 +1,172 @@ +--- +title: Setting up your development environment for VSCode +description: A step-by-step guide for setting up your development environment using VSCode +--- + +This is a guide on setting up your development environment for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary .NET SDK for developing C# applications, set up MonoGame C# templates for new projects, and configure Visual Studio Code with recommended extensions for C# development. By the end, you'll be fully equipped to start creating games with MonoGame using Visual Studio code. + +> [!IMPORTANT] +> The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). +> +> [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. + +## Install .NET 8 SDK + +To develop with C#, you will need to install the .NET SDK. At the time of this writing, the current version is .NET 8.0. You can follow the instructions below based your operating system to install the .NET 8.0 SDK + +### [Windows](#tab/windows) + +1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) + + ![Download .NET For Windows](./images/1_setting_up_your_development_environment/vscode/windows/download-dotnet.png) + +2. Click the **.NET SDK x64** download button to download. This will take you to the download page where the **dotnet-sdk-8.x.yyy-win-x64.exe** will download. +3. When the download completes, run the **dotnet-sdk-8.x.yyy-win-x64.exe** installer and complete the steps to install .NET on your machine. +4. When the install completes, open a new **Command Prompt** window and run the command `dotnet` to verify the installation was successful. + +![Verify Installation](./images/1_setting_up_your_development_environment/vscode/windows/verify-install.png) + +### [macOS](#tab/macos) + +1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) + + ![Download .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/download-dotnet.png) + +2. Download the .NET SDK x64-(Intel) Installer + + > [!NOTE] + > For the time being, MonoGame requires that you install the **.NET SDK x64-(Intel)** version of the .NET SDK even if you are running on an Apple Silicon (M1/M2) Mac. For Apple Silicon Macs, it also requires that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. + +3. Once the installation **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK + + ![Install .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/install-dotnet.png) + +4. Once the installation is complete, open a new terminal window and run the command `dotnet` to verify the installation was successful. + +![Verify Installation](./images/1_setting_up_your_development_environment/vscode/mac/verify-install.png) + +### [Linux](#tab/linux) + +1. Open a new **Terminal** window. +2. Enter the following command in the terminal to download the **dotnet-install.sh** + + ```sh + wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh + ``` + +3. Grant permission for the script to execute by entering the following command in the terminal: + + ```sh + chmod +x ./dotnet-install.sh + ``` + +4. Run the script to install the .NET 8 SDK by entering the following command in the terminal: + + ```sh + ./dotnet-install.sh + ``` + + ![.NET Install Script](./images/1_setting_up_your_development_environment/vscode/linux/dotnet-install-script.png) + +5. You will now need to setup your environment variables so that the `dotnet` command is recognized. To do this, open the file `~/.bashrc` in a text editor and add the following lines to the end of the file. + + ```sh + export DOTNET_ROOT=$HOME/.dotnet + export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools + ``` + + ![Add Environment Variables](./images/1_setting_up_your_development_environment/vscode/linux/add-environment-variables.png) + +6. Save and close the file, close any open terminal windows, then open a new terminal window so the new environment variables are registered. +7. Enter the `dotnet` command to validate that the .NET 8 SDK is now installed. + + ![Verify Installation](./images/1_setting_up_your_development_environment/vscode/linux/verify-install.png) + +--- + +> [!TIP] +> If you intend to target mobile platforms, you will also need to install the corresponding workloads. Enter the following commands in a command prompt/terminal +> +> ```sh +> dotnet workload install ios +> dotnet workload install android +> ``` + +## Install MonoGame Templates + +The .NET SDK installation provides the default C# project templates but does not include the MonoGame templates. These templates must be installed manually. + +1. Open a new terminal window (**Command Prompt** on Windows). + + ```sh + dotnet new install MonoGame.Templates.CSharp + ``` + + ![Install MonoGame Templates](./images/1_setting_up_your_development_environment/vscode/install-templates.png) + + > [!NOTE] + > When installing the templates, an error message may appear regarding the UWP template failing to install. This error can be safely ignored, as the UWP templates are deprecated and will be removed in a future MonoGame release. + +## Install Visual Studio Code + +### [Windows](#tab/windows) + +1. Open your web browser and navigate to [https://code.visualstudio.com/](https://code.visualstudio.com/). + + ![Download VSCode](./images/1_setting_up_your_development_environment/vscode/windows/download-vscode.png) + +2. Click the **Download for Windows** button. This will redirect you to the download page where the installer will automatically download. +3. When the download completes, run the installer and complete the steps to install Visual Studio Code. + +### [macOS](#tab/macos) + +1. Open your web browser and navigate to [https://code.visualstudio.com/](https://code.visualstudio.com/). + + ![Download VSCode](./images/1_setting_up_your_development_environment/vscode/mac/download-vscode.png) + +2. Click the **Download Mac Universal** button. This will redirect you to the page where the application archive (.zip) file will begin downloading. +3. Extract the contents of the VSCode archive that downloaded by double-clicking it inside a Finder window. This will extract the **Visual Studio Code.app** file. +4. Drag the **Visual Studio Code.app** file into the **Applications** folder, making it available in the macOS Launchpad. + +### [Linux](#tab/linux) + +The recommended method for installing Visual Studio Code in Linux is to use Snap. This is supported by most Linux distributions. + +- [Snap Package](https://code.visualstudio.com/docs/setup/linux#_snap) + +There are also individual guides below based on your Linux distribution if you do not want to use Snap: + +- [Debian and Ubuntu base distributions](https://code.visualstudio.com/docs/setup/linux#_debian-and-ubuntu-based-distributions) +- [RHEL, Fedora, and CentOS based distributions](https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions) +- [openSUSE and SLE-based distributions](https://code.visualstudio.com/docs/setup/linux#_opensuse-and-slebased-distributions) +- [AUR package for Arch Linux](https://code.visualstudio.com/docs/setup/linux#_aur-package-for-arch-linux) +- [Installing .rpm package manually](https://code.visualstudio.com/docs/setup/linux#_installing-rpm-package-manually) + +--- + +## Install Visual Studio Code C# Extensions + +To transform Visual Studio Code from a simple text editor into a powerful development environment for C# projects, you must install the Visual Studio Code C# extension. This extension enhances the editor by providing syntax highlighting, code analysis, IntelliSense, and other features that significantly improve the development experience and productivity when working with C#. + +1. Open Visual Studio Code. +2. Click the **Extensions** icon in the **Activity Bar** on the left. + + ![Click Extensions](./images/1_setting_up_your_development_environment/vscode/click-extensions.png) + +3. In the **Search Box** type `C#`. +4. Click **Install** for the **C# Dev Kit** extension. Installing this will also install the base **C#** extension. + +![Install C# DevKit Extension](./images/1_setting_up_your_development_environment/vscode/install-devkit.png) + +--- + +## Apple Silicon Known Issues + +> [!IMPORTANT] +> Please see the [Apple Silicon Known Issues](./1_setting_up_your_development_environment_unix.md#apple-silicon-known-issues) section in the [Mac/Linux](./1_setting_up_your_development_environment_unix.md) guide for help in resolving content build issues. +> +> This is only temporary a we are working in a "Fast Follow" release which will greatly improve and simplify content building on Mac/Linux + +--- + +**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/2_creating_a_new_project_netcore.md b/articles/getting_started/3_creating_a_new_project_netcore.md similarity index 100% rename from articles/getting_started/2_creating_a_new_project_netcore.md rename to articles/getting_started/3_creating_a_new_project_netcore.md diff --git a/articles/getting_started/2_creating_a_new_project_vs.md b/articles/getting_started/3_creating_a_new_project_vs.md similarity index 100% rename from articles/getting_started/2_creating_a_new_project_vs.md rename to articles/getting_started/3_creating_a_new_project_vs.md diff --git a/articles/getting_started/3_understanding_the_code.md b/articles/getting_started/4_understanding_the_code.md similarity index 100% rename from articles/getting_started/3_understanding_the_code.md rename to articles/getting_started/4_understanding_the_code.md diff --git a/articles/getting_started/4_adding_content.md b/articles/getting_started/5_adding_content.md similarity index 100% rename from articles/getting_started/4_adding_content.md rename to articles/getting_started/5_adding_content.md diff --git a/articles/getting_started/5_adding_basic_code.md b/articles/getting_started/6_adding_basic_code.md similarity index 100% rename from articles/getting_started/5_adding_basic_code.md rename to articles/getting_started/6_adding_basic_code.md diff --git a/articles/toc.yml b/articles/toc.yml index 91791f7e..3b043856 100644 --- a/articles/toc.yml +++ b/articles/toc.yml @@ -13,25 +13,25 @@ - name: 1. Setting up your OS for development items: - name: Windows - href: getting_started/1_setting_up_your_development_environment_visual_studio.md + href: getting_started/1_setting_up_your_os_for_development_windows.md - name: macOS - href: getting_started/1_setting_up_your_development_environment_vscode.md + href: getting_started/1_setting_up_your_os_for_development_macos.md - name: Ubuntu 20.04 - href: getting_started/1_setting_up_your_development_environment_unix.md + href: getting_started/1_setting_up_your_os_for_development_ubuntu.md - name: 2. Choosing your IDE items: - - name: Visual Studio 2022 - href: getting_started/1_setting_up_your_development_environment_visual_studio.md + - name: Visual Studio for Windows + href: getting_started/2_choosing_your_ide_visual_studio.md - name: VSCode - href: getting_started/1_setting_up_your_development_environment_vscode.md + href: getting_started/2_choosing_your_ide_vscode.md - name: Rider - href: getting_started/1_setting_up_your_development_environment_unix.md + href: getting_started/2_choosing_your_ide_rider.md - name: 3. Creating a new project items: - - name: Visual Studio 2022 - href: getting_started/2_creating_a_new_project_vs.md + - name: Visual Studio for Windows + href: getting_started/3_creating_a_new_project_vs.md - name: .NET CLI (Rider or Visual Studio Code) - href: getting_started/2_creating_a_new_project_netcore.md + href: getting_started/3_creating_a_new_project_netcore.md - name: 4. Understanding the Code href: getting_started/4_understanding_the_code.md - name: 5. Adding Content From 4b322715ce4fe86b2791ae836d306e0b5ec31bb6 Mon Sep 17 00:00:00 2001 From: SimonDarksideJ Date: Sat, 17 Aug 2024 12:56:46 +0100 Subject: [PATCH 04/14] Checkpoint --- ...ng_up_your_development_environment_unix.md | 125 ------------- ...etting_up_your_os_for_development_macos.md | 118 ++++++++----- ...tting_up_your_os_for_development_ubuntu.md | 105 ++++++----- ...ting_up_your_os_for_development_windows.md | 68 ++----- .../2_choosing_your_ide_rider.md | 167 ++---------------- .../2_choosing_your_ide_visual_studio.md | 28 +-- .../2_choosing_your_ide_vscode.md | 96 ++-------- .../3_creating_a_new_project_netcore.md | 10 +- .../3_creating_a_new_project_vs.md | 8 +- .../4_understanding_the_code.md | 22 ++- articles/getting_started/5_adding_content.md | 8 +- .../getting_started/6_adding_basic_code.md | 12 +- .../content_pipeline/using_mgcb_editor.md | 4 +- articles/getting_started/index.md | 53 ++++-- articles/toc.yml | 1 + external/MonoGame | 2 +- 16 files changed, 283 insertions(+), 544 deletions(-) delete mode 100644 articles/getting_started/1_setting_up_your_development_environment_unix.md diff --git a/articles/getting_started/1_setting_up_your_development_environment_unix.md b/articles/getting_started/1_setting_up_your_development_environment_unix.md deleted file mode 100644 index 733600a1..00000000 --- a/articles/getting_started/1_setting_up_your_development_environment_unix.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: Additional steps for setting up your macOS and Linux development environment -description: This section provides a step-by-step guide for setting up your development environment on macOS and Linux. ---- - -The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). - -> [!IMPORTANT] -> This guide assumes you have already followed the steps outlined in [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) -> -> This article only contains additional information specific to Mac/Linux hosts - -## MacOS considerations - -For the time being, MonoGame requires that you install the x64 version of the .NET SDK even if you are running on an Apple Silicon mac. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. - -## Setup Wine For Effect Compilation - -Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). - -### [macOS](#tab/macos) - -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: - -- **curl** must be installed -- **p7zip** must be installed -- **wine-stable** must be installed. - -These can be installed using **brew**. - -1. Open a terminal window. -2. Enter the following command: - - ```sh - brew install p7zip curl - brew install --cask wine-stable - ``` - - > [!CAUTION] - > It is recommended that you use `wine-stable` and not `wine-staging`. - -3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: - -```sh -wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash -``` - -This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. - -### [Linux](#tab/linux) - -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: - -- **curl** must be installed -- **p7zip** must be installed -- **wine64** must be installed. - -For Debian-based distributions like Ubuntu, you can perform the following: - -1. Open a terminal window -2. Enter the following command - - ```sh - sudo apt install curl p7zip-full wine64 - ``` - - > [!TIP] - > If you receive an error stating that either of the packages do not have an install candidate, you may need to enable the universe apt repository. To do this, enter the following commands in the terminal - > - > ```sh - > sudo add-apt-repository universe - > sudo apt update - > ``` - > - > Then try installing the packages again. - - > [!CAUTION] - > If you plan to install Wine using the `winehq-*` package instead, it is recommended that you use the `winehq-stable` package and not `-staging`. - -3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: - - ```sh - wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash - ``` - -This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. - ---- - -## Apple Silicon Known Issues - -There is currently a two known issue when building content on an Apple Silicon (M1/M2) Mac: - -1. **Building Textures**: An exception occurs stating that the **freeimage** lib could not be found. -2. **Building SpriteFonts**: An exception occurs stating that the **freetype** lib could not be found. -3. **Building Models**: An exception occurs starting that the **assimp** lib could not be found. - -These issue occur due to needing compiled versions of these libs for the M1/M2 architecture. [There is currently work being done to resolve this](https://github.com/MonoGame/MonoGame/issues/8124), however in the meantime, you can use the following workaround that has been provided by community members. - -1. Download and install the x64 version of [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). This will place an x64 version of .NET 6 in a `/usr/local/share/dotnet/x64` directory. -NOTE: It MUST be the x64 version in order for this to work. This will allow the x64 native libraries that the MonoGame Content Pipeline uses to function on the Apple Silicon device. -Currently it also needs to be .NET 6 for the 3.8.1 Release of MonoGame. - -2. Open your .csproj and add the following lines to the first `` section. - - ```xml - /usr/local/share/dotnet/x64/dotnet - ``` - -3. (Alternative) The directory above is not in the path. But we do not want the system to be confused on which .NET is should be using. So rather thatn putting the x64 verison in the path we should instead create a symlink named `dotnet64`. - - ```sh - sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/share/dotnet/dotnet64 - ``` - -We can then use this value as the value for `DotnetCommand` - -```xml -dotnet64 -``` - -> [!IMPORTANT] -> A fast follow release is planned for Mac/Linux support to improve the content management side of MonoGame. - -**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_macos.md b/articles/getting_started/1_setting_up_your_os_for_development_macos.md index efa74acd..8c27a8d1 100644 --- a/articles/getting_started/1_setting_up_your_os_for_development_macos.md +++ b/articles/getting_started/1_setting_up_your_os_for_development_macos.md @@ -1,65 +1,101 @@ --- -title: Setting up your development environment for Visual Studio on Windows -description: This section provides a step-by-step guide for setting up your development environment on Windows. +title: Setting up your OS for development on MacOS +description: This section provides a step-by-step guide for setting up your development environment on Mac. --- -MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) +To develop with MonoGame in C#, you will need to install the .NET SDK. As of MonoGame 3.8.2 the minimum supported version is .NET 8. -> [!NOTE] -> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). -> -> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). +## Install .NET 8 SDK -## Install Visual Studio 2022 +> [!IMPORTANT] +> For the time being, MonoGame requires that you install the x64 version of the .NET SDK even if you are running on an Apple Silicon mac. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. -Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. +1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) -When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): + ![Download .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/download-dotnet.png) -* Mandatory for all platforms: - * **.Net desktop development** -* Optional - * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. - * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. +2. Download the .NET SDK x64-(Intel) Installer -![Visual Studio optional components](images/1_installer_vs_components.png) + > [!NOTE] + > For the time being, MonoGame requires that you install the **.NET SDK x64-(Intel)** version of the .NET SDK even if you are running on an Apple Silicon (M1/M2) Mac. For Apple Silicon Macs, it also requires that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. -> [!WARNING] -> **Targeting Windows** -> -> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. -> -> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. +3. Once the installation **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK -### Install MonoGame extension for Visual Studio 2022 + ![Install .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/install-dotnet.png) -To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. +4. Once the installation is complete, open a new terminal window and run the command `dotnet` to verify the installation was successful. -1. Launch Visual Studio 2022 -2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. +![Verify Installation](./images/1_setting_up_your_development_environment/vscode/mac/verify-install.png) - ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) +## Setup Wine For Effect Compilation -3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. +Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). - ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: -4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. +- **curl** must be installed +- **p7zip** must be installed +- **wine-stable** must be installed. - ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) +These can be installed using **brew**. -5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. +1. Open a terminal window. +2. Enter the following command: -6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. + ```sh + brew install p7zip curl + brew install --cask wine-stable + ``` - ![VSIX Installer Window](images/1_vsix_installer_window.png) + > [!CAUTION] + > It is recommended that you use `wine-stable` and not `wine-staging`. -You now have the MonoGame templates installed and are ready to create new projects. +3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: -> [!NOTE] -> -> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) -> -> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. +```sh +wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash +``` -**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) +This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. + +## Apple Silicon Known Issues + +There is currently a two known issue when building content on an Apple Silicon (M1/M2) Mac: + +1. **Building Textures**: An exception occurs stating that the **freeimage** lib could not be found. +2. **Building SpriteFonts**: An exception occurs stating that the **freetype** lib could not be found. +3. **Building Models**: An exception occurs starting that the **assimp** lib could not be found. + +These issue occur due to needing compiled versions of these libs for the M1/M2 architecture. [There is currently work being done to resolve this](https://github.com/MonoGame/MonoGame/issues/8124), however in the meantime, you can use the following workaround that has been provided by community members. + +1. Download and install the x64 version of [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). This will place an x64 version of .NET 6 in a `/usr/local/share/dotnet/x64` directory. +NOTE: It MUST be the x64 version in order for this to work. This will allow the x64 native libraries that the MonoGame Content Pipeline uses to function on the Apple Silicon device. +Currently it also needs to be .NET 6 for the 3.8.1 Release of MonoGame. + +2. Open your .csproj and add the following lines to the first `` section. + + ```xml + /usr/local/share/dotnet/x64/dotnet + ``` + +3. (Alternative) The directory above is not in the path. But we do not want the system to be confused on which .NET is should be using. So rather thatn putting the x64 verison in the path we should instead create a symlink named `dotnet64`. + + ```sh + sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/share/dotnet/dotnet64 + ``` + +We can then use this value as the value for `DotnetCommand` + +```xml +dotnet64 +``` + +> [!IMPORTANT] +> A fast follow release is planned for Mac/Linux support to improve the content management side of MonoGame. + +## Next Steps + +Choose from one of the two IDE options on MacOS: + +- [Setting up VSCode](./2_choosing_your_ide_vscode.md) +- [Setting up Rider](./2_choosing_your_ide_rider.md) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md index efa74acd..d53bc98d 100644 --- a/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md +++ b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md @@ -1,65 +1,90 @@ --- -title: Setting up your development environment for Visual Studio on Windows +title: Setting up your OS for development on Ubuntu description: This section provides a step-by-step guide for setting up your development environment on Windows. --- -MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) +To develop with MonoGame in C#, you will need to install the .NET SDK. As of MonoGame 3.8.2 the minimum supported version is .NET 8. -> [!NOTE] -> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). -> -> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). +## Install .NET 8 SDK -## Install Visual Studio 2022 +1. Open a new **Terminal** window. +2. Enter the following command in the terminal to download the **dotnet-install.sh** -Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. + ```sh + wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh + ``` -When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): +3. Grant permission for the script to execute by entering the following command in the terminal: -* Mandatory for all platforms: - * **.Net desktop development** -* Optional - * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. - * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. + ```sh + chmod +x ./dotnet-install.sh + ``` -![Visual Studio optional components](images/1_installer_vs_components.png) +4. Run the script to install the .NET 8 SDK by entering the following command in the terminal: -> [!WARNING] -> **Targeting Windows** -> -> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. -> -> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. + ```sh + ./dotnet-install.sh + ``` -### Install MonoGame extension for Visual Studio 2022 + ![.NET Install Script](./images/1_setting_up_your_development_environment/vscode/linux/dotnet-install-script.png) -To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. +5. You will now need to setup your environment variables so that the `dotnet` command is recognized. To do this, open the file `~/.bashrc` in a text editor and add the following lines to the end of the file. -1. Launch Visual Studio 2022 -2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. + ```sh + export DOTNET_ROOT=$HOME/.dotnet + export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools + ``` - ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) + ![Add Environment Variables](./images/1_setting_up_your_development_environment/vscode/linux/add-environment-variables.png) -3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. +6. Save and close the file, close any open terminal windows, then open a new terminal window so the new environment variables are registered. +7. Enter the `dotnet` command to validate that the .NET 8 SDK is now installed. - ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) + ![Verify Installation](./images/1_setting_up_your_development_environment/vscode/linux/verify-install.png) -4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. +## Setup Wine For Effect Compilation - ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) +Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). -5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: -6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. +- **curl** must be installed +- **p7zip** must be installed +- **wine64** must be installed. - ![VSIX Installer Window](images/1_vsix_installer_window.png) +For Debian-based distributions like Ubuntu, you can perform the following: -You now have the MonoGame templates installed and are ready to create new projects. +1. Open a terminal window +2. Enter the following command -> [!NOTE] -> -> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) -> -> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. + ```sh + sudo apt install curl p7zip-full wine64 + ``` -**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) + > [!TIP] + > If you receive an error stating that either of the packages do not have an install candidate, you may need to enable the universe apt repository. To do this, enter the following commands in the terminal + > + > ```sh + > sudo add-apt-repository universe + > sudo apt update + > ``` + > + > Then try installing the packages again. + + > [!CAUTION] + > If you plan to install Wine using the `winehq-*` package instead, it is recommended that you use the `winehq-stable` package and not `-staging`. + +3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: + + ```sh + wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash + ``` + +This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. + +## Next Steps + +Choose from one of the two IDE options on Ubuntu: + +- [Setting up VSCode](./2_choosing_your_ide_vscode.md) +- [Setting up Rider](./2_choosing_your_ide_rider.md) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_windows.md b/articles/getting_started/1_setting_up_your_os_for_development_windows.md index efa74acd..e75c062b 100644 --- a/articles/getting_started/1_setting_up_your_os_for_development_windows.md +++ b/articles/getting_started/1_setting_up_your_os_for_development_windows.md @@ -1,65 +1,31 @@ --- -title: Setting up your development environment for Visual Studio on Windows +title: Setting up your OS for development on Windows description: This section provides a step-by-step guide for setting up your development environment on Windows. --- -MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) +To develop with MonoGame in C#, you will need to install the .NET SDK. As of MonoGame 3.8.2 the minimum supported version is .NET 8. -> [!NOTE] -> Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). -> -> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). +> [!IMPORTANT] +> If your chosen IDE for development is [Visual Studio](https://visualstudio.microsoft.com/) then you can skip this step as .NET 8 is included with the Visual Studio Installer. -## Install Visual Studio 2022 +## Install .NET 8 SDK -Before using MonoGame with Visual Studio you need to ensure you have installed the latest [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) along with the required components. +You can follow the instructions below based your operating system to install the .NET 8.0 SDK -When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): +1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) -* Mandatory for all platforms: - * **.Net desktop development** -* Optional - * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. - * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. + ![Download .NET For Windows](./images/1_setting_up_your_development_environment/vscode/windows/download-dotnet.png) -![Visual Studio optional components](images/1_installer_vs_components.png) +2. Click the **.NET SDK x64** download button to download. This will take you to the download page where the **dotnet-sdk-8.x.yyy-win-x64.exe** will download. +3. When the download completes, run the **dotnet-sdk-8.x.yyy-win-x64.exe** installer and complete the steps to install .NET on your machine. +4. When the install completes, open a new **Command Prompt** window and run the command `dotnet` to verify the installation was successful. -> [!WARNING] -> **Targeting Windows** -> -> If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly. -> -> Work is underway however to update to support DirectX 12 on Windows and Xbox very soon. +![Verify Installation](./images/1_setting_up_your_development_environment/vscode/windows/verify-install.png) -### Install MonoGame extension for Visual Studio 2022 +## Next Steps -To create new MonoGame projects from within Visual Studio 2022, you will need to install the **MonoGame Framework C# project templates** extension. The following steps demonstrate how to install the extension. +Choose from one of the three IDE options on Windows: -1. Launch Visual Studio 2022 -2. Select **Continue without code**. This will launch Visual Studio without any project or solution opened. - - ![Visual Studio Launcher Continue Without Code](images/1_continue_without_code.png) - -3. Click "*Extensions -> Manage Extensions* in the Visual Studio 2022 menu bar. This will open the Manage Extensions dialog window. - - ![Extensions -> Manage Extensions Menu Selection](images/1_visual_studio_extension_menu.png) - -4. Use the search box in the top-right corner of the Manage Extensions dialog window to search for **MonoGame**, then click the **MonoGame Framework C# project templates** extension as shown below and download it to install it. - - ![Visual Studio Extension Manager](images/1_visual_studio_extension_manager.png) - -5. After it is downloaded, an alert will appear at the bottom of the Manage Extensions window that states "Your changes will be scheduled. The modifications will begin when all Microsoft Visual Studio windows are closed." Click the **Close** button, then close Visual Studio 2022. - -6. After closing Visual Studio 2022, a VSIX Installer window will open confirming that you want to install the **MonoGame Framework C# project templates** extension. Click the **Modify** button to accept the install. - - ![VSIX Installer Window](images/1_vsix_installer_window.png) - -You now have the MonoGame templates installed and are ready to create new projects. - -> [!NOTE] -> -> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) -> -> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. - -**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) +- [Setting up Visual Studio](./2_choosing_your_ide_visual_studio.md) +- [Setting up VSCode](./2_choosing_your_ide_vscode.md) +- [Setting up Rider](./2_choosing_your_ide_rider.md) diff --git a/articles/getting_started/2_choosing_your_ide_rider.md b/articles/getting_started/2_choosing_your_ide_rider.md index ae78feab..4eb34af0 100644 --- a/articles/getting_started/2_choosing_your_ide_rider.md +++ b/articles/getting_started/2_choosing_your_ide_rider.md @@ -1,172 +1,25 @@ --- -title: Setting up your development environment for VSCode -description: A step-by-step guide for setting up your development environment using VSCode +title: Setting up your development environment for Rider +description: A step-by-step guide for setting up your development IDE for Rider --- -This is a guide on setting up your development environment for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary .NET SDK for developing C# applications, set up MonoGame C# templates for new projects, and configure Visual Studio Code with recommended extensions for C# development. By the end, you'll be fully equipped to start creating games with MonoGame using Visual Studio code. +This is a guide on setting up your development environment for creating games with MonoGame using Rider by DevExpress. By following this guide, you will learn how to install the tools for developing C# applications and configure Rider with recommended extensions for C# development. + +By the end, you will be fully equipped to start creating games with MonoGame using Rider. > [!IMPORTANT] > The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). > > [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. -## Install .NET 8 SDK - -To develop with C#, you will need to install the .NET SDK. At the time of this writing, the current version is .NET 8.0. You can follow the instructions below based your operating system to install the .NET 8.0 SDK - -### [Windows](#tab/windows) - -1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) - - ![Download .NET For Windows](./images/1_setting_up_your_development_environment/vscode/windows/download-dotnet.png) - -2. Click the **.NET SDK x64** download button to download. This will take you to the download page where the **dotnet-sdk-8.x.yyy-win-x64.exe** will download. -3. When the download completes, run the **dotnet-sdk-8.x.yyy-win-x64.exe** installer and complete the steps to install .NET on your machine. -4. When the install completes, open a new **Command Prompt** window and run the command `dotnet` to verify the installation was successful. - -![Verify Installation](./images/1_setting_up_your_development_environment/vscode/windows/verify-install.png) - -### [macOS](#tab/macos) - -1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) - - ![Download .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/download-dotnet.png) - -2. Download the .NET SDK x64-(Intel) Installer - - > [!NOTE] - > For the time being, MonoGame requires that you install the **.NET SDK x64-(Intel)** version of the .NET SDK even if you are running on an Apple Silicon (M1/M2) Mac. For Apple Silicon Macs, it also requires that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. - -3. Once the installation **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK - - ![Install .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/install-dotnet.png) - -4. Once the installation is complete, open a new terminal window and run the command `dotnet` to verify the installation was successful. - -![Verify Installation](./images/1_setting_up_your_development_environment/vscode/mac/verify-install.png) - -### [Linux](#tab/linux) - -1. Open a new **Terminal** window. -2. Enter the following command in the terminal to download the **dotnet-install.sh** - - ```sh - wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh - ``` - -3. Grant permission for the script to execute by entering the following command in the terminal: - - ```sh - chmod +x ./dotnet-install.sh - ``` - -4. Run the script to install the .NET 8 SDK by entering the following command in the terminal: - - ```sh - ./dotnet-install.sh - ``` - - ![.NET Install Script](./images/1_setting_up_your_development_environment/vscode/linux/dotnet-install-script.png) - -5. You will now need to setup your environment variables so that the `dotnet` command is recognized. To do this, open the file `~/.bashrc` in a text editor and add the following lines to the end of the file. - - ```sh - export DOTNET_ROOT=$HOME/.dotnet - export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools - ``` - - ![Add Environment Variables](./images/1_setting_up_your_development_environment/vscode/linux/add-environment-variables.png) - -6. Save and close the file, close any open terminal windows, then open a new terminal window so the new environment variables are registered. -7. Enter the `dotnet` command to validate that the .NET 8 SDK is now installed. - - ![Verify Installation](./images/1_setting_up_your_development_environment/vscode/linux/verify-install.png) - ---- - -> [!TIP] -> If you intend to target mobile platforms, you will also need to install the corresponding workloads. Enter the following commands in a command prompt/terminal -> -> ```sh -> dotnet workload install ios -> dotnet workload install android -> ``` - -## Install MonoGame Templates - -The .NET SDK installation provides the default C# project templates but does not include the MonoGame templates. These templates must be installed manually. - -1. Open a new terminal window (**Command Prompt** on Windows). - - ```sh - dotnet new install MonoGame.Templates.CSharp - ``` - - ![Install MonoGame Templates](./images/1_setting_up_your_development_environment/vscode/install-templates.png) - - > [!NOTE] - > When installing the templates, an error message may appear regarding the UWP template failing to install. This error can be safely ignored, as the UWP templates are deprecated and will be removed in a future MonoGame release. - -## Install Visual Studio Code - -### [Windows](#tab/windows) - -1. Open your web browser and navigate to [https://code.visualstudio.com/](https://code.visualstudio.com/). - - ![Download VSCode](./images/1_setting_up_your_development_environment/vscode/windows/download-vscode.png) - -2. Click the **Download for Windows** button. This will redirect you to the download page where the installer will automatically download. -3. When the download completes, run the installer and complete the steps to install Visual Studio Code. - -### [macOS](#tab/macos) - -1. Open your web browser and navigate to [https://code.visualstudio.com/](https://code.visualstudio.com/). - - ![Download VSCode](./images/1_setting_up_your_development_environment/vscode/mac/download-vscode.png) - -2. Click the **Download Mac Universal** button. This will redirect you to the page where the application archive (.zip) file will begin downloading. -3. Extract the contents of the VSCode archive that downloaded by double-clicking it inside a Finder window. This will extract the **Visual Studio Code.app** file. -4. Drag the **Visual Studio Code.app** file into the **Applications** folder, making it available in the macOS Launchpad. - -### [Linux](#tab/linux) - -The recommended method for installing Visual Studio Code in Linux is to use Snap. This is supported by most Linux distributions. - -- [Snap Package](https://code.visualstudio.com/docs/setup/linux#_snap) - -There are also individual guides below based on your Linux distribution if you do not want to use Snap: - -- [Debian and Ubuntu base distributions](https://code.visualstudio.com/docs/setup/linux#_debian-and-ubuntu-based-distributions) -- [RHEL, Fedora, and CentOS based distributions](https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions) -- [openSUSE and SLE-based distributions](https://code.visualstudio.com/docs/setup/linux#_opensuse-and-slebased-distributions) -- [AUR package for Arch Linux](https://code.visualstudio.com/docs/setup/linux#_aur-package-for-arch-linux) -- [Installing .rpm package manually](https://code.visualstudio.com/docs/setup/linux#_installing-rpm-package-manually) - --- -## Install Visual Studio Code C# Extensions - -To transform Visual Studio Code from a simple text editor into a powerful development environment for C# projects, you must install the Visual Studio Code C# extension. This extension enhances the editor by providing syntax highlighting, code analysis, IntelliSense, and other features that significantly improve the development experience and productivity when working with C#. - -1. Open Visual Studio Code. -2. Click the **Extensions** icon in the **Activity Bar** on the left. +## Install Rider - ![Click Extensions](./images/1_setting_up_your_development_environment/vscode/click-extensions.png) +## Setup stuff?? -3. In the **Search Box** type `C#`. -4. Click **Install** for the **C# Dev Kit** extension. Installing this will also install the base **C#** extension. +## Next Steps -![Install C# DevKit Extension](./images/1_setting_up_your_development_environment/vscode/install-devkit.png) - ---- - -## Apple Silicon Known Issues - -> [!IMPORTANT] -> Please see the [Apple Silicon Known Issues](./1_setting_up_your_development_environment_unix.md#apple-silicon-known-issues) section in the [Mac/Linux](./1_setting_up_your_development_environment_unix.md) guide for help in resolving content build issues. -> -> This is only temporary a we are working in a "Fast Follow" release which will greatly improve and simplify content building on Mac/Linux - ---- +Next, get to know MonoGame by creating your first game project: -**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) +- [Creating a new project](3_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/2_choosing_your_ide_visual_studio.md b/articles/getting_started/2_choosing_your_ide_visual_studio.md index efa74acd..a2cdbb73 100644 --- a/articles/getting_started/2_choosing_your_ide_visual_studio.md +++ b/articles/getting_started/2_choosing_your_ide_visual_studio.md @@ -1,6 +1,6 @@ --- -title: Setting up your development environment for Visual Studio on Windows -description: This section provides a step-by-step guide for setting up your development environment on Windows. +title: Setting up Visual Studio on Windows +description: This section provides a step-by-step guide for setting up your development IDE on Windows for Visual Studio. --- MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) @@ -8,7 +8,7 @@ MonoGame can work with most .NET compatible tools, but we recommend [Visual Stud > [!NOTE] > Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/). > -> Check out the guide for [Setting up VSCode / Rider here](./1_setting_up_your_development_environment_vscode.md). +> Check out the guide for [Setting up VSCode](./2_choosing_your_ide_vscode.md) / [Rider here](./2_choosing_your_ide_rider.md). ## Install Visual Studio 2022 @@ -16,11 +16,11 @@ Before using MonoGame with Visual Studio you need to ensure you have installed t When installing Visual Studio, the following workloads are required depending on your desired [target platform(s)](./platforms.md): -* Mandatory for all platforms: - * **.Net desktop development** -* Optional - * **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. - * **Universal Windows Platform development** if you wish to build for Windows store or Xbox. +- Mandatory for all platforms: + - **.Net desktop development** +- Optional + - **.Net Multi-platform App UI Development** if you wish to target Android, iOS, or iPadOS. + - **Universal Windows Platform development** if you wish to build for Windows store or Xbox. ![Visual Studio optional components](images/1_installer_vs_components.png) @@ -56,10 +56,10 @@ To create new MonoGame projects from within Visual Studio 2022, you will need to You now have the MonoGame templates installed and are ready to create new projects. -> [!NOTE] -> -> ## [Alternative, use VSCode/Rider on Windows](./1_setting_up_your_development_environment_vscode.md) -> -> If you prefer to use JetBrains Rider or Visual Studio Code, then check out the [Setting up your development environment for VSCode](./1_setting_up_your_development_environment_vscode.md) article instead. +--- + +## Next Steps + +Next, get to know MonoGame by creating your first game project: -**Next up:** [Creating a new project](2_creating_a_new_project_vs.md) +- [Creating a new project](3_creating_a_new_project_vs.md) diff --git a/articles/getting_started/2_choosing_your_ide_vscode.md b/articles/getting_started/2_choosing_your_ide_vscode.md index ae78feab..e73581d6 100644 --- a/articles/getting_started/2_choosing_your_ide_vscode.md +++ b/articles/getting_started/2_choosing_your_ide_vscode.md @@ -1,97 +1,17 @@ --- title: Setting up your development environment for VSCode -description: A step-by-step guide for setting up your development environment using VSCode +description: A step-by-step guide for setting up your development IDE using VSCode --- -This is a guide on setting up your development environment for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary .NET SDK for developing C# applications, set up MonoGame C# templates for new projects, and configure Visual Studio Code with recommended extensions for C# development. By the end, you'll be fully equipped to start creating games with MonoGame using Visual Studio code. +This is a guide on setting up your development IDE for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary tools for developing C# applications and configure Visual Studio Code with recommended extensions for C# development. + +By the end, you will be fully equipped to start creating games with MonoGame using Visual Studio code. > [!IMPORTANT] > The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). > > [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. -## Install .NET 8 SDK - -To develop with C#, you will need to install the .NET SDK. At the time of this writing, the current version is .NET 8.0. You can follow the instructions below based your operating system to install the .NET 8.0 SDK - -### [Windows](#tab/windows) - -1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) - - ![Download .NET For Windows](./images/1_setting_up_your_development_environment/vscode/windows/download-dotnet.png) - -2. Click the **.NET SDK x64** download button to download. This will take you to the download page where the **dotnet-sdk-8.x.yyy-win-x64.exe** will download. -3. When the download completes, run the **dotnet-sdk-8.x.yyy-win-x64.exe** installer and complete the steps to install .NET on your machine. -4. When the install completes, open a new **Command Prompt** window and run the command `dotnet` to verify the installation was successful. - -![Verify Installation](./images/1_setting_up_your_development_environment/vscode/windows/verify-install.png) - -### [macOS](#tab/macos) - -1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) - - ![Download .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/download-dotnet.png) - -2. Download the .NET SDK x64-(Intel) Installer - - > [!NOTE] - > For the time being, MonoGame requires that you install the **.NET SDK x64-(Intel)** version of the .NET SDK even if you are running on an Apple Silicon (M1/M2) Mac. For Apple Silicon Macs, it also requires that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. - -3. Once the installation **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK - - ![Install .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/install-dotnet.png) - -4. Once the installation is complete, open a new terminal window and run the command `dotnet` to verify the installation was successful. - -![Verify Installation](./images/1_setting_up_your_development_environment/vscode/mac/verify-install.png) - -### [Linux](#tab/linux) - -1. Open a new **Terminal** window. -2. Enter the following command in the terminal to download the **dotnet-install.sh** - - ```sh - wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh - ``` - -3. Grant permission for the script to execute by entering the following command in the terminal: - - ```sh - chmod +x ./dotnet-install.sh - ``` - -4. Run the script to install the .NET 8 SDK by entering the following command in the terminal: - - ```sh - ./dotnet-install.sh - ``` - - ![.NET Install Script](./images/1_setting_up_your_development_environment/vscode/linux/dotnet-install-script.png) - -5. You will now need to setup your environment variables so that the `dotnet` command is recognized. To do this, open the file `~/.bashrc` in a text editor and add the following lines to the end of the file. - - ```sh - export DOTNET_ROOT=$HOME/.dotnet - export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools - ``` - - ![Add Environment Variables](./images/1_setting_up_your_development_environment/vscode/linux/add-environment-variables.png) - -6. Save and close the file, close any open terminal windows, then open a new terminal window so the new environment variables are registered. -7. Enter the `dotnet` command to validate that the .NET 8 SDK is now installed. - - ![Verify Installation](./images/1_setting_up_your_development_environment/vscode/linux/verify-install.png) - ---- - -> [!TIP] -> If you intend to target mobile platforms, you will also need to install the corresponding workloads. Enter the following commands in a command prompt/terminal -> -> ```sh -> dotnet workload install ios -> dotnet workload install android -> ``` - ## Install MonoGame Templates The .NET SDK installation provides the default C# project templates but does not include the MonoGame templates. These templates must be installed manually. @@ -163,10 +83,14 @@ To transform Visual Studio Code from a simple text editor into a powerful develo ## Apple Silicon Known Issues > [!IMPORTANT] -> Please see the [Apple Silicon Known Issues](./1_setting_up_your_development_environment_unix.md#apple-silicon-known-issues) section in the [Mac/Linux](./1_setting_up_your_development_environment_unix.md) guide for help in resolving content build issues. +> Please see the [Apple Silicon Known Issues](./1_setting_up_your_os_for_development_macos.md#apple-silicon-known-issues) section in the [MacOS guide](./1_setting_up_your_os_for_development_macos.md) guide for help in resolving content build issues. > > This is only temporary a we are working in a "Fast Follow" release which will greatly improve and simplify content building on Mac/Linux --- -**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md) +## Next Steps + +Next, get to know MonoGame by creating your first game project: + +- [Creating a new project](3_creating_a_new_project_netcore.md) diff --git a/articles/getting_started/3_creating_a_new_project_netcore.md b/articles/getting_started/3_creating_a_new_project_netcore.md index c0464e19..cb968c1b 100644 --- a/articles/getting_started/3_creating_a_new_project_netcore.md +++ b/articles/getting_started/3_creating_a_new_project_netcore.md @@ -8,6 +8,8 @@ This guide will walk you through building a starter game with MonoGame using onl > [!NOTE] > It is assumed that you have already properly installed the .NET 8 SDK and MonoGame. +--- + > [!IMPORTANT] > Be aware that for iOS/iPadOS and Android, development might be limited when using the .NET CLI. Many of the development features for those targets are exclusive to Visual Studio 2022. @@ -37,4 +39,10 @@ Once created, you can open your code editor of choice in the new folder and begi > To run your project, check the instructions for [packaging your game](./packaging_games.md) to build the executable using the .NET tooling. -**Next up:** [Understanding the code](3_understanding_the_code.md) +--- + +## Next Steps + +Next, get to know MonoGame's code structure and project layout: + +- [Understanding the code](4_understanding_the_code.md) diff --git a/articles/getting_started/3_creating_a_new_project_vs.md b/articles/getting_started/3_creating_a_new_project_vs.md index 85160a38..b39d06ef 100644 --- a/articles/getting_started/3_creating_a_new_project_vs.md +++ b/articles/getting_started/3_creating_a_new_project_vs.md @@ -28,4 +28,10 @@ You should now see your game window running. ![Game](images/vswin_mg_new_5.png) -**Next up:** [Understanding the code](3_understanding_the_code.md) +--- + +## Next Steps + +Next, get to know MonoGame's code structure and project layout: + +- [Understanding the code](4_understanding_the_code.md) diff --git a/articles/getting_started/4_understanding_the_code.md b/articles/getting_started/4_understanding_the_code.md index 2ba87509..e156ce7d 100644 --- a/articles/getting_started/4_understanding_the_code.md +++ b/articles/getting_started/4_understanding_the_code.md @@ -8,19 +8,19 @@ description: This tutorial will go over the code that is generated when you star Within the **Game.cs** class file, which is the core of any MonoGame project, you will find several critical sections necessary for your game to run: -* **Using statements** - which provide easy access to the various components of MonoGame. +- **Using statements** - which provide easy access to the various components of MonoGame. -* The **Game Class** definition - the heart of any MonoGame project. +- The **Game Class** definition - the heart of any MonoGame project. -* The **Game constructor** and key variables - which tell the project how to start. +- The **Game constructor** and key variables - which tell the project how to start. -* The **Initialize** method - to initialize the game upon its startup. +- The **Initialize** method - to initialize the game upon its startup. -* The **Load and Unload Content** methods - which are used to add and remove assets from the running game from the [Content project](4_adding_content.md). +- The **Load and Unload Content** methods - which are used to add and remove assets from the running game from the [Content project](5_adding_content.md). -* The **Update** method - which is called on a regular interval to update your game state, e.g. take player inputs, move ships, or animate entities. +- The **Update** method - which is called on a regular interval to update your game state, e.g. take player inputs, move ships, or animate entities. -* The **Draw** method - which is called on a regular interval to take the current game state and draw your game entities to the screen. +- The **Draw** method - which is called on a regular interval to take the current game state and draw your game entities to the screen. Read further for more details and examples while looking through the code of your new project. @@ -126,4 +126,10 @@ protected override void Draw(GameTime gameTime) Similar to the Update method, the **Draw** method is also called multiple times per second. This, as the name suggests, is responsible for drawing content to the screen. -**Next up:** [Adding Content](4_adding_content.md) +--- + +## Next Steps + +Next, learn how to add and import content into your game project: + +- [Adding Content](5_adding_content.md) diff --git a/articles/getting_started/5_adding_content.md b/articles/getting_started/5_adding_content.md index a8ae2052..aeb9375a 100644 --- a/articles/getting_started/5_adding_content.md +++ b/articles/getting_started/5_adding_content.md @@ -106,4 +106,10 @@ Now run the game. You should get the following: ![Game](images/3_game.png) -**Next up:** [Adding Basic Code](5_adding_basic_code.md) +--- + +## Next Steps + +Next, learn how to get your first basic game concept running: + +- [Adding Basic Code](6_adding_basic_code.md) diff --git a/articles/getting_started/6_adding_basic_code.md b/articles/getting_started/6_adding_basic_code.md index d035913b..8e2a7c3f 100644 --- a/articles/getting_started/6_adding_basic_code.md +++ b/articles/getting_started/6_adding_basic_code.md @@ -4,7 +4,7 @@ description: This tutorial will go over adding basic logic to your game --- > [!NOTE] -> this tutorial continues from where [4. Adding Content](4_adding_content.md) left off. +> this tutorial continues from where [5. Adding Content](5_adding_content.md) left off. --- @@ -257,6 +257,16 @@ Now run the game to test for yourself that the ball cannot go beyond the window Happy Coding ^^ +--- + +## Next Steps + +We recommend browsing through the [Getting to know MonoGame](../getting_to_know/index.md) section to learn more and get some tips and tricks from the MonoGame team. + +- [Getting to know MonoGame](../getting_to_know/index.md) +- [What Is articles](../getting_to_know/whatis/index.md) +- [How To articles](../getting_to_know/howto/index.md) + ## Further Reading Check out the [Tutorials section](../tutorials.md) for many more helpful guides and tutorials on building games with MonoGame. We have an expansive library of helpful content, all provided by other MonoGame developers in the community. diff --git a/articles/getting_started/content_pipeline/using_mgcb_editor.md b/articles/getting_started/content_pipeline/using_mgcb_editor.md index 91e28f9b..fcaa15b9 100644 --- a/articles/getting_started/content_pipeline/using_mgcb_editor.md +++ b/articles/getting_started/content_pipeline/using_mgcb_editor.md @@ -5,8 +5,8 @@ description: Learn how to use the MGCB Editor to organize and build content for The [MGCB Editor](../tools/mgcb_editor.md) is used to organize and build content for use with MonoGame. It is accessed by either: -* Double-clicking a "**.mgcb**" file from within the Visual Studio solution explorer (providing that you installed [MonoGame's Visual Studio extension](../1_setting_up_your_development_environment_visual_studio.md#install-monogame-extension-for-visual-studio-2022)). -* Right-clicking a "**.mgcb**" file from within the Visual Studio code and selecting "Open in MGCB Editor" (provided you have installed the [VSCode extension](../1_setting_up_your_development_environment_vscode.md#install-visual-studio-code-c-extensions)) +* Double-clicking a "**.mgcb**" file from within the Visual Studio solution explorer (providing that you installed [MonoGame's Visual Studio extension](../2_choosing_your_ide_visual_studio.md#install-monogame-extension-for-visual-studio-2022)). +* Right-clicking a "**.mgcb**" file from within the Visual Studio code and selecting "Open in MGCB Editor" (provided you have installed the [VSCode extension](../2_choosing_your_ide_vscode.md#install-visual-studio-code-c-extensions)) Alternatively, you can build it [directly from source](https://github.com/MonoGame/MonoGame/tree/develop/Tools/MonoGame.Content.Builder.Editor) if needed. diff --git a/articles/getting_started/index.md b/articles/getting_started/index.md index 039b5dc6..d3045bd6 100644 --- a/articles/getting_started/index.md +++ b/articles/getting_started/index.md @@ -5,27 +5,50 @@ description: This section walks you through the basics of MonoGame, and helps yo First, select the operating system and toolset you will be working with to create your first MonoGame project, then continue reading to understand the basic layout of a MonoGame project. +## [Supported platforms](./platforms.md) + +MonoGame supports the following platforms by default: + +- Windows +- macOS +- Linux +- iOS +- iPadOS +- Android +- Xbox* +- PlayStation 4* +- PlayStation 5* +- Nintendo Switch* +- Google Stadia* + +> [!IMPORTANT] +> Platforms marked with a *"*"* require developer access from their host vendor platforms. + +See [Supported Platforms](./platforms.md) for more information. + +## Setting up and creating your first MonoGame Project + By the end of this tutorial set, you will have a working project to build for your target platform and will be ready to tackle your next steps. -## 1. Setting up your OS for development +### 1. Setting up your OS for development -- [Windows]() -- [macOS]() -- [Ubuntu 20.04]() +- [Windows](./1_setting_up_your_os_for_development_windows.md) +- [macOS](./1_setting_up_your_os_for_development_macos.md) +- [Ubuntu 20.04](./1_setting_up_your_os_for_development_ubuntu.md) -## 2. Setting up your development environment +### 2. Choosing your IDE for development -- [Visual Studio for Windows](1_setting_up_your_development_environment_visual_studio.md) -- [VS Code](1_setting_up_your_development_environment_vscode.md) -- [Rider](1_setting_up_your_development_environment_unix.md) +- [Visual Studio for Windows](./2_choosing_your_ide_visual_studio.md) +- [VS Code](./2_choosing_your_ide_vscode.md) +- [Rider](./2_choosing_your_ide_rider.md) -## 3. Creating a new project +### 3. Creating a new project -- With [Visual Studio 2022](2_creating_a_new_project_vs.md) -- With [the .NET command line interface](2_creating_a_new_project_netcore.md) (compatible with JetBrains Rider and Visual Studio Code) +- With [Visual Studio 2022](3_creating_a_new_project_vs.md) +- With [the .NET command line interface](3_creating_a_new_project_netcore.md) (compatible with JetBrains Rider and Visual Studio Code) -## 4. Building your game +### 4. Building your game -- [Understanding the Code](3_understanding_the_code.md) -- [Adding Content](4_adding_content.md) -- [Adding Basic Code](5_adding_basic_code.md) +- [Understanding the Code](4_understanding_the_code.md) +- [Adding Content](5_adding_content.md) +- [Adding Basic Code](6_adding_basic_code.md) diff --git a/articles/toc.yml b/articles/toc.yml index 3b043856..2522a91e 100644 --- a/articles/toc.yml +++ b/articles/toc.yml @@ -5,6 +5,7 @@ - name: What's New href: whats_new.md - name: Getting Started + href: getting_started/index.md items: - name: Introduction href: getting_started/ diff --git a/external/MonoGame b/external/MonoGame index fb3ba797..ca12d948 160000 --- a/external/MonoGame +++ b/external/MonoGame @@ -1 +1 @@ -Subproject commit fb3ba7979fb119a7331be03bdcc498f4cc49aa43 +Subproject commit ca12d948d7838cfb427f3ab6d1ecd851ec9cfdf8 From 9413dddddc806cf59f7ba9559cf31215b0358fa1 Mon Sep 17 00:00:00 2001 From: "harry.cpp" Date: Sat, 17 Aug 2024 15:58:25 +0200 Subject: [PATCH 05/14] baby steps on updating setting up deocs --- ...etting_up_your_os_for_development_macos.md | 81 ++++--------------- ...tting_up_your_os_for_development_ubuntu.md | 41 +--------- .../2_choosing_your_ide_vscode.md | 78 ++++++------------ 3 files changed, 41 insertions(+), 159 deletions(-) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_macos.md b/articles/getting_started/1_setting_up_your_os_for_development_macos.md index 8c27a8d1..ad13d1a8 100644 --- a/articles/getting_started/1_setting_up_your_os_for_development_macos.md +++ b/articles/getting_started/1_setting_up_your_os_for_development_macos.md @@ -7,95 +7,44 @@ To develop with MonoGame in C#, you will need to install the .NET SDK. As of Mon ## Install .NET 8 SDK -> [!IMPORTANT] -> For the time being, MonoGame requires that you install the x64 version of the .NET SDK even if you are running on an Apple Silicon mac. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. - -1. Navigate to [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download) - - ![Download .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/download-dotnet.png) - -2. Download the .NET SDK x64-(Intel) Installer - - > [!NOTE] - > For the time being, MonoGame requires that you install the **.NET SDK x64-(Intel)** version of the .NET SDK even if you are running on an Apple Silicon (M1/M2) Mac. For Apple Silicon Macs, it also requires that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. - -3. Once the installation **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK +1. Navigate to [https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) +2. Download the .NET SDK Installer for your platform. +3. Once the **.pkg** file finishes downloading, run it and follow the prompts to install the .NET SDK ![Install .NET For Mac](./images/1_setting_up_your_development_environment/vscode/mac/install-dotnet.png) -4. Once the installation is complete, open a new terminal window and run the command `dotnet` to verify the installation was successful. +## Apple Silicon Known Issues + +For the time being, MonoGame requires that you install the x64 version of the .NET runtime if you are running on an Apple Silicon mac in order to be able to build content. It is also required that [Rosetta](https://support.apple.com/en-us/HT211861) is enabled. -![Verify Installation](./images/1_setting_up_your_development_environment/vscode/mac/verify-install.png) +1. Navigate to [https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) +2. Download the .NET Runtime Installer for macOS x64 +3. Once the **.pkg** file finishes downloading, run it and follow the prompts to install the .NET Runtime ## Setup Wine For Effect Compilation Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. -- **curl** must be installed -- **p7zip** must be installed -- **wine-stable** must be installed. - -These can be installed using **brew**. - -1. Open a terminal window. +1. Install [brew.sh](https://brew.sh) 2. Enter the following command: ```sh - brew install p7zip curl - brew install --cask wine-stable + brew install p7zip curl && brew install --cask wine-stable ``` - > [!CAUTION] - > It is recommended that you use `wine-stable` and not `wine-staging`. - 3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: -```sh -wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash -``` - -This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. - -## Apple Silicon Known Issues - -There is currently a two known issue when building content on an Apple Silicon (M1/M2) Mac: - -1. **Building Textures**: An exception occurs stating that the **freeimage** lib could not be found. -2. **Building SpriteFonts**: An exception occurs stating that the **freetype** lib could not be found. -3. **Building Models**: An exception occurs starting that the **assimp** lib could not be found. - -These issue occur due to needing compiled versions of these libs for the M1/M2 architecture. [There is currently work being done to resolve this](https://github.com/MonoGame/MonoGame/issues/8124), however in the meantime, you can use the following workaround that has been provided by community members. - -1. Download and install the x64 version of [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). This will place an x64 version of .NET 6 in a `/usr/local/share/dotnet/x64` directory. -NOTE: It MUST be the x64 version in order for this to work. This will allow the x64 native libraries that the MonoGame Content Pipeline uses to function on the Apple Silicon device. -Currently it also needs to be .NET 6 for the 3.8.1 Release of MonoGame. - -2. Open your .csproj and add the following lines to the first `` section. - - ```xml - /usr/local/share/dotnet/x64/dotnet - ``` - -3. (Alternative) The directory above is not in the path. But we do not want the system to be confused on which .NET is should be using. So rather thatn putting the x64 verison in the path we should instead create a symlink named `dotnet64`. - ```sh - sudo ln -s /usr/local/share/dotnet/x64/dotnet /usr/local/share/dotnet/dotnet64 + wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash ``` -We can then use this value as the value for `DotnetCommand` - -```xml -dotnet64 -``` - -> [!IMPORTANT] -> A fast follow release is planned for Mac/Linux support to improve the content management side of MonoGame. +This will create new directory called `.winemonogame` in your home directory. If you ever wish to undo the setup this script performed, just simply delete that directory. ## Next Steps -Choose from one of the two IDE options on MacOS: +Choose from one of the two IDE options on macOS: - [Setting up VSCode](./2_choosing_your_ide_vscode.md) - [Setting up Rider](./2_choosing_your_ide_rider.md) diff --git a/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md index d53bc98d..6629b1f7 100644 --- a/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md +++ b/articles/getting_started/1_setting_up_your_os_for_development_ubuntu.md @@ -11,48 +11,14 @@ To develop with MonoGame in C#, you will need to install the .NET SDK. As of Mon 2. Enter the following command in the terminal to download the **dotnet-install.sh** ```sh - wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh + sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0 ``` -3. Grant permission for the script to execute by entering the following command in the terminal: - - ```sh - chmod +x ./dotnet-install.sh - ``` - -4. Run the script to install the .NET 8 SDK by entering the following command in the terminal: - - ```sh - ./dotnet-install.sh - ``` - - ![.NET Install Script](./images/1_setting_up_your_development_environment/vscode/linux/dotnet-install-script.png) - -5. You will now need to setup your environment variables so that the `dotnet` command is recognized. To do this, open the file `~/.bashrc` in a text editor and add the following lines to the end of the file. - - ```sh - export DOTNET_ROOT=$HOME/.dotnet - export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools - ``` - - ![Add Environment Variables](./images/1_setting_up_your_development_environment/vscode/linux/add-environment-variables.png) - -6. Save and close the file, close any open terminal windows, then open a new terminal window so the new environment variables are registered. -7. Enter the `dotnet` command to validate that the .NET 8 SDK is now installed. - - ![Verify Installation](./images/1_setting_up_your_development_environment/vscode/linux/verify-install.png) - ## Setup Wine For Effect Compilation Effect (shader) compilation requires access to DirectX. This means it will not work natively on macOS and Linux systems, but it can be used through [Wine](https://www.winehq.org/). -MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. However, this script has the following prerequisites that must first be setup: - -- **curl** must be installed -- **p7zip** must be installed -- **wine64** must be installed. - -For Debian-based distributions like Ubuntu, you can perform the following: +MonoGame provides a setup script that can be executed to setup the Wine environment for Effect (shader) compilation. 1. Open a terminal window 2. Enter the following command @@ -71,9 +37,6 @@ For Debian-based distributions like Ubuntu, you can perform the following: > > Then try installing the packages again. - > [!CAUTION] - > If you plan to install Wine using the `winehq-*` package instead, it is recommended that you use the `winehq-stable` package and not `-staging`. - 3. Now that the prerequisites are installed, download the [mgfxc_wine_setup.sh](https://monogame.net/downloads/net6_mgfxc_wine_setup.sh) script and execute it by entering the following command in the terminal: ```sh diff --git a/articles/getting_started/2_choosing_your_ide_vscode.md b/articles/getting_started/2_choosing_your_ide_vscode.md index e73581d6..23f52606 100644 --- a/articles/getting_started/2_choosing_your_ide_vscode.md +++ b/articles/getting_started/2_choosing_your_ide_vscode.md @@ -5,27 +5,7 @@ description: A step-by-step guide for setting up your development IDE using VSCo This is a guide on setting up your development IDE for creating games with MonoGame using Visual Studio Code. By following this guide, you will learn how to install the necessary tools for developing C# applications and configure Visual Studio Code with recommended extensions for C# development. -By the end, you will be fully equipped to start creating games with MonoGame using Visual Studio code. - -> [!IMPORTANT] -> The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). -> -> [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. - -## Install MonoGame Templates - -The .NET SDK installation provides the default C# project templates but does not include the MonoGame templates. These templates must be installed manually. - -1. Open a new terminal window (**Command Prompt** on Windows). - - ```sh - dotnet new install MonoGame.Templates.CSharp - ``` - - ![Install MonoGame Templates](./images/1_setting_up_your_development_environment/vscode/install-templates.png) - - > [!NOTE] - > When installing the templates, an error message may appear regarding the UWP template failing to install. This error can be safely ignored, as the UWP templates are deprecated and will be removed in a future MonoGame release. +By the end, you will be fully equipped to start creating games with MonoGame using Visual Studio Code. ## Install Visual Studio Code @@ -48,46 +28,36 @@ The .NET SDK installation provides the default C# project templates but does not 3. Extract the contents of the VSCode archive that downloaded by double-clicking it inside a Finder window. This will extract the **Visual Studio Code.app** file. 4. Drag the **Visual Studio Code.app** file into the **Applications** folder, making it available in the macOS Launchpad. -### [Linux](#tab/linux) - -The recommended method for installing Visual Studio Code in Linux is to use Snap. This is supported by most Linux distributions. - -- [Snap Package](https://code.visualstudio.com/docs/setup/linux#_snap) +### [Ubuntu](#tab/ubuntu) -There are also individual guides below based on your Linux distribution if you do not want to use Snap: - -- [Debian and Ubuntu base distributions](https://code.visualstudio.com/docs/setup/linux#_debian-and-ubuntu-based-distributions) -- [RHEL, Fedora, and CentOS based distributions](https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions) -- [openSUSE and SLE-based distributions](https://code.visualstudio.com/docs/setup/linux#_opensuse-and-slebased-distributions) -- [AUR package for Arch Linux](https://code.visualstudio.com/docs/setup/linux#_aur-package-for-arch-linux) -- [Installing .rpm package manually](https://code.visualstudio.com/docs/setup/linux#_installing-rpm-package-manually) - ---- - -## Install Visual Studio Code C# Extensions - -To transform Visual Studio Code from a simple text editor into a powerful development environment for C# projects, you must install the Visual Studio Code C# extension. This extension enhances the editor by providing syntax highlighting, code analysis, IntelliSense, and other features that significantly improve the development experience and productivity when working with C#. - -1. Open Visual Studio Code. -2. Click the **Extensions** icon in the **Activity Bar** on the left. - - ![Click Extensions](./images/1_setting_up_your_development_environment/vscode/click-extensions.png) +1. Open your web browser and navigate to [https://code.visualstudio.com/](https://code.visualstudio.com/). +2, Click the Download .deb button. -3. In the **Search Box** type `C#`. -4. Click **Install** for the **C# Dev Kit** extension. Installing this will also install the base **C#** extension. +## Setting up VS Code for development with MonoGame -![Install C# DevKit Extension](./images/1_setting_up_your_development_environment/vscode/install-devkit.png) +1. Open Visual Studio Code +1. Open up its terminal window (`Ctrl/Cmd` + `J`) +3. Run the following command to install MonoGame Templates ---- + ```sh + dotnet new install MonoGame.Templates.CSharp + ``` +4. Run the following command to install C# Dev Kit extension -## Apple Silicon Known Issues + ```sh + code --install-extension ms-dotnettools.csdevkit + ``` -> [!IMPORTANT] -> Please see the [Apple Silicon Known Issues](./1_setting_up_your_os_for_development_macos.md#apple-silicon-known-issues) section in the [MacOS guide](./1_setting_up_your_os_for_development_macos.md) guide for help in resolving content build issues. -> -> This is only temporary a we are working in a "Fast Follow" release which will greatly improve and simplify content building on Mac/Linux +## Creating an empty project ---- +1. Open up an empty folder in Visual Studio Code +2. Open up its terminal window (`Ctrl/Cmd` + `J`) +3. Run the following command to create an empty project for desktop platforms: + ```sh + dotnet new mgdesktopgl + ``` +4. When VS Code asks you about automatic creation of launch / task files, press yes +5. You can press F5 to compile and debug you app, happy coding :) ## Next Steps From 7732b21ff8ec1e7462685f73de800cea605431f3 Mon Sep 17 00:00:00 2001 From: "harry.cpp" Date: Sat, 17 Aug 2024 18:49:06 +0200 Subject: [PATCH 06/14] rider docs --- .../2_choosing_your_ide_rider.md | 29 +++++++++++++----- .../2_choosing_your_ide_vscode.md | 2 +- .../rider_new_solution_button.png | Bin 0 -> 555084 bytes .../rider_new_solution_dialog.png | Bin 0 -> 809061 bytes 4 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 articles/getting_started/images/1_setting_up_your_development_environment/rider_new_solution_button.png create mode 100644 articles/getting_started/images/1_setting_up_your_development_environment/rider_new_solution_dialog.png diff --git a/articles/getting_started/2_choosing_your_ide_rider.md b/articles/getting_started/2_choosing_your_ide_rider.md index 4eb34af0..4b919e5a 100644 --- a/articles/getting_started/2_choosing_your_ide_rider.md +++ b/articles/getting_started/2_choosing_your_ide_rider.md @@ -7,16 +7,31 @@ This is a guide on setting up your development environment for creating games wi By the end, you will be fully equipped to start creating games with MonoGame using Rider. -> [!IMPORTANT] -> The only development environment that MonoGame officially supports on Mac/Linux is [Visual Studio Code](https://code.visualstudio.com/). -> -> [Visual Studio for Mac will be discontinued](https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/) by Microsoft in August 2024. At that time, [Visual Studio Code](https://code.visualstudio.com/) will be the only development environment supported by MonoGame on macOS. +## Install Rider ---- +You can download and install Rider from: [https://www.jetbrains.com/rider/download](https://www.jetbrains.com/rider/download) -## Install Rider +## Setting up Rider for development with MonoGame + +- Open up terminal (or Powershell on Windows) +- Run the following command to install templates: + ```sh + dotnet new install MonoGame.Templates.CSharp + ``` + +## Creating an empty project + +1. Open up Rider +2. Click on the "New Solution" button + + ![Download .NET For Windows](./images/1_setting_up_your_development_environment/rider_new_solution_button.png) + +3. Select "MonoGame Cross-Platform Desktop Application" on the list on the left + + ![Download .NET For Windows](./images/1_setting_up_your_development_environment/rider_new_solution_dialog.png) -## Setup stuff?? +4. Press "Create" +5. You can now press F5 to compile and debug you game, happy coding :) ## Next Steps diff --git a/articles/getting_started/2_choosing_your_ide_vscode.md b/articles/getting_started/2_choosing_your_ide_vscode.md index 23f52606..f37a7b87 100644 --- a/articles/getting_started/2_choosing_your_ide_vscode.md +++ b/articles/getting_started/2_choosing_your_ide_vscode.md @@ -57,7 +57,7 @@ By the end, you will be fully equipped to start creating games with MonoGame usi dotnet new mgdesktopgl ``` 4. When VS Code asks you about automatic creation of launch / task files, press yes -5. You can press F5 to compile and debug you app, happy coding :) +5. You can now press F5 to compile and debug you game, happy coding :) ## Next Steps diff --git a/articles/getting_started/images/1_setting_up_your_development_environment/rider_new_solution_button.png b/articles/getting_started/images/1_setting_up_your_development_environment/rider_new_solution_button.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc6f49e6b1fe2ddcdfb76dd262ab8eeb803e1ac GIT binary patch literal 555084 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