Does using a library still expand one's abilities in general game-development?

Soon I’m going to start using an external library to develop my 2D games (instead of the Swing and Java2D libraries).

My question is:

When using a common library (such as LWJGL, but not only) - Does one still expand his knowledge and abilities in general game development?

I fear that once I start using a library such as LWJGL, a lot of the knowledge I’ll acquire while developing games, won’t be relevant outside of the library.

I want to constantly advance and become better as a game developer. Studying a library and spending hours developing, only to discover it hadn’t made me a better developer overall, is something I fear.

So - Will using an external library to develop my games still allow me to constantly learn new things and expand my abilities - in general game development? (Meaning the experience and knowledge I’ll gain while developing will also be relevant outside of the specific library). Are there specific libraries I should avoid, libraries that developing with doesn’t allow you to truly become better in general game development?

LWJGL is just a graphics library. Trust me, graphics will become the least of your worries one day. Game mechanics are much harder to implement depending on what kind of game you have, and mechanics generally don’t differ from library to library.

even if you were using a full game engine you would have to learn a lot about making games, to actually make something good. a library is just a way to make all the basic stuff work so that you can concentrate on your game design. you will always be learning something new.

Ability to design games has nothing to do with libraries you use. So yes, you will level up no matter what you do or what you use.

As already said you will level up no matter what. At least AS long AS you keep up doing stuff.

For the external libraries question: Programming is 80% being imaginative and 20% knowing the libraries. Programming is using libraries of functions that other people wrote (Unless you’re hacking hex of course…).

Unlike most libraries, LWJGL teaches you things that can be applied outside of it, and even outside Java.

OpenGL is a common API, and in fact by not using LWJGL you are restricting yourself to Java2D

As others said before me, it’s just a graphics library.
I’m using jMonkeyEngine for my current game, and I’m actually hardly using the library. It would be relatively easy to port it to LWJGL, because it’s one of those games that is actually mostly logic. So I could take the exact same code -(the rendering code) and use it with a different library.

As a person who knows Java and took a step to LibGDX, I can say most of the stuff actually relies on your Java knowledge, not your library knowledge.
To be honest, there are lots of ready-to-use codes for certain tasks. For instance, if you look for “the most efficient way to render in Java”, you’ll find some pages. Same goes for any other concepts like collision detection, path finding, score keeping etc.
Don’t take anyone’s word for it, go look for these codes. You’ll see that the codes are more or less library independent.
There are some libraries that removes the need to learn some concepts, though. For instance, people like me who use Box2D for all the physics won’t know the logic behind how a character’s direction is decided after the collision.
But I imagine you’re just talking about libraries like Libgdx, Slick2D or similar stuff.

I have to tell you, it is inevitable for anyone to look at the source code of the library he’s using. And that’s because of the mistakes he’s going to make and the errors he’s going to get. I don’t know any C/C++ but because of the errors I get, I feel the need to take a look at the source code of Box2D which is written in C/C++.
If you are curious and the library you are using is open source, you still have the chance to learn the deepest stuff.

It is told you many times in this thread that game development skills are independent from library knowledge. I’ll let you hear it from a person who is nothing more than a beginner; These two are different things. Just imagine the pseudo-code and the actual code of the game you’re trying to build. You’ll find out that it’s more logic than rendering the graphics. And, the logic is not handled by any of the libraries. It’s still you who have to move the player, shoot the bullet, make the enemy attack and make the platform move.

But for a while, you’ll have to stop learning game development to learn the library. This is interestingly a short time. Because you have to practice what you’ve learnt, and the only way to do this is to try something.

I repeat, game development is more about logic than the other things, so most of the stuff you learn will stay with you if you switch to another library. To be honest, I think libraries make it easy for you to learn the game development logic.

In professional game development you use a lot of libraries, 3rd party tools or at least similar abstractions but made in house. Learning how to use any given library/tool is really valuable skill.

Like pitbuller says, in software development (not just game development), knowledge of industry-standard libraries is a good thing, not something to be avoided. Someone with experience using the tools of the trade will get more job offers than someone who doesn’t, simply because they have a broader skill set.

You’re right that you could arguably learn more about certain “low-level” things when re-inventing the wheel, but you’ll be a way more productive, and desirable, developer if you make smart decisions about tools and libraries.

Thanks everyone :slight_smile:

I’ve learned plenty using the standard Java libraries and Libgdx, atm I find myself looking into lower level stuff, not because I intend to make my library but because I hate the black box. I am one of those people that hate not knowing how shite works.