When would one be ready to create advanced game engines

LWJGL seems complex for certain aspects. I know some people create game engines with it and then create their game, but It seems like that would need in depth experience from college. I’m years away from college and think such knowledge would be tasty. Yes, there is the internet which is full of information, but things like animation and advanced matrixes, how the heck do you understand this? I read the description in Thin matrix from YouTubes description and it linked me to a document with a lot of weird looking matrixes that I couldn’t understand. Do books like the red book and superbible for OpenGL teach this stuff?

@Title
For you, a loong time from now.

yay… :emo:

I suggest yo try making another game similar to the basic design of flubber space but with more to it… you already know how to do that, so it would be easy to concentrate on adding more game play features while learning a few more things. Make something with multiple levels, different enemies, obstacles, etc. I made heaps of little single screen games when i started out before I could even understand how to make a basic scrolling game, most of them were fun/funny cos I concentrated on adding game play features instead of trying to do something which I didnt have the technical understanding to do.

Well you gotta think about it. A lot of knowledge has to go into creating these engines like you said.

You have to understand how engines and frameworks operate, how to optimize it to run well in the language you are using. As well as understanding data flow in order to render objects to the screen. Not to mention all the rather advanced math you will need to have learned in order to add them into the engine, more so if its 3D oriented.

Considering you’re profile says you only have 7-9 months under your belt what NegativeZero said is accurate. But hey, that gives you something to work towards right?

Yeah I got some cool ideas for that. Along with that, I want to work on this other project though that requires scrolling so I can learn from it. Right now I want to know how I can fix up my tile engine :stuck_out_tongue:

A lot to work forward to appearently.

Let me clarify: You are still quite young. 12-13 by my reckoning. At this stage in your life, you’re still at a point where the entirety of your school learning is done within the confines of your classroom. Within the next few years, school will become a lot harder, and you will learn the skills needed to learn by yourself, especially as you start to go to university. Right now, reading a book probably won’t help you whatsoever, not because you aren’t clever enough to understand or because you don’t have a set of underlying talents, but simply experience.

What you can do at the moment, is start on simpler things. Once you get the hang of 2D, which should intertwine with the content you learn in your math class (such as trigonometry, Pythagoras theorem, enhanced algebra skills) you will have gotten the ball rolling as far as the skill of learning, and eventually that should give you an edge over your classmates, and a greater ability to program.

I know you may think you are at a point where learning about things is easy, but it is very typical of someone your inexperience/maturity/age to often seek guidance from others (I know, I was there a few years ago :P), instead of doing your own thorough (and often extremely painful) research, sorting through page after page after page of Google, stackoverflow, lwjgl.org, java-gaming, tutorials, wikis… If you really don’t think you seek guidance from others that often, you have been on this forums for 2-3 months, and in that time you have made 208 posts, averaging at 5 posts a day, starting 27 topics with over half of them being in the “Newbie and Debugging” board alone.

Also keep in mind: I’m sure a lot of people will affirm in this thread and you cannot learn LWJGL right now (me included), but that does not mean you are stupid by any sense of the word.

As BurntPizza said in another thread, your best bet right now is learning about LibGDX. It will teach you several foundation skills, which once learnt will help you greater understand the general flow of how a computer game works. Try go for a small game, thinking big (making your own game engine kinda big) tends to lead in severe disappointment when you become aware how slow long-term development tends to go, and has borne many great ideas to be thrown aside as you decide you’ve become a better coder and need to start again or that you can better use your skills on another project, discarding your original one forever (we’ve all been there). That said, don’t just make a endless stream of minigames, as all you will effectively learn is how to set up projects.

Come up with an idea, get a word document, define a scope and set goals/deadlines for your projects. Don’t try to learn a hundred new libraries or skills with your first project, for example trying to learn modern LWJGL with kyronet with controller support with complex lighting shaders with etc… If you want, you can upload your design document to JGO and I will have a brief look over it and give you my opinion of how you could improve, and hopefully some others will also look over it too.

If your struggling with ideas, don’t spend half an hour with a pen and pad drawing random shit, just sit down and make a pong clone. Give yourself a few days for that, then if you still have no ideas, make a BrickBreaker clone. Then if you’re still without ideas, make a mario clone. Even if you’re not using your time making something that you would write home about, make sure you’re using it to continually develop your skills.

I hope this post was more insightful than my previous ^.^

My whole life as a programmer just flashed before my eyes. I have spen t soooooooooooooooooooooooooooooo… much time trying to understand some things. (ex. 3D modeling, VBOs, Java in general, game mechanics, ettc…) and all I have made was Flubber Space. :yawn: Personally, I feel no matter how old, you can learn high end programming with enough confidence. I really don’t know what to do right now. I want to make a game with a story line that scrolls as my first project with a purpose(unlike flubber space a minigame).

@LiquidNitrogen I know there is a lot of games that can be made on a single screen, but my rpg scrolling game has been a dream ;D

This is called the learning curve. It is steep. Everything takes a lot of time at first, and it slowly starts getting easier to “roll” up the hill as you progress. Eventually things will start clicking, and after a certain amount of experience (years) you don’t even have to think about a lot of things, you can just do them.
Don’t worry about it and go do.

Yeah, I felt so dumb when I realized the point of game libraries instead of using Java2D. What should I focus on right now?

Just recently BurntPizza found Mini2Dx. A lib “Inspired by Slick2D, built on LibGDX.” I just recently picked this up and I would like to recommend it to you. Its a very simple lib allowing you to do much more than Java2D, and since its built on LibGDX its super fast.

I’m using it now, its great. Highly recommend.

Here you go:

You could make something similar, using multiple screens instead of scrolling, if the player walks off the side of the screen, make it change to a new screen. That way you could just slap a background image on each screen instead of needing to work out tile maps too.

Yeah I haven’t played with it, but if it’s mature enough to use, then go ahead.

Oh, I actually tried that making it based of a game called Warspear Online. I had an image file with each part of the map. It would look like this.

zo (zero, one)0,1
zt(zero, two)0,2
zth(zero, three) 0,3

I accidently deleted the image file and didn’t think of a better way to store the map data(programming wise). Hey! I just thought of this, why not use letters like mario.

I just looked at it and it seems very simple. I just want to use libraries like this and learn newer game mechanics.

There’s no shame in using a Library! :point:

You should focus on doing whats most important, making games!

I built my first program when I was around the same age (13 - 14), but hey, I didn’t have the resource of the internet to come and recommend me a lot of stuff either. The best thing to do is just to try to apply the knowledge you are doing in your classroom to your programming.

For me, I built two types of things, games and applications to make my life easier. You gain a lot of experience by just trying to do things that are just a little bit out of your reach. Every game and application that I made was small, and easy to create in a few days. But, the knowledge gained is priceless, because you start generating tools that you can apply regardless of the language you are in.

Trust me, there is a lot in programming that books can’t teach. Moving from library to library is risky for programmers without a solid plan. You have to find something you want to learn and stick with it. For me, I started in BASIC, and I stuck with it regardless of the outside world. I always tried to push that language to its limits, and kept trying new things. It is those experiences of trying to push your boundaries that give you a lot more edge than reading a bunch of documents and looking at videos.

There is no “quick fix” to learning. You have to actually program to get things done. If you keep it small, the feeling of accomplishment will carry you over to the next project. I recommend finding a library you really like, and sticking with it. Keep your projects manageable. The most important part of reading all this information, is being able to apply it to the games you are making. (Totally impossible if you don’t understand what it does in the first place.) :stuck_out_tongue:

There are a fair number of people on this forum still in highschool that have managed to learn this stuff. It may take time, but it can be done with nothing but internet resources.

By not diving in the deep end.
From what I’ve seen from you, you’re way ahead of yourself. You need to build up your understanding of different concepts over a long time. Trigonometry may seem boring and pointless at first, but it is a must for 3D graphics.

A great way to learn is to read up on concepts well before you’ll ever use them, so your brain has already had a bit of experience with the ideas before you come back and revise them for actual implementation.

The thing with learning to use LWJGL is that there are no real tutorials for it, and you have to pull in resources from all over the internet, including several in C++. I’m hoping to write a proper tutorial on how to use raw OpenGL for graphics, but it’s taking time and I don’t always have the motivation.

I have been programmer for around the same time as you.

However I am 22 years old, I find it ridiculously easy to learn things. More so than I did 10 year ago.

When I was in school I struggled with Maths class, now that I look back on it…it’s not that I could not do it, my attention span to something I presumed I would never need was rather low. I was an idiot.

I’ve never made a large game engine, my game engine is extremely small. It simply consists of around 5-6 classes, all these do is enable me to have the graphics, physics, input and audio to all talk to each other in a clean manner; as in not calling audio methods inside some other random class. That is to me, a useful but small game engine.

Ain’t no harm in doing something like that, to make your projects a little easier. Hell I have used this little engine for 3 games so far, none are finished ofc lol.

Making games :stuck_out_tongue:

Make many games!
Every time you make a game you learn something new, and after creating many games you have learned alot! :slight_smile:

Also play around with smaller projects. I recently created a small program which simulated curling stones because I had never done anything physics related. But now I have and now I have a better understanding of it.

Take a look at this for inspiration:

Dodger seems like Flubber Space XC.

I’ve been doing algebra, Geomotry, and this other one… I forgot, but this year I did that so I felt ready. I didn’t really have a problem doing that stuff in LWJGL, but I never understood matrices like this

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcS0EiXuAnIaQhLNjdLdxSYiaO6-jeLmk5Lj0w9ZoWPxQru_22qGXQ

See, I know that matrices add up and what the fov does, but I don’t know what’s the point of this above. (Yet I never asked or looked it up)
I’ll build more basic games with LibGDX since it’s a game library wrapped on lwjgl thats wrapped on opengl… yadayadayada. I now know what lwjgls’ purpose is and I’ll continue to study it because understanding it is awesome. I also just realized ra4king has some wickid c++ OpenGL translations to LWJGL. I also didn’t do so swell in math this year. I had all A’s and B’s this year but a C in math. I would always be forget somthing.