First, I apologize for the large wall of text that you are going to read. You made me remember all my life, and my JGO previous posts, THANK YOU!!!
I was born in 1995, but I saw my first computer (running RedHat enterprise linux, I dunno which version it is) in 2000 in my father's office (He is a development officer in a national insurance company). He got a computer to home in 2001 with Windows ME installed, early in January I remember. Since then I became a gamer, I spent six years playing games like the House of Death, The Hard Truck, Need For Speed etc., I should say I'm a huge fan of House of Death, I saved up ₹200 to get a copy of House of Death 2. I didn't use my pocket money for two months for that.
It was 2007, when I was introduced to developing games by a friend. His brother gifted him a copy of Game Maker, and he showed me a game he made in it. I was simply amazed, I had never written even a line of code till then. There used to be good competition between I and him in studies, so naturally I wanted to make that game. My goal was to make a game, and I chose to make a platformer (because I played a lot of Mario in my childhood Nintendo console). I have downloaded a trial version of Game Maker 6.1, and made that game (with shitty graphics and no sounds) in two months.
I got a lot of appreciations in school, along with my friend. My first achievement!!! We were heroes in school, since only two or three of my friends know computer and play games, and we made a game!! Enjoyed it a lot, and I decided to become a game programmer, and turn it into my profession. It was so strong, that I used to say that to everyone who asked me what I want to be after studies. We both started making some games using his copy, and distribute in our class. In fact, we introduced computer to many of our friends. Unfortunately, exams kicked in, and we stopped this. We just made three games, one pong clone, one tetris clone, and a mario clone.
Immediately summer came in, and that's the time I played Resident Evil 4 on PS2 (I used to play PS2 with my friend in a local shop, we pay ₹20 and we can play for one hour). The graphics were stunning, that became my goal. Too much, I know that, so I wanted to learn how games work, I knew Game Maker hid so much from me. And game maker doesn't support 3D, so I wanted to create a Game Maker clone that supported 3D. I know, too much for a school going kid, who knew nothing in programming, except some basic GML scripts.
It was 2009, and I started teaching Java to myself. I started with Java since I saw a lot of advertisements in TV about Java Coaching for engineering students. I was not an engineering student by then, but I wanted to learn it. So I started online, and taught myself Java. I also started learning other languages at the same time. By the end of 2010, I have taught myself Java, C#, VB.Net, C, C++ and some basic HTML/CSS/JS. I started my old website (yes, a deviation from gamedev).
It was 2011, and I wanted to come back to game development, and especially start working on my dream, creating a Game Maker clone. I ported my pre-mature Java engine to C#, used WinForms, and created a 2D version of Game Maker clone, I named it Game Forge. But I got an issue, it was able to save the projects, and read the projects (used serialization) but I didn't know how to generate code so I can play my game. It got a break there. I wasted an entire year, but I learned designing complex user interfaces, and some P/Invoke functions in C# and native Win32. I decided to come back to Java, and found this forum. I ended 2011 by browsing this forum daily, as a guest.
In September 2012, I decided that I should post my pre-mature engine here, so I could get some push in the right direction, I didn't know what is the right way, I'm just experimenting. I started experimenting it on different platforms (I used to dual boot Comice OS 4 (Pear Linux) and Windows XP) and I got different FPS values. That's when I learnt about proper game loops (I was using JTimer from Swing before that) and understood how to reduce collision checks, I wrote my first QuadTree implementation and Grids!
I have registered on StackExchange that same year, and thought of remaking GM again. I have made a list of all of it's actions, and started adding to my engine, and it got awesome as I think. I posted this in this thread
on this forum, and I got not enough feedback. Of course, I wanted to learn more. Another achievement, I got my first medal for solving all the levels in a 4K game (TiltMaze 4K) and posting the solutions here.
Now that I have got some experience, I thought of sharing my engine to the public, and posted it on this forum. http://www.java-gaming.org/topics/my-game-engine/28232/view.html
I did receive a lot of constructive replies, and how I can improve, but it took me a few months to actually understand all that. But that increased my curiosity to learn them. I started with Java concurrency tutorials, and later included them into the engine.
It was 2013, and I started again on my GameForge, in fact made a video showing the interface: https://www.youtube.com/watch?v=6OM1pVDQJOM
I spent the rest of 2013 making tools, like a Jar2Exe converter, an SWF to EXE converter, an NSIS code generator, etc., and also started with OpenGL and LWJGL. I asked my father to get me a graphics card, and got ASUS GeForce 210. I started writing LWJGL tutorials on JGO, and within few months, they got upto 80K views (I used to open the tutorials section, and count the views daily) which are now moved to my own website. 2013 is also the year I got into college, I took Computer Science because I love games, and I'm the only one in class who took CS by choice.
2014 quickly went by, I was in the second year, but an unexpected thing happened, my father got operated on Retina, we had to travel more than 1000 KM to get to the specialist, and fortunately he recovered soon. Due to that I missed the minimum attendance and had to study second year of college again from mid 2015. Two more exams (within a week) and I will be promoted to third year again.
Back again in 2014, I started working with Mercury, and in 2014 November, I started SilenceEngine. I'm sad a bit that Mercury is stopped, it did a very good attempt to clone Java2D on OpenGL and I wrote the Graphics part on it. SilenceEngine is still continuing, and I'm adding more backends to it. Now, in 2016, my aim is to complete the engine's new graphics API with built-in post processing and lighting.
2015 and 2016 were my big years after 2013, as I got to write more projects WebGL4J and GWT-AL which finally got a decent Java APIs (I love them) for HTML5 with GWT. Now GwtOpenType is also almost done, and the first snapshot is in Maven (OSSRH snapshots repo). I also wanted to get better at coding, and with that, I achieved 500 days of GitHub streak on these projects. Recently broke it so I can focus on my exams.
This is me till now. As you have said, everyone will have their own learning way. Some learn first by a course, and later think of applying what they learnt, and some others keep a goal, and learn to achieve it. In that case, make sure that you have a new goal once you achieved one, or else you'll just stop there.
THANK YOU FOR MAKING ME TO LOOK INTO MYSELF!!!