From 8f6e9657a68dcb1ee639afe5c3ddd9498b3b1e88 Mon Sep 17 00:00:00 2001 From: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed, 22 May 2024 11:01:15 -0400 Subject: [PATCH 1/2] Update url for wine setup script --- .../1_setting_up_your_development_environment_unix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f217860..ff7ee2d 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 @@ -58,7 +58,7 @@ sudo apt install wine64 p7zip-full curl Create wine prefix: ```sh -wget -qO- https://raw.githubusercontent.com/MonoGame/MonoGame/master/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh | bash +wget -qO- https://monogame.net/downloads/net6_mgfxc_wine_setup.sh | bash ``` If you ever need to undo the script, simply delete the `.winemonogame` folder in your home directory. From 380549716d917dbe09e25dea9a2421b0436f73dd Mon Sep 17 00:00:00 2001 From: Thomas Altenburger Date: Thu, 23 May 2024 10:55:44 +0200 Subject: [PATCH 2/2] Added parsing libraries recommendations --- articles/preparing_for_consoles.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/articles/preparing_for_consoles.md b/articles/preparing_for_consoles.md index 13f09b7..36e2fd6 100644 --- a/articles/preparing_for_consoles.md +++ b/articles/preparing_for_consoles.md @@ -55,12 +55,19 @@ Loading assemblies at runtime with `Assembly.Load()` is not supported. ## Third party libraries -Many third party libraries heavily rely on using reflection or IL emit, this is a common practice for JSON or XML parsers for example. +Many third party libraries heavily rely on using reflection or IL emit, this is a common practice for JSON or XML parsers for example (and they are the most common source of third party incompatibilities). It is advised to choose very carefully the libraries that you are using when porting to consoles. If you do not select them with this in mind, you might run into a situation in which you will have to rewrite entire chunks of data handling. The best way to make sure if they will work, is to search if they are **"AOT-compatible"**, or try to compile with the `true` setting in your `.csproj` and check if there are any warnings related to those libraries. +For example, here are some parsing libraries known for their compliance with AOT compilation and good handling of memrory: + +- [TurboXML](https://github.com/xoofx/TurboXml) +- [TinyJSON](https://github.com/zanders3/json) + +On the contrary, Newtonsoft JSON is known to be unsupported (there are modified forks around, but we overall recommend to not use it for games). + ## Native libraries If you are using native libraries, make sure that they provide builds for consoles, or make sure that you can compile and run them on consoles yourself.