Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (107)
games submitted by our members
Games in WIP (535)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 4 5 [6] 7 8 9
  ignore  |  Print  
  Does really game development on Java suck? Why are we still here?  (Read 49016 times)
0 Members and 2 Guests are viewing this topic.
Offline pitbuller
« Reply #150 - Posted 2012-04-11 23:46:04 »

Standard vector math library usings structs with SIMD optimizations would give a lot performance for many use cases.
Offline OverKill

Junior Member




Java games rock!


« Reply #151 - Posted 2012-04-12 10:08:35 »

I love operator overloading.  Looking at bad examples in C++ isn't a proper way to consider the issue.
True, but when considering adding features you must contemplate both good and bad usages as in the end, the feature will be measured by them.

I love operator overloading.
As do I, but I know they can be a blessing and a curse and what where such leads to.
Today, with my 20/20 vision, I would be totally against it.

But overrides are not the only problem. Defines were equally good and bad. IIRC the first Game Programming Gems had an example of how defines could basically be used to create a 'pseudo code' language for AI.
On the other hand, there are the many ugly examples of defines jungle.

Finally, for a language like C/C++, where the developer is basically free to do what he wants, I have no problems with these features.
But in Java, where we do have a more 'restrictive codex', I do not see how it fits.
Offline Roquen
« Reply #152 - Posted 2012-04-12 15:07:00 »

WRT: Java's great concurrency support from day one.  I'm not getting it.  I haven't read the JVM spec since version 2 was released so maybe I'm forgetting something obvious.  All I recall is that reads/writes of 32-bits and less are insured to be atomic (wank, wank) and that a write that occurs at time 'T' is insured to be visible to all threads at time > 'T' (wank, wank, wank).  Every VMM (other than on embedded systems) that I can think of insure both of these...so what am I forgetting?  (All the Doug Lea stuff is much later and doesn't count)

sproingie: Yes indeed the code would need to be recompiled.  Why introduce a problematic syntax to start with?  Avoid the problem.  Do this instead:
1  
2  
   user.("FooBar");
   m.(0,0);

I'd agree that this isn't quite as clean, but it's logically consistent and doesn't consume any new syntax space.

Quote
True, but when considering adding features you must contemplate both good and bad usages as in the end, the feature will be measured by them.
I strongly disagree with this statement. A language cannot prevent "bad" (in quotes because it's mostly subjective) usage.  It should only consider the usefulness under reasonable usage, if it "fits" from a paradigm perspective, the impact it will have on existing features and if it will make it harder to introduce a more desirable feature in the future due to using up syntactic space.  Weigh these against the cost of implementation and decide from there.  Joe average and Frank n00b are going to make mistakes, which they will hopefully learn from.  Chaz Iuseeveryfeaturecauseitsthere...well nobody can do much about him and he doing just fine making a mess without feature X, so one more won't hurt.

Quote
Today, with my 20/20 vision, I would be totally against it.
Why is that? In the context of Java you'd just a few refactor clicks away from ripping it out.  But ignoring that, why would you be using poorly design code in the first place?  If in a corporate environment this pops up, then the problem isn't operator overloading but lack of mentoring, code reviews, peer reviews, design specs, coding standards ... a.k.a the management chain is dropping the ball.

Quote
Agreed which is why I wouldn't mind seeing a vector math library incorporated into the standard library with appropriately overloaded operators.
The stages of operator overloading transcendence:
1) I will rage quit if my language gets it.
2) OK, in the narrow case of stuff that interests ME, then it's okay.  Everyone else can go <XXX>!
3) OK, I guess that other people actually do have valid usages.
4) What? How did I ever live without this.

You moved quickly from stage 1 to 2, so all you need to do to get to stage 3 is realize that a future you might be in the "everyone else" category.

Man, I'd total hate if SIMD ops are exposed WITH operators when structs are rolled out.  All the anti-operators kids need a little dosage of their own medicine.

But again, for me operator overloading is a very low priority in Java.  I can make all the syntax sugar transforms that I want without official help.  Structs (with SIMD and cache hints support), concrete arrays, et al stuff in this vein are way more important.

But really, lambdas?  Which we're getting and you kids are worried about problems stemming from trivial sugar like operators?  This is gonna be a much bigger can of "bad coding" worms (Go Chaz! Go!).
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #153 - Posted 2012-04-12 16:14:58 »

WRT: Java's great concurrency support from day one.  I'm not getting it.  I haven't read the JVM spec since version 2 was released so maybe I'm forgetting something obvious.  All I recall is that reads/writes of 32-bits and less are insured to be atomic (wank, wank) and that a write that occurs at time 'T' is insured to be visible to all threads at time > 'T' (wank, wank, wank).  Every VMM (other than on embedded systems) that I can think of insure both of these...so what am I forgetting? 

Depends what you're comparing it to I guess, but IIRC C and C++ guarantee neither of those things, which makes it pretty fragile to write robust multi-threaded code (doubly so if you want it cross-platform).

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline Roquen
« Reply #154 - Posted 2012-04-12 16:23:49 »

The hardware's VMM (virtual memory manager) insures.  Therefore I get that in asm and all higher level languages.
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #155 - Posted 2012-04-12 16:28:06 »

The hardware's VMM (virtual memory manager) insures.  Therefore I get that in asm and all higher level languages.
On which platforms? Because you don't on ps3, and I'm reasonably sure you can't guarantee it on desktop platforms too.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline Roquen
« Reply #156 - Posted 2012-04-12 16:37:43 »

SEE: That I specifically stated non-embedded systems.
Offline ShannonSmith
« Reply #157 - Posted 2012-04-12 16:38:43 »

Quote
The stages of operator overloading transcendence:
1) I will rage quit if my language gets it.
2) OK, in the narrow case of stuff that interests ME, then it's okay.  Everyone else can go <XXX>!
3) OK, I guess that other people actually do have valid usages.
4) What? How did I ever live without this.

You moved quickly from stage 1 to 2, so all you need to do to get to stage 3 is realize that a future you might be in the "everyone else" category.

I am actually at (and always have been) a "stage" that you didn't mention that consists of the following:

a) I will rage quit if my language gets it.
b) The opinion that operators are part of the definition of the language and should not be redefine-able.
c) The few use cases where it is a good idea should be part of the language definition.
Offline Roquen
« Reply #158 - Posted 2012-04-12 16:58:11 »

The problem here is the definition of 'c'.  Whom decides for everyone else?  Why does some tiny subset of non-primitive types get special treatment?  I don't mind if a language doesn't support anything other than what's consistently consider to be primitive.  It's the middle ground position that I can't stand.
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #159 - Posted 2012-04-12 22:57:14 »

I haven't made a game in Java for years now. Why did I start using it? It was the first capable programming language I learned. I knew Flash before that point but Flash is obviously limited, and this was back before ActionScript 3. Now why am I no longer really using it? Because Unity is just 100x faster and better for game development than Java is. Getting my visualization of what's happening all the time, easy changing of parameters etc., and having all the boring stuff (graphics/sound support, physics, scenegraph, blah blah blah) already handled is excellent.

So what do I do? I just write the game, happy days.

That being said, I am now professionally working in C++ and I hate it with a passion. It takes me 10x longer to do anything. I was just trying to do string.split() but instead had to some kind of crazy string iterator and stream outputter and crap.

The big thing for me is that I just want to make my game and I don't want to worry about performance or anything like that until I have to. And even then I don't want to worry about it. I even like Javascript pretty well right now, although there is no play button to see my game go.

I will admit, the massive amount of effort I need to put into Java to get my game to actually happen (webstart / applet / whatever) is the number one deterrent for me. In Unity, I press export and I'm on all the platforms I could ever care about.

See my work:
OTC Software
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline sproingie

JGO Kernel


Medals: 202



« Reply #160 - Posted 2012-04-12 23:42:01 »

C++ without boost is masochism.

1  
2  
3  
#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t "));


Having to use an out param is still annoying, but it does have its advantages other times.  See http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c for the horror show that passes for the "elegance" of doing it with pure STL.
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #161 - Posted 2012-04-13 02:01:08 »

C++ without boost is masochism.

1  
2  
3  
#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t "));


Having to use an out param is still annoying, but it does have its advantages other times.  See http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c for the horror show that passes for the "elegance" of doing it with pure STL.

Hahaha, sproingie, I was literally just at that link 4 hours ago. Doing it without boost.

I think I will push for boost.

See my work:
OTC Software
Offline ShannonSmith
« Reply #162 - Posted 2012-04-13 02:34:46 »

I personally can't stand boost, I'm never quite sure what it's doing and the compile errors can be a nightmare to decipher. I've found Qt to be an excellent alternative, along with a complete nice cross-platform gui library it also has it's own stl/boost equivalent. It has a super fast thread-safe shared memory construct used for strings/images etc.

In Qt:
1  
2  
3  
4  
5  
6  
 QString str;
 QStringList list;

 str = "Some  text\n\twith  strange whitespace.";
 list = str.split(QRegExp("\\s+"));
 // list: [ "Some", "text", "with", "strange", "whitespace." ]
Offline sproingie

JGO Kernel


Medals: 202



« Reply #163 - Posted 2012-04-13 02:47:41 »

Yeah Qt is awesome, it's really a full-blown platform, not just a GUI library.  As for error messages, that's something that drove me away from C++ in general.  Compiler messages I can deal with, but it's the fact that so many errors, even simple typos, don't get caught til link time, at which point the very much C++-unaware linker spews mangled symbols at you ... blech.  It was reading "Effective C++" that really made me aware of how much a minefield the language was.

This is kinda the "air the dirty laundry of major programming languages" thread now, ainnit?    Let's hop on C#'s warts now, it's feeling neglected.  Wink

Offline ra4king

JGO Kernel


Medals: 337
Projects: 2
Exp: 5 years


I'm the King!


« Reply #164 - Posted 2012-04-13 03:03:41 »

C# SUCKS LARGE BALLS AND I HATE IT SO MUCH.

Sorry, I had to get that out of my system. I'm forced to use it in Game Design class in conjunction with XNA, oh which also SUCKS MAJOR BALLS. Smiley

Offline princec

JGO Kernel


Medals: 343
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #165 - Posted 2012-04-13 10:26:35 »

Looking at that boost example I am pleasantly reminded just exactly why Java is so brilliant and why I intend to stick with it - in its pure, natural and unadulterated form - for as long as I possibly can.

Cas Smiley

Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #166 - Posted 2012-04-13 11:47:32 »

C# SUCKS LARGE BALLS AND I HATE IT SO MUCH.

Sorry, I had to get that out of my system. I'm forced to use it in Game Design class in conjunction with XNA, oh which also SUCKS MAJOR BALLS. Smiley

While I probably agree, could you elaborate on exactly what it is about XNA you don't like? The API? Distribution? The tools? The data pipeline?

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline ra4king

JGO Kernel


Medals: 337
Projects: 2
Exp: 5 years


I'm the King!


« Reply #167 - Posted 2012-04-13 20:03:37 »

The API is terrible and very complicated. Drawing a quad takes much less code in OpenGL than XNA!

Also Visual Studio sucks compared to Eclipses which makes me dislike C# and XNA even more Smiley

Offline princec

JGO Kernel


Medals: 343
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #168 - Posted 2012-04-13 20:42:20 »

Hmm maybe it does but then maybe not many people doing serious graphics use OpenGL immediate mode any more and suddenly OpenGL takes a fair bit of fiddly setup to do something apparently trivial...

Cas Smiley

Offline ra4king

JGO Kernel


Medals: 337
Projects: 2
Exp: 5 years


I'm the King!


« Reply #169 - Posted 2012-04-13 22:39:31 »

The easiest thing you can do with XNA is draw textures using SpriteBatch. I have made many games with it so far, including a side scroller, chess, a remake of Notch's Metagun, and a very complex and fully programmable text-based interactive fiction engine.

Btw, drawing geometry with it is impossible. I had to copy-paste some code to draw a quad, but could not figure out how to customize it. I had to revert to create a Graphics class that just manipulates a 1x1 image containing 1 white pixel. It has the same methods as Java2D's Graphics2D like drawLine, drawRect, fillRect, etc... Grin

It's not hard to use but you will still hate it Tongue

Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #170 - Posted 2012-04-14 22:01:05 »

I totally agree with the linker errors thing. It's like ready gobblety gook, and a lot of the time they're caused by weird stuff like circular includes and things. You just have to move code around to fix it. That really reminds me that by far my #1 favorite thing about Java is that the errors are always clear and standard and you get a beautiful stack trace. So many other languages flub this.

I like C# too, but not XNA. I tried to use XNA for a game jam a few years ago and that was hilariously interesting. I spent most of the time trying to get stuff to just go. Then again it really wasn't so bad as far as I recall.

See my work:
OTC Software
Offline gimbal

JGO Knight


Medals: 25



« Reply #171 - Posted 2012-04-16 14:43:14 »

The API is terrible and very complicated. Drawing a quad takes much less code in OpenGL than XNA!

To be fair, XNA is an abstraction layer on top of a layer on top of a layer - its not designed for you to easily be able to draw something as low level as a quad, its designed for you to be able to do things which you will commonly solve with a toolkit like XNA; high level stuff. In that respect Direct3D is no better; you CAN draw low level geometry using it, but the API is really designed to push large volumes of data.
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #172 - Posted 2012-04-16 14:56:22 »

The easiest thing you can do with XNA is draw textures using SpriteBatch. I have made many games with it so far, including a side scroller, chess, a remake of Notch's Metagun, and a very complex and fully programmable text-based interactive fiction engine.

Btw, drawing geometry with it is impossible. I had to copy-paste some code to draw a quad, but could not figure out how to customize it. I had to revert to create a Graphics class that just manipulates a 1x1 image containing 1 white pixel. It has the same methods as Java2D's Graphics2D like drawLine, drawRect, fillRect, etc... Grin

It's not hard to use but you will still hate it Tongue
Ha, yeah I had the same problem. XNA really wants you to either use SpriteBatch (which is overly simplistic, and makes annoying assumptions about your data) or to draw full 3d models (which have to be pushed through the entire cumbersome data pipeline). Any form of dynamic geometry is a right bloody pain.

And not just more painful than immediate mode, it's more painful than vertex array drawing. For a library allegedly aimed at easy of use it does make some odd decisions.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline jonjava
« Reply #173 - Posted 2012-04-17 22:21:31 »

What with all the C# and XNA hate? I found it quite easy to work with and there's a lot of help available for it. Also Visual Studio is really an excellent IDE and by default better than Eclipse in my experience.

Although I prefer Java, I've had no significant difficulties with either of them except that C# properties are annoying.

Offline ra4king

JGO Kernel


Medals: 337
Projects: 2
Exp: 5 years


I'm the King!


« Reply #174 - Posted 2012-04-17 23:39:43 »

Eclipse > Visual Studio hands down. If you disagree, you haven't used either enough.

And yeah properties suck Sad

Offline philfrei
« Reply #175 - Posted 2012-04-18 00:29:48 »

@ra4king -

Have you used the Form & Report creation tools? To tell the truth, it's been like five or six years since I used the Visual Studio IDE, but I recall there are tools for building Forms and Reports that are like the Microsoft Access tools in the VBA environment that I currently use. Just curious, as I haven't been able to successfully install any plugins with Eclipse that have these capabilities. (Tried one that failed, about a year ago, and took down my Eclipse with it. Had to reinstall Eclipse.) I know NetBeans is supposed to have this sort of thing, for dragging and dropping objects as a way of building Forms and Reports, but I spent very little time with NetBeans, and I don't recall it being as handy as the VBA version.

I'm guessing for the .NET world, there would be ways of building HTML pages via drag and drop, also. But as I said, I haven't used this stuff in a long time, and the question is sincere. I could see where that sort of thing might be less helpful for game programming than for database apps or basic form or report creation.

Even if I am willing to consider the VBA environment (and presumably the Visual Studio IDE as well) handier for building database apps quickly, I still prefer Java and Eclipse overall as being less likely to make me insane and weary of being continually nickel-and-dimed by MS. Thus, I continue towards the goal of making my next contract one that is Java-based instead of Microsoft-based. (Working through the "CattleDrive" as JavaRanch--earned two of four "Moose Badges" so far, and am studying for Java 7 Associate Certification. Hope to take in June.)

"Greetings my friends! We are all interested in the future, for that is where you and I are going to spend the rest of our lives!" -- The Amazing Criswell
Offline gimbal

JGO Knight


Medals: 25



« Reply #176 - Posted 2012-04-18 10:17:46 »

Eclipse > Visual Studio hands down. If you disagree, you haven't used either enough.


Come on dude, you can't seriously mean that. You're screaming "My opinion is fact!" here, I can't believe that you seriously go there.

I've used both, extensively. There is no better IDE environment than Visual Studio, not even close. In my opinion.
Offline kaffiene
« Reply #177 - Posted 2012-04-18 11:18:48 »

Eclipse > Visual Studio hands down. If you disagree, you haven't used either enough.


Come on dude, you can't seriously mean that. You're screaming "My opinion is fact!" here, I can't believe that you seriously go there.

I've used both, extensively. There is no better IDE environment than Visual Studio, not even close. In my opinion.

That's interesting.  I've used Visual Studio since the mid 1990's and I think that Netbeans and Eclipse are both better development environments.  Obbviously YMMV
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #178 - Posted 2012-04-18 11:40:02 »

Eclipse > Visual Studio hands down. If you disagree, you haven't used either enough.


Come on dude, you can't seriously mean that. You're screaming "My opinion is fact!" here, I can't believe that you seriously go there.

I've used both, extensively. There is no better IDE environment than Visual Studio, not even close. In my opinion.

That's interesting.  I've used Visual Studio since the mid 1990's and I think that Netbeans and Eclipse are both better development environments.  Obbviously YMMV
Where you stand on VS seems to vary hugely depending on what you're doing. VS is great if you work (and think) exactly how MS want you to, using their entire technology stack all the way down. If you *don't* want to do that, then most of the more advanced VS features are just useless fluff clogging up the UI. I've never wanted to use the server explorer, or the data sources, or the device security manager, etc. etc.

As a vanilla C++ IDE, it's merely 'meh'. It's code navigation is poor, it's intellisense is slow and often incorrect, it's syntax highlighting is often flat out wrong. It's debugger is pretty good at least though.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline gimbal

JGO Knight


Medals: 25



« Reply #179 - Posted 2012-04-18 11:42:38 »

Eclipse > Visual Studio hands down. If you disagree, you haven't used either enough.


Come on dude, you can't seriously mean that. You're screaming "My opinion is fact!" here, I can't believe that you seriously go there.

I've used both, extensively. There is no better IDE environment than Visual Studio, not even close. In my opinion.

That's interesting.  I've used Visual Studio since the mid 1990's and I think that Netbeans and Eclipse are both better development environments.  Obbviously YMMV

For Java dev stuff I certainly agree Smiley

This line of discussion is a bit pointless really, I mean humans have evolved to the point where you can have COD VS Battlefield "camps"... emotional attachments to something as silly as a game :/ The same for programming languages and also development tools.

Perhaps my preference for Visual Studio comes from the fact that it was the first thing I was exposed to when I moved from Dos programming to Windows programming, who knows. But my general experience is that when I use Visual Studio, everything is where it should be. When I use Eclipse, Basic tools I use a lot are hidden away where I don't expect them to be. Don't get me wrong, I think Eclipse 3.7 (and specifically that version) is a fine product. But it still has some ways to go GUI-wise.
Pages: 1 ... 4 5 [6] 7 8 9
  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.

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

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

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

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

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

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

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

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

Riven (28 views)
2014-07-23 20:56:16

ctomni231 (59 views)
2014-07-18 06:55:21
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

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
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!