Live data from Hacker News

Show HN: Teachcraft – Learn Python through Minecraft

teachcraft.net

1–10 of 64 posts

Re: Show HN: Teachcraft – Learn Python through Minecraft

#3
Looks like a great guide to get started with coding with Minecraft. There have been some efforts over the years, but this looks really complete. One obstacle for schools to get started with this however, is buying all the Minecraft licenses.

To this end, I've been toying around a bit with an open source Minecraft clone called Minetest lately [1][2]. It's surprisingly complete, and could also have great uses in (programming) education.

It has a C++ core based on the Irrlicht 3D engine, but many of the game mechanics are implemented in Lua. Modifications like the examples in Teachcraft can also be built in Lua. For example, this [3] is a mod to spread flowers and mushrooms around the map.

The Lua language isn't used much currently in the education environment, which is mostly focused around Scratch, Python and sometimes Javascript. Then again, seeing different languages and noticing their similarities can be educational in itself.

Finally, I've been wondering how hard it would be to port something like Minetest to Emscripten. Irrlicht seems to be compatible already [4]. The non-JIT version of Lua is compatible as well [5]. Obstacles in Minetest that I can identify would be the heavy use of the filesystem, the use of UDP sockets and memory sharing between threads.

Would anyone know more about how hard porting something like this would be?

[1] https://github.com/minetest

[2] http://www.minetest.net

[3] https://github.com/minetest/minetest_game/blob/master/mods/f...

[4] http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=51...

[5] https://github.com/vvanders/wasm_lua

Re: Show HN: Teachcraft – Learn Python through Minecraft

#5
Nice! A while ago, I also worked on a Python Minecraft interaction which is not based on mcpi (and RaspberryJuice), but instead spawns a full Jython based Python interpreter session server-side allowing you to directly use the full Bukkit API [1]. This allows to use various commands mcpi doesn't support, such as creating lightning, explosions, and dynamically writing events using Python, either by using a client (sending Python code over the wire) or from the chat console in Minecraft.

The way how mcpi works is by creating a network bridge between the RaspberryJuice plugin and Python. Commands in Python are send to the Minecraft plugin over the wire and handled there (using the Bukkit API), with output send back to the Python client. This is safer in the sense that you don't have the full Python environment running on the server and that (in theory) you can use both Python 2 and 3 (Jython support for Python 3 is not there yet). The drawback is that you can only utilize commands that are manually implemented and that the full Bukkit API is not directly exposed.

At one point, I also had a plan to expand this into a tutorial series but didn't really follow up on this due to a lack of time. I'd really like to do this some day, though.

[1]: https://github.com/Macuyiko/minecraft-python and video: https://www.youtube.com/watch?v=j4JfwS5hNlw

Re: Show HN: Teachcraft – Learn Python through Minecraft

#6
post #3

Looks like a great guide to get started with coding with Minecraft. There have been some efforts over the years, but this looks really complete. One obstacle for schools to get started with this however, is buying all the Minecraft licenses. To this end, I've been toying around a bit with an open source Minecraft clone called Minetest lately [1][2]. It's surprisingly complete, and could also have great uses in (progr…

An open source project of mine, pycraft, has recently gotten some renewed attention. We learned that we were doing rendering very inefficiently, using "static" when we should have done stream. Our big project right now is making it easier for contributors to contribute.

https://github.com/traverseda/pycraft

Re: Show HN: Teachcraft – Learn Python through Minecraft

#7
Would love to try this out as my kids love Minecraft (when played at friend's houses) but:

"Step 1 - Install Minecraft"

I can't get Minecraft to work on my Windows laptop. Minecraft crashes after a few seconds with a Java error:

"Java (tm) Platform Binary SE has stopped working"

Tried searching for a cause and tried everything I could find. Perhaps someone here has some suggestions?

EDIT: Re downvotes: that will teach me to post a half finished piece while I went to check on actual Java error! Not complaining - my fault entirely for posting half-assed reply which sounded aggressive.

Re: Show HN: Teachcraft – Learn Python through Minecraft

#9
post #3

Looks like a great guide to get started with coding with Minecraft. There have been some efforts over the years, but this looks really complete. One obstacle for schools to get started with this however, is buying all the Minecraft licenses. To this end, I've been toying around a bit with an open source Minecraft clone called Minetest lately [1][2]. It's surprisingly complete, and could also have great uses in (progr…

> One obstacle for schools to get started with this however, is buying all the Minecraft licenses.

That depends. It can be, if your class sizes.

However, last two schools I worked with simply bought a lab-worth of Raspberry Pis, and used that limited version of Minecraft.

Re: Show HN: Teachcraft – Learn Python through Minecraft

#10
post #3

Looks like a great guide to get started with coding with Minecraft. There have been some efforts over the years, but this looks really complete. One obstacle for schools to get started with this however, is buying all the Minecraft licenses. To this end, I've been toying around a bit with an open source Minecraft clone called Minetest lately [1][2]. It's surprisingly complete, and could also have great uses in (progr…

An open source project of mine, pycraft, has recently gotten some renewed attention. We learned that we were doing rendering very inefficiently, using "static" when we should have done stream. Our big project right now is making it easier for contributors to contribute. https://github.com/traverseda/pycraft

> We learned that we were doing rendering very inefficiently, using "static" when we should have done stream.

Can you expand on this? Did you use 'static' for VBOs that were only used for one or two frames?

Post reply on HN