Is Java a gift to modders?

  • Please make sure you are posting in the correct place. Server ads go here and modpack bugs go here
  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

egor66

New Member
Jul 29, 2019
1,235
0
0
AutoIt is often used as a hack/bot tool in online games to automate mundane tasks or to replace the player completely at times hence the bot bit, & hack by repeatedly doing the same task over & over often to exploit a glitch, but I would know nothing of any of this :p.
 
  • Like
Reactions: Bigglesworth

Bigglesworth

New Member
Jul 29, 2019
1,072
0
1
Ruby/LUA/Python would fit much better for modding games becuse they are simplified and work well (when a game has a healthy api cough cough) Python behaves more like java than C, and java is definitely not just a scripting language. What is holding back Minecraft isnt java, its the lack of the game being unable to take advantage of multi processor machines very well. Plus the fact the game has come a long way and was not designed for things like FTB. However that's no excuse for the (often) poor performance you see in vanilla, given the fact this game ran at 100s of FPS on 4+ year old mid range hardware back in the day. The core of it is just showing its age, I dont think thats javas fault.

Joking about AutoIT, Its fun for general windows scripting to automate tasks as if a person were at the computer. Has things like pixel detection thats really easy to work with. Was used back in the Diablo II days for bots that could not be detected and though pixel and color detection made some pretty smart bots
 
  • Like
Reactions: EternalDensity

KirinDave

New Member
Jul 29, 2019
3,086
0
0
Python is that as much as java is a 'cellphone language'.

No. Python is the creation and child of the spectacularly disingenuous Guido Van Rossum, who will simultaneously post about how lambdas confuse him on his public channels while engaging in deep discussions of applied type theory in private mailing lists. Its culture is the "There is Only One Way To Do It" culture, which is toxic because it homogenizes the entire language at the lowest common denominator.

Java is going to have real lambdas before Python is. That is shameful. The weak arguments put forth by Python proponents that you should "just use named methods" miss the entire damn point of higher order functions and are not to be taken seriously.

And not in my opinion, LUA would be the in-between if anything. I did some LUA (mainly wow addons) before getting into Python and wished it was the other way around. When you get passed the nazi indent requirements (that actually really help newbies develop good habits), its quite pleasant.

Lua is a more powerful, sophisticated, and well thought out language than Python. It supports several higher-order programming constructs including real lambdas, a flexible and lightweight object model, out-of-the-box coroutines, and a clever event dispatch model akin to the best parts of Javascript.

So yes. Python is bad. It's awful. It is a travesty that it's used in the industry.
 

egor66

New Member
Jul 29, 2019
1,235
0
0
Guys this has been an interesting & even a little informative topic, plz dont let it resort to a flame fest, TIA.
 

KirinDave

New Member
Jul 29, 2019
3,086
0
0
I'm not saying Python would be great to make (3d) games out of. I'm saying it would be great to get people started in modding. Do you really think people new at programming give half a rats ass about lambdas?

This is not 1995. Lambdas are no longer optional for programming. Even amateurs want and use them.

Guys this has been an interesting & even a little informative topic, plz dont let it resort to a flame fest, TIA.

I am not flaming. I'm telling you what actually happened with GVR. And when I called him out on it, he was not happy. But even then, you shouldn't take a candid and forthright assessment of a piece of technology as a flame war. That's not how it works.

P.S., as much as I love Ruby, it sadly has no execution environment suitably performant for a minecraft modding framework except perhaps Jruby, but at that case it's no different from the forge support for Scala. So that'd be fine, and probably forthcoming. Rubinius is perpetually not ready and Ruby 1.9 wouldn't be integratable.
 

EternalDensity

New Member
Jul 29, 2019
1,428
2
0
Anecdote: 6 years ago, my university class (Games Programming Techniques, in particular) had an assignment to create a game inspired by Asteroids, with at least 2 levels. The technology we were using was a small C++ framework wrapping some DirectX functions. However, there was also a Lua binding for that framework, which I had access to since I was using it as part of my year-long software engineering project (and I was also doing Lua in another class). I suppose others could have used the Lua API if they'd wanted to but of course learning another thing and using a different language seemed like more work to them. So they all made 2 or 3 levels in their games and I made 15 :D (Maybe I was also kinda obsessed :p)
Anyhow, the point is that I was able to achieve more using Lua than with C++ (my teacher was fond of saying that a line of Lua is generally worth about 3 lines of C++). But on the other hand, I had to add some stuff to the bindings to achieve some of the effects I wanted (which required figuring out how the Lua stack worked and various other stuff which I don't currently recall). So while Lua is powerful, unless you have control of the API (which modders don't) there'll be things you want to do which you can't.
I'm not sure what conclusion people will reach from that but I thought it might be interesting. (And I get to brag about getting 100% for that assignment, yay! Having my spaceship graphics be photos of Lego Ice Planet ships didn't hurt either :D) Anyhow, I enjoyed Lua back then, so it's odd that I've never tried programming turtles.
 
  • Like
Reactions: Bigglesworth

KirinDave

New Member
Jul 29, 2019
3,086
0
0
Anecdote: 6 years ago, my university class (Games Programming Techniques, in particular) had an assignment to create a game inspired by Asteroids, with at least 2 levels. The technology we were using was a small C++ framework wrapping some DirectX functions. However, there was also a Lua binding for that framework, which I had access to since I was using it as part of my year-long software engineering project (and I was also doing Lua in another class). I suppose others could have used the Lua API if they'd wanted to but of course learning another thing and using a different language seemed like more work to them. So they all made 2 or 3 levels in their games and I made 15 :D (Maybe I was also kinda obsessed :p)
Anyhow, the point is that I was able to achieve more using Lua than with C++ (my teacher was fond of saying that a line of Lua is generally worth about 3 lines of C++). But on the other hand, I had to add some stuff to the bindings to achieve some of the effects I wanted (which required figuring out how the Lua stack worked and various other stuff which I don't currently recall). So while Lua is powerful, unless you have control of the API (which modders don't) there'll be things you want to do which you can't.
I'm not sure what conclusion people will reach from that but I thought it might be interesting. (And I get to brag about getting 100% for that assignment, yay! Having my spaceship graphics be photos of Lego Ice Planet ships didn't hurt either :D) Anyhow, I enjoyed Lua back then, so it's odd that I've never tried programming turtles.

This pattern is very common in systems that alternate between high and low level concerns. It's not a bad approach.
 
  • Like
Reactions: EternalDensity

Bigglesworth

New Member
Jul 29, 2019
1,072
0
1
This is not 1995. Lambdas are no longer optional for programming. Even amateurs want and use them.

They are optional for modding. You do not need them for such things. You have a strange elitest attitude about things that do not apply here. This isn't 'the industry' and this isn't your work. This is about some poor shmouck x20million that barely know how to do an if statement without catching their house on fire. Wanting to use them isn't a requirement. Just make a flip'n function, whats the big deal anyway? Lets all mod in pure machine code because its clearly the most pure. :D To note, this isnt me hating on LUA, this is your strange hate with another language. I like LUA and Id be happy with either replacing Java as an officially supported mod language.
 

KirinDave

New Member
Jul 29, 2019
3,086
0
0
They are optional for modding. You do not need them for such things.

Actually they're exceptionally useful for capturing enumeration patterns and for doing things that you'd normally do much more pedantically. For example, registering callbacks is trivialized by syntactically cheap lambdas.

A pragmatic example: lambdas are ideal for registering "hooks" and "wrappers" around existing functions.I can show you the kind of code in more detail if you'd like, but we should move to a PM thread soon.

And of course they are "optional." We could be writing things in pure jvm byte code. But the art and science of programming has progressed. Staying back in 1995-land because its "simple" (what we actually mean is "familiar" in this case, Java's way of doing things is actually much more complex) is just not a good idea.

You have a strange elitest attitude about things that do not apply here.

I'm not being elitist. If I were, I would be telling you that Lambas Are Impossible and that Y-Combinators are deep magic like I'm Douglas Crockford, probably high as a kite, teaching Javascript class.

This isn't 'the industry' and this isn't your work.

Indeed so. My work requires code that doesn't break and that self heals. 70% of the code I write is error enumeration, recovery, and testing. Come visit sunny infrastructural architecture land, where things are always gloomy.

This is about some poor shmouck x20million that barely know how to do an if statement without catching their house on fire. Wanting to use them isn't a requirement.

But I can make your code simpler and more like human thought with lambdas. Same with co-routines. The reason lua has a co-routine library is that it makes so many kinds of common event-callback code so simple. Don't be scared by the words, the concepts are elemental.

Just make a flip'n function, whats the big deal anyway?

This is what I'm thinking! Why are you hatin' on lambdas? They're just functions without names that work line you expect when they're nested. So many people I talk to who are skeeved out by the hairy bugaboo of "higher order functions" actually end up being big proponents of functional programming. The guy I'm working with using iPhones daily thanks me for helping him change the patterns he uses to code.


Lets all mod in pure machine code because its clearly the most pure. :D

Ironically: least pure.

To note, this isnt me hating on LUA, this is your strange hate with another language. I like LUA and Id be happy with either replacing Java as an officially supported mod language.

We could support Ruby, Scala, and Clojure trivially. Scala is already in Forge and once the startup I work for calms down a bit, I'll be tidying up my clojure support.
 
  • Like
Reactions: Eyamaz

Ripley

New Member
Jul 29, 2019
185
0
0
Lamba or no lambda, not that big a deal in my opinion.

And to contribute my 2 bits on the actual topic(not on which language has the biggest d*** topic), civilization IV was coded in python with most of the source code available and it got some awesome mods quite fast.
Minecraft only got mods because it's a incredibly popular game and some people worked on unobfuscating the code(I'm unsure how obfuscated the minecraft code actually is though, still quite a bit of work even if you just lose function/variable names) and then worked on basically building a modding api for themselves(forge for example).
The only blessing of java was not being c++ in this case.

Makes one wonder how minecraft mods would have fared if minecraft was in c++ with a modding api. It probably would have been easier to make small mods but the modding api would have been a hard wall while with java the only limitation is about how dirty does a modder want to get this hands.
 

Trond007

New Member
Jul 29, 2019
38
0
0
I think C++ is better for making a game like this or Java was not coded right, cause just now I could play Mists of Pandaria, but not Minecraft with Sphax texture. I haven't played World of Warcraft in a while and gave the MoP expansion a go. Is Counter-Strike Source made with C++? People made great mods for that game.
 

Bigglesworth

New Member
Jul 29, 2019
1,072
0
1
You can play Wow, but not Minecraft (omg with Sphax texture!!11) therefor C++ > java

Alright then

I cant play wow with a custom texture pack, but I can with minecraft. Therefor Java > C++

??
 

blaize9

New Member
Jul 29, 2019
46
0
0
I think C++ is better for making a game like this or Java was not coded right, cause just now I could play Mists of Pandaria, but not Minecraft with Sphax texture. I haven't played World of Warcraft in a while and gave the MoP expansion a go. Is Counter-Strike Source made with C++? People made great mods for that game.
You have not explained how/why C++ is better than java. You only said you can't play minecraft with a texture pack but you can play WoW.


Sent from my iPhone using Tapatalk
 

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
Java, like all languages, is a tool. I may not like Java, personally, but I'm sure that, in the right hands, it can produce reasonably good software. The same can be said for C/C++, C#, Perl, Ruby, FORTRAN, COBOL, or even Brainfuck. They've all got their pros and cons, but what it comes down to more often than not is the skills of the person behind the keyboard. A talentless hack is a talentless hack, it doesn't matter if he's using Baby's First Programming Language, or using freaking Assembly; either way, the code will suck, it won't run well, and it'll likely piss many users off.

Again, I've got my own personal reservations against Java, but I think Minecraft's primary performance issues aren't down to the virtual machine, but simply put, poor code. Sending the entire texture map to the graphics card roughly 20 times a bloody second is an example of bad code. Bad code can be improved, inefficiencies in the VM can, at times, be worked around, that's why there are patches and updates. You're not gonna release a 100% well-working product that's totally bug-free on release day, the time it'd take and money it'd cost would be prohibitive, to say the least. This means that, yes, sometimes, corners are cut, and kludges are made.

My primary problem with Mojang isn't that they use Java, but that they seem to be more focused on adding more content, instead of making the content that's there work better, and making the game a smoother play all around. Yeah, they do get around to it, but for every bit of new content you add, you add yet another source of problems, bugs, and inefficiencies. In essence, they're kinda doing it all backwards.
 

Trond007

New Member
Jul 29, 2019
38
0
0
Ok, as I said it was either that or poor coding. Also I was fiddling around with nuke in the FTB mod and there is huge lag when it exploid and after with all the bricks on the ground, I take it this is also due to very poor coding.