Jump to content

Learning Java/Forge API?


Recommended Posts

Hello. My name is HeyAwesomePeople(HAP) and I have recently just gotten into modding with forge. Iv'e been a bukkit plugin coder for a few months now and got pretty good at that, but compared to forge, Bukkit is just spoon-feeding you with API's to use.. I've played Minecraft since 1.5 Beta and have loved the game ever since. About a year ago I got into mods and modpacks and finally decided to see what I could do on my own.

 

I never truly learned Java. I watched about 20 videos(Beg) of TheNewBoston, but stopped because I got bored with them. Now I'm modding with forge and it's a heck of a lot harder to do. Over the past few days with Forge I have just been using tutorials to make new blocks, ores(With random generation in the world), and tools. It's not much. And I cannot keep just using the tutorials that people make to guide my path of coding.

 

So this is what I want to know: Where does everyone like the maker of those big mods go to learn Java? I have a mod planned, with a lot of ideas, but I cannot pull through any of them because there is no good tutorial for them(I.E. Custom GUI blocks, Screen GUI, timers, ect.).

 

I also am wondering where I can find some sort of API. For example, if I wanted to make a block see-through(like glass), where would I go to find how to do that?(That's not a tut) I know in 1.5.2 of forge you could just shuffle through the Minecraft source but they don't have that anymore. But what if I wanted to do something that's not already in the game. For example, I want to make a plague type game where you are spawned in a world one Minecraft week before the world is infected with a plague. I would need to know how to create a timer at the start of the game, making it save everytime the player logged off the world, how to add metadata to blocks and animals by touching, how to change sky colors, how to add GUI to what the player sees, how to add heat waves(mirages). I know all of this is possible, but how? I cannot just think up a method to use and hope it works.

 

Thanks for reading and hopefully you can help. I plan to finish both the Beginner and Intermediate series of TheNewBoston before I try doing anything too big, but I still need to know how to access the API to do those things.

 

- HeyAwesomePeople

Link to comment
Share on other sites

The whole decompiled and deobfuscated (for the most part) of Minecraft, FML, and Forge is readily browsable in Eclipse. All you have to do is setup up Forge and gradle properly. Then, read all about the interfaces, classes, methods, and what not.

Link to comment
Share on other sites

So this is what I want to know: Where does everyone like the maker of those big mods go to learn Java? I have a mod planned, with a lot of ideas, but I cannot pull through any of them because there is no good tutorial for them(I.E. Custom GUI blocks, Screen GUI, timers, ect.).

- HeyAwesomePeople

Well, many of qualitative mod makers are already software developers. They have the knowledge and the experience. Others are self-taught (including me), they have been following various tutorials at MC forum and forge wiki. Knowing java at intermediate level is a prerequisite for modding, and recently, Gradle too. Once you know Java well, you can start from simple things like adding blocks and items. Reading other mods' source helps much. Can also ask non-noob questions at Forge chat.

Link to comment
Share on other sites

Watching videos on your own is great, but for medding i very much recommend a class for java.

 

If your determined, some colleges publish their courses online, i learned Physics from a college ciriculum. Programming is a big industry right now so i'm sure there are plenty of resources.

Communication is a vital tool, in the game industry you won't go anywhere without it. People are either going to learn to talk, or move on.

Link to comment
Share on other sites

  • 3 weeks later...

I was originally self taught Java, now a Software Engineering student nearing degree completion. I originally learnt with The New Boston and Derek Banas, to be honest I learnt how to code, but I wasn't good at it after watching all the tutorials, I struggled through the minecraft source trying to figure things out, as well as trying to learn Java, it was a hard process. I found that trying to understand other peoples code to be the limiting factor. I didn't know anything about the minecraft source, and didn't know where to look for things. Stack overflow is your friend, if you have a problem, google/stack overflow will usually have the answer. TBH the best thing to do is just get experience, start small, and work your way up to what you really want. Trust me, you will write code you think is amazing one day, then 6 months later you will see how horrid it was and change it. The cycle may continue indefinitely. Dont be afraid to try things and experiment.

 

Minecraft Forge IS your Api, the dev environment gradle sets up with setupDecompWorkspace gives you read only access to the minecraft source, fml source, and minecraft forge source. And I do recommend the irc channel #MinecraftForge. Don't go there asking for Java help, but definitely if you want help using MinecraftForge then that's the place to get it. The way to figure out the minecraft code is to look at similar cases to that which you want to do. If you want to create a GUI, look at how the Inventory is opened and use a similar strategy. If you want to create a new block, look at how the vanilla ones are created. Also there are a bunch of open source mods on GitHub, like biomes a plenty etc. go and have a look at what they have done, you might be surprised what you can find out.

 

helpful classes

-Timer? = Im sure there is a way to check the current minecraft day. I personally haven't done anything with timers(I think you use IScheduledTickHandler but could be wrong)

-Log off? = subscribe to PlayerEvent(in FML)

-GUI? = extends GUIScreen

-Sky colour? = take a look at the World class(I think)

-Touching? = take a look at how Zombies attack Players

-Heat Waves? = This is a little bit more complex, although definitely possible, I suggest do everything else first, and coming back to it.

 

TL;DR:

-Practice

-Use google/StackOverflow

-Use #MinecraftForge

-Look for opensource minecraft mods

The difference between stupidity and genius is that genius has its limits. - Albert Einstein

Link to comment
Share on other sites

  • 1 month later...

There are a lot of free resources online, but like NujumKey said

i very much recommend a class for java
and great news there are online classes available for free too:

 

 

Not only should you know about the language itself (variables, control statements, etc.), you should learn about its design paradigm (e.g. object-oriented, imperative, etc.). And don't forget to check out courses that cover data structures and algorithm analysis (these are the most important IMHO and as a computer scientist). Plus knowing mathematics like linear algebra, set theory, and computational theory will help but isn't strictly required (though more math = more power [muhaha]). Also anything about clean code, effective java, and a splash of documentation goes a long way.

 

There is a lot to know, so take it in strides. Personally, I started learning this about 6 years ago. Only recently did I want to do something for Minecraft.

 

Good luck, have fun!

99 little bugs in the code, 99 little bugs

Take one down, patch it around

117 little bugs in the code

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.