Live data from Hacker News

Making a cross-platform mobile game in Reason/OCaml

jaredforsyth.com

1–10 of 27 posts

Re: Making a cross-platform mobile game in Reason/OCaml

#3
/u/jaredly, thanks for posting, this is really exciting! I've been reading about Reason here and there, and I've always wanted to write a simple game.

At the app/game level, is there any platform-specific code? Or is it all in src? And to clarify, the big news here is cutting down on the yak-shaving with the cross-compilers and build systems right? Does it enforce any conventions on the code? Did you use any frameworks to create the game itself?

Re: Making a cross-platform mobile game in Reason/OCaml

#4

Very cool. Hot reloading in iOS would be extreamly useful. I remember that I used a plugin that was called injectionforxcode but it was not working very well.

There is no hot reloading in the toolchain, but the compiler is very fast. I am not sure what you mean by xcode plugin, this is a js application, Reason is syntax for ocaml using bucklescript backend.

Re: Making a cross-platform mobile game in Reason/OCaml

#5
post #4

Very cool. Hot reloading in iOS would be extreamly useful. I remember that I used a plugin that was called injectionforxcode but it was not working very well.

There is no hot reloading in the toolchain, but the compiler is very fast. I am not sure what you mean by xcode plugin, this is a js application, Reason is syntax for ocaml using bucklescript backend.

This is both a native (as in binary) and js application. It compiles down to binary and uses OpenGL for native targets and WebGL for the web

Re: Making a cross-platform mobile game in Reason/OCaml

#6
post #4

Very cool. Hot reloading in iOS would be extreamly useful. I remember that I used a plugin that was called injectionforxcode but it was not working very well.

There is no hot reloading in the toolchain, but the compiler is very fast. I am not sure what you mean by xcode plugin, this is a js application, Reason is syntax for ocaml using bucklescript backend.

[deleted]

Re: Making a cross-platform mobile game in Reason/OCaml

#8

/u/jaredly, thanks for posting, this is really exciting! I've been reading about Reason here and there, and I've always wanted to write a simple game. At the app/game level, is there any platform-specific code? Or is it all in src? And to clarify, the big news here is cutting down on the yak-shaving with the cross-compilers and build systems right? Does it enforce any conventions on the code? Did you use any framewor…

I'll reply for Jared since he doesn't seem around. I work on Reason.

It's a single codebase and build system. There's platform-specific code buried in some conditional compilation in the Reprocessing drawing lib he uses: https://github.com/Schmavery/reprocessing

Here's a livestream of the Reprocessing folks making a flappy bird clone (https://github.com/schmavery/flappybird) from scratch: https://www.youtube.com/watch?v=5aD3aPvNpyQ&feature=youtu.be...

Re: Making a cross-platform mobile game in Reason/OCaml

#9

/u/jaredly, thanks for posting, this is really exciting! I've been reading about Reason here and there, and I've always wanted to write a simple game. At the app/game level, is there any platform-specific code? Or is it all in src? And to clarify, the big news here is cutting down on the yak-shaving with the cross-compilers and build systems right? Does it enforce any conventions on the code? Did you use any framewor…

In the game, the only place I check the platform is to see how big I should make the screen (like 3 lines). Everything else is shared! The big news here is that you can use a single codebase (and a nice advanced language like ocaml), and deploy to 4 platforms. The framework I'm using is called "reprocessing", which is a ~port of the "processing" language to OCaml, targetting OpenGL. It abstracts out the different platforms.

Re: Making a cross-platform mobile game in Reason/OCaml

#10
post #4

Very cool. Hot reloading in iOS would be extreamly useful. I remember that I used a plugin that was called injectionforxcode but it was not working very well.

There is no hot reloading in the toolchain, but the compiler is very fast. I am not sure what you mean by xcode plugin, this is a js application, Reason is syntax for ocaml using bucklescript backend.

Reason code can indeed be compiled to JavaScript using the Bucklescript backend (as can regular OCaml), but it can also be compiled to native since it's just a dialect of OCaml. In the latter case, the programmer would need to avoid JS interop or employ conditional compilation.
Post reply on HN