What things should I learn?

Hello once again JGO.

I have been in java for about a year right now. I use LibGDX so I already know common things like box2d, tmx maps, few other sfuff and want to start to learn about shaders.

My question is: What should I learn after all that?

I know you can help me. This is the best community ;D

Make Games.

No, seriusly. What other techniques you recommed me to learn.

Seriously… Making games will help you understand what you know and what you don’t.

So, can I make a full fledge game with what I already know?

What everyone else said, make games. :wink:

The long winded answer is that if you really want to learn, tinker around. Programming is like painting, you can learn all the functional parts and how it works. You know a brush is for applying the paint, you know the paint is applied to the canvas, you read all the books on how to mix and blend colors. You have mastered the technical aspects; but you still can’t draw more than stick figures.

So what do you do? Screw up 1,000 canvases until you get better!

General answer, already stated: Make games. Enter Ludlum dare, or other jams. Develop abilities of not just a programmer, but a designer, an artist, etc, and gain ALL the experience.

More specific answer to your specific question: MattDesl’s tutorials (he’s here on the forum btw.) can’t be beat. They include shaders.

Edit:

I don’t know, have you tried?

Thanks to all of you guys.

Ok, so, I will just code and code and get better at it.

I knew you were going to help me.

as long as the game you are attempting to make isnt way beyond your ability, just start. you will come to a part that you dont know how to do, and you will find a solution, then another unknown will teach you something else. by the time its done, you will have learned all the things you needed to know to make the game.

Exactly my point of view, if you want to learn, do something that isn’t quite impossible but still beyond your current abilities. (IE: Don’t just go straight to making a java version of the Crysis engine, but if you haven’t made a game with collision detection, try it!)

Once you hit a roadblock, start looking up tutorials, google or post on JGO.

I think a lot of hobbyist programmers stagnate, they hit a certain skill threshold and instead of trying to do new things, they just find ways to work around the knowledge they have. That’s why you end up with people who have been programming for years but have mid-late teens who are programming circles around them.

I’ve posted this before, and I’ll post it again. The Programming Steamroller

Even though you need to always be doing things, you also need to make sure you keep up with technology and keep learning.

But most importantly make something with your knowledge, or it is all for nothing.

All I beg of you is that you start using the simple stuff, that is, to make simple stuff.

Don’t do what I did. When I was new to game programming (note that I have had 4 years of programming experience beforehand), I had launched a website for a large MMORPG that I planned on developing. Needless to say that project never worked out as my newbie-self had planned. That bit me in the ass later when I realised that I am in a thing called reality: Game Development does not work that way, and you must work to get things done. But that was roughly 3 years ago, so I can forget about that horror story now :slight_smile:

This advice probably isn’t good at all, but I would probably start making something really simple like Pong or Breakout using something like Java2D, then work your way up to recreating those games in LWJGL, MERCury (Shameless Plug :P), LibGDX, Slick2D, and whatever else that comes to mind.

Now, I know this may sound stupid, but please don’t watch Java Game-Dev video tutorials on sites like YouTube, you’re just going to find people who don’t know what the hell they’re talking about (TheChernoProject, DesignsByZephyr, etc… The list goes on). I personally am not a big fan of programming tutorial videos, but that’s just my opinion. AGAIN, this is only my B.S. opinion, so if you want to learn from video tutorials go right ahead, I just wouldn’t recommend it very much.

/********************************/

Now, with my annoying and pointless ranting over, I would really recommend researching some classic game design before you dive really deep into the programming/graphics field. There are some good channels on YouTube such as ‘Extra Credits’ (and many others I can’t think of at this time) who make videos regarding certain game-play mechanics as well as certain design ‘NO-NOs’ that gamers tend to hate. It would probably be a good idea to look into that before you start making original games of your own.

As for art, there are many places that you can go to learn pixel-art and some other things to get you started. Art is a hit-or-miss in game development. A while back I made a post regarding this topic, I highly would recommend that you read it.

Music is a skill that can be learned later in game development, but it’s hard for me to really give you advice on this topic. I have been playing Saxophone, Piano, and Guitar for years now, so it’s hard to really give advice on where to exactly start. However, if you do have a bit of musical experience, I would recommend software like PixiTracker, and FamiTracker if you are a bit more advanced 8). As for sound effects, I would recommend programs such as SFXR or BFXR (Web Based). They’re great for competitions like Ludum Dare as they quickly randomly generate sound based off of noise.

Sorry if I sound arrogant, “Good Advice Is No Advice”, as they say. Good luck with your journey in game development!

  • Jev

Jev I went back and watched those channels you mentioned and yes… My god I wonder how anyone actually learns anything from them.

OP, program for yourself and write your own code! I made the mistake of just watching YouTube tutorials and thinking I was amazing at programming when in reality all I was doing was copying code which I barely knew how it worked and I developed some bad habits. If there is anything you take away from this thread, take that. Be yourself as a programmer, don’t let people tell you you need to do something a certain way. Innovate and be yourself and you’ll be great!

No. You need to work on game design skills. Coding is maybe 30% of a game. You need to explore the fields of creativity, otherwise you’ll only make clones of existing game ideas.

Graphics design as well. As much as people will tell you “Graphics dont matter”. They do. :wink:

most of the top selling indie games have a unique look to them and have very well polished graphics, even if they are “bad” graphics. For example, look at Hotline Miami. Hotline’s graphics are super basic, but very well polished. Same with other “low graphic” games that are successful, like They Bleed Pixels.

There are exceptions, like Towns for example looks awful, but it makes up for it in gameplay.

Overall, no matter what the indie-snob people say, graphics are important. You don’t need to make Crysis, and you don’t even have to make “Awesome” graphics, but they have to be polished and flow with the game. :wink:

EDIT: Another good example is Legends of Yore, it’s graphics are ultra-simple, but they blend well with the game style.

When I created this thread I didn’t think it was going to receive such an amazing feedback.

I’m already putting your advices in practice :slight_smile:

Thank guys, you are the best.

I’m a newbie as well, but I’ll state my view because I can.

When I first started to game developing thing (been a while), I tried simple stuff first (not a simple game). After I managed to render two sprites and make them move around, I thought I’m good enough for a game which includes AI.
I was not.
Not being able to move on with my project, I lost interest to development. Also life got in the way, but mostly I lost my interest. But it taught me one thing, and it taught me well: I had to start very simple.
Because what you imagine in your mind may not apply to the code.
But to learn that I had to start simple, I had to try something. Reading is good, but it won’t get you much. Because you think you know the theory, and maybe you know the theory. But the practice is different. Practice is the thing differs doctors from wikipedia pages. It’s that important.
You don’t have to start as simple as I am doing now, but find an idea and try to implement that. If you can’t, start with something two steps lower. Then build your way up.

I think making clones at first is not bad. At the moment, I’m making a very simple infinite jumper game. It is primitive. It probably will stay like this. But I also had a list with it, the list of things I couldn’t do. For instance, I couldn’t keep my character in screen, it just fell. But I fixed it, so I can check this off. I couldn’t spawn the platforms randomly. Now I can check that item off from my list. Now I can’t spawn collectible items randomly in a way that they don’t overlap with the platforms. I’ll be working on that when I have time.

I’m not a fan of video tutorials. Although some of them are good and explaining stuff, inevitably, and that’s not the author’s fault, it becomes a “I make the game, you guys watch me coding.” thing. And you may be stuck with their wrong implementations if they are not doing it right. And let’s be honest, you can’t expect them to teach you everything for free. You may learn one thing from them, but not the whole concept of game development.

One tip about the tutorials, and I am not giving this tip as a programming and game developing enthusiast, I’m giving tip as a student who learnt that the hard way, as a learner who suffered from it in different areas: DO NOT COPY AND PASTE from the tutorials. Get the idea first. Try to think why he did it like that. If you can’t, it’s still good. Then just type. You may realize the reason behind it while you are typing. Change the names of the variables to your liking. Add your own comment lines to the code you are typing. Even if your comments are wrong, you’ll come back and find out the correct ones. Type them instead when that happens. Change the values of the variables. Treat that code as your homework, like, you know you are supposed to do it like your teacher told you to do, but you feel like it would be cheating to just look at the example and write it down, so you try to do it your way.
Well I’m just trying to say, use your head, not theirs.

If programming is not your career choice but a hobby, treat it as one. It’ll be more fun that way. Don’t let the professionals (or computer science students who naturally know more than you do) make you feel down. They don’t mean to do that (at least I hope :P).

And please, please be a good friend of yourself and don’t try to do everything right in the first time. Most of the professional programmers who I talked to told me that they look at the code they wrote 1 year ago and realize how stupid they were and how they could have make their jobs easier. I think that would be more satisfying than finishing a couple of projects. – That’s how they know they improved.

Good graphics as in they fit the game and they represent the story you are telling. You can utilize graphics to actually tell the story if you’re clever enough!

Have to call you out on that one, I’ve met a lot of brain dead CompSci majors with 4 year degrees who couldn’t even come close to matching the skill of amateurs. They just end up being well educated and know a ton of terminology, but when it comes to actual output they fall flat on their face because they have no logical/problem solving skills. :confused:

Not saying the degree is worthless or that you won’t learn anything, I’m just saying you have to watch out. Just because the guy has a degree doesn’t mean he knows jack. Kinda goes back to my post about how you can teach someone all the functional aspects of painting, it doesn’t make them an artist. :wink:

Maybe there is a misunderstanding here, but maybe it’s also a difference in the education systems of different countries.

I’ve studied “Informatik”, which roughly translates to computer science, got a “Diplom”, which is roughly equivalent to a masters degree, although I’ve studied 6.5 years instead of four.

Programming was not a big part in my studies. We learned some basics, and had some programming projects going, but it was really more of a side thing.

What I’ve learned is how computers work, how CPUs work in particularl, how an operating system can be designed, now network transport works, how parallel computing works, how to make a compiler. Also about databases, transactional system, human-computer interfaces, formal languages, space/time calculational complexity, data structures, algorithms, programming paradigmas, artificial intelligence and some more.

I’ve also learned about steering and control of robots and inustrial machines, but that was a free choice of mine. I could as wel have chose business and administration as side field.

Those studies are far away from being “worthless”, but they do not make you a programmer. That is not even the intention of the study, at least not as it was designed here. They give you a lot of useful knowledge though, if you decide to become a programmer.

Considering the amount of math and theory that was part of my studies, I really doubt that people with a CompSci degree managed to finish their studies without such skills.

But as said, they are not programmers, they have a different training and background. Maybe you expect the wrong things from them.