Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Pages: 1 [2] 3

Author Topic: Graphical update  (Read 11659 times)

factotum

  • Commander
  • ***
  • Posts: 139
    • View Profile
Re: Graphical update
« Reply #15 on: March 22, 2012, 09:04:18 AM »

I don't know about that... I've never played a java game that actually managed good 3d graphics with decent FPS... Minecraft and Wurm are both poor performers for instance.

Minecraft suffers from the way its graphics are put together more than it being written in Java--having all those blocks onscreen ups the polygon count to extremely high levels for something that looks so simple! It doesn't help that the engine has to take into account a practically infinite variety of possible block arrangements, so there's none of the pre-coded optimisations that games with fixed level layouts can use. Pretty sure that even if you rewrote Minecraft from the ground up in raw assembly language it wouldn't perform much better than it does now.

Never played the other one you mention so can't judge on that one.
Logged

Apophis

  • Captain
  • ****
  • Posts: 466
    • View Profile
Re: Graphical update
« Reply #16 on: March 22, 2012, 02:38:10 PM »

A) the game is made in java (not known for graphical prowess)

A terrible misconception.

I don't know about that... I've never played a java game that actually managed good 3d graphics with decent FPS... Minecraft and Wurm are both poor performers for instance.
I would say it is pretty well known that heavy graphical games are not best on a java platform. Stafarer does very well on it given the 2d engine..
Not even starfarer does well, sometimes i have slowdowns on this computer where i can run crysis 1920*1200 max detail fluid. Usually games are written in c++ for a reason
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24128
    • View Profile
Re: Graphical update
« Reply #17 on: March 22, 2012, 03:03:21 PM »

Pretty much all the heavy lifting is done by the graphics card - regardless of whether you're using Java or C++. The parts C++ does faster often don't matter in that they aren't bottlenecks. I'm not going to say it never matters - but in the case of Starfarer, I'm quite sure it wouldn't make a big difference.

Not even starfarer does well, sometimes i have slowdowns on this computer where i can run crysis 1920*1200 max detail fluid. Usually games are written in c++ for a reason

I bet most of the work Crysis does is in shaders (which would be the same in either Java or C++, since it's just binary code running on the graphics card). Also, it's actually a easier to optimize for 3d stuff than it is for 2d - if you're pushing 10,000 triangles at a time for a 3d model, that's not *nearly* as bad as drawing the same 10,000 triangles as individual sprites.

2d vs 3d performance is really an apples-to-oranges comparison.


I'm curious what your graphics card is, though - mine can't run Crysis on max detail smoothly, and yet there are few cases when there's any slowdown in Starfarer (often due to "clearly inefficient code" reasons - for example, the flak/frag bomb proximity fuse AI is atrocious, so having lots of frag bombs in play at the same time is rough).
Logged

TJJ

  • Admiral
  • *****
  • Posts: 1905
    • View Profile
Re: Graphical update
« Reply #18 on: March 22, 2012, 03:14:13 PM »

A) the game is made in java (not known for graphical prowess)

A terrible misconception.

I don't know about that... I've never played a java game that actually managed good 3d graphics with decent FPS... Minecraft and Wurm are both poor performers for instance.
I would say it is pretty well known that heavy graphical games are not best on a java platform. Stafarer does very well on it given the 2d engine..

:edit: Please ignore any duplication with Alex's reply above - this post was authored simultaneously.

Why do you consider Minecraft & Wurm to be examples of poor performance?
Yes, they're both graphically very primitive, neither utilizing many of the 'fancy' gpu features seen in modern titles.
However poor visuals shouldn't be equated to poor language/compiler performance. The vast majority of the eye candy seen in modern AAA games is handled predominantly by the GPU, as such the language/compiler used for instructing the CPU is of nominal importance.

As for Starfarer, I guess you realize that for rendering it uses lwjgl; a lightweight wrapper for opengl - a native code rendering library.
The most demanding logic the Java code will have to deal with is probably collision detection, and without knowing whether the game uses a bespoke or off-the-shelf library, I wouldn't be surprised if this too were delegated to native code.

Ultimately it's about using the right tool for the right job.
You could write an entire game in assembly.... and when performance was paramount most developers did!
However today it's the performance of the programmer (lines per hour!) not the code (instructions per second) that matters most.
Traditional AAA games typically execute the core engine in native code (C/C++) and the game logic in various bespoke managed high level scripting languages.

It's a small step to do what Alex (and others) have done to write the game in a managed language (such as Java/C#), and then delegate the performance critical sections to native code.
Given the geometric growth in development time for AAA games I strongly suspect we'll see this become the norm when the next generation of consoles are released.

On a side-note managed higher level languages such as Java, C# and others make programming for multiple cores significantly easier - a common failing found in most current-generation AAA titles - Crysis included!
« Last Edit: March 22, 2012, 03:17:35 PM by TJJ »
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24128
    • View Profile
Re: Graphical update
« Reply #19 on: March 22, 2012, 03:30:00 PM »

As for Starfarer, I guess you realize that for rendering it uses lwjgl; a lightweight wrapper for opengl - a native code rendering library.
The most demanding logic the Java code will have to deal with is probably collision detection, and without knowing whether the game uses a bespoke or off-the-shelf library, I wouldn't be surprised if this too were delegated to native code.

Surprisingly, collision detection is a complete non-issue performance-wise, even in the most crowded battles. The game is using custom bin-based data structure to avoid the O(n^2) stuff (though the AI is not, where the aforementioned frag bomb proximity fuse performance comes from - need to get around to this eventually!).

Pretty much nothing done on the CPU is a problem. Graphics are almost always >>50% of the work.

It's worth noting that Java can compile bytecode into native code on the fly, which includes usage-pattern based optimizations - something that a C++ compiler can't do. So with the way the JVM is configured, it's actually running native code for all the performance-critical parts - including ones originally written in Java.

Ultimately it's about using the right tool for the right job.
You could write an entire game in assembly.... and when performance was paramount most developers did!
However today it's the performance of the programmer (lines per hour!) not the code (instructions per second) that matters most.

That's just spot on.
Logged

TJJ

  • Admiral
  • *****
  • Posts: 1905
    • View Profile
Re: Graphical update
« Reply #20 on: March 22, 2012, 03:41:06 PM »

As for Starfarer, I guess you realize that for rendering it uses lwjgl; a lightweight wrapper for opengl - a native code rendering library.
The most demanding logic the Java code will have to deal with is probably collision detection, and without knowing whether the game uses a bespoke or off-the-shelf library, I wouldn't be surprised if this too were delegated to native code.

Surprisingly, collision detection is a complete non-issue performance-wise, even in the most crowded battles. The game is using custom bin-based data structure to avoid the O(n^2) stuff (though the AI is not, where the aforementioned frag bomb proximity fuse performance comes from - need to get around to this eventually!).

Pretty much nothing done on the CPU is a problem. Graphics are almost always >>50% of the work.

You're right, that is surprising!
Of course, you know what that means.... we can have bigger battles with lots more ships!  ;D

Quote
It's worth noting that Java can compile bytecode into native code on the fly, which includes usage-pattern based optimizations - something that a C++ compiler can't do. So with the way the JVM is configured, it's actually running native code for all the performance-critical parts - including ones originally written in Java.

Yeah, I'm aware of the funky stuff hotspot can do. Though I struggled to include it in my reply without turning it into something resembling a thesis =]
Logged

PandamanPete

  • Ensign
  • *
  • Posts: 12
    • View Profile
Re: Graphical update
« Reply #21 on: March 22, 2012, 03:54:58 PM »

First of all, the game is an indie game, meaning that it is made by independent developers, not big companies like Valve, Bungie, etc. This means that the game is not going to have the best graphics in the world.
Also, I personally I think that the graphics are perfect. I love the ships design, the artists did a great job in that, and in-game you can barely even make out individual pixels. I don't see why you think the game needs a "graphical update," and I totally think that the game's graphics are great.
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24128
    • View Profile
Re: Graphical update
« Reply #22 on: March 22, 2012, 04:15:35 PM »

Quote
It's worth noting that Java can compile bytecode into native code on the fly, which includes usage-pattern based optimizations - something that a C++ compiler can't do. So with the way the JVM is configured, it's actually running native code for all the performance-critical parts - including ones originally written in Java.

Yeah, I'm aware of the funky stuff hotspot can do. Though I struggled to include it in my reply without turning it into something resembling a thesis =]

Heheh, yeah. I felt in danger of overgeeking there, myself :)


First of all, the game is an indie game, meaning that it is made by independent developers, not big companies like Valve, Bungie, etc. This means that the game is not going to have the best graphics in the world.
Also, I personally I think that the graphics are perfect. I love the ships design, the artists did a great job in that, and in-game you can barely even make out individual pixels. I don't see why you think the game needs a "graphical update," and I totally think that the game's graphics are great.

Thank you for the support!
Logged

PandamanPete

  • Ensign
  • *
  • Posts: 12
    • View Profile
Re: Graphical update
« Reply #23 on: March 22, 2012, 05:48:24 PM »

Quote
Thank you for the support!
Haha, No Problem! I love supporting independent developers and of course the game they make!
Logged

BlueSkyBlackBird

  • Ensign
  • *
  • Posts: 10
    • View Profile
Re: Graphical update
« Reply #24 on: March 22, 2012, 06:27:48 PM »

I recently realized that Starfarer is written in Java. Since I program in Java for several years no, this game is even more to my liking now.
Considering performance in Starfarer: I never had any kind of FPS drop. And my GPU is a Geforce 8800 GTX 768 with a GPU Intel Q6600 2,4 GHZ x 4.
I could not run Crysis in 1920x... at 40 FPS. But still, this is a 2D game, I does not need to use "fancy shaders".

BTW Awesome job with the graphics, they look...let me quote here "P E R F E C T".

In the end it is a matter of personal taste, if one likes 2D games with good, detailed sprites , than this game will be to one's liking.
Logged
Playing since [2.20.12]

Deathven

  • Commander
  • ***
  • Posts: 221
  • "Contigo ergo sum" - Descartes
    • View Profile
Re: Graphical update
« Reply #25 on: March 22, 2012, 06:42:36 PM »

For some reason, I start to remeber how starcraft was actually a 2d game that looked 3d because of how the art work used shadows.
Logged

heuristicus

  • Ensign
  • *
  • Posts: 32
    • View Profile
Re: Graphical update
« Reply #26 on: March 22, 2012, 11:35:12 PM »

The only complaint I have at the moment is the background. Of course, since it's space, there isn't going to be a huge change even if you move a few light-years, but the current one is a little bland, I feel.

More nebulae, please.
Logged

Nori

  • Captain
  • ****
  • Posts: 410
    • View Profile
Re: Graphical update
« Reply #27 on: March 23, 2012, 06:58:20 AM »

Please ignore any duplication with Alex's reply above - this post was authored simultaneously.

Why do you consider Minecraft & Wurm to be examples of poor performance?
Yes, they're both graphically very primitive, neither utilizing many of the 'fancy' gpu features seen in modern titles.
However poor visuals shouldn't be equated to poor language/compiler performance. The vast majority of the eye candy seen in modern AAA games is handled predominantly by the GPU, as such the language/compiler used for instructing the CPU is of nominal importance.

As for Starfarer, I guess you realize that for rendering it uses lwjgl; a lightweight wrapper for opengl - a native code rendering library.
The most demanding logic the Java code will have to deal with is probably collision detection, and without knowing whether the game uses a bespoke or off-the-shelf library, I wouldn't be surprised if this too were delegated to native code.
In my experience Minecraft and Wurm both had much lower performance (frames per second, heavy cpu/gpu usage) than most other 3d games I've played. While some 3d games will suck up a lot of CPU/GPU they will rarely, if ever, cause a slowdown, or get jerky. Minecraft and Wurm did however.

I'm not saying there is anything wrong with Java and I think programming games in it is great, as it seems like java is easier to learn and thus we get more games. I'm just pointing out that in my experience java based graphical games have consistently performed poorly. Maybe the games I've tried just had poor programming, I don't really know as I'm not a java programmer.

Anywho, Starfarer looks great and so far it has run flawlessly for me without any crashes (other than mod caused ones).
Logged

Chittebengo

  • Lieutenant
  • **
  • Posts: 56
    • View Profile
Re: Graphical update
« Reply #28 on: March 23, 2012, 12:38:20 PM »

I'm playing this game for its amazing mechanics and depth/scope, not for fancy graphics.  The graphics are just fine for what I want out of it.
Logged

Uomoz

  • Admiral
  • *****
  • Posts: 2663
  • 'womo'dz
    • View Profile
Re: Graphical update
« Reply #29 on: March 23, 2012, 03:16:28 PM »

I see it in a different way: as in all games graphic serves AESTHETIC. Aesthetic is determined by many characteristics, a game can have high eyecandy value and still use very "poor" graphics (like Dungeon Keeper 1). This game have very GOOD graphics (2d at it, so it's somewhat limited) but they serve an even higher aesthetic (and eyecandy).
Logged
Pages: 1 [2] 3