Fleet Operations Applet?

Post ideas and suggestions on new features or improvements here.
1, 2
posted on June 14th, 2012, 2:32 pm
I know that this might not be implemented, but I thought I'd pass it along. I thought it would be nice to make a sort of applet version of Fleet Operations (maybe a sort of demo) to play directly off of this website. It wouldn't be mod-able and the only limiting factor I can think of is the need to be experienced in the Java language.
posted on June 14th, 2012, 2:37 pm
1) is that even possible?

2) almost certainly not legal, fleetops is legal as it mods a game, stock a2 isn't a browser based game, so fleetops in a browser couldn't really call itself a mod with a straight face. the brower game would still have to check for a stock a2 install and cd.

3) is there a point? as stock a2 install/disk are still needed, this wouldn't really open fleetops up to a much wider audience.
posted on June 14th, 2012, 3:00 pm
Getting it to work online is probably possible, just far too much work to be worth it. Updates wouldn't be a problem, though.
posted on June 14th, 2012, 3:14 pm
Myles wrote:1) is that even possible?

It's possible.

Myles wrote:2) almost certainly not legal, fleetops is legal as it mods a game, stock a2 isn't a browser based game, so fleetops in a browser couldn't really call itself a mod with a straight face. the brower game would still have to check for a stock a2 install and cd.

Who said anything about calling it a mod?

Myles wrote:3) is there a point? as stock a2 install/disk are still needed, this wouldn't really open fleetops up to a much wider audience.

Demo?
posted on June 14th, 2012, 3:22 pm
Feasable, but in no way practical. You would basically have to rewrite the engine, which is absurd and something the devs have said isn't going to happen anyway. Also, the user would have to download all the assets locally, which again, would be impractical, even if you reduced textures and minimized text files. If people want to preview game action, have them watch replays.
posted on June 14th, 2012, 3:56 pm
TChapman500 wrote:It's possible.


Should've said practical, my mistake.

TChapman500 wrote:Who said anything about calling it a mod?


How can it be anything else, by its very nature fleetops is a mod. it takes stock a2 and modifies it. unless they remove all of stock (which requires a new engine) they can't say it's not a mod.

TChapman500 wrote:Demo?


which is pointless. if it contains normal fleetops then there's no point of downloading unless you wanna mod the game. you'd have to make arbitrary limitations on maps/units.
posted on June 14th, 2012, 5:03 pm
if we rewrite the game, it will definitely not be java! :D
not to say that fleet operations would not run well as a java implementation. its incredibly slow.
posted on June 14th, 2012, 6:41 pm
Optec wrote:not to say that fleet operations would not run well as a java implementation. its incredibly slow.

What's incredibly slow? Java, or Fleet Operations?
posted on June 14th, 2012, 7:22 pm
Java is a "managed language" which means the program you run is not machine code, it's some intermediate code (in this case Java byte code) which get's compiled by your Java Runtime (JVM) on the fly, as you run it. This is in contrast to a "native language" which compiles straight to machine code for a specific processor type. This "just-in-time" (JIT) compiling allows the program to be run on any platform (in theory) because at runtime it will be hooked to your system's copy of the JVM and (In theory) this allows the runtime to apply system specific optimizations. However in practice - at least for Java, .NET is a significantly better - this results in worse performance than a native progarm. So for a high performance, real-time application such as a game, Java is a bad choice; almost all game engines are written in C or C++.

Then to add to all that, when Java runs in the browser, there's yet another layer as the JVM has to communicate with the browser. This results in Java being still slower when run in the browser.

Optec wrote:if we rewrite the game, it will definitely not be java! :D
not to say that fleet operations would not run well as a java implementation. its incredibly slow.

I am most pleased to hear that. :thumbsup: I really don't know why people bother writing anything in Java anymore :x ; I personally believe it to be miles behind other languages and horridly inflexible.
posted on June 14th, 2012, 8:34 pm
Heh, Java is one of my favorite languages, and though it has its shortcomings, it does have its uses. It is after all one of the easiest languages to program, and its VM allows it near universal compatibility. It is not outdated either, considering it is newer than C++ which is also still widely used.
posted on June 15th, 2012, 1:10 am
It may not be "outdated" but I find it consistently lacks several features which I would consider fundamental:
1. Operator overloading. While, granted, it can be (and has been) abused, there is no more natural way of working with objects.
2. Runtime generics. I find this to be a massive failing on the part of Java, and it leads to all manner of limitations on how you can use generics.
3. Lack of fundamental type support for generics. Or rather, why can't basic types just be forwarded to object types. .Net does this perfectly.
4. Function pointers (aka delegates) . Function objects are a basic component of flexible programming and allow you to generalize tasks easily. You can't event have a functor or function object because you can't overload operator (). Instead one has to resort to interfaces with known functions.
5. Built-in events. These follow very nicely from function pointers. Yes, I know they have the "ActionListener" model, but it's clunky and bulky and inevitably involves anonymous classes.
6. Only one public class per file. Sure it sounds like a good idea, but when you have to derive 10+ simple classes your project balloons very quickly. I would love to strangle the one who came up with this idea.

So I find that Java has a great many short comings which severly hold it back. I will take C# over Java any day. And actually C++ has a new standard released in 2011 so it is quite far from old, in fact it was previously updated in 2003 as well. The latest C++11 standard includes a whole slew of very powerful features including lambdas (i.e. anonymous functions), r-value references, move semantics, regular expressions, threading, variable number of template parameters, type inference (think var in JavaScript only strongly typed), and reference counting pointers (think references as in Java),
posted on June 15th, 2012, 1:37 am
I didn't understand half of what you said.

1) Who would want to overload something? Wouldn't that be counter-productive to building a reliable program?
2) Runtime what?
3) Type support?
4) Function pointers? I thought that those were already there when one function called up another function. Do you mean stuff like "inline," "struct," and "#define?"
5) Funny, I'm just learning how to use ActionListener for a track editor I'm building (since VS2010 causes Sandbox crash and the express edition can't do Resources). But I'm not sure what you mean by Built-in events. I thought every language had those.
6) Hey, it's helping me learn how to program in manageable chunks. I actually like that limitation.

Oops, looks like it's time for a topic split.
posted on June 15th, 2012, 2:09 am
Atlantisbase wrote:It may not be "outdated" but I find it consistently lacks several features which I would consider fundamental:
1. Operator overloading. While, granted, it can be (and has been) abused, there is no more natural way of working with objects.
2. Runtime generics. I find this to be a massive failing on the part of Java, and it leads to all manner of limitations on how you can use generics.
3. Lack of fundamental type support for generics. Or rather, why can't basic types just be forwarded to object types. .Net does this perfectly.
4. Function pointers (aka delegates) . Function objects are a basic component of flexible programming and allow you to generalize tasks easily. You can't event have a functor or function object because you can't overload operator (). Instead one has to resort to interfaces with known functions.
5. Built-in events. These follow very nicely from function pointers. Yes, I know they have the "ActionListener" model, but it's clunky and bulky and inevitably involves anonymous classes.
6. Only one public class per file. Sure it sounds like a good idea, but when you have to derive 10+ simple classes your project balloons very quickly. I would love to strangle the one who came up with this idea.

So I find that Java has a great many short comings which severly hold it back. I will take C# over Java any day. And actually C++ has a new standard released in 2011 so it is quite far from old, in fact it was previously updated in 2003 as well. The latest C++11 standard includes a whole slew of very powerful features including lambdas (i.e. anonymous functions), r-value references, move semantics, regular expressions, threading, variable number of template parameters, type inference (think var in JavaScript only strongly typed), and reference counting pointers (think references as in Java),


1. I know it doesn't have that exactly, but it does have a form of overloading that can be used for that.
2. It obviously has generics, but I"m not entirely sure what you mean when you say, runtime generics.
3. you can type cast. I"m not sure what you are talking about
4. It doesn't call them functions. It as generic methods which are used for prettymuch everything, including functions. Function is a pretty broad term, just like method,
5. It has events. and they are built it... Yes I refer to action listeners, which is virtually identical to c++, and it can also be cast to specific types and classes. All 'functions' and classes such as the actionlistener, scanner, etc can be easily redefined for your needs.
6. Thats why you have subclasses and abstract classes. I don't really know that you couldn't have more than one, but I also don't see the need. In an inheritance based system, there isn;t even a reason to have that many classes in one file.
posted on June 15th, 2012, 2:20 am
1. In this case "overload" does not mean over taxing. Overloading is the term for giving a function in a derived class functionality different or in addition to that of the base class. You might also know it as overriding.

2. Generics or templates are a way to separate the logic from the type you're operating on, they're a somewhat advanced topic but indispensable. They're useful in algorithms and collections/containers where you don't really care about the type of your data but need to ensure that data of a different type doesn't get in. If you've ever made an ArrayList<MyType> (read ArrayList of MyType), that's a generic. ArrayList is a generic collection and you're telling this instance to only work with objects of MyType.

However, in Java, generics only give you compile time benefits; when you compile the class which uses ArrayList<MyType> the fact that it's a collection of MyType is lost in a process called type erasure and it just becomes an ArrayList. Furthermore, within the generic class you can't create an instance of the generic type because it doesn't know what type it is.

3. You can't create a generic using a fundamental type, i.e. int, double, etc. You must use the object versions Integer, Double, etc. This has implications about how you work with data stored in your generic. It also brings the heap into play as Integer is a reference type.

4. To understand function pointers, you have to know a bit about pointers in general. Pointers are variables which store a memory address rather than the data itself; if you know C/C++ they're declared as MyType*. In Java the closest thing to a pointer is a reference which, again, stores a memory location. Well, functions have an address in memory too which is where their instructions are stored. In C/C++ you can take the address of a function and give it to another function which then calls the passed function to perform some dynamic operation. In C# these are called delegates and they are strongly typed. Again, function pointers are something of an advanced topic but are indispensable for certain programming models.

5. In C# there is a keyword event which quickly declares what is basically a multi-cast delegate. That is to say a list of function pointers. This can be jerry rigged in Java, but requires a lot of overhead; at the minimum it requires two classes, an interface, and three functions.

On a seperate note, are you building a Java app, if so, why (or rather how) are you using VS, last I checked there's no Java language extension for VS.

6. While it's alright for smaller projects, it becomes somewhat of a hinderance for larger projects. For example I had to write a little calculator app for school, I defined an Operation class as a base class for an operation. Then I derive a class for each operator I support, e.g. +, -, /, etc. Well these classes are all very small, really only one very small function. It makes more sense to group them all into the same file, but because they all had to be public I had to put each in its own file. By the time I was done I had about 12 files in addition to the 12 or so I already had. So as you can see, this design results in a lot of file bloat.
posted on June 15th, 2012, 6:59 am
Adm. Zaxxon wrote:Heh, Java is one of my favorite languages, and though it has its shortcomings, it does have its uses. It is after all one of the easiest languages to program, and its VM allows it near universal compatibility. It is not outdated either, considering it is newer than C++ which is also still widely used.


I didn't want to discredit java. I personally don't like the language that much, but it definitely has its use cases. There is no universal language that's good for everything, you always should look for the right language for your task (we even implemented our own language now for fleet operations tooling). High performance applications (like AAA-style games) are definitely not the scope of Java and probably not of .NET either, although the later can get really close to native implementations in terms of speed. Some editors and tools for AAA-games are implemented in .NET and they also have to obey high performance rules.
1, 2
Reply

Who is online

Users browsing this forum: Bing [Bot] and 7 guests

cron