Jump to content

Recommended Posts

EDIT: Oh, and does this have any effect on the whole code locality concept?

Probably not.

The reasons we're doing distributed programming ("code locality") are language agnostic; they apply just as much to java as to sqf. The only way you can get rid of it, is by moving it - all of it - to the server.

One of the most important factors is that there can be significant latency to the server. (A busy/overloaded server comes on top of that again.) Consider that together with dialogs/UI like the gear screens. Should clicking a button be allowed to take half a second to respond? Of course not.

"Fixing" this is impossible without breaking other stuff. A "Hybrid" solution will easily be the worst possible solution.

Object locality can to a large extent be made transparent (currently some commands only work right when run from the same box on which that object is local). This will make code locality less of an issue, however it will be both latency-sensitive and hazardous from a correctness point of view.

Share this post


Link to post
Share on other sites
Hello Maruk,

Could you please give a response to these questions.

1. Does the JVM use by ArmA 3 will be a copy embedded into the game or would it be possible to use one's system JVM ?

2. Do you intend to deliver the Java API as libraries? If so would it be possible to develop programs that use these libraries without running the game?

3. Does the Java process/threads in ArmA 3 will have restrictions like system files or Socket access limitations? What about remote control possibilities of the JVM?

Thanks again for supporting Java into ArmA 3.

These are good questions, I'm interested in the answers as well.

Share this post


Link to post
Share on other sites

If Marek does decide to answer a few more questions...

  1. What JVM will you be targeting? 7? 6? Certainly not 5...
  2. Any chance to get a sneak peak at the JavaDocs so we can start reading up? (You guys do write JavaDoc as you go.... right?)
  3. Any ballpark figure for a beta patch release? Are we talking days, weeks, months?
  4. Is there some third party framework for embedding Java as a game's scripting engine?

Thanks! I can hardly wait to start writing Java code!

Share this post


Link to post
Share on other sites

the real question in my mind is if this might end up in some of there umm shall we say, pricier product lines... ;) i can imagine finding java devs could help ease the burden of a number of firms.

Share this post


Link to post
Share on other sites

Any chance to get a sneak peak at the JavaDocs so we can start reading up? (You guys do write JavaDoc as you go.... right?)

would like to see this also ..

Share this post


Link to post
Share on other sites

About two Years ago I stopped ArmA scripting because I started java programming. Now I can do both things with one language. Very great feature!

Share this post


Link to post
Share on other sites

Hi. Great news! Are you going to write own JVM? Regarding security: filesystem/network access, can be easily forbidden (JAAS). Scala FTW :cool:

Share this post


Link to post
Share on other sites

Jython (Python) support, fuck yeah!

I tried to get into modding before, but being a pretentious Python coder, I just couldn't adapt to ARMA2's weird scripting language.

First thing I'll do when ARMA 3 hits: write a Pythonic library to help Python coders not kill themselves dealing with Java-style APIs.

Edited by Meek

Share this post


Link to post
Share on other sites
Will the java be added to an Arma2 patch?

No.

Take On Helicopters were selected as the platform of choice to test drive Java before it can be released as part of Arma 3 for several reasons.

Share this post


Link to post
Share on other sites
Object Orientation.

Good, but still meh compared to the rest of my reasons:

Well specified semantics. I'm not sure if an sqf specification exists (published) to the point that it forbids executing scripts in reverse... which would mean that {a=b; b=c; } is technically relying on undocumented behavior. At the very least, the preemptiveness of the sqf threads has given me loads of trouble, both ways.

In how well suited sqf is for human use, I'd place it right beside assembly. Java is a few steps up. And we've come to assume you can use other jvm-enabled languages too.

From opening post:

"Using IDEs such as NetBeans and Eclipse for development and debugging." (my emphasis)

---

Any reasonable ideas when we might be able to play with this?

Share this post


Link to post
Share on other sites

Java?! C#?

why not C++?! the config files were C++ headers...

C++ is

-fast

-support OOP

-portable

-probably, it's already used by the engine

...it's really true that the ways of the Lord are infinite..

Share this post


Link to post
Share on other sites
Java?! C#?

why not C++?! the config files were C++ headers...

C++ is

-fast

-support OOP

-portable

-probably, it's already used by the engine

...it's really true that the ways of the Lord are infinite..

Java and C# programs use garbage collector of their virtual machine which made development ton of easier and safer compare to C++ (memory access violation, buffer overflow etc). Moreover C++ has few security aspects compare Java. What about for a given addon running malicious code while you are playing ArmA 3 :D:rolleyes:

Share this post


Link to post
Share on other sites

Can already do that now in ArmA2. You should probably trust who you are downloading from, and not download anything sketchy.

Share this post


Link to post
Share on other sites

Was a few months away from the forums, came back, found this thread about JVM, doubled checked I'm not on stackoverflow. Wtf, I'm in a game forum and they're talking about the JVM? :eek:

I mean, I have read already lots of stuff of proprietary and open source scripting support in commercial games, honestly I've never heard about using the JVM. :confused:

I find this an impressive and brave, but quite logical too; it's usually hard to development in a few years and beat something which is out there since more then 15 years. :yay:

I really think this move will turn out great, because I can shoot out in less then I second why I did never more with the BIS titles so far: I'm a programmer by heart and I value elegance and expressiveness in languages and SQF always felt so arcane; just never could fall into love with it.

So, unless this isn't some kind of hoax, BIS, clever and interesting move. You just have to rock the modding community with this:D

PS: it's fine to release A3 in 2013; more features/less bugs is OK ;)

Share this post


Link to post
Share on other sites
I really think this move will turn out great, because I can shoot out in less then I second why I did never more with the BIS titles so far: I'm a programmer by heart and I value elegance and expressiveness in languages and SQF always felt so arcane; just never could fall into love with it.

+1 on that.

Share this post


Link to post
Share on other sites
Never underestimate the popularity of JAVA worldwide. I believe that aspect played the biggest part on making final decision.

I wouldn't be that sure about it; they're talking about the JVM as a scripting/execution environment. Whether you use Java to compile to it, or JPython or JRuby wouldn't matter. I would certainly harness the power or Rubys "everything's an object" (err, well, nearly) for example ...

Might also lead to a quite diversified community experience; now every serious BIS modder knows SQF, but with the JVM there's access to many many languages. I'm sure it will attract more/new ones and it may also fragment modders over choosing which language to use (I certainly wouldn't work with python code as I'm just not fluent enough with it).

Share this post


Link to post
Share on other sites

I really think this move will turn out great, because I can shoot out in less then I second why I did never more with the BIS titles so far: I'm a programmer by heart and I value elegance and expressiveness in languages and SQF always felt so arcane; just never could fall into love with it.

If you would be really interested in modding the game then you would have learned sqf too, don't you agree ?

Modding is a little bit more than having just tool A or programming language B available...

Anyways, I hope a new TOH (beta?) patch will be available soon. I'm interested to see if and how threading will work with the Java VM and the game.

Xeno

Share this post


Link to post
Share on other sites
If you would be really interested in modding the game then you would have learned sqf too, don't you agree ?

Modding is a little bit more than having just tool A or programming language B available...

If you already have the intricacies of 3 languages plus multiple frameworks to memorize, there isn't a lot of room for a function library and irritating syntaxes for control structures. Plus I can't stand languages without type safety :D

At least that's what drives me away.

Share this post


Link to post
Share on other sites
If you already have the intricacies of 3 languages plus multiple frameworks to memorize, there isn't a lot of room for a function library and irritating syntaxes for control structures. Plus I can't stand languages without type safety :D

At least that's what drives me away.

Yes, Xeno & your response show that it's not a matter of black and white. If you're very passionate about it you might as well accept everything to get your goal. Yeah well, I've some passion but I'm simply not interested in learning those SQF intrinsics. I'd rather use my language of joy because it already costs me enough time memorizing the API and grasping how things work; have a complete new language IMHO is just another kind of barrier. But well, that's me and mustn't apply to you ;-)

Share this post


Link to post
Share on other sites
Java and C# programs use garbage collector of their virtual machine which made development ton of easier and safer compare to C++ (memory access violation, buffer overflow etc).

Yep i know that Java and C# use GC, however:

- GC has its own cost

- there're already GC implementation for C++ too

- C++ offers already other way to manage memory: auto_ptr, shared_ptr and so on

- aren't we talking about scripting?! ;)

Moreover C++ has few security aspects compare Java. What about for a given addon running malicious code while you are playing ArmA 3 :D:rolleyes:

I'm not a security expert however, you have this kind of issue also with Java because:

- safety depends on the code you wrote, so depends on the programmer skill

- in Java for example you can download a class from "somewhere" and execute arbitrary code ( through ClassLoader). As far as i know this can't be done in C++.

Correct me if i'm wrong, however we all agree that everything it's better than SQF/SQS, first for the automatic JavaDoc ( i dream a good documentation made by the developer..at least better than the one on the wiki) and,second,because we'll have a predictable language. :D

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×