From d2e51f3cb9c74c6f106239e3d231b32730d251da Mon Sep 17 00:00:00 2001 From: marcel euchner-martinez <88530062+marcelEuchnerMartinez@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:46:01 +0200 Subject: [PATCH 1/8] Mentioning Hot Reload for HashLink Basic instructions on how to use hot reload. use case/ limitations. --- HashLink.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/HashLink.md b/HashLink.md index 36be097..0b5427e 100644 --- a/HashLink.md +++ b/HashLink.md @@ -2,7 +2,7 @@ [HashLink](https://hashlink.haxe.org/) is a virtual machine for the Haxe programming language. By targeting HashLink you are also able to generate Native C code for your project. -Heaps is able to support both SDL and DirectX. In order to specify which you'd like to use, you simple need to include the appropriate library when compiling your project. +HashLink is able to support both SDL and DirectX. In order to specify which one you'd like to use, you simple need to include the appropriate library when compiling your project. For DirectX ```hxml @@ -34,3 +34,22 @@ To compile for HashLink use the following example. # output -hl bin/game.hl ``` + + +## Hot Reload + +Hot reload allows to program new features into a game ***while*** it is running. + +Use the following flag to allow that Hot Reload is being used. +``` +-D hot-reload +``` + +Now run your HashLink program with +`hl --hot-reload mygame.hl` + +Now everytime you re-compile, the running game also gets updated. + +Note that this has its limits. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. + +(See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload) From d6baee75816acdabd6a005c2e7a628cdaca90590 Mon Sep 17 00:00:00 2001 From: marcel euchner-martinez <88530062+marcelEuchnerMartinez@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:14:24 +0200 Subject: [PATCH 2/8] Mentioning all most common libs for HashLink providing graphics and sounds for HashLink --- HashLink.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/HashLink.md b/HashLink.md index 0b5427e..e8a4913 100644 --- a/HashLink.md +++ b/HashLink.md @@ -2,18 +2,25 @@ [HashLink](https://hashlink.haxe.org/) is a virtual machine for the Haxe programming language. By targeting HashLink you are also able to generate Native C code for your project. -HashLink is able to support both SDL and DirectX. In order to specify which one you'd like to use, you simple need to include the appropriate library when compiling your project. +HashLink is able to support both [SDL](https://lib.haxe.org/p/hlsdl) and [DirectX](https://lib.haxe.org/p/hldx). At least one and only one is required. +[OpenAL](https://lib.haxe.org/p/hlopenal) provides using sound. -For DirectX +For SDL +```hxml +-lib hlsdl +``` + +For DirectX (Windows) ```hxml -lib hldx ``` -For SDL +OpenAL (for sound) ```hxml --lib hlsdl +-lib hlopenal ``` + ## Compile for HashLink: To compile for HashLink use the following example. @@ -28,8 +35,9 @@ To compile for HashLink use the following example. # libraries -lib heaps --lib hldx -#-lib hlsdl +-lib hlsdl +#-lib hldx +-lib hlopenal # output -hl bin/game.hl From 49c932fdc630625125410b7eede8d6dbfe648aa5 Mon Sep 17 00:00:00 2001 From: marcel euchner-martinez <88530062+marcelEuchnerMartinez@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:17:29 +0200 Subject: [PATCH 3/8] More libs available link to the other libs available to HL --- HashLink.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HashLink.md b/HashLink.md index e8a4913..b3b2106 100644 --- a/HashLink.md +++ b/HashLink.md @@ -20,6 +20,8 @@ OpenAL (for sound) -lib hlopenal ``` +More available libraries: https://github.com/HaxeFoundation/hashlink/tree/master/libs + ## Compile for HashLink: From 207906f223917a276682c15119f43677c25bb041 Mon Sep 17 00:00:00 2001 From: marcel euchner-martinez <88530062+marcelEuchnerMartinez@users.noreply.github.com> Date: Thu, 24 Oct 2024 20:02:44 +0200 Subject: [PATCH 4/8] Development.md can be integrated into First-outlook.md This is just an idea that the content of the page "Development" may be put into the First-Outlook page. --- That the development section exists at all is due to the history of Heaps and the work of Deepnight. It would also be possible to hide this page instead somewhere, but at the moment we don't really have other options. --- First-outlook.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/First-outlook.md b/First-outlook.md index 3a0e9c3..bb8cb27 100644 --- a/First-outlook.md +++ b/First-outlook.md @@ -56,3 +56,13 @@ Heaps is powered by Haxe. Learn more about Haxe here: - The [Haxe code cookbook](https://code.haxe.org/) - The [Haxe community](https://community.haxe.org/) +## More on game engine development + +- see the "Game dev" section on the right under https://deepnight.net/tutorials/, this currently involves: + - [Entity and coordinate system](https://deepnight.net/tutorial/a-simple-platformer-engine-part-1-basics/) + - [collision checking](https://deepnight.net/tutorial/a-simple-platformer-engine-part-2-collisions/) + - [Bresenham algorithm](https://deepnight.net/tutorial/bresenham-magic-raycasting-line-of-sight-pathfinding/) + +- *Game programming patterns* by Bob Nystrom ( ⚠️ code snippets in C++) + - https://gameprogrammingpatterns.com/ (also includes an open free online version of the book) + From 8154b07ee307351ad0bad38347ef10f07861f594 Mon Sep 17 00:00:00 2001 From: Marcel Euchner-Martinez Date: Fri, 25 Oct 2024 07:43:45 +0200 Subject: [PATCH 5/8] Revert "Development.md can be integrated into First-outlook.md" This reverts commit 207906f223917a276682c15119f43677c25bb041. ... --- First-outlook.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/First-outlook.md b/First-outlook.md index bb8cb27..3a0e9c3 100644 --- a/First-outlook.md +++ b/First-outlook.md @@ -56,13 +56,3 @@ Heaps is powered by Haxe. Learn more about Haxe here: - The [Haxe code cookbook](https://code.haxe.org/) - The [Haxe community](https://community.haxe.org/) -## More on game engine development - -- see the "Game dev" section on the right under https://deepnight.net/tutorials/, this currently involves: - - [Entity and coordinate system](https://deepnight.net/tutorial/a-simple-platformer-engine-part-1-basics/) - - [collision checking](https://deepnight.net/tutorial/a-simple-platformer-engine-part-2-collisions/) - - [Bresenham algorithm](https://deepnight.net/tutorial/bresenham-magic-raycasting-line-of-sight-pathfinding/) - -- *Game programming patterns* by Bob Nystrom ( ⚠️ code snippets in C++) - - https://gameprogrammingpatterns.com/ (also includes an open free online version of the book) - From 38ba71e25a32351d59b1a3e2e448ab6d5e04f3e9 Mon Sep 17 00:00:00 2001 From: Marcel Euchner-Martinez Date: Fri, 25 Oct 2024 10:24:58 +0200 Subject: [PATCH 6/8] Removing HashLink as a page, mentioning hot-reload in hello-hashlink page --- HashLink.md | 65 ----------------------------------------------- Hello-HashLink.md | 19 ++++++++++++++ 2 files changed, 19 insertions(+), 65 deletions(-) delete mode 100644 HashLink.md diff --git a/HashLink.md b/HashLink.md deleted file mode 100644 index b3b2106..0000000 --- a/HashLink.md +++ /dev/null @@ -1,65 +0,0 @@ -# HashLink - -[HashLink](https://hashlink.haxe.org/) is a virtual machine for the Haxe programming language. By targeting HashLink you are also able to generate Native C code for your project. - -HashLink is able to support both [SDL](https://lib.haxe.org/p/hlsdl) and [DirectX](https://lib.haxe.org/p/hldx). At least one and only one is required. -[OpenAL](https://lib.haxe.org/p/hlopenal) provides using sound. - -For SDL -```hxml --lib hlsdl -``` - -For DirectX (Windows) -```hxml --lib hldx -``` - -OpenAL (for sound) -```hxml --lib hlopenal -``` - -More available libraries: https://github.com/HaxeFoundation/hashlink/tree/master/libs - - -## Compile for HashLink: - -To compile for HashLink use the following example. - - -```hxml -# class paths --cp src - -# entry point --main Main - -# libraries --lib heaps --lib hlsdl -#-lib hldx --lib hlopenal - -# output --hl bin/game.hl -``` - - -## Hot Reload - -Hot reload allows to program new features into a game ***while*** it is running. - -Use the following flag to allow that Hot Reload is being used. -``` --D hot-reload -``` - -Now run your HashLink program with -`hl --hot-reload mygame.hl` - -Now everytime you re-compile, the running game also gets updated. - -Note that this has its limits. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. - -(See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload) diff --git a/Hello-HashLink.md b/Hello-HashLink.md index 7f7ed13..5eff09c 100644 --- a/Hello-HashLink.md +++ b/Hello-HashLink.md @@ -125,3 +125,22 @@ Compiling on mobile and console thus requires some knowledge with each platform * for iOS, look at [this thread](https://github.com/HaxeFoundation/hashlink/issues/144) * for Android, look at [this thread](https://github.com/HaxeFoundation/hashlink/issues/109) * for Consoles (Nintendo Switch, Sony PS4, Microsoft XBoxOne), please contact us at nicolas `@` haxe.org if you are a registered developer for one or several of these + + +## Hot Reload + +Hot reload allows to program new features into a game ***while*** it is running. + +Use the following flag to allow that Hot Reload is being used. +``` +-D hot-reload +``` + +Now run your HashLink program with +`hl --hot-reload mygame.hl` + +Now everytime you re-compile, the running game also gets updated. + +Note that this has its limits and this feature is still under development and being tested. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. + +(See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload) \ No newline at end of file From da4053233acf9f451f745a95f59be467f8dede14 Mon Sep 17 00:00:00 2001 From: Marcel Euchner-Martinez Date: Fri, 25 Oct 2024 16:13:35 +0200 Subject: [PATCH 7/8] Revert "Removing HashLink as a page, mentioning hot-reload in hello-hashlink page" Keeping the HashLink page! This reverts commit 38ba71e25a32351d59b1a3e2e448ab6d5e04f3e9. --- HashLink.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++ Hello-HashLink.md | 19 -------------- 2 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 HashLink.md diff --git a/HashLink.md b/HashLink.md new file mode 100644 index 0000000..b3b2106 --- /dev/null +++ b/HashLink.md @@ -0,0 +1,65 @@ +# HashLink + +[HashLink](https://hashlink.haxe.org/) is a virtual machine for the Haxe programming language. By targeting HashLink you are also able to generate Native C code for your project. + +HashLink is able to support both [SDL](https://lib.haxe.org/p/hlsdl) and [DirectX](https://lib.haxe.org/p/hldx). At least one and only one is required. +[OpenAL](https://lib.haxe.org/p/hlopenal) provides using sound. + +For SDL +```hxml +-lib hlsdl +``` + +For DirectX (Windows) +```hxml +-lib hldx +``` + +OpenAL (for sound) +```hxml +-lib hlopenal +``` + +More available libraries: https://github.com/HaxeFoundation/hashlink/tree/master/libs + + +## Compile for HashLink: + +To compile for HashLink use the following example. + + +```hxml +# class paths +-cp src + +# entry point +-main Main + +# libraries +-lib heaps +-lib hlsdl +#-lib hldx +-lib hlopenal + +# output +-hl bin/game.hl +``` + + +## Hot Reload + +Hot reload allows to program new features into a game ***while*** it is running. + +Use the following flag to allow that Hot Reload is being used. +``` +-D hot-reload +``` + +Now run your HashLink program with +`hl --hot-reload mygame.hl` + +Now everytime you re-compile, the running game also gets updated. + +Note that this has its limits. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. + +(See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload) diff --git a/Hello-HashLink.md b/Hello-HashLink.md index 5eff09c..7f7ed13 100644 --- a/Hello-HashLink.md +++ b/Hello-HashLink.md @@ -125,22 +125,3 @@ Compiling on mobile and console thus requires some knowledge with each platform * for iOS, look at [this thread](https://github.com/HaxeFoundation/hashlink/issues/144) * for Android, look at [this thread](https://github.com/HaxeFoundation/hashlink/issues/109) * for Consoles (Nintendo Switch, Sony PS4, Microsoft XBoxOne), please contact us at nicolas `@` haxe.org if you are a registered developer for one or several of these - - -## Hot Reload - -Hot reload allows to program new features into a game ***while*** it is running. - -Use the following flag to allow that Hot Reload is being used. -``` --D hot-reload -``` - -Now run your HashLink program with -`hl --hot-reload mygame.hl` - -Now everytime you re-compile, the running game also gets updated. - -Note that this has its limits and this feature is still under development and being tested. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. - -(See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload) \ No newline at end of file From 1c1a9a817d1c440994883119def99c62a3c15ea1 Mon Sep 17 00:00:00 2001 From: Marcel Euchner-Martinez Date: Fri, 25 Oct 2024 16:41:18 +0200 Subject: [PATCH 8/8] Mentioning Hello-World and Hello-HashLink on Target platform pages. HashLink: changing the link to lib.haxe.org instead the hashlink repo --- HTML5.md | 2 ++ HashLink.md | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/HTML5.md b/HTML5.md index f35d9aa..edb9ed9 100644 --- a/HTML5.md +++ b/HTML5.md @@ -2,6 +2,8 @@ Heaps is able to compile to JavaScript and therefore it can run in the web browser. +A step by step guide can be found in [[Hello-World]]. + See the following example on how to prepare your Heaps project for HTML5. ## Compile for Javascript: diff --git a/HashLink.md b/HashLink.md index b3b2106..26b30ec 100644 --- a/HashLink.md +++ b/HashLink.md @@ -2,6 +2,8 @@ [HashLink](https://hashlink.haxe.org/) is a virtual machine for the Haxe programming language. By targeting HashLink you are also able to generate Native C code for your project. +A step by step guide can be found in [[Hello-HashLink]]. + HashLink is able to support both [SDL](https://lib.haxe.org/p/hlsdl) and [DirectX](https://lib.haxe.org/p/hldx). At least one and only one is required. [OpenAL](https://lib.haxe.org/p/hlopenal) provides using sound. @@ -20,7 +22,7 @@ OpenAL (for sound) -lib hlopenal ``` -More available libraries: https://github.com/HaxeFoundation/hashlink/tree/master/libs +More available libraries can be found [here](https://lib.haxe.org/search/?v=hashlink). ## Compile for HashLink: @@ -39,7 +41,6 @@ To compile for HashLink use the following example. -lib heaps -lib hlsdl #-lib hldx --lib hlopenal # output -hl bin/game.hl @@ -60,6 +61,6 @@ Now run your HashLink program with Now everytime you re-compile, the running game also gets updated. -Note that this has its limits. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. +Note that this has its limits and this feature is still under development and being tested. Currently no new fields can be implemented. However it works well for modifying the behaviour of an already existing method (class function), for instance the `update` method and all other functions called inside it. (See details here: https://github.com/HaxeFoundation/hashlink/wiki/Hot-Reload)