I started becoming interested in programming since I was around 12 years old. I tried to teach myself C++ plenty of times but I would usually get bored or frustrated and stop. I stepped away from programming and started making add-ons and gamemodes in Garry's Mod using lua. This helped me to get familiar with how functions and conditions work. I am 18 years old now and I have recently tried to get into programming again and eventually start making games.
I started getting back into programming this June. I did a lot of research and found out that C# was a pretty easy to understand programming language. So I jumped right into it. I started watching beginner programming tutorials about C# and picked everything up really fast. I made a simple guessing game to get started. Improved it with a score system and an option to restart or quit the game. After that I started working with gui Visual C#. I made a working log-in and user creation system. You could type a username and password into the text boxes and I used Streamwriters to write the info to a .txt file and readers to read it when the program started and loaded the info into an array of usernames and password. I then bought a C# Serious Game Programming book and tried to follow along with that. I was told by a friend that the book uses the Tao library which he told me was pretty complicated to use. So I tried to start smaller with XNA. I started working on a 2d side scroller. I was getting really excited about it, I learned how to draw a tile map with a 2d array of integers and a lot of other things. One of my IRL friends told me he wanted to get into programming, but he refused to "learn another language". He had already started learning C++ years before and he is really stubborn so he refused to switch to C#. I wanted to make games with him so I tried C++ with SDl, and Allegro. It was a nightmare. C++ confuses the hell outa me with pointers and references. I understand how they work and what they are supposed to do, but I don't understand when you should and should not use them. My friend lost interest in programming so I got off of the C++ train ASAP. I tried to go back to C# but after doing more research learned that the XNA library is no longer going to be updated. So I decided to stop that project to. Now I have gotten myself into a new language. I have been fiddling around with Java and I thought that maybe Java is the language for me. So far I love it, I love how similar it is to C#, and I also love that it is widely used.
Java and C# are so similar that after watching a few basic programming guides, I already had understood the things I thought I needed to know to start game programming. So I jumped right into it. I followed a video tutorial step by step and thought I was figuring things out pretty well when I started to notice something about the video guide. The guy who made the video was copying Notch's code for his Minicraft game. NOT MINECRAFT, MINICRAFT. Notch did some things where he would use arrays of integers that represented pixels, each pixel would have a hex-decimal color value. He would import images with image.io and then get the RBG of that image which would return an array of integers then he would copy that array into his own array and render the image like that. It was very confusing to me. It almost seemed redundant.
http://stackoverflow.com/questions/14952863/importing-a-sprite-from-a-sprite-sheet
This link shows some of the code that was in the tutorial. It all seems super redundant to me.
I don't know if it is just a bad tutorial but drawing images to screens in java looks like it's a big pain in the ass. Should I be confused about something like that? I'd like to think I'm ready to start making at least a 2d game, but sometimes I get confused and wonder if I am doing the right thing. I really don't know what more I can learn with basic programming. Please help me out. Thanks!