ScriptCraft: Building cool things using Javascript in Minecraft
walterhiggins.net
walterhiggins.net
Apart from these bots acting on their own, players could send commands to bots via private message or towny/faction chat. Oh, and speaking of towny and factions, or any sort of teams reallly: what if this sort of "Minecraft Robot Wars" competition was set up so there'd be a few human players, with each having their bots who know their owners, but otherwise nobody knowing who is a player or a bot, and who is on what side... ?!
So you could e.g. either all join up in one town/faction and give your alliance away for more efficiency/power, or split up and try to play all sorts of diplomatic games via chat and actions, and try to deceive bots/people long and short term. Minecraft online is so much about trust, I never played another game that came close; and while that can be very frustrating and petty with humans, it seems hilarious to try to code bots that act real or otherwise deceive ^^ Especially if everybody knows that it's the goal of the game.
Please, nobody make this happen, this would destroy my life. Even just thinking about the possibilities is addicting haha.
So realistically I believe this is a niche idea which might be hard to make commercially viable. But it could be an interesting thing for private minecraft servers.
It needs a small fixes to work with the current version of Minecraft but it's pretty feature complete. We were using it internally for load testing (until we made our architecture support multiple games).
There exists a mod that lets you build mining turtles, script-able in lua. If you really want to destroy your time, look up the Technic modpack-it has all sorts of awesome stuff like that.
By using the Bukkit server mod, which provides a stable plugin API, it is relatively easy to add a wrapper around a scripting engine [0].
For example, a plugin providing Rhino support [2] and one providing python support [2].
I would recommend either porting your work to the Bukkit framework, or working with one of the existing plugins to include some of the cool stuff you have made.
I don't currently know what the most popular scripting plugin currently available is, but I'm sure you can find it with a bit more digging than I have done.
[0] http://dev.bukkit.org/search/?scope=projects&search=scri...
I agree a client mod is a great place to have this functionality, but if it is being done on the server as well then using a framework like Bukkit is a great choice.
For one thing, the author complained about obfuscation making it difficult to expose different functions in the game. Bukkit provides a stable API, so it makes sense for a scripting wrapper to expose those functions, and by doing so gain a lot of functionality.
I used to be very active on the team there, but haven't contributed any code for a while now. I get the urge almost every week, so maybe I should jump back in for a bit.
It has its problems, but is miles ahead from where we started and really does enable plugin authors in a way straight modding never can.
The JS language also allows a transition to html5/web stuff (cool web pages they and their friends can see with some simple-to-setup hosting) and perhaps ultimately server side (nodejs).
And a child walking that path would then be exposed to enough ideas/different environments that learning a different language would be a natural next step.
This is a pretty exciting idea. I wonder how easy it can be made. i.e. I wonder how much of the distracting tool-based detail can be swept to one side.
1: http://www.minecraftforum.net/topic/939149-launcher-magic-la...
One of the downsides of the diversity in the Minecraft modding community is that it can be difficult to identify the "best" way to do something. New tools come and go, and compatibility wanes when new releases hit.
It would be better if it had exposed all the commands from the server modding api: http://manicdigger.sourceforge.net/news/wp-content/uploads/2... . (note: old version)
I think JS would be useful for making Adventure game mode where blocks (script-boxes) contain javascript code that spawns NPCs, defines dialog trees, quests, items.
Another example: Spleef arena control room http://mdgallery.strangebutfunny.net/View?id=103
I didn't really like the "type your code in Minecraft chat"-approach many similar projects were/are taking (i.e. "/js myCodeHere()" in chat) and wanted a proper interpreter window. To integrate the Java-based Bukkit API with Python, I used Jython. The result is something similar as shown here: http://www.minecraftwiki.net/wiki/Pi_Edition
I've yet to put up a blog post or something, but I've thrown together a quick video of me playing with it (it's a bit slow so feel free to forward) here: http://www.youtube.com/watch?v=rI3PfgCSI7Y
I think something like this could really help in getting kids excited about programming. Back in the day, I started learning programming with LOGO http://en.wikipedia.org/wiki/Logo_(programming_language) , a quirky adaptation of LISP, but where you could immediately see your results drawn on screen. It's cool to see Minecraft as some sort of modern "canvas" for programming.
I have been using a python-bukkit plugin layer for quite some time for a lot of small administrative plugin tasks on my private server. You should check out his project, it's on github.
With this, I've created an entirely custom RPG class plugin, and a complete dungeon editor.
Problem was, with the 1.4.6 update, Skript stopped working in some areas so I've been forced to go into Eclipse and write Java with the bukkit APIs directly. For someone with experience, jumping into Bukkit plugin development was a piece of cake, but I was able to build out very very very sophisticated plugins with Skript before the update broke it.
Minecraft is aiming for some extensive modding re-write, which will make installing and using mods easier. I 'm not sure how much work the author will have to do to get scriptcraft running under the new system.
I'm also interested in how it compares to existing world building tools. Most of those are out-of-minecraft software. But things like world edit, etc.
/js box('35:15',4,9,1)
...creates a 2001 Monolith at the current location. The real power of ScriptCraft though is its ability to load and execute javascript files containing functions, and the ability to easily extend the Drone class. E.g. // file monolith.js
Drone.extend('monolith',function(){
return this.box('35:15',4,9,1);
});
After loading monolith.js, players can do the following to create 3 monoliths... /js monolith().right(6).monolith().right(6).monolith()
I've provided a couple of example scripts but it will be interesting to see what players do with this.More info here: http://www.minecraftwiki.net/wiki/Pi_Edition