Show HN: Simple games ported to Scala 3 – Try them in the browser (github.com)
Hi everybody, I just ported some 2018-scalajs games to Scala 3, it is amazing that such 8-year old code base required less than an hour to get all the games working in Scala 3.
I encourage you to try Scala.js/Scala3 which work really nice.
27 comments
[ 2.6 ms ] story [ 54.4 ms ] threadThanks for the effort, these are really cool demos.
Looking forward to one day having ported all my Scala code to 3 :-)
a) Slinky - https://slinky.dev
b) Laminar - https://laminar.dev
Slinky is very similar to React while Laminar is more idiomatic Scala.
Veautiful - https://www.wbillingsley.com/veautiful/
Tends to be used for slightly unusual things like
- "I want to do lecture notes with a maze game and lunar landar built into the notes" https://theintelligentbook.com/thinkingaboutprogramming/#/de...
- "Let's build a simulation of git into the tutorial notes" https://theintelligentbook.com/supercollaborative/#/challeng...
or
- "What about an automatically self-charting simulation of a MOSFET?) https://theintelligentbook.com/circuitsup/#/mosfets/2/2
Any day now, I'll get a chance to improve the documentation of the framework (and give it a proper release rather than using JitPack snapshots all the time).
Thanks for sharing, first time I see this project mentioned.
> Any day now, I'll get a chance to improve the documentation of the framework (and give it a proper release rather than using JitPack snapshots all the time).
It is worth commenting about https://github.com/sbt/sbt-ci-release which makes it simple to auto-publish to maven central.
Edge is also available on Linux if that’s your thing.
> Edge is also available on Linux if that’s your thing.
That's unbelievable, in any case, I'll try sorting these issues out next week.
The only required syntax change was related to https://docs.scala-lang.org/scala3/reference/dropped-feature... (2 minor occurrences).
Original sources at https://github.com/lihaoyi/scala-js-games
I have a bunch of 2d games I use in programmable learning environments. This is the commit that did a lot of the shifting from 3 to 3.0.0-RC1
https://github.com/wbillingsley/lavamaze/commit/0d9aca52e8e8...
A lot of it was just trivia like "it's required to put parentheses around lambda function parameters now", and "if the function is declared with an empty arg list () rather than no arg list, you have to call it with an empty arg list rather than no arg list".
If I recall, there's a compiler plugin they put out that could automatically make many of those changes, but I found it took little enough time just to do them manually that investigating the plugin wasn't necessary.
An example of one of the programmable games in action: https://theintelligentbook.com/thinkingaboutprogramming/#/ch...
Actually, there are compiler options to rewrite the sources to/from scala3, I have tried this in more complex projects and it worked nicely (see https://docs.scala-lang.org/scala3/guides/migration/tooling-...)
This is the link to the plugin you mentioned which is supposed to avoid the manual syntax updates but I haven't had the need to try it, like you said, most of the times the changes are trivial enough (https://docs.scala-lang.org/scala3/guides/migration/scala3-m...).
> An example of one of the programmable games in action
This comes handy to me, looks cool! For one or another reason, I ended up in this page which seems to intend hosting the same app but it doesn't work, just wanted to let you know (https://www.wbillingsley.com/lavamaze)
There is a similar nice project which I have been looking into (https://www.kogics.net/kojo).