A question for the devs :)

  • Hi, I have a rather personal question about some stuff. Don't worry it's nothing inapropriate, I just can't find the right thing using google. I mean - it bombs you with all kind of $hit, and you have to have some previous knowledge, to know what to look for...


    My question is - how do you code MC mods ?
    I found a lot of step-by-step tutorials, but they are quite narrow, straightforward, limited and... outdated. For example, I saw some people using Scala to code JAVA, some use Groovy... Some use Notepad++ to simple enter the plain java code... (I would if I'd mastered JAVA that good) Can you drop a few lines of text on what tools should I use, where do I begin ? For example, I know I have to get MC API, open eclipse and start tweaking using tutorials. I even managed to make a simple block. But these mods do so much more, how do you guys know where and what to do with the offered API ? I find very tedious task to use plain and simple JAVA (for example eclipse env, like they showed in the tutorials), because JAVA is so confusing language for begginers to learn. I saw some Scala examples and thought it may be easier that way - And then - there's Jenkins, Github, ANT... things I don't know a thing about... It's not JUST about coding, there's plethora of different things sitting aside, which help one guy to achieve his programming goal. I just want to know your coding setup, if it is not too much to ask for ?

  • I am learning from Pahimar. he assumes prior JAVA knowledge but, is still easy to learn from without it.


    ^


    You still need to learn Java though.
    Copy pasting code from tutorials won't help you in the long run, and you need that knowledge to understand the game more, since tutorials won't give you everything you need to make complex mods, but a solid base to work on.

    • Official Post

    Minecraft with the libraries its using is too big for a beginner to really work with. A good amount of modding is researching the existing implementation to find the most suitable avenue to alter it. FML/Forge certainly doesn't help by using rather niche techniques like reflection and byte code manipulation even for basic tasks, making it difficult to e.g. get an accurate idea of what happens before your code even runs. Besides that the code quality is lacking.


    I highly recommend to start with basic standalone software as taught by your average university programming course. Mathematical problems and some basic data shuffling are ideal to learn how to express yourself in code, the development environment, debugging and the most important parts of the standard library.


    Scala should be avoided, it's more of a play ground and too easy to misuse.

  • Minecraft with the libraries its using is too big for a beginner to really work with. A good amount of modding is researching the existing implementation to find the most suitable avenue to alter it. FML/Forge certainly doesn't help by using rather niche techniques like reflection and byte code manipulation even for basic tasks, making it difficult to e.g. get an accurate idea of what happens before your code even runs. Besides that the code quality is lacking.


    I highly recommend to start with basic standalone software as taught by your average university programming course. Mathematical problems and some basic data shuffling are ideal to learn how to express yourself in code, the development environment, debugging and the most important parts of the standard library.


    Scala should be avoided, it's more of a play ground and too easy to misuse.

    Agreed. Java is the obstacle, not modding usually. And as for Scala, it is great, but the fancy neatness can be deceiving. You need to know your shit.

  • Well thanks for clarifying some things to me, I have some small amount of programming knowledge, I am not completely clueless about what JAVA is. I asked this question to see what is the best course for me to set up things - where to start and so on... I wanted some feedback on scala, since I heard that it's a bit easier and cleaner in the terms of it's syntax than JAVA, so I though - why not... I used to code simple stuff in C#, I am sure I can manage switching to JAVA somehow (never actually got to like it, maybe I didn't put too much effort in it) but the thing is - this game is already fully built project, someone should have been there from the start, to know all the stuff and the way the program works and "thinks"... and the minecraft API (forge) looks easy enough, but when you go deeper, it's just... Yeah - the right course right now would be getting some other's mod api and messing around with it...
    So - plain JAVA in Eclipse is the way things are done around here, right ? ...assuming I know some basics about java programming...


    The thing is - I do not learn JAVA or any other programming language at my school (machine engineering, stuff not related to computers at all - like CNC code, Pro Engineer, some basic C# course and similar nonsense)... So it's all up to me, I guess... MinecraftSheep


    EDIT: Thanks BillJoehobo, I previously read your post wrongly,I understood that you were learning some "Pahimar" distribution or something, so I just skipped further, but after that, I actually saw you posted a link where this guy named Pahimar explains a lot of stuff that actually are of interest to me - working with GitHub and such... :) He basically answered my question about how to set-up the things, what to use, how to use, etc... From here, I have a better picture of what to do.