Creating a game for ones own personal interests can be fun, it can be a method of income, but it can also be a complete failure. Now I have made many many games, all of them were failures but even a failure can teach someone to succeed in their own goals. My goals were to entertain others to the point I was surprised by the sheer numbers, most of my games were lucky to get a single download.
The problems with most of my games, when I first got into game development I really didn't understand marketing or business decisions. I purely made games because I had fun doing it, but I always wanted others to have fun doing it without targeting anyone.Then when I did realize it the first thing I ignored was the route to even just let people know that my games exist. When I finally discovered that I tried charging people for my games and my target audience only cared about free games, because I was making games that targeted male kids and teens with smart phones. Only one of the games seem to get any downloads and that is because it resembled 3 other games mixed together kinda.
So the first thing you want to establish is who exactly are you making this game for, what will they want, and what will they wont want, this doesn't mean you shouldn't be creative and try something new, this also means you shouldn't just limit yourself by labeling your game a certain genera because that may change over the development cycle if you further your research for your target audience. Also if you just say you are going to make a generic genera of games that is just like game X what is separating you from game X, gamers will just label your game a poor knock off of game X. Which is directly related to game design and concepts, don't get trapped by limitations many resources may try to limit you to and say is the safe route but understand the concepts at least before you dive in too deep.
The next thing you should learn out side of concepts, designs, business, and marketing is more creative skills. Programming is actually a very creative skill despite it being logic based, in programming there is many ways to do just about anything. The way you go about doing these things directly effect the game, and how it works exactly. It is good to learn the basics of programming before using anything such as a engine to even understand how a engine exactly works. I started off with web programming before I tried any real programming, I also modified games before I started off with programming to understand game engines and how they worked. You can do that but I really didn't grasp the information fully until I started actual programming and when I started game programming from scratch I got too caught up in how those engines worked before I even would get started it also lead to bad habits and assumptions. So just start off learning a language, then work your way up before touching a engine.
Art work is a requirement for when it comes to video games, its always better to produce a unnecessarily amount of art work to try it out, see what works and what doesn't. Again try to find out what type of art the target audience wants and how to best get their attention and attraction to it.
Sound is different than music, sound isn't always required depending on whom you are targeting and the core concepts of your games design. When making sound effects you do not want them to take the player out of the experience or interrupt this idea of the world you create with your game. If it sounds like it doesn't quite fit you should replace or get rid of the sound.
Music is very important along with visual aid it creates the atmosphere of your game. Having the wrong song in your game can send the wrong message to the player and take them out of the game, having wonderful music that fits the art style and play style and fills the need for developing a atmosphere for your audience will further make the player feel involved and attracted to the game. A good example of this would be the Bastion, its music fits and makes the player feel more involved with the game itself, it develops the atmosphere along with its art style that matches, and sends the right message to the player that keeps the player playing through the game. Without the music it would all crumble, it is a core part of a game, and many game developers forget about music, which leaves the player with wrong messages, and makes them want more from the game instead of filling their wants and needs depending on whom the game is actually targeting boils down to specifics.
Level layout/ design plays a direct relationship with combining and using programming, artwork, sound, and music. You really need to research your target audience when thinking about how exactly you want your world to be and exist in the eyes of the player. This all boils down to how will your game be played and presented to the player. If you have poor presentation but the game plays well your target audience may hate it may love it. It depends on specific target audiences their wants and their needs. You also need to think about what moods, to set with the atmosphere, with the art, sound, and music when and where in the game. This will involve a lot of programming which also will be needed to be considered since you need to establish events when they will be triggered, where they will be triggered, and how exactly will work. Along with this you will need to apply game developing concepts.
I could not express myself enough how important art work, sound, music, and level design is important to your core game and how it is presented.
Story, dialog, and AI all involve different reasons, and different audiences to create a game their roles tend to be very different for the various different target audiences. For instance a generic RPG targeting the same people as Dragon warrior back in the later 80's early 90's Story & dialog was more important than AI. But in a simulation game such as Sim City Dialog and AI was very important. Now a days with competitive online player vs player games AI is nearly non-existant because of the target audience doesn't really want it unless they have to have them to balance out the gameplay or lack of players.
If you would like to know more about the over all process of game development there are various resources all over the net here are just a few:
Some times books have more information than you can find from online resources such as programing logic which you really only learn by understanding, doing, and reading there are litterally hundreds to thousands of books out. I mostly learned by doing, and not reading but later when I started college I read "Starting out with Programming Logic & Design" by Tony Gaddis. It was ok, which a instructor really can often teach you better than a book can as well depending on the instructor and your learning ability, niches, and how you learn. I already knew several languages before taking that course which was a programming logic course it was very easy for me since I already had it down.
Here is one online resource as well:
nes programming & development : http://bobrost.com/nes/resources.php
For art, music and sound I recormend you be resourceful and creative. Find out many different tools you could use, learn to use more than just photoshop, after effects, adobe software, and Mac software. Many artists trap themselves by the tools they use and establish a safe area in which they despritely need to expand out of. Many programmers do the same with engines and langauges so. Often target markets needs and wants change over time and what they play on as well as what they like and don't like in a game. Don't let tools use you.
Schools often are a good source of information but don't let their practices limit you. Many colleges make deals with software companies for tools to use their students and don't teach them anything out side of those tools because they are paid off with "free" as in price software, some timescompanies pay colleges to pay proffessors to down right lie to students and say its the only way if you don't like it there is the door. The college I went to was like this, many teachers didn't like it and I encouraged my fellow students to not limit themselves. Many teachers that endorsed this malious behaviors in the schools system to get "free" software often justified their teachings by saying its the universal standard teaching them that the students should basically only work for the company producing the software they are using or else they will be failures.
One class I almost failed because a teacher simply didn't like me using the GNU C++ compiler for a single assignment, in which the GNU C++ compiler actually worked better than Visual studios. What was a logic error in Visual studios GNU C++ compiler fixed during the compiling process and it was no longer a issue, plus I was doing it in a GNU/Linux distribution which visual studio is only for windows.
These teachers were luckily only about half the teachers I had, most of them out of touch of the subject matter they were attempting to teach because of their arrogance of their methods. Most didn't realize I used different tools and methods of doing things for almost every assignment I did. I got compliments every day from students to teachers to even Deans because of it. If you have passion for what you do you should not limit yourself by any means and you should educate yourself as much as possible and keep on educating yourself. In doing so others will see what you are doing, saying and it will promote them to be passionate about what they are doing weather it is directly related or not.