Java Game Development Newbie

+2 Austin DeWitt · April 17, 2015
Hello everyone! I currently am learning Java, and I want to make video games, I know the whole C++ vs java game development issue. I plan on learning both languages eventually, but for now I was just wondering if just making console(the console in eclipse, not PS4 or Xbox haha) based games would be a good start instead of learning the UDK, Unity, or other game development software? I've tried to watch Bucky's tutorials, but I just get lost, so that's why I was wondering if I should just stick to console based games for now. Or should I just attempt to watch Bucky's tutorials again? Or is there any other route that I haven't mentioned yet? Any advice would be appreciated! Thanks!!:)

Post a Reply


Oldest  Newest  Rating
+4 Umar ( ゚ヮ゚) · April 17, 2015
I have Created Top Down Shooters in Java, yes it is possible. 

Then again I have Really REALLY good experience in Java...

If you're just starting out learning Game Development in Java... I would really check out the book called 

"Developing Games in Java" - By : David Brackeen 

Really good read goes into the core of game Developing in Java.

And making 3D games in Java in my opinion seem clunky and weird. Then again Runescape was created in Java.

Most of the Java games I've seen or made are mostly in 2D.

if you were to make a game like let's suppose Counter Strike, or eve Gunz Online... Then learning Unity, UDK, and C++ will come in handy.

and your final hope would be YouTube i'm pretty sure there are tons of Java Game Development tutorial on there.

Hope I helped!
+4 Kuroodo Ditory · April 20, 2015
Take baby steps, learn to walk. (Make small games, learn how to develop them). Then, learn to run!

What you should do:

1. Start small.

Make some small projects (text-based aka console). Start off with a Tic-Tac-Toe game. Try to make one on your own. You can look up some help and such, but try to not look at source code for any other Ttic-Tac-Toe games, or anything that is too revealing.

Note: It might take days for you to complete this project due to learning, experimentation, and not knowing much about how to implement things. Don't stress if the project takes too long, or if it's too hard.

Sometimes, you might have to make smaller projects based on a specific feature or thing, in order to learn how to use/implement that. Like a score tracking system, a game loop, basic AI, practice using arrays, practice more on how objects and classes work, etc

Implement these features after or during the Tic Tac Toe game's development:
 -. Player vs AI
 -. Player vs Player
 -. LeaderBoard (that tracks data during the game session. Doesn't have to store data to a file or keep records somewhere)
 -. Constant game loop where you don't have to close the game to restart.

After you have completed your project, look up the source code for someone elses project (you can even ask me for mine!). Compare your code with the other person's code. Which code seems better?

Check these:
 - Who's code looks cleaner (organized, not too long/complicated).
 - Who implemented specific features and code better?
- Who has more features, or better features in their game

 Learn from the comparisons. Learn about what you could have done different, what you could have improved, what you did better than the other person, different ways you could have implemented your code.

2. After making some small projects, try making bigger projects, and eventually getting into projects that use graphics (specifically just a game that works with a GUI and not actual sprites and stuff).

Quick tip: It's always best to write/type things down. Figure out how to implement, how to do. What you could try, etc. I find that some technical problems are easily solved when written down on paper and broken down into different pieces/segments.

After a few small game projects, I went to the next level. I made a battleship game. This took me a while to do. Alot of bugs to smash, alot of learning, alot of experimentation, alot of figuring stuff out. At first I made the game text-based. Then I tried adding GUI elements to it, but it was quite difficult for me learning about all the different layouts or how they worked. So that lead me to step 3.

3. Find a Java game engine or framework.

 Find something that would make life easier. Also to introduce you to working with game engines and frameworks. After alot of research, I ended up with libGDX.

libGDX is an awesome Java Framework for making 2D games (has some 3D support as well).

There are plenty of tutorials and documentation on using libGDX. I'll link a few:

(I suggest watching Dermetfan first to get a grasp of the basics. You don't have to learn his Box2D videos. So you don't have to watch video 13+ of his "Java Game Development (LibGDX) " series)

(This guy's Block Bunny tutorials were a HUGE help to me. Though it uses box2D, you can still learn a giant bunch of things)

So after watching/reading plenty of tutorials and using google a bunch, creating multiple projects full of experimentation, testing, and learning, I was ready. 
I learned alot! (Started learning/using libGDX around May of 2014)

Back in the day, I would have to look up a tutorial or something in order to understand how to do something (even for plain Java stuff), or how to make something. But now, I possess the knowledge of how to make my own thing! "How do I make this thing do that? Well I can do it this way!" Before it would be : "Hmm, let me look that up and hope that there is a tutorial for it".

4. Start a serious, small project to release
 Once you feel ready, start working on a serious project that you plan to release (for free, or commercially). But make sure that project is within the area of things you know. Don't make a 2D shooter game if you don't even know much about implementing bullets, how to  handle a bunch of textures or sprites being fired (pooling handles that), etc. Don't make a procedurally generated game if you don't know sh*t about procedural generation! Start with what you know, what doesn't take alot of time to learn/do, and what you feel is best for your game.

I'm currently developing a game to release on the Android market (my first game). It's a small platformer game. It's been in development for 6 months though, but it's all due to the learning process and such (also alot of distractions and slack. Took a month off to learn Unreal Engine 4 as well).

That brings me to step 5.

5. Learn to finish things. Alot of the problems I have faced, and that alot of game dev's stress to newcomers is about learning to get things done.

You may start a project, but never get the chance to finish it. Eventually you might get bored of it, or feel like it's taking forever. But, you have to learn and get used to finishing your projects. You have to turn that into a habit. Discipline yourself if you have to. Sometimes you might feel like giving up, but you have to keep pushing forward!

But, if the project is beyond your limits, well of course you can stop working on it. But eventually as you learn things and get more experience, get back on the project and finish it (or start anew).

6. Once you get the grasps of basic game development, and you can make your own game, start expanding!

Start getting into 3D games, larger game engines,, and even bigger and more complex projects (2D/3D doesn't matter).
Unity is a nice place to start. It's very noob-friendly, and you can use C# to code/script. C# is literally just like Java. They have their differences, but you can learn C#'s syntax in like an hour or 2 if you know Java.

Then over time you can start learning C++ and also using the Unreal Engine. Unreal Engine 4 also has a visual scripting language called Blueprint. So you can also make games using that in the mean time before/while learning C++!

Using Unity and UE4 at the same time is also very good! Just try not to open up too many projects and go bananas trying to work on/finish your UE4 and Unity projects. Do some stuff in Unity, and then doe some stuff in UE4. Switch between them at times for different projects. Just know that UE4 is more complex and technical than Unity.

7. Make some big and small games in Unity or Unreal Engine (or whatever big game engine you choose, libGDX also works).

Maybe make a 2D RPG game in Unity (or UE4. But Unity is much simpler for 2D games).

Make a small FPS game in UE4 (you can still use Unity as well).

Practice with different game mechanics used throughout many games (like inventory systems, crafting/survival based stuff, vehicles, Magic Powers, AI, etc, etc).

8. Make a serious project to release on Unity and or Unreal Engine 4.

9. This step is actually a universal step. As in, it should apply for all steps. Make Yourself Known. Show people that you exist. Show them your expertise and your journey throughout the game industry. 

People will begin to notice you. They will come to you for help (be it advice, or ask to help them out in their project). Some people may even hire (or contract) you!

Just know that everything doesn't happen instantly. Things take time, but if you keep working hard and pushing yourself, you'll make it past the limits!
+2 Christopher Howard · April 24, 2015
When I was first learning my project for a class I had was to draw a picture using the Draw Class in Java. After I drew my picture I thought, "Hey wouldn't it be cool to make something move?" Then I subsequently thought, "Hey wouldn't it be cool to make a stick figure move across the screen." Then I wanted to make it look like it was walking so I learned how to alternate between two pictures to create the illusion of walking. Then I learned how to use sprites. It just keeps on going. Computer Science is really an art just keep trying to find things to improve and you will be surprised what you learn. 
+1 Austin DeWitt · April 23, 2015
Thank you so much for your time and such great answers! I have noticed that I have some projects that I need to go back and finish! But it's nice having some step by step guidance put into place, and I can't wait to start up eclipse and finish my text based game, and then I will give the tic tac toe game a go, and when the time comes I may want to take a look at your source code Kuroodo haha!
Thanks again for your answers! It means a lot to have such friendly people who are willing to share their experiences and advice!:)
0 Mantas Nolife · June 26, 2015
When I was first learning my project for a class I had was to draw a picture using the Draw Class in Java. After I drew my picture I thought, "Hey wouldn't it be cool to make something move?" Then I subsequently thought, "Hey wouldn't it be cool to make a stick figure move across the screen." Then I wanted to make it look like it was walking so I learned how to alternate between two pictures to create the illusion of walking. Then I learned how to use sprites. It just keeps on going. Computer Science is really an art just keep trying to find things to improve and you will be surprised what you learn.
0 Deazul Abg M.Ali · August 15, 2015
Dear Forum,

Pls safe a life, i need source code for Java programming game(cookies clickers), anybody with the codes, :ermm::'(:(????
0 Kuroodo Ditory · April 27, 2015
@Christopher Yeah, it's amazing isn't it!

Sometimes I take that approach when it comes to creating things. Add the simple part, then after it works, add something else to it. Then keep building up until you get something that is truly amazing! What I really enjoy the most is the part where you try figure out how to do things and learn as you go. In the end it's like "Wow, I actually did it/this! This is so awesome!"
0 Ronan Walsh · July 23, 2015
For backend development, Gamesparks is great for people starting off as it cuts out a lot of the server side hassle and allows you to focus on developing your own skills in your own time while keeping you entertained by developing a game you are interested in rather than a small game that can’t do much.

Its definitely worth checking out to see if it would help you in anyway.
  • 1

Game Design / UDK / Unity


For all game design discussion including Unity and the Unreal Development Kit.

Bucky Roberts Administrator