Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (109)
games submitted by our members
Games in WIP (536)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  How hard it is to make a game like ace combat 3 in libgdx?  (Read 1019 times)
0 Members and 1 Guest are viewing this topic.
Offline Andre Lopes
« Posted 2013-08-14 05:46:28 »

Heya, i never made a 3D game, im just making my own 2D game with the help of my teacher : DermetFan

Anyway, i was thinking.... if java + libgdx can make something like ace combat 3 , i would be very happy because that means it  i can make a game like that in future Tongue

Or maybe a space fight , which we lack of good games like that today, at least for my taste...

Anyway heres a little video i am recording just for the sakes of comparinson and for who dont know the game :
http://www.youtube.com/watch?v=2jfT9OURBn0


I mean, will the performance be like 60fps with those 1999 graphics? or Java still cant make like that ? People are so freaking crazy at saying java performance with 3D is bad that idk what is capable of... So dont take me wrong, i love java and i dont want to move to C++


Offline sproingie

JGO Kernel


Medals: 202



« Reply #1 - Posted 2013-08-14 17:48:07 »

It's not so much a matter of what Java can do, it's what you can do.  AC3 you could probably do with a software renderer (I wouldn't).  For AC6 you just need a multi-million dollar production budget.

They don't make decent space combat sims anymore because no one buys big fancy joysticks anymore Sad
Offline RobinB

JGO Ninja


Medals: 44
Projects: 1
Exp: 3 years


Spacegame in progress


« Reply #2 - Posted 2013-08-14 18:19:47 »

Java can do this with ease.
I mean you could reder this at like 1000 fps lol.
Its not so much about the languane but about the gpu.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline BurntPizza
« Reply #3 - Posted 2013-08-14 18:51:20 »

Its not so much about the languane but about the gpu.

Unless of course you're talking about JavaScript or something.  Wink

But yes, for the most part, most tasks can be accomplished in any programming language. What is much more language dependent is how easy it is to do in that language.
Offline Andre Lopes
« Reply #4 - Posted 2013-08-15 05:58:28 »

Oh so that thing about : " OH C++ IS WAY BETTER< JAVA SUCKS, ALL JAVA PROGRAMMERS SUCK BLA BLA BLA " its all trollism right?

I have some, ppl i know, which pisses me off when they say that.
I like java, and i dont want to go c++, at least not now.

So i can be confident ^^ thanks guys Cheesy

Who knows, maybe i will make an ace combat 3 -game-like- someday Tongue
Offline RobinB

JGO Ninja


Medals: 44
Projects: 1
Exp: 3 years


Spacegame in progress


« Reply #5 - Posted 2013-08-15 10:49:57 »

C++ has some better potential, it has some features java does not have (Direct memory acces, structs, pointers, friends, operator overloads, destructors, and some more).
But that comes with much longer developping time needed (java has much more build-in).

So with C++ you could (potentially) get a bit more performance on some parts, but it just is not worth the time.
If you really want to get cutting-edge performance, like the latest games, C++ is the way to go, but remember you need 1.000.000+ of men hours to create games like that.
Offline Jeremy
« Reply #6 - Posted 2013-08-15 11:10:21 »

C++ has some better potential, it has some features java does not have (Direct memory acces, structs, pointers, friends, operator overloads, destructors, and some more).
But that comes with much longer developping time needed (java has much more build-in).

So with C++ you could (potentially) get a bit more performance on some parts, but it just is not worth the time.
If you really want to get cutting-edge performance, like the latest games, C++ is the way to go, but remember you need 1.000.000+ of men hours to create games like that.

Depends if you consider the constant need to use direct memory access, pointers, operator overloading and destructors a feature. A lot of people would argue Java is a great programming language because they don't have to those 'features.'

No sane programmers who knows both Java and C++ would write a project in C++ unless they had to. There are simply _WAY_ more things you can do in Java in terms of OOP - and the language is much more powerful.

C++ and C still have their function, for writing low-level code and can take a few more routes in terms of optimizations (typically though these optimizations aren't an issue unless you are really pushing the hardware) but I would say the days of unmanaged memory environments are numbered in the general software industry - where it really doesn't make sense to have that kind of access at a compromise for software security, stability and efficiency.

When it comes to AAA gaming with next-generation graphics, we will always be using an unmanaged language to hack our way around the environment and perform various optimizations - but unless you are targeting next-generation hardware with next-generation graphics\physics\ai there is no need for the development head-aches and many OOP short-coming offered by C++.

Don't get me wrong, I love C & C++ and I spent most of my time programming in those languages - but I think every language has its place. C & C++ will always be relevant, but I think it is a bold move to say that C++ is 'better' than Java.

JevaEngine, Latest Playthrough (This demo is networked with a centralized server model)

http://www.youtube.com/watch?v=rWA8bajpVXg
Offline greenOwl

Junior Member


Medals: 1


from Germany


« Reply #7 - Posted 2013-08-15 11:54:37 »

Memory management is a pain in the ass. You really have to pay close attention what you do if you want to push the chance of some very retarded (silent) bugs below "likely". While working with C++ I learned to love the security of java memory management.

Also things like refactoring (in eclipse), built-in exceptions and the package-system make java such a comfortable language for me.

elfeck
Offline gouessej
« Reply #8 - Posted 2013-08-15 12:38:42 »

Actually, you can get even better performance by using Java, Jake 2 already did it in 2004. Java can perform some dynamic optimizations totally undoable in purely compiled languages (because of the arithmetic of pointers). You still have to take care of your memory footprint like with any other programming language. When I ported my very first blueprint from C++/OpenGL/GLUT to Java/JOGL, my frame rate got increased of about 5%  Grin

Of course lots of people including some Java developers still have prejudices about Java performance but don't let them discourage you. Just take care of the performance in order to avoid dirtying the reputation of Java. When something is slow in my game, I don't blame Java, I blame myself.

Offline Jeremy
« Reply #9 - Posted 2013-08-15 12:49:41 »

Actually, you can get even better performance by using Java, Jake 2 already did it in 2004. Java can perform some dynamic optimizations totally undoable in purely compiled languages (because of the arithmetic of pointers). You still have to take care of your memory footprint like with any other programming language. When I ported my very first blueprint from C++/OpenGL/GLUT to Java/JOGL, my frame rate got increased of about 5%  Grin

Of course lots of people including some Java developers still have prejudices about Java performance but don't let them discourage you. Just take care of the performance in order to avoid dirtying the reputation of Java. When something is slow in my game, I don't blame Java, I blame myself.

That is an excellent point. Any JIT application can configure itself for its environment, where as if you were compiling a native C\C++ application it would be tailored for a specific sort of processor and that would prevent you from using specific extensions to the x86\64 instruction-set if only some of your users had processors with such extensions. In Java, the JIT compiler can determine a particular extension is there and your user gets a faster experience.

How many Java applications needed to be recompiled for 64 bit builds? None, none at all. What about that latest instruction set extension? Don't worry about it, your JRE has you covered. (that's assuming you're using pure Java ofc.)

JevaEngine, Latest Playthrough (This demo is networked with a centralized server model)

http://www.youtube.com/watch?v=rWA8bajpVXg
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline gouessej
« Reply #10 - Posted 2013-08-15 13:03:19 »

That is an excellent point. Any JIT application can configure itself for its environment, where as if you were compiling a native C\C++ application it would be tailored for a specific sort of processor and that would prevent you from using specific extensions to the x86\64 instruction-set if only some of your users had processors with such extensions. In Java, the JIT compiler can determine a particular extension is there and your user gets a faster experience.

How many Java applications needed to be recompiled for 64 bit builds? None, none at all. What about that latest instruction set extension? Don't worry about it, your JRE has you covered. (that's assuming you're using pure Java ofc.)
You're right. Moreover, (ab)using the arithmetic of pointers can be very dangerous for a very small gain at the end. When the C/C++ source code is compiled, it's done, it's too late to optimize anything whereas Java is precompiled and interpreted, it can benefit of both kinds of optimization  Grin I know that a few PS2 games benefit of some optimizations directly in ASM but I doubt that it's still a common practice nowadays.

However, it would be fine if SSE got some more care... but not like it's done in Adobe Flash which can no longer work without SSE2.

Offline pitbuller
« Reply #11 - Posted 2013-08-15 13:09:11 »

C++ has some better potential, it has some features java does not have (Direct memory acces, structs, pointers, friends, operator overloads, destructors, and some more).
But that comes with much longer developping time needed (java has much more build-in).

So with C++ you could (potentially) get a bit more performance on some parts, but it just is not worth the time.
If you really want to get cutting-edge performance, like the latest games, C++ is the way to go, but remember you need 1.000.000+ of men hours to create games like that.

Depends if you consider the constant need to use direct memory access, pointers, operator overloading and destructors a feature. A lot of people would argue Java is a great programming language because they don't have to those 'features.'

No sane programmers who knows both Java and C++ would write a project in C++ unless they had to. There are simply _WAY_ more things you can do in Java in terms of OOP - and the language is much more powerful.

C++ and C still have their function, for writing low-level code and can take a few more routes in terms of optimizations (typically though these optimizations aren't an issue unless you are really pushing the hardware) but I would say the days of unmanaged memory environments are numbered in the general software industry - where it really doesn't make sense to have that kind of access at a compromise for software security, stability and efficiency.

When it comes to AAA gaming with next-generation graphics, we will always be using an unmanaged language to hack our way around the environment and perform various optimizations - but unless you are targeting next-generation hardware with next-generation graphics\physics\ai there is no need for the development head-aches and many OOP short-coming offered by C++.

Don't get me wrong, I love C & C++ and I spent most of my time programming in those languages - but I think every language has its place. C & C++ will always be relevant, but I think it is a bold move to say that C++ is 'better' than Java.

Just targeting current gen mobile devices(ios) and you really want to write games using c++(or commercial engine). Competition is extremely tough and you really want to take full advantage of hardware(including NEON). Our particle engine gained around 3.2 X performance when I rewrited it from c++ to neon using just intrinsics. Hand written assembly would push this even further but the actual bottleneck is now sending particle data to gpu so there is little to no point doing that. With managed language you can't do optimizations like this.

Saying that java is faster than c++ is like saying that c++ is safer/easier than java. Both languages have their uses but both also have their own design philosophy.
Offline Jeremy
« Reply #12 - Posted 2013-08-15 13:21:17 »

C++ has some better potential, it has some features java does not have (Direct memory acces, structs, pointers, friends, operator overloads, destructors, and some more).
But that comes with much longer developping time needed (java has much more build-in).

So with C++ you could (potentially) get a bit more performance on some parts, but it just is not worth the time.
If you really want to get cutting-edge performance, like the latest games, C++ is the way to go, but remember you need 1.000.000+ of men hours to create games like that.

Depends if you consider the constant need to use direct memory access, pointers, operator overloading and destructors a feature. A lot of people would argue Java is a great programming language because they don't have to those 'features.'

No sane programmers who knows both Java and C++ would write a project in C++ unless they had to. There are simply _WAY_ more things you can do in Java in terms of OOP - and the language is much more powerful.

C++ and C still have their function, for writing low-level code and can take a few more routes in terms of optimizations (typically though these optimizations aren't an issue unless you are really pushing the hardware) but I would say the days of unmanaged memory environments are numbered in the general software industry - where it really doesn't make sense to have that kind of access at a compromise for software security, stability and efficiency.

When it comes to AAA gaming with next-generation graphics, we will always be using an unmanaged language to hack our way around the environment and perform various optimizations - but unless you are targeting next-generation hardware with next-generation graphics\physics\ai there is no need for the development head-aches and many OOP short-coming offered by C++.

Don't get me wrong, I love C & C++ and I spent most of my time programming in those languages - but I think every language has its place. C & C++ will always be relevant, but I think it is a bold move to say that C++ is 'better' than Java.

Just targeting current gen mobile devices(ios) and you really want to write games using c++(or commercial engine). Competition is extremely tough and you really want to take full advantage of hardware(including NEON). Our particle engine gained around 3.2 X performance when I rewrited it from c++ to neon using just intrinsics. Hand written assembly would push this even further but the actual bottleneck is now sending particle data to gpu so there is little to no point doing that. With managed language you can't do optimizations like this.

Saying that java is faster than c++ is like saying that c++ is safer/easier than java. Both languages have their uses but both also have their own design philosophy.


Like I said, there are particular positions where using C++ will give you a slight advantage in open optimization routes - and sometimes you need the hardware access. A lot of people here mix their Java code with OpenGL dependencies and HLSL\GLSL shaders that are native to their target infrastructure. That makes sense because Java isn't designed with direct hardware interfacing in mind. C++\C is.

That doesn't make C++ suitable to implement your entire application in where most of the code isn't going to be the bottleneck, it makes it a suitable fall back for when you can't do it in Java. It makes sense to make some parts of a particle engine, physics engine and graphics library native because at some point you need to cross the line of software and hardware and sometimes the small overhead times some absurdly large number (i.e, the number of on screen particles) becomes a large overhead.

I didn't say Java was faster than C++.

Generalizing (blatantly) Java is faster than C++ - or that C++ is faster than Java is an incredibly 'wrong' statement since they both rely on their underlying implementation and there are about a million ways one thing can be faster than another. If we start talking specifics than it is more fair.

Generalizing that one programming language is 'easier' than another is as equally wrong.

Generalizing Java is safer than C++ is definitely a proper statement.

JevaEngine, Latest Playthrough (This demo is networked with a centralized server model)

http://www.youtube.com/watch?v=rWA8bajpVXg
Offline gouessej
« Reply #13 - Posted 2013-08-15 14:43:35 »

Just targeting current gen mobile devices(ios) and you really want to write games using c++(or commercial engine). Competition is extremely tough and you really want to take full advantage of hardware(including NEON). Our particle engine gained around 3.2 X performance when I rewrited it from c++ to neon using just intrinsics. Hand written assembly would push this even further but the actual bottleneck is now sending particle data to gpu so there is little to no point doing that. With managed language you can't do optimizations like this.
That's why I talked about SSE. It is detected and partially used since Java 1.4.2 but not available at source level. I don't know whether JavaSE For Embedded uses NEON. The Apache Foundation (Java Vectorization Interface) and some researchers already tried to create Java SIMD wrappers even though Sun/Oracle refused. You can still benefit of SIMD by using OpenCL with any Java binding of this API (where OpenCL is supported :s).

Saying that java is faster than c++ is like saying that c++ is safer/easier than java. Both languages have their uses but both also have their own design philosophy.
It isn't the same thing because the speed can be measured whereas how "good" a language is remains subjective.

Online Cero
« Reply #14 - Posted 2013-08-15 15:19:55 »

see, you access opengl just the same in java with lwjgl for example. so there is hardly a difference.

libgdx has enough 3D stuff I guess to do it

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

CogWheelz (18 views)
2014-07-30 21:08:39

Riven (26 views)
2014-07-29 18:09:19

Riven (15 views)
2014-07-29 18:08:52

Dwinin (13 views)
2014-07-29 10:59:34

E.R. Fleming (34 views)
2014-07-29 03:07:13

E.R. Fleming (12 views)
2014-07-29 03:06:25

pw (44 views)
2014-07-24 01:59:36

Riven (44 views)
2014-07-23 21:16:32

Riven (30 views)
2014-07-23 21:07:15

Riven (31 views)
2014-07-23 20:56:16
List of Learning Resources
by SilverTiger
2014-07-31 18:29:50

List of Learning Resources
by SilverTiger
2014-07-31 18:26:06

List of Learning Resources
by SilverTiger
2014-07-31 13:54:12

HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!