Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (476)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (533)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  How do I start Java Game Development?  (Read 58306 times)
0 Members and 4 Guests are viewing this topic.
Offline Wiki Duke

?





« Posted 2012-08-22 22:37:44 »

Java game development is not for the faint of heart. Like everything else, it requires patience, comprehension, and practice.

These paragraphs are part of a tried-and-true track of experience levels that would be very beneficial to your growth. You don't have to start at the beginning, but can jump in at any spot you know you are in.

Beginner, the most important and *required* step:
-For now since you are a beginner, learning Java syntax, core classes, and command line stuff is very important and should be your first priority. Do not jump straight into graphics. Make basic command line games using ASCII art. Make almost any game you can think of for the command line. Eclipse is a very useful and powerful tool and as much as you may like it too, I also recommend you to start with the command line. Write an entire command line app using just notepad, compile it, and run it. Start using packages and experience the pain and confusion of compiling and running programs that are in packages.

*OPTIONAL*. Nowadays, it is best to start with LibGDX. Slick2D is another library with a slightly easier learning curve, but it's buggy, no longer maintained, and many years old.
-When you feel you know and understand Java well enough, jump into graphics using Java2D. Java2D is the java.awt packages and subpackages. These allow you to do custom drawing and offer very, very powerful tools for making 2D graphical apps and games. Also you may learn Swing, Java's GUI widget toolkit. It offers nice tools for making GUIs (Graphical User Interface).

-While you are becoming proficient with Java2D, you will learn and accept one grave and heart-breaking truth: Java2D is slow and unsuitable for professional and graphically expensive games. However, despite this shortcoming, it is the perfect playground for gaming beginners. I advise you to not advance until you have learned basic game systems, designs, code architectural organization, etc...
*OPTIONAL*

-Finally, when you notice you are ready for hard-core, speed-hungry games, you may jump into the OpenGL bandwagon. OpenGL is a portable high-level API to interface with graphics cards. It is portable in the sense that it works on almost all graphics cards and all systems, and high level since it abstracts away the differences in graphics card functions and drivers. This means you get to skip the slowness of Java2D and be able to directly access the power and performance of raw graphics card awesomeness. This may all seem neat and amazing but there is 1 drawback......its API is written in C (another language). This means you can't really access it directly from Java without writing native code doing a lot of complicated stuff. Well fear not, a bunch of really cool people wrote a library that lets you access these functions and more, and these cool people named it the Lightweight Java Game Library (LWJGL). There is also another group of cool people who wrote a similar library and called it JOGL. They are both almost exactly the same and the only difference is in your perception of it and your choice. However, it seems the LWJGL community is far bigger than the JOGL community and there is a lot more support for it.

-There are some libraries that try to simplify your life when making 2D/3D games and GUIs using OpenGL. Such tools include:
   -Slick2D: an open-source library whose API looks very similar to Java2D yet uses LWJGL underneath. So it lets you make 2D games without worrying about the details underneath. However, it is best if you understand the underlying inner workings so you can gain experience and be able to understand any problems you run into.
   -libGDX: open-source library that easily allows you to make OpenGL applications on PCs, HTML5, iOS and Android
   -Java Monkey Engine (JME): fully featured Java 3D engine built on LWJGL that has tons of tools for making professional-looking games
   -jPCT: Another 3D engine built on LWJGL that to some is simpler and easier than JME yet isn't as powerful.
   -Ardor3D: A recently emerging 3D engine also built on LWJGL that looks very promising, from what I've heard it combines the ease of jPCT and the power of JME.
   -Themable Widget Toolkit (TWL): A GUI widget toolkit. It is very powerful and allows for full customization of your widgets. This is the "Swing" version of OpenGL Wink An alternative to TWL is scene2d.ui which is part of libgdx.

These tools and engines are nice to use if you don't want to get too much into the details of OpenGL. However, it is better if you do because it is just nicer to understand what is going on behind the scenes and will help you debug any problems you run into. These libraries just ease the lives of those who already understand OpenGL, rather than helping ignorant impatient programmers who want to get their hands dirty in 3D designing.

Well this was a long post, and I hope you now understand the current situation of Java gaming and have a basic timeline of your future Smiley
If you need any help or assistance, we are always here to guide and point you along the way, not to spoon feed you with code. Remember, we're all a bunch of chill dudes sacrificing our time to help newbies because we enjoy it Cool
You can also join us at the #lwjgl channel on the Freenode IRC network for more help, but know that if no one responds, do idle since we are all on different timezones (half of them live in Europe!).

Good luck!!!! Cheesy

LINKS:
   -Java Resources: http://www.java-gaming.org/index.php?action=resources
   -OpenGL tutorials - Java ports
This wiki entry has had 20 revisions with contributions from 6 members. (more info)
Offline ra4king

JGO Kernel


Medals: 336
Projects: 2
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2012-08-22 22:48:10 »

@Riven, the save feature of in-post editing doesn't work :S

Offline ReBirth
« Reply #2 - Posted 2012-08-23 04:36:59 »

@ra4king
I did little modify and the save worked Smiley

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Best Username Ever

Junior Member





« Reply #3 - Posted 2012-12-09 18:02:23 »

Quote
-Slick2D, also mentioned above, is an open-source library whose API looks very similar to Java2D yet uses LWJGL underneath. So it lets you make 2D games using the same API you will soon learn and love without worrying about the details underneath.

Doesn't Slick use the depreciated parts of OpenGL?
Offline ra4king

JGO Kernel


Medals: 336
Projects: 2
Exp: 5 years


I'm the King!


« Reply #4 - Posted 2012-12-09 21:15:18 »

Quote
-Slick2D, also mentioned above, is an open-source library whose API looks very similar to Java2D yet uses LWJGL underneath. So it lets you make 2D games using the same API you will soon learn and love without worrying about the details underneath.

Doesn't Slick use the depreciated parts of OpenGL?
Deprecated*

Yeah, but it's useful for learning how to design games without worrying about graphics yet, and without suffering through Java2D Tongue

Offline gouessej
« Reply #5 - Posted 2012-12-10 08:19:18 »

Yeah, but it's useful for learning how to design games without worrying about graphics yet, and without suffering through Java2D Tongue
It's a possible approach but the reverse one has some advantages too. In my humble opinion, it is better to understand the low level APIs before using middle level APIs and high level APIs, it drives you much more autonomous even though it is harder, understanding OpenGL is helpful to use 3D engines based on it, you're able to fix almost any bug in their implementations and you can use them with a bigger ease when you understand the underlying concepts on which they are based, I explained that here.

Offline CommanderKeith
« Reply #6 - Posted 2013-10-16 19:40:07 »

Geez, someone put in a 'let me google that for you' link in named 'the best tutorial ever' that googles java tutorials.
The last thing that beginners appreciate is a patronising tutorial/teacher.

Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #7 - Posted 2013-10-16 19:50:14 »

Nobody ever said Slick2D used OpenGL...

Welp, time to port my game for the 50th time.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline davedes
« Reply #8 - Posted 2013-10-17 03:04:02 »

Nobody ever said Slick2D used OpenGL...

Welp, time to port my game for the 50th time.
Why bother? You will just end up porting to LibGDX in the end... Tongue

Offline opiop65

JGO Kernel


Medals: 153
Projects: 7
Exp: 3 years


JumpButton Studios


« Reply #9 - Posted 2013-10-17 03:16:32 »

Why are you against OpenGL?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #10 - Posted 2013-10-17 03:46:45 »

It's the opposite.

I was using Java2D for everything. I have nothing against OpenGL.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline opiop65

JGO Kernel


Medals: 153
Projects: 7
Exp: 3 years


JumpButton Studios


« Reply #11 - Posted 2013-10-17 03:54:16 »

Ah, oh I see. Yeah, that would work too!

Offline Troubleshoots

JGO Knight


Medals: 36
Exp: 7-9 months


Damn maths.


« Reply #12 - Posted 2013-10-22 11:46:43 »

Great post. In the past two months I've taught myself pretty much everything here and learnt most of the basic concepts of game development. Although I was planning to progress on to LibGDX anyway, this post is nonetheless helpful. In the near future I'll finish up teaching myself about collections then start learning about OpenGL. Once again, thanks for the great post. Smiley

Why are all OpenGL tutorials written in Brainf**k?
Offline etnos

Innocent Bystander





« Reply #13 - Posted 2013-11-18 18:26:02 »

Hi guys, I'm new to the site, nice to meet you all.

I've been a 3d artist for quite some time now, however I wanted to code so I started learning programming about 6 months ago. I'm quite the noob, I started with python and now I'm moving into Java mostly because I like the OO approach and I prefer open source tools.

Anyway, I want to make a basic engine with the awt package, just to get a better understanding of how a game engine works. I have found some videos here and there but they not so great, I'm wondering if you guys know about a good tutorial for this, or a source code I can look into?

Cheers!
Offline RobinB

JGO Ninja


Medals: 44
Projects: 1
Exp: 3 years


Spacegame in progress


« Reply #14 - Posted 2013-11-18 18:38:53 »

First of all, welcome.

1. Dont post on random threads with a question.
2. Dont build a engine as first practise.
3. Never use awt and game in one sentence Smiley.

Just follow some introduction tutorials for game programming (there are plenty named around this forum).
Offline ReBirth
« Reply #15 - Posted 2013-12-01 04:14:52 »

3. Never use awt and game in one sentence Smiley.
I want to make game. I think I will use AWT Pointing

Since you are 3D artist, maybe you want jump to 3D game? then I suggest to use library like JME or Libgdx.

Offline ra4king

JGO Kernel


Medals: 336
Projects: 2
Exp: 5 years


I'm the King!


« Reply #16 - Posted 2013-12-02 03:49:26 »

Oh god no, AWT is such a... bad thing when it comes to games. In fact, I don't believe I've ever used it. Swing is more than sufficient for any task I can think of, and its pretty.

Swing uses AWT to paint the GUI widgets....

Pages: [1]
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

pw (22 views)
2014-07-24 01:59:36

Riven (20 views)
2014-07-23 21:16:32

Riven (17 views)
2014-07-23 21:07:15

Riven (20 views)
2014-07-23 20:56:16

ctomni231 (48 views)
2014-07-18 06:55:21

Zero Volt (44 views)
2014-07-17 23:47:54

danieldean (35 views)
2014-07-17 23:41:23

MustardPeter (38 views)
2014-07-16 23:30:00

Cero (53 views)
2014-07-16 00:42:17

Riven (52 views)
2014-07-14 18:02:53
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!