From 406ade993e08a3102d768b5691ad4e821bed8368 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Sat, 18 Jun 2022 23:49:04 +0600 Subject: [PATCH 1/4] Prepare code to run in NativeAOT In order to publish using NativeAOT last change required is to target net7.0 CUrrently executable have size 99MB so I would not force that direction --- desktop/FSharpWolfenstein.Desktop.fsproj | 2 ++ desktop/Program.fs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/desktop/FSharpWolfenstein.Desktop.fsproj b/desktop/FSharpWolfenstein.Desktop.fsproj index 6f99973..b59ddfc 100644 --- a/desktop/FSharpWolfenstein.Desktop.fsproj +++ b/desktop/FSharpWolfenstein.Desktop.fsproj @@ -4,6 +4,7 @@ Exe net6.0 true + true @@ -331,5 +332,6 @@ + diff --git a/desktop/Program.fs b/desktop/Program.fs index 86cc375..56f9bda 100644 --- a/desktop/Program.fs +++ b/desktop/Program.fs @@ -191,6 +191,8 @@ let main _ = let mutable options = WindowOptions.Default options.Size <- Vector2D(screenWidth * zoom,screenHeight * zoom) options.Title <- "F# Wolfenstein" + Silk.NET.Input.Sdl.SdlInput.RegisterPlatform() + Silk.NET.Input.Glfw.GlfwInput.RegisterPlatform() let window = Window.Create(options) window.add_Load (load window) window.add_Render render From 59ad221318cad201f31232c4048d60b3751b871a Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Tue, 21 Jun 2022 10:35:57 +0600 Subject: [PATCH 2/4] This brings application to 14Mb. --- browser/src/CrossPlatform/AI.fs | 17 ++++++++++++++++- desktop/FSharpWolfenstein.Desktop.fsproj | 4 +++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/browser/src/CrossPlatform/AI.fs b/browser/src/CrossPlatform/AI.fs index 53a0538..edf8543 100644 --- a/browser/src/CrossPlatform/AI.fs +++ b/browser/src/CrossPlatform/AI.fs @@ -270,12 +270,27 @@ let getNextState canSeePlayer game enemy = else enemy | _ -> enemy + +// This conversion required because FSharp do not play +// along with NativeAOT inside interpolated strings + enums. +// Be explicit about how to display strings. +let getStateString state = + match state with + | EnemyStateType.Standing -> "Standing" + | EnemyStateType.Ambushing -> "Ambushing" + | EnemyStateType.Attack -> "Attack" + | EnemyStateType.Path -> "Path" + | EnemyStateType.Pain -> "Pain" + | EnemyStateType.Shoot -> "Shoot" + | (EnemyStateType.Chase (x,y)) -> $"Chase ({x},{y})" + | EnemyStateType.Die -> "Die" + | EnemyStateType.Dead -> "Dead" let preProcess canSeePlayer game enemy = // preprocess looks for state changes based on the current game world state let newEnemy = enemy |> getNextState canSeePlayer game if newEnemy.State <> enemy.State then - Utils.log $"Enemy at {enemy.BasicGameObject.Position.vX}, {enemy.BasicGameObject.Position.vY} moving from {enemy.State} to {newEnemy.State}" + Utils.log $"Enemy at {enemy.BasicGameObject.Position.vX}, {enemy.BasicGameObject.Position.vY} moving from {getStateString enemy.State} to {getStateString newEnemy.State}" newEnemy let updateBasedOnCurrentState canSeePlayer (frameTime:float) game enemy = diff --git a/desktop/FSharpWolfenstein.Desktop.fsproj b/desktop/FSharpWolfenstein.Desktop.fsproj index b59ddfc..108ab9b 100644 --- a/desktop/FSharpWolfenstein.Desktop.fsproj +++ b/desktop/FSharpWolfenstein.Desktop.fsproj @@ -2,9 +2,11 @@ Exe - net6.0 + net7.0 true true + true + link From 47f9961447ae6bbbbc28ce851cc3567c7aeef1c3 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Tue, 21 Jun 2022 11:05:53 +0600 Subject: [PATCH 3/4] Update data --- desktop/FSharp.Core.rd.xml | 71 ++++++++++++++++++++++++ desktop/FSharpWolfenstein.Desktop.fsproj | 4 ++ 2 files changed, 75 insertions(+) create mode 100644 desktop/FSharp.Core.rd.xml diff --git a/desktop/FSharp.Core.rd.xml b/desktop/FSharp.Core.rd.xml new file mode 100644 index 0000000..fdcbfac --- /dev/null +++ b/desktop/FSharp.Core.rd.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/desktop/FSharpWolfenstein.Desktop.fsproj b/desktop/FSharpWolfenstein.Desktop.fsproj index 108ab9b..73814e3 100644 --- a/desktop/FSharpWolfenstein.Desktop.fsproj +++ b/desktop/FSharpWolfenstein.Desktop.fsproj @@ -10,6 +10,7 @@ + @@ -336,4 +337,7 @@ + + + From 8aa5a7bbb10bb3053aa02e33c6ceb43f13425f38 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Mon, 4 Jul 2022 12:47:33 +0600 Subject: [PATCH 4/4] Remove not needed changes --- desktop/FSharpWolfenstein.Desktop.fsproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/FSharpWolfenstein.Desktop.fsproj b/desktop/FSharpWolfenstein.Desktop.fsproj index b62197f..9bffd58 100644 --- a/desktop/FSharpWolfenstein.Desktop.fsproj +++ b/desktop/FSharpWolfenstein.Desktop.fsproj @@ -2,7 +2,8 @@ Exe - net7.0 + + net6.0 true true true @@ -11,7 +12,6 @@ -