Need Your Opinion about where to go next

Started by
6 comments, last by DeathRay2K 16 years, 2 months ago
I have been programming for a while (about a year now). About a month ago I started building graphical programs using Java2D and managed to create a pong-like game. Upon building my next game: Space shooter like "Asteroids", I reallized that I had a problem on my hand: As I understand it, Java2D can't rotate sprites. I looked into some java game libraries on the web but it seems to me like java doesn't have a large user base for game programming, hence lots of tutorials online. My question is: Should I move to a different language with more 2D game development support (C++ or something else)? or Are my misinformed and it turns out that there is a good 2D java game library? if so could someone provide me with some links to a good tutorial on that library. All help is appreciated a lot. Thanks!
J.W.
Advertisement
Google gave me three:
http://www.13thmonkey.org/~boris/jgame/
http://lwjgl.org/projects.php
http://slick.cokeandcode.com/
I would ditch Java, but that's only my personal opinion.

For 2D games, Flash is what's really "hot" right now. Not only do you have the easiest access to your audience, but it makes a lot of things easy. There are some big performance downsides (even simple games at relatively low resolution perform poorly on even fast machines), but that's not really an issue for Asteroids.

If you really want to get into it, learn C++ or C#. I use C++ and OpenGL for 2D. It's extremely fast (compared to framebuffer libraries like SDL) and you get sprite rotation, scaling, transparency, etc for free. If you don't care about portability, DirectX would probably be your best shot.

Oh, and if you want to stick with Java (remember, it's what you want, not what other people tell you what you want), there are OpenGL wrappers available. There are even some "2D engines" built on Java and OpenGL that will wrap it all up in a nice abstracted interface. I've seen them, but can't remember any names for you at the moment.
Well, if you are attached to Java, then I'm sure googling and using the links provided by the other posters would be fine.

Also, if you can find no way to rotate, you could always make a sprite sheet with 36 different sprites, each one being turned 10 degrees more than the last (i.e. one at 0 degrees, then 10, then 20 all the way to 350). This is how I used to handle rotation way back when I used GameMaker and had no idea what I was doing.

Or, if you aren't too attached to Java, there is always Python. I would personally recommend it over C++ or C# just because it is so much simpler. Get the Pyglet library (OpenGl wrapper) and you can be making games in no time. Remember, just because something is easier isn't always bad, the time you'd spend setting up low level stuff in C++ can be used to actually be making a game with Python. Another advantage of Python is that with Pyglet, it will run on Windows, Mac OS X, *nix, and probably anything else that supports Python 2.5 with ctypes.

Good Luck with whatever path you choose,
Cody
Hmmm... Python. Thanks for the Idea but I think I want to go C++. The problem is that I don't know where to start. Should I start at the very beginning of my Textbook size book about C++ or should I start in the "Pointers" chapter and continue from there? I know the basic syntax for C++ because I started with as a language for about a month before I gave up and moved to java.
J.W.
Since you already know Java, you already have the major concepts down. Get a book (I recommend "The C++ Programming Language" by Stroustrup or "Thinking in C++" by Eckel) and start reading. You should probably read the chapters on things you already know, there's bound to be points you would have missed anyway. Reading isn't the time-consuming part anyway, it's the experimentation and application of what you've learned. There's almost never an excuse _not_ to read something.
I agree with the read everything suggestion. It'll help you remember stuff, even if you just skim over it and don't read it with your full attention, your bound to pick up something you had forgotten or never known.
If you already have a grasp on Java, I would actually suggest just delving into C++. HGE is a very nice 2D engine for C++ (DirectX) that you can probably start using very quickly. Plus there's a great tutorial that gives you all of the steps of setting up your C++ project and using the engine.
You will definitely find that there are things you don't understand in C++, but there are a lot of online resources where you can quickly look up whatever it is.

This topic is closed to new replies.

Advertisement