Backstory
Hello, I've programmed some games before like tic-toe, chess, hangman, memory test, backgammon, poker with advanced features like achievements, AI difficulty settings and cooperative play mode. I have also done some of the exercises at project euler (exercise 50-52 was were I stopped), and also some other problems and small programs all of those applications where done in visual studio using C# , but enough of the portfolio, recently I started thinking about developing a real game because I considered myself experienced enough. So I started programming a 2D game in visual studio using windows forms, I regretted that decision few days after because I realised that well that's not the place to create games, that's when I decided to switch to something more powerful which is meant to be used for games namely Unity engine. This was my first time I was using an actual engine, my main idea was continue creating the game where I left it off in visual studio, so I did, I've worked on this game in unity for maybe 2 weeks or so, the engine was something new but I kinda got the hang of it because it's still quite similar to the normal coding environment I'm used to. The main problem were the graphics, my game had a top-down 2D view, basically there was a really small amount of graphics on the internet fitting my theme and view style. That's when I decided to hire a 2D artist to draw some stuff for me, the problem here was that I was short on money and all the people that bid on my project asked for more than I could afford. Anyway I managed to find a person that has relatively good portfolio and the price was good for me, so I hired him the illustrations where great I totally loved them enter image description here
However the person that I hired wasn't that good when it came to animating the characters, each one of them must have 10 different animations and the requirement was around 7 sprites per animation, that ended up as being a lot of work with not much difference in the final product and also it was going to take a lot of time and that's where we agreed (me and the designer) to simply cancel the project. I was feeling kinda bad because for some days I couldn't find any graphic designer to animate my illustrations which I already payed for and where sitting there collecting dust. I started to realise that even if they had around 10 frames per animation which would end up in around 2000 different sprites, would still not give me that smooth quality I'm looking for. That's when I started reviewing the idea to actually develop a 3D game, the pros at first look where a lot more than the cons. I can deliver an intense fighting combat, I have more space on the screen, and biggest things was that I found that 3D models prices where much lower than I thought, over 50 animations for 15-30 bucks ! This would've cost me a fortune if it was 2D. Again with the little knowledge I have over the game engine and the main components a real game consists of I switched to 3D, now I have absolutely no idea what's going on with the game engine and how things are working in the three dimensional space. The 2D I managed to get the hang of real quick but for some reason 3D is just much harder for me, instead of learning while coding, now I decided to actually learn stuff before I start.
Question
Those are the things I found to be required as an indie game developer :
- Math
- Physics
- Graphics
- Materials & Shaders
- Animations
- Sound
- Lightning
- Game cameras
- Crossplatform deployment
- Graphics,math,physics common concepts
- Game design
- AI
Take in mind that I'm only good at programming and that's the only topic I have experience with that's why it's not include I only lack knowledge over the AI. What are the Sub-categories of those topics ? What else should I add to my list ? Which topic is the best to start with ? Any general tips that you can give from personal experience as an indie developer are highly appreciated.