-
I really recommend C#. A lot of the free online tutorials you’ll find use C#, but there are also ones that use javascript. I just personally prefer C# because that’s what I’m used to. Anyway, just use whichever of the two you find more comfortable using.
-
Since you’re a gamer, I bet you already have a pretty good idea of certain gameplay mechanics that you’d love to implement in your games. You probably have a good idea of what makes a game fun and interesting, so that’s already a good start. Having a natural love for games and the curiosity as to how they work can really help you a lot when you’re just beginning because instead of looking at tough problems as something bad, you see them as only things that you need to understand in order to make the game you like. A programmer with beginner or average experience shouldn’t really have any problems making a simple game. The more complex your game, the more experience and knowledge you need of course.
-
I also love Dragonball! Anyway, if you’re going to sell a game and it’s based on a popular show or something that already exists in this world, then it’s pretty much guaranteed that the people who own the rights to that show/movie/cartoon/whatever will not like it if you make money off of their stuff without their approval. If you want to make games based on popular existing things, then like what someone said, you’ll need to deal with all the legal stuff first. You don’t want people or companies suing you just because you made a fan-made Dragonball game and you’re making money off of it. Still, this shouldn’t deter you from trying to make a game out of it if you’re just doing it for yourself or some friends, that’s part of the learning process anyway.
Just sharing some more stuff from my personal experience. I think one of the toughest challenges that a lot of new starting game developers will meet right away is the lack of assets. For example, let’s say you want to practice making a 2D side scrolling spaceship game like R-Type or a 3D platformer like Mario 64. The problem is that although you might have an idea on how to code the project to make things work, you won’t have the necessary art, sounds, and 3D models to use! You can of course try using Google to find some free assets to use in your project, but most of the time, these freebies aren’t exactly what you need. The biggest problem is if you’re trying to make a 3D game project and you only have 3D models without any animations in them.
If you’re just one person who has no team or access to anyone who can make assets for you, and the free stuff you find on the net just don’t fit within the context of your idea, then you’ll have to learn to do a few things on your own. It’s of course hard, but once you learn how to make your own assets, you’ll be able to learn much quickly because you won’t be limited by the lack of assets anymore.
Anyway, here are some suggestions that you can try to learn on the side if you have extra time:
a. Try to learn how to use an image editing program like Photoshop or whatever free image editing program is available.
b. Try to learn some principles about animation. It helps in giving life to your creations through believable motions.
c. Try to learn about 3D modeling/sculpting. Popular software include 3DS Max, Zbrush and Maya, but of course Blender is there if you need a free one.
d. Try to learn about retopology and edge flows in order to make your 3D models easier to animate.
e. Try to learn about “baking” or transferring details of a high polygon model to a low polygon version so that the low polygon version will look just as good as the high polygon model.
f. Try to learn about rigging your 3D model so that it can be animated, and try to learn about skinning so that when your 3D model moves, it won’t look like it’s being torn apart by an invisible monster.
Of course it would be great if you can just focus on what you want to do when it comes to game development, like if you’re a programmer you only focus on code stuff, if you’re an artist then you focus on that and so on. Unfortunately, not all of us have the luxury of having access to people with different specialties, or sometimes we can’t really join a team because of other real life matters. Sooner or later, we’ll have to be able to multi-task to get things done. You don’t need to be at the master level to create assets especially if you’re still just starting, as long as you’re able to create things that you can actually use in your project without being stopped just because you have nowhere to get them from.
If you really want to learn more, it would be a good idea to invest in books and training material:
1.Learning C# by Developing Games with Unity 3D Beginner’s Guide - Terry Norton
2. Beginning 3D Game Development in Unity - Sue Blackman
3. Unity 3D Game Development by Example - Ryan Henson Creighton
There are a lot of books and video training materials on Amazon, Digital Tutors, and Lynda that deal with making games in Unity using C# or javascript. The important thing is you get actual hands on practice. In my personal opinion, doing something yourself is the best and fastest way to learn. Instead of copying and pasting the code from books, type them in yourself so that your mind will think about them more and you’ll have an easier time retaining the ideas being presented to you. Most of all, don’t be afraid to experiment. Following books or tutorials will indeed point us in the right direction, but experimenting on your own using stuff you’ve learned is something I find more useful because you’re not just following instructions anymore, you’re putting into use what you’ve learned in your own way.
Anyway good luck and have fun in the world of game development, I hope I was able to give you an idea of things that you might have to deal with later on.