pondering Smalltalk scripting in Minecraft

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

pondering Smalltalk scripting in Minecraft

Ben Coman
Minecraft is immensely popular.  For teaching programming (to kids)
via Minecraft, the first option is Java, but that might be a bit heavy
for a pre-teen.  A few lighter options are Lua via Computercraft [1]
and Javascript via Scriptcraft [2].

I've tried Computercraft and its quite interesting the way it
simulates real-life computers and drones, but the drone works slowly
so my kids end up doing things faster themselves.

I am in the initial stages of trying Scriptcraft (with Spigot server)
and making walls, buildings etc is fast, so hopefully my kids will see
value in using these superpowers.

But then I wondered whether it might be possible for SqueakJS and
PharoJS to interface with Minecraft via the Javascript engine.  I was
interested to discover that the JVM comes with a Javascript engine
built in [3], "Rhino" [4] for JVM7 and faster "Nashorn" for JVM8 [5].

So I thought I would just seed the idea in the community to see if
anyone might be interested to pursue this.  It really would be
fantastic to use our environment to make mods for Minecraft.  (The
actual plan for world domination is to build some assets and
experience with minecraft, and then migrate to a pure Smalltalk 3D
client and server with GPU backends when that becomes available
-gnomes)

Or maybe it would be better to use JNIPort[6] or JavaConnect[7] or
something else.

cheers -ben

[1] http://www.computercraft.info/2016/04/01/computercraft-and-computercraftedu-1-79/
[2] http://scriptcraftjs.org/
[3] https://github.com/walterhiggins/ScriptCraft/blob/master/docs/Using-Java-APIs-In-Javascript.md
[4] https://jaxenter.com/scriptcraft-hacking-minecraft-for-kids-105467.html
[5] https://www.infoq.com/articles/nashorn
[6] http://smalltalkhub.com/#!/~JNIPort/JNIPort/
[7] http://www.squeaksource.com/JavaConnect

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

Sven Van Caekenberghe-2
Have you seen this:

http://forum.world.st/ANN-Minecraft-Bindings-tt4671908.html

> On 7 Dec 2016, at 09:40, Ben Coman <[hidden email]> wrote:
>
> Minecraft is immensely popular.  For teaching programming (to kids)
> via Minecraft, the first option is Java, but that might be a bit heavy
> for a pre-teen.  A few lighter options are Lua via Computercraft [1]
> and Javascript via Scriptcraft [2].
>
> I've tried Computercraft and its quite interesting the way it
> simulates real-life computers and drones, but the drone works slowly
> so my kids end up doing things faster themselves.
>
> I am in the initial stages of trying Scriptcraft (with Spigot server)
> and making walls, buildings etc is fast, so hopefully my kids will see
> value in using these superpowers.
>
> But then I wondered whether it might be possible for SqueakJS and
> PharoJS to interface with Minecraft via the Javascript engine.  I was
> interested to discover that the JVM comes with a Javascript engine
> built in [3], "Rhino" [4] for JVM7 and faster "Nashorn" for JVM8 [5].
>
> So I thought I would just seed the idea in the community to see if
> anyone might be interested to pursue this.  It really would be
> fantastic to use our environment to make mods for Minecraft.  (The
> actual plan for world domination is to build some assets and
> experience with minecraft, and then migrate to a pure Smalltalk 3D
> client and server with GPU backends when that becomes available
> -gnomes)
>
> Or maybe it would be better to use JNIPort[6] or JavaConnect[7] or
> something else.
>
> cheers -ben
>
> [1] http://www.computercraft.info/2016/04/01/computercraft-and-computercraftedu-1-79/
> [2] http://scriptcraftjs.org/
> [3] https://github.com/walterhiggins/ScriptCraft/blob/master/docs/Using-Java-APIs-In-Javascript.md
> [4] https://jaxenter.com/scriptcraft-hacking-minecraft-for-kids-105467.html
> [5] https://www.infoq.com/articles/nashorn
> [6] http://smalltalkhub.com/#!/~JNIPort/JNIPort/
> [7] http://www.squeaksource.com/JavaConnect
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

kilon.alios
That looks like the best option

alternatively you can use JNIPort that allows to run Java libraries from Pharo. There is also redline smalltalk that is a Smalltalk that runs on top of the JVM.

Python also has a very good implementation running on JVM called Jython it can not only use Java libraries but even regular Python libraries .
On Wed, 7 Dec 2016 at 10:47, Sven Van Caekenberghe <[hidden email]> wrote:
Have you seen this:

http://forum.world.st/ANN-Minecraft-Bindings-tt4671908.html

> On 7 Dec 2016, at 09:40, Ben Coman <[hidden email]> wrote:
>
> Minecraft is immensely popular.  For teaching programming (to kids)
> via Minecraft, the first option is Java, but that might be a bit heavy
> for a pre-teen.  A few lighter options are Lua via Computercraft [1]
> and Javascript via Scriptcraft [2].
>
> I've tried Computercraft and its quite interesting the way it
> simulates real-life computers and drones, but the drone works slowly
> so my kids end up doing things faster themselves.
>
> I am in the initial stages of trying Scriptcraft (with Spigot server)
> and making walls, buildings etc is fast, so hopefully my kids will see
> value in using these superpowers.
>
> But then I wondered whether it might be possible for SqueakJS and
> PharoJS to interface with Minecraft via the Javascript engine.  I was
> interested to discover that the JVM comes with a Javascript engine
> built in [3], "Rhino" [4] for JVM7 and faster "Nashorn" for JVM8 [5].
>
> So I thought I would just seed the idea in the community to see if
> anyone might be interested to pursue this.  It really would be
> fantastic to use our environment to make mods for Minecraft.  (The
> actual plan for world domination is to build some assets and
> experience with minecraft, and then migrate to a pure Smalltalk 3D
> client and server with GPU backends when that becomes available
> -gnomes)
>
> Or maybe it would be better to use JNIPort[6] or JavaConnect[7] or
> something else.
>
> cheers -ben
>
> [1] http://www.computercraft.info/2016/04/01/computercraft-and-computercraftedu-1-79/
> [2] http://scriptcraftjs.org/
> [3] https://github.com/walterhiggins/ScriptCraft/blob/master/docs/Using-Java-APIs-In-Javascript.md
> [4] https://jaxenter.com/scriptcraft-hacking-minecraft-for-kids-105467.html
> [5] https://www.infoq.com/articles/nashorn
> [6] http://smalltalkhub.com/#!/~JNIPort/JNIPort/
> [7] http://www.squeaksource.com/JavaConnect
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

Denis Kudriashov

2016-12-07 11:45 GMT+01:00 Dimitris Chloupis <[hidden email]>:
That looks like the best option

alternatively you can use JNIPort that allows to run Java libraries from Pharo. There is also redline smalltalk that is a Smalltalk that runs on top of the JVM.

JNI needs port to UFFI
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

Denis Kudriashov

2016-12-07 11:52 GMT+01:00 Denis Kudriashov <[hidden email]>:
2016-12-07 11:45 GMT+01:00 Dimitris Chloupis <[hidden email]>:
That looks like the best option

alternatively you can use JNIPort that allows to run Java libraries from Pharo. There is also redline smalltalk that is a Smalltalk that runs on top of the JVM.

JNI needs port to UFFI

Ah, I not noticed that we are on Squeak :)
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

kilon.alios
In reply to this post by Denis Kudriashov
It was using nativeboost ?

On Wed, 7 Dec 2016 at 12:54, Denis Kudriashov <[hidden email]> wrote:

2016-12-07 11:45 GMT+01:00 Dimitris Chloupis <[hidden email]>:
That looks like the best option

alternatively you can use JNIPort that allows to run Java libraries from Pharo. There is also redline smalltalk that is a Smalltalk that runs on top of the JVM.

JNI needs port to UFFI
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

Ben Coman
In reply to this post by Sven Van Caekenberghe-2
Thanks Sven. I completely missed that.
However digging in, it seems only the Pi version got an API.   The PC
versions have no official API, although Forge seems to be the default
community one by reverse engineering the obfuscated libraries each
time Minecraft is released.

Dimitris, thanks for the reminder of Redline Smalltalk.  That seems a
good candidate for running Smalltalk from a Java application.  [I'm
finding it tedious with Scriptcraft that every time I edit a source
file I need to invoke refresh() ].

cheers -ben

On Wed, Dec 7, 2016 at 4:46 PM, Sven Van Caekenberghe <[hidden email]> wrote:

> Have you seen this:
>
> http://forum.world.st/ANN-Minecraft-Bindings-tt4671908.html
>
>> On 7 Dec 2016, at 09:40, Ben Coman <[hidden email]> wrote:
>>
>> Minecraft is immensely popular.  For teaching programming (to kids)
>> via Minecraft, the first option is Java, but that might be a bit heavy
>> for a pre-teen.  A few lighter options are Lua via Computercraft [1]
>> and Javascript via Scriptcraft [2].
>>
>> I've tried Computercraft and its quite interesting the way it
>> simulates real-life computers and drones, but the drone works slowly
>> so my kids end up doing things faster themselves.
>>
>> I am in the initial stages of trying Scriptcraft (with Spigot server)
>> and making walls, buildings etc is fast, so hopefully my kids will see
>> value in using these superpowers.
>>
>> But then I wondered whether it might be possible for SqueakJS and
>> PharoJS to interface with Minecraft via the Javascript engine.  I was
>> interested to discover that the JVM comes with a Javascript engine
>> built in [3], "Rhino" [4] for JVM7 and faster "Nashorn" for JVM8 [5].
>>
>> So I thought I would just seed the idea in the community to see if
>> anyone might be interested to pursue this.  It really would be
>> fantastic to use our environment to make mods for Minecraft.  (The
>> actual plan for world domination is to build some assets and
>> experience with minecraft, and then migrate to a pure Smalltalk 3D
>> client and server with GPU backends when that becomes available
>> -gnomes)
>>
>> Or maybe it would be better to use JNIPort[6] or JavaConnect[7] or
>> something else.
>>
>> cheers -ben
>>
>> [1] http://www.computercraft.info/2016/04/01/computercraft-and-computercraftedu-1-79/
>> [2] http://scriptcraftjs.org/
>> [3] https://github.com/walterhiggins/ScriptCraft/blob/master/docs/Using-Java-APIs-In-Javascript.md
>> [4] https://jaxenter.com/scriptcraft-hacking-minecraft-for-kids-105467.html
>> [5] https://www.infoq.com/articles/nashorn
>> [6] http://smalltalkhub.com/#!/~JNIPort/JNIPort/
>> [7] http://www.squeaksource.com/JavaConnect
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

HilaireFernandes
Just a quick note before I forget: why not using the Minetest free
software alternative? It is really nice.

Hilaire

Le 07/12/2016 à 14:50, Ben Coman a écrit :

> Thanks Sven. I completely missed that.
> However digging in, it seems only the Pi version got an API.   The PC
> versions have no official API, although Forge seems to be the default
> community one by reverse engineering the obfuscated libraries each
> time Minecraft is released.
>
> Dimitris, thanks for the reminder of Redline Smalltalk.  That seems a
> good candidate for running Smalltalk from a Java application.  [I'm
> finding it tedious with Scriptcraft that every time I edit a source
> file I need to invoke refresh() ].
>
> cheers -ben

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] pondering Smalltalk scripting in Minecraft

Denis Kudriashov
In reply to this post by kilon.alios

2016-12-07 12:29 GMT+01:00 Dimitris Chloupis <[hidden email]>:
It was using nativeboost ?

Yes