Mod per Minecraft Server: come funziona?


9

Il server Minecraft viene fornito come un singolo vaso. Come vengono sviluppate le mod? Come interagiscono con il vaso originale? Cosa c'è sotto il cofano?

Quali tecnologie sono coinvolte lì? Sono principalmente un tipo C ++ / Python, ma mi piacerebbe imparare qualcosa sullo sviluppo delle mod.

Risposte:


11

Un JAR è semplicemente un file ZIP, contenente i vari file di classe e altri metadati utilizzati: è un formato completamente standardizzato.

I file ZIP possono essere estratti e i file di classe possono essere modificati come necessario per la modifica. I file modificati vengono quindi aggiunti nuovamente nell'archivio, il che rende il server utilizzare i file modificati anziché quelli originali.

Tecnicamente, le mod di Minecraft sono versioni "hackerate" del codice originale: i file di classe binaria effettivi devono essere modificati per far conoscere al gioco le novità; non c'è ancora supporto mod ufficiale (anche se Notch ha dichiarato che ci lavoreranno durante la Beta).

Naturalmente, questo non è un modo molto carino di fare cose se progetti attivamente per le mod. Invece, dovresti progettare una sorta di architettura di plugin che consenta di eseguire il codice personalizzato dove appropriato. Il modo esatto in cui lo faresti dipende da cosa vuoi che le tue mod siano in grado di fare - ad esempio, se la sicurezza è un problema, probabilmente vuoi progettare l'interfaccia mod per usare una sorta di script, quindi puoi impedire alle mod di fare ogni sorta di cose sul computer dell'utente.


Questo non è del tutto vero - McAdmin, per esempio, è stato scritto in C #
BlueRaja - Danny Pflughoeft il

@BlueRaja: MCAdmin non è davvero una mod secondo me, è un server personalizzato e autonomo. Sebbene possa consentire al cliente di fare cose nuove tramite comandi, considero le due cose diverse.
Michael Madsen,

Eh? No, era decisamente una mod; era un wrapper attorno al server Minecraft. Richiedeva che il server Minecraft fosse in esecuzione, quindi non era autonomo. Ho guardato brevemente la fonte e sembrava intercettare i messaggi di rete e alterarli mentre entravano / uscivano.
BlueRaja - Danny Pflughoeft,

3
@BlueRaja: Huh - avrebbe potuto giurare che si trattava di un server autonomo, ma, di nuovo, ammetto di non averlo mai usato. È una specie di caso speciale, poiché sembra funzionare fungendo da server proxy tra il lettore e il server. Non lo definirei ancora mod, ma potrei essere solo io.
Michael Madsen,

6

Le mod per giocatore singolo sono versioni compromesse del codice originale. Le mod multiplayer sono diverse in questo momento. Quasi tutti usano il wrapper del server di hey0, che collega minecraft_server.jar (o qualunque sia il termine in terra Java) ma definisce le proprie classi di funzioni, sovraccarica alcune delle funzioni principali ed esegue il proprio main ()

Hey0 fornisce un'API mod . Vedere


1

Per tua informazione, Mojang rilascerà una "Mod API" nel prossimo futuro (durante la beta, quindi prima della sua uscita ufficiale che sarà intorno a novembre 2011).

In realtà, sarà il codice sorgente completo, come menzionato sul blog di Notch

http://notch.tumblr.com/post/4955141617/the-plan-for-mods

ma per ora, devi "decompilare" i barattoli, per vedere un codice parzialmente offuscato e ricompilarlo per un uso / debugging successivo.

Per fare questo, consiglio vivamente il pacchetto di Codec di Minecraft http://mcp.ocean-labs.de/index.php/MCP_Releases

ci sono anche un paio di tutorial di modding sui forum, come questo: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.