Discussion:
[Sweng-Gamedev] Sweng-Gamedev Digest, Vol 76, Issue 1
Jérémy Masson
2016-02-01 13:17:08 UTC
Permalink
Hello Peter,

I have some experiences in game creation/design with Java, and here is what
I can tell you :

Graphics :

There are tons of graphic frameworks, even only for Java, and it's a real
pain to find one that suits your needs. A lot of those projects become or
will become inactive or insufficient (compare to OpenGL updates or the way
your game evolve) and the price of adapting your code to another framework
is always really high.
OpenGL is an API used to communicate directly with the GPU and other
hardware functionalities implemented into graphic cards. Learning how to
use this API is the best you can do (through 2D or 3D) to learn how to make
complex graphics well rendered in the end. But you will quickly discover by
yourself that graphic efficiency is in itself really complex because of
being tied to the heavy load of possibilities and options available.
During the beginnings of my experience in game design, I really didn't want
to lean over all the graphic complexity. And I already knew how to create
and render 3D models with a camera/viewport but I got stuck with a lot of
unexpected problems even in 2D drawing (e.g handle draw order/z-index,
smooth scrolling, choosing the right drawing method, use blending, use
alpha channel the right way, aliasing and anti-aliasing, sampling, shaders,
etc...).
For me, everything changed when I decided not to learn OpenGL directly but
to learn a solid framework that has a more friendly layer than OpenGL API
or other tiny graphic frameworks (that looked easy but were finally
incomplete and error inducing). LWJGL <https://www.lwjgl.org/> is built on
OpenGL like a top-layer used to access OpenGL functionalities more easier
and "cleaner" for newbies. It really changed my point of view on graphics
and it's usage and I did some good work with it. You should really look
into it as it is a very active project and it's updated to OpenGL 4.5 specs
(latest if i'm not wrong). JOGL is another known top-layer of OpenGL. I
wouldn't advise using it but my researches and readings on it date back to
5 years or more so...
Finally LibGDX <https://libgdx.badlogicgames.com>, which uses LWGJL is the
best framework I've been using to make Java games. Badlogicgames make real
badass tools ! Also check

Architecture :
When working on games people are usually advised against using Java because
of (IMO) unjustified performance capacities. I never felt limited by Java
but most of my experiences are with 2D games, so I don't know really for 3D.
----- Sorry i don't have much time left to write so i'll be quick on this
part -----
The problem might be that Java is Object oriented first and it's not the
best architecture to use in game making. Hopefully the Java community
always provide interesting answers and Artemis-odb
<https://github.com/junkdog/artemis-odb> framework really blew my mind in
game designing. It took me months to adapt my classic (MVC/MVVM or such)
way of developing and wrap my mind around Data Oriented Architecture but it
really worth it. The Entity System provided by Artemis is what game
developers needs !

For your questions on 3D graphic frameworks, Unity3D is what I heard the
most and work really well with Java. Ogre3D seems newer but I don't know
anything about it. And if you're not tied with the language, I really
suggest your interest yourself in the Unreal Development Kit
<https://www.unrealengine.com/unreal-engine-4> which is really, really
amazing.

Bye,
Jeremy
Send Sweng-Gamedev mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Sweng-Gamedev digest..."
1. How to do complex graphics output efficiently? (Peter Nabbefeld)
2. Re: How to do complex graphics output efficiently? (comp4k678)
----------------------------------------------------------------------
Message: 1
Date: Fri, 29 Jan 2016 07:31:57 +0000 (UTC)
Subject: [Sweng-Gamedev] How to do complex graphics output
efficiently?
Content-Type: text/plain; charset=us-ascii
Hi,
I've never developed a game before, and I wonder how to do complex graphics
output efficiently. Currently, I dont't want to use a framework, just want
to learn some basics.
1. In 2D games, You often have objects behaving equally, e.g. a swarm of
birds, all flapping with their wings - sometimes even asynchronous. From my
point of view there seem to be two possible solutions: (a) Using animated
GIFs (b) Using one object with several image layers, which could be drawn
individually using Flyweight objects with timers/counters.
2. How to make a 3D view with e.g. animated animals, fog, etc.? I want to
use Java, Ogre4J seems to be inactice since 2009, JOGL seems rather basic,
so is there any good framework to draw animated 3D objects?
Kind regards
Peter
------------------------------
Message: 2
Date: Fri, 29 Jan 2016 12:40:19 +0100
Subject: Re: [Sweng-Gamedev] How to do complex graphics output
efficiently?
Content-Type: text/plain; charset=windows-1252
Hi Peter
If you want to learn the basics, the traditional way of running a game
is with a game loop, an endless loop where you check input, update the
internal game logic, and render the screen in that order. For 2d games,
first you render the background, and then you render sprites on top of
that, in order. For 2d games with animated sprites you simply draw a
different frame at the position of each object each time you render the
screen. The individual frames can be stored as any format, e.g. PNG.
Forget about (animated) GIF, it's outdated.
Historically, games are mostly written in C/C++, although Java probably
is used on Android these days and I'm pretty sure Python has excellent
support as well. When developing for a PC, I wouldn't do it in Java,
although there's nothing wrong with the language per se, it's just not
so much used for making 'simple' games so it will be hard to find help.
So I'd probably go with Python so I don't have to wait for things to
recompile as is the case with C/C++. Python is a fun and easy language
to try things out with.
For 2d games, the bare minimum you need is a language and a graphics
library that allows you to draw sprites on the screen (so you don't have
to manually update every pixel ;), and to get input from e.g. keyboard
and mouse. For C/C++, SDL is a good choice although it's a bit old, but
it will be quite efficient. (It probably won't use much of your GPU,
instead, efficient CPU instructions are used, which is fine because the
overhead involved with using a GPU will be larger than the speed gain
for 2d. Even slow CPUs can handle 2d graphics perfectly well.)
Also, be prepared to get better at programming as you go, the best
school is to try things out, to look at other people's code and learn
from that.
For 3d games, if you don't want to use a framework, you'll have to learn
plain OpenGL so your graphics card is used to render stuff, but most
tutorials found on the web are incredibly outdated so the best way to go
is read an experts book, but those are hard for a beginner. Also the way
to set up an OpenGL context is platform dependent so you have to do the
work again for each platform. And you can't just call OpenGL from your
game objects because that will lead to a lot of code duplication and
unnecessary coupling. So you'll have to write your own engine, which is
a lot of work and so far from one's initial motive to make a fun and
interesting game that it's really better to just use a decent engine. In
the community, C++ is the most popular choice, you'll get the best
performance but it's also a pain in the ass to wait for things to
compile each time you change something, and you have to manually write
header files which is unnessary work IMO, a machine should do this for
you. Java is better in this regard but there aren't a lot of people
using it for 3d games (unless maybe Android).
Anyway it's been such a long time I did anything gamedev-related so
don't take my word on what languages & library to use. But I'm pretty
confident about what I said about the 'basics' of 2d & 3d development.
Good luck
Joeri
Hi,
I've never developed a game before, and I wonder how to do complex
graphics
output efficiently. Currently, I dont't want to use a framework, just
want
to learn some basics.
1. In 2D games, You often have objects behaving equally, e.g. a swarm of
birds, all flapping with their wings - sometimes even asynchronous. From
my
point of view there seem to be two possible solutions: (a) Using animated
GIFs (b) Using one object with several image layers, which could be drawn
individually using Flyweight objects with timers/counters.
2. How to make a 3D view with e.g. animated animals, fog, etc.? I want to
use Java, Ogre4J seems to be inactice since 2009, JOGL seems rather
basic,
so is there any good framework to draw animated 3D objects?
Kind regards
Peter
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------
Subject: Digest Footer
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------
End of Sweng-Gamedev Digest, Vol 76, Issue 1
********************************************
Loading...