Right, so I was browsing around the forumz as I do and I came across the jMonkeyEngine child board. I subsequently visited their site and thought I hit the jackpot! Lighting! Great shader support! PHYSICS! And then I though, "Wait. What's the catch. Something like this is too good to be true.". So guys, what's the catch??

I wouldn't recommend it until you've actually learned more of the OpenGL language. JME is basically just dragging and dropping things. I personally hate engines like JME because its someone else's code and I like coding my whole project so I know exactly how everything works, and I learn more. Sure, its easier and probably faster, but you wont learn as much.

Depends if you want to learn programming of gfx, sound, controls, entity management, physics, game mechanics etc. or to actually learn to finish programming a game...

I would argue that learning programming is far better than finishing a game. If you just make a game where a ball bounces, you're not going to learn very much at all. Sure, you'll have finished a game, but what did you actually learn? Programming is about learning, not trying to spit out programs as fast as you can. You want to become a better programmer, make better programs. This is why I have a problem with JME. You don't actually learn much.

Programming is not about learning. What are you talking about? Programming is about developing software that enhances/automates different aspects of life, or in the case of video games, to create something entertaining. Honestly, your words can be interpreted as "I don't like game engines because it makes the project easier". THAT'S THE POINT. That's why engines and libraries and frameworks are built. So, people can create their software without having to write what's been written a thousand times.

If you are so bent on not using "someone else's code", then you better get started writing your own wrapper for OpenGL. And to that extent, you may as well write your own implementation of the OpenGL standard for your graphics card. I wouldn't use the C language for that, though, because then you wouldn't be learning about the assembly language that it is compiled into. You are probably better off starting by building your own CPU with it's own instruction set.

You took that the wrong way, and I'm sorry I should've been more clear.

I was trying to say when learning programming, using engines doesn't help because you are just dragging things into place. Actually coding something makes you learn. When you're a newbie, You need to actually learn the code so you can use it later on. I'm all for using an engine when you actually know what its doing for you.

Some people want to write their own scenegraph. Some people would rather just use one. If jME is "just drag and drop", then its toolchain must have gone through some amazing new changes, because last I looked, it wasn't anywhere close to being that simple.

Don't start throwing 'programming' and 'business' and 'learning' into a blender and argue what it is you get out - because none of that non-sense means anything.

Programming is about programming. Learning is about learning. Making money is about making money.

To be a good programmer, you must always learn.

You can't always be hell-bent on writing every little thing yourself when you begin larger projects because the fact is you won't get much done very quickly unless you either:

A ) Find a teamB ) Find a LibraryC ) Do both. (Any major game development organization does _THIS_)

In none of those cases do you get to be the master-mind behind every last line of code. Being a good programmer is also about being a good team member and a fast learner. I.e. being equip to optimally pick up different libraries and frameworks as your projects need them. Don't write everything yourself just because you are too lazy to learn your way around the available frameworks.

When getting a Computer Science degree you must take some ASM classes. Now most people out of college will never touch ASM again for practical purposes, but what you get out of it is increased knowledge of what goes on in the computer when you press compile and run which can then be used to optimize a higher language code.

This can translate back to choosing between writing a game engine or using someone elses. Chance are any engine you write wont be as powerful as one like jMe, much as a beginners assembly code wont be nearly as fast and efficient as that created by the compiler, but it will be a good learning experience that may help you understand the underlying processes of the game engine you are using, and help you use them better.

Understanding you tools, though not necessary, can help you implement them better.

I would argue that learning programming is far better than finishing a game. If you just make a game where a ball bounces, you're not going to learn very much at all. Sure, you'll have finished a game, but what did you actually learn? Programming is about learning, not trying to spit out programs as fast as you can. You want to become a better programmer, make better programs. This is why I have a problem with JME. You don't actually learn much.

I actually buried my point in sarcasm.

I just wanted to say, that making a game involves much more then gfx, sound, physics etc. programming. These tasks are actually so demanding on their own, that most people trying to write something non-simplistic won't ever finish a game because of the huge amount of work. And even if you come to the point where you mastered the low-level stuff, you still need to master game mechanics and maybe AI. And now comes the real catch - you need to make the game fun to play, too.

So if you are interested in low level programming, it's fine to not use an engine, but if you want to finish a game with limited resources (or limited attention span), taking as much shortcuts as possible is sensible.

And you also WILL learn a lot of programming, too, because you still need to programm the game! Also you might learn a lot of game engine design as well as managing complexity & resources.

Btw. even in Unity, creating a game is not drag and drop, but still has a good amount of programming involved.

If you actually read my post you would realize I said creating something like JME takes a team of dedicated people months to build. Sure, one person could do it but they would need to know pretty much everything to do with anything related to game programming, and thats very rare.

lukasz1985 was being sarcastic, like "yeah I'm going to do all that shit by myself"

the point many of you have to realize as you actually produce games is that every game dev team has to use as much existing code and stuff as possible and develop the least amount, while still remaining in the spirit of the idea. Otherwise you will spent an eternity developing technology, not a game - its called productivity.

Unfortunately it seems almost all developers make this experience in a more or less painful way, eventually...

Anyway, thats why it is important what comes packaged with an engine to help you.

I think you're taking about AAA titles. I personally like coding very single line of my games because I love it. Simple as that. Some people like game engines, thats fine. But I dont think indie exactly need a game engine. Big game developers do though.

Ok ok. Don't derail here. Coding everything yourself can be fun but you get more done using pre-written APIs. In the real world of software development you rely hugely on third party APIs.

jME is a rather robust engine that abstracts some cumbersome things away from the potential game developer such as physics. I think they are trying to make Unity'esk workflow but in java which I strongly support. Best advice is to try it out and see if you find any "catch." One thing I can say from trying out Unity, UDK, and Cry SDK is that they all have their own idioms when it comes to structure, art styles, pre-made shaders, and what not. It is easy to fall into them. This is the reason why most Unity games look like crap. So be aware of that.

If you can, please post later what you think as I have still not tried it out and would like to know how hard/easy it is.

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