Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm very new to programming and I'm using Java. I got interested to learn programming because I want to create games. I love playing computer games and I know that game developers make money. I told myself that instead of just playing why not create my own game and probably make some money.

I read some articles about game development using java and I learned about JMonkey. I just installed it in my Ubuntu PC.

Should I learn first the basics of Java or I can start learning JMonkey and Java at the same time?

I know that JMonkey is game engine built using Java and it provides libraries to help developers create Java games efficiently but its kinda advanced for a dummy like me.

share|improve this question

closed as off-topic by Frank, gnat, thorsten müller, ChrisF Oct 16 '13 at 10:34

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Frank, gnat, ChrisF
If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Why not? There is no rule against it. –  Pradeep Oct 16 '13 at 5:47
3  
Game programming is not just a about programming, it is also consist of mathematics and algorithm. –  huahsin68 Oct 16 '13 at 5:59
    
@huahsin68 Thanks. I'll keep that in mind. –  TokiMucho Oct 16 '13 at 8:00
    
More important than programming, mathematics and algorithm, it's about design. –  OrangeDog Oct 16 '13 at 8:52
    
Game programming is about writing a program that is more fun to use than Microsoft Word. –  MichaelT Oct 16 '13 at 14:08
add comment

7 Answers

up vote 13 down vote accepted

Sure you can - I learnt a lot about Java when I started by writing a simple game.

Just be sure to start with something simple so that you can focus on the basics and don't get discouraged - which is a risk if you take on an ambitious project too soon..

You will probably find it easier to write a simple 2D game (using a library like Slick2D) rather than immediately embarking on a 3D masterpiece (using something like jMonkeyEngine)

share|improve this answer
    
Thanks so much for your advice and I will take a look at Slick2D. –  TokiMucho Oct 16 '13 at 5:58
    
I would take it even simpler and at first not even write games that rely on graphics at all. Graphics are what bogs down EVERY wanna-be game developer. In the end most quit long before they've ever created anything even resembling a game. –  Dunk Oct 16 '13 at 19:10
    
@Dunk What kind of games do you suggest for a beginner like me? How about something like Travian? A text based game. –  TokiMucho Oct 17 '13 at 1:13
    
@Dunk : maybe true - though some people already know how to create graphics (e.g. photoshop gurus) and it can be easier to experiment with something when you can see visually how it behaves. Plus tools like Slick2D (or even just Java2D/Swing) make it relatively easy to get graphics into a simple game. YMMV, I think.... –  mikera Oct 17 '13 at 2:45
    
@mikera:Drawing graphics and getting them to behave adequately for a game are 2 entirely different things. On top of displaying the graphics there's the collision detection, reaction to events, path determination and oodles of other things. If u are an experienced developer then those are a next step. If u r new to programming then that is taking u off into tangents that will likely leave you nowhere. –  Dunk Oct 17 '13 at 14:49
show 1 more comment

I come from the ancient era of "we had to code all by ourselves" and that is what I still do. So, I do not know these new "next-generation" 3D engines/environments where you just apply a bit of code here and there and it miraculously turn into a game. (no, its not really like that, just the way I see them)

That is why I am offering my opinionated answer for you to learn java (as that is your choice, it could be any language) by How to;

  • Make simple application
  • Draw a shape (circle as an example)
  • Another shape attached to mouse location (learn about mouse)
  • Check if these two shapes collide (how collision of circle and square would be different?)

A wild'ish example, which I would suggest to do. From there you can use those learned elements to make simple games like so many mouse clicking games. Learn how to measure time and you can make such game more complex by making player compete against his own reaction times, etc... let your mind think of more things and you stumble on more to learn.

While you do simple thing(s) like this, you are learning all the time and most importantly learning programming language of your choice (java for you).

While you learn more about java, nothing stops you from playing around with jMonkey also. In case you feel stuck in jMonkey, go program simple things in java and feel success, if you get stuck with simple java programming, search stackoverflow... I know from experience that SO has huge coverage in answers to java game programming. See, when its not about jMonkey, when its about general java game programming, there is way more answers, so many good tricks and tips to learn.

share|improve this answer
    
Thank you so much but I had already accepted an answer. Anyway I will take your very very very great advise. –  TokiMucho Oct 16 '13 at 7:54
add comment

When you start programming, you have to write something, so it might as well be games. And in fact, yes, you can start writing games right away. Just bear in mind that if your programming skills are basic, then your games will be too. So not Skyrim or even Minecraft. More like "guess the random number."

As your knowledge of programming techniques and patterns progresses, you can comfortably build more complex programs. But bear in mind that it will likely be years before you are at the level where you can build games like those that are popular now.

Starting into programming so you can write games is like starting into metalwork so that you can build cars. Yes, that is certainly a reasonable goal. But just remember that you don't start out working at that level.

Learn the basics first. All of the basics. Because whatever development framework you decide to use for game engines will assume that you already know all of the basics.

share|improve this answer
add comment

I don't know JMonkey, but if you don't know anything about programming, you're going to have a bad time translating your game ideas into code.

Let alone debugging, performance, data structures, control flow, best practices and so on. But that's only the 'game engine' part, have you thought about your game's content?

I think it'll be way easier to just try and create games in something like Unity or GameMaker while learning to program separately.

share|improve this answer
    
GameMaker would be a good choice for a beginner. –  Lescai Ionel Oct 16 '13 at 6:08
    
@LescaiIonel Does it support java? –  TokiMucho Oct 16 '13 at 6:23
    
No, but it has a scripting language similar to C. And it's "object oriented", although it doesn't have classes. It also has some 3D support. More recently it also supports porting to pretty much any platform out (android,ios,windows8,html5) in the paid version. I managed to create a 3D rubik cube in highschool, so I can tell you can do some advanced stuff in it. It may not teach much about OOP, but depending on how much you already know, it might just be worthwhile looking into it (also since it's style of doing things is similar to Unity). –  Lescai Ionel Oct 16 '13 at 6:33
    
You can also take a look at sandbox.yoyogames.com to see what others have done. Their's a GTA clone somewhere around there. –  Lescai Ionel Oct 16 '13 at 6:38
add comment

Start with writing very simple game related excercises. Write programs that solve logic and maths problems. Write some animations and graphics effects. Write a lot of really simple stuff, always strive to write neat code, try things out, be creative.

After some months of training you could try writing a simple game. I recommend starting with a simple turn based game, like tic tac toe.

Check out Project Euler. I have found it very useful when learning a new language. It also helps training basic mathematical skills. You are going to need those when writing games.

I also recommend checking out Robocode. It allows you to get into programming some game logic (AI) easily and works as a sandbox for training basic programming skills.

Don't expect to make any money. Have fun instead. If you don't find programming enjoyable, you aren't probably going to make money by programming games.

share|improve this answer
add comment

i started like you with java. today, some years later, i still use object oriented stuff that i learned from the time i used java. java is greate but not as quick as other languages because it runs on a virtual machine. i would say learn some more java not to make anything just to get some experince and then learn c++. c++ is what many people use for games today and it's super fast but a little hard to learn. c++ and sdl or just opengl is a good start....but get some experience with java first :)

share|improve this answer
1  
how does this answer the question asked? –  gnat Oct 16 '13 at 7:40
add comment

I recommend you see the basics first so that it won't take you long while starting development. Try to understand the basics like using loops and conditions statements in java before proceeding in any development. And try to be familiary with OOP freamwork first.

share|improve this answer
    
how does this answer the question asked? –  gnat Oct 16 '13 at 9:54
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.