Hi !
Featured games (88)
games approved by the League of Dukes
Games in Showcase (681)
Games in Android Showcase (196)
games submitted by our members
Games in WIP (746)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1] 2 3 ... 73
1  Discussions / General Discussions / Re: Any open-source RTS game? on: 2016-06-30 21:52:15
Zero-K is more advanced than Supreme Commander, and is open source (

However, it uses the (also open-source) Spring Engine (, which may not be very helpful if you're looking for something 'from scratch'.

There's also 0 A.D. ( if you're looking for a more medieval-themed RTS that doesn't use a streaming economy.
2  Java Game APIs & Engines / OpenGL Development / Re: Texture Loading on: 2016-06-15 22:05:09
You know, you've never said or supported anything I've ever said. Always baised.
Making a post just to say that I agreed wouldn't contribute anything to the discussion, which could explain this perceived bias (or maybe you just haven't said anything I agreed with). Don't take it personally.

Exempt the texture from opengl. They are unrelated at the moment. 21 bit is possible, you will have 2 bytes per pixel over 4. It would be much different looking at it as rgb only. You would have empty bytes/half bytes at the end. It isn't a bad idea to go this route and do this. There are some benefits you could get from using half bytes and the way I am looking at it, equivalent exchange. I'd gladly sacrifice colors we don't use for some basic gui colors.
In one post you say you're using half-bytes, in another you say you're getting half the number of states. I've tried twice (and trollwarrior has once) to show you that (2^8)^(1/2) != (2^8) * (1/2), but you keep taking it as a personal attack and ignoring the point I'm actually trying to get across.

You did post this in OpenGL development so I hope you can see why I made a point of saying OpenGL doesn't support 21-bit colour (it does support 16 bit colour).

To be honest, downing the idea is like calling cmyk color model redundant.
Redundant? No. Impractical for video games? Probably.

Also, why not ask my intentions?

To learn.
I'm trying to get you to learn. If you would stop assuming I have some personal vendetta against you then maybe I could help you.

It's worth noting that image size on disk (when using PNG) is in most cases far smaller than uncompressed in memory. Trying to make savings in disk usage is a worthless endeavour if it takes up the same space in memory.

Using 16-bit colour is only a worthwhile optimisation when you don't care about quality and are limited by bandwidth. And you can't know if you're limited by bandwidth until you actually make a game.
3  Java Game APIs & Engines / OpenGL Development / Re: Texture Loading on: 2016-06-15 09:31:00
256*256*256 is 16.777m (24 bit) colors. 128*128*128 is 2.097m colors.

Yes that is correct. 256^3 = 2^24 (24-bit) = 16.777mil. However, 128^3 = 2^21 (21-bit) = 2.097mil.

Is saving those three bits really so important? (And you can't really do 21-bit integers, so you're going to end up using 24 bits anyway) The VRAM of modern graphics cards is probably more than you could ever use as an indie developer (and if you're AAA, then you won't be going anywhere near this 'technique').

Besides, all of this "compression" is pointless unless OpenGL has a format that support it. Otherwise your low quality images are going to end up taking the same amount of memory as normal quality ones. And no, OpenGL does not support it. If you really want to save then just use one of OpenGL's compressed formats (and even then I don't think you're going to see any benefits).

And in the end all you can show for it is a half second speedup on something that only happens once, but at the cost of losing half the quality.

Save yourself the trouble and just use PNGs.
4  Java Game APIs & Engines / OpenGL Development / Re: Texture Loading on: 2016-06-15 02:31:06
I never said 128 colors either. It's just a color scale.

You said you were only going to 'split' bytes in half, representing each component with half a byte instead of the usual 1 byte.

Half a byte can only encode 16 different states (2^4 = 16), whereas you're saying you get a range of 128. Of course, you can still get a range of 128, but you still only get 16 shades, which means each shade is 8 units separated form the next (which for normal human sight, is pretty noticable).
5  Java Game APIs & Engines / OpenGL Development / Re: OpenGL Compatibility Check on: 2016-06-07 05:34:52
6  Discussions / Miscellaneous Topics / Re: Graphics Cards on: 2016-06-06 03:22:40
A Raspberry Pi Zero is only $5.
7  Game Development / Performance Tuning / Re: Faster way to find primes? on: 2016-03-14 18:55:31
You can skip over all multiples of 2/3 by incrementing in steps of 6 (starting at 0) and checking the number above and the number below.
8  Game Development / Newbie & Debugging Questions / Re: Video playing in game on: 2016-03-13 20:25:54
I have a suggestion...

Could you guys load in the video then provide the option to EXPORT the video in a raw-ish file.

I think it would be beneficial to everyone if...

> BMP-like header
> Image-like pixel storage

All I want to do is grab the initial pixel data given the data from a header and invoke each change to the pixel data over a course of time specified in the header.


Do you have any idea how massive the file would be?
9  Game Development / Game Mechanics / Re: How To Rotate/Position a Camera at a Point on: 2016-03-10 05:00:29

I, along with other members of the forum, are perfectly happy to help you learn this stuff if you're willing to put in the effort. But we're not going to waste time solving all your problems when other libraries (in this case, JOML) have already done that.
10  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Java OpenGL Math Library (JOML) on: 2016-03-10 03:27:22
I opened it to look at it and when it didn't explain to me what the coefficients and subscripts were I kind of just assumed and then got bored within two minutes.

Having this sort of attitude is a sure way of never learning anything. Maybe certain concepts came to you easily in the past, but that's no guarantee that it is always going to be the case.

Math is not easy. Programming is not easy. Learning any field beyond a few basic ideas is not easy. If you don't understand something you have to look for explanations, and explanations for those explanations, etc. until you finally get it.
If you find yourself in way over your head, it's probably because you're trying to learn something without the proper foundations of previous concepts, in which case you need to take a step back and learn all those.

If you want to become good at something, you have to work hard at it, whether it's interesting or not.
11  Game Development / Game Mechanics / Re: How To Rotate/Position a Camera at a Point on: 2016-03-10 02:07:12
Quick guide to your average "lookat" camera matrix:

You treat your matrix as a set of 4 columns, X, Y, Z, W, where each column is a 4-component vector.

The 4th component of the X, Y and Z matrices is 0. The 4th component of the W matrix is 1.

The first 3 components of the Z vector are a 3-dimensional vector representing the direction the camera is facing.
The first 3 components of the Y vector are a 3-dimensional vector representing the "up" direction of the camera (which direction will be 'up' on the screen).

The first 3 components of the X vector are a 3-dimensional vector representing the left/right (depending on your coordinate system) direction of the camera, ie: what direction is left/right on the screen. This vector can be derived from the previous two vectors through the cross product operation.

The first three components of the W vector are the position of the camera.

Therefore, set the W column/vector to the location of the camera.
Set the Z column/vector to the direction the camera is facing ((target - camera).normalize())
Use various vector math trickery (which I can't remember off the top of my head) to get the Y column.
Set the X column to the cross product of the Z and Y vectors.

To pan, you translate the target point.
To zoom, either move the camera closer to the target, or decrease the FOV (they will create somewhat different effects).
To rotate, you move the camera around the target in a circle.
12  Java Game APIs & Engines / OpenGL Development / Re: Culling faces on: 2016-03-10 01:49:53
I can't prove anything and they can't prove anything. There was nothing else to say.

The internet is emotionless and I am dealing with everyone who assumes any emotion or meaning.
If I were to attack someone over the internet, I would call myself stupid.
If I were to try to make sarcasm over the internet, I would call myself stupid. (Unless message saying *sarcasm* ya kno)

I've been holding back on posting this for a while now, but I guess it seems appropriate.
I happen to have saved the ending of our little discussion on IRC, mostly because of how amusing it was, but also if I ever needed to refer back to it in a time like this.

Maybe I can't prove anything, but everyone can decide for themselves.
For those with nothing better to do with their lives, here's how our discussion ended:
13  Discussions / General Discussions / Re: Forum is quiet on: 2016-03-08 23:13:45
It's not about the amount of posts, it's the quality and meaning.

A silent forum is just as good as, if not better than, one with a thousand posts but no useful information.

If you're looking for an online community to waste time on, there are plenty of places to go (reddit is the best I can think of). JGO is not one of them.
14  Java Game APIs & Engines / OpenGL Development / Re: OpenGL Samples on: 2016-03-07 03:13:08
Vulkan, to my understanding, works with OpenGL, but I have 0 research and 0 understanding of Vulkan.
Vulkan and OpenGL are independent of each other, although with the latest OpenGL plus the right extensions you can get almost identical behaviour in the common cases. (And having 0 knowledge of Vulkan now only puts you behind everyone else by a few weeks)

Quote from: Hydroque
OpenGL is too big to die out immediately and in the next 10 years it will still be around.

Probably, but people won't be bothered writing new tutorials by that time.

Therefore, you should just use the resources that are already available. They are plenty good enough to learn from. Lots of other people can manage and I don't see why you can't.

Even if you plan on jumping to Vulkan later, you probably still need to learn OpenGL first or you'll completely be lost.
15  Java Game APIs & Engines / OpenGL Development / Re: OpenGL Samples on: 2016-03-07 01:07:16
I'm going to throw in my 2c and say that writing OpenGL tutorials is soon going to be redundant.

On one side of the fence, you have people who don't care, and will just use an engine that hides it all away.
And on the other side, you have people that love all the low level fiddling, and therefore will ditch OpenGL for Vulkan.

There might be a very narrow area in the middle, but I suspect those people will be perfectly happy to use the resources that already exist.
16  Games Center / WIP games, tools & toy projects / Re: ChessBall on: 2016-03-07 00:59:07
Are you seriously arguing over switch vs if-else?

If your performance tuning is that specific then you should definitely not be using Java.
17  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-03-06 22:45:20
Could you check out my mat4 class later and tell me what is wrong with it?

Throw up a pastebin link and I (or anyone else) can have a look through it. (Also, being more specific as to what is wrong would help)

But you really should just use JOML.
18  Game Development / Networking & Multiplayer / Re: BufferedReader.ReadLine unexpectedly blocking on: 2016-03-05 07:32:27
Taking a quick look at this, you instantaenously call

ps = new PrintStream( socket.getOutputStream());
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

When you create multiple objects trying to read from the stream, you get problems. Only ever create one printStream object for each connection (as you only need to output data one way), but as for reading, if you are reading images or bytes or strings, you need to switch between and you should only read when you are looking for input, not processing.

Er... unless you're talking about something else that I missed, one of those is an input stream and the other is an output. Only one object will be reading.
19  Java Game APIs & Engines / OpenGL Development / Re: OpenGL Samples on: 2016-03-04 08:09:45
If you don't want to put in the effort for learning you don't deserve the results.

There are plenty of high-quality OpenGL tutorials and samples out there for anyone who looks. If you can't be bothered, then just find a library that abstracts it away.
20  Discussions / General Discussions / Re: Comparing Rust and Java on: 2016-03-01 01:30:42
@delt0r: Rust's advantage in this case is that it makes it really hard to write bad code. The compiler will scream at you and refuse to build until you write something sensible. That's not to say you can't write bad code in Rust, but you really have to go out of your way to do so.

I call bullshit.

You obviously haven't written anything in Rust Wink

The compiler doesn't need to be smart. It just has to enforce a set of simple rules. If your code doesn't fit those rules, even if it might be technically correct, it will still get rejected (but in the case of Rust, it's much more likely the programmer thinks their code is safe when it actually isn't).

Quote taken from reddit:
Borrow/lifetime errors are usually Rust compiler bugs.
Typically, I will spend 20 minutes detailing the precise conditions of the bug, using language that understates my immense knowledge, while demonstrating sympathetic understanding of the pressures placed on a Rust compiler developer, who is also probably studying for several exams at the moment. The developer reading my bug report may not understand this stuff as well as I do, so I will carefully trace the lifetimes of each variable, where memory is allocated on the stack vs the heap, which struct or function owns a value at any point in time, where borrows begin and where they... oh yeah, actually that variable really doesn't live long enough.

Rust sort-of splits bugs into two categories: accidental mistakes that can cause everything to catch fire and explode, and poorly designed or broken algorithms. It stops you doing the former by enforcing its rules, but the latter is obviously impossible (as you've said).

That said, not having to worry about the former makes it significantly easier to avoid the latter.
21  Discussions / General Discussions / Re: Comparing Rust and Java on: 2016-02-29 23:34:27
...most of the problems I have are getting obscure bullshit with makefiles, autoconf, configure, automake, etc. and libraries and types working together...

Cargo (Rust's official package manager, nearly always installed alongside rustc) is amazing. You add a few lines to a file (library_name="1.2.3"), run cargo build, and your program is compiled along with all its libraries (which can be sourced from the local filesystem, the official repository, or a github repo). I'd argue that it's far easier to handle dependencies and compilation in Rust than it is in Java.

@delt0r: Rust's advantage in this case is that it makes it really hard to write bad code. The compiler will scream at you and refuse to build until you write something sensible. That's not to say you can't write bad code in Rust, but you really have to go out of your way to do so.
22  Discussions / General Discussions / Re: Comparing Rust and Java on: 2016-02-29 22:14:48
But what most turns me off is that it's still fundamentally a very low-level language that suffers from all the pitfalls of C in that regard, throwing away all the lovely cosy virtual machine stability that I've grown to love.

Could you elaborate more on the "suffers from all the pitfalls of C" part, as Rust is designed to fix some of the most common/irritating problems (memory/type safety and a cross-platform standard library are the two main ones I can think of).
23  Games Center / WIP games, tools & toy projects / Re: WaveDefender(); //2D RPG-ish on: 2016-02-25 03:09:05
This site is called Why would you expect there to be a Javascript+WebGL version?

In all the time you wasted with your utterly useless posts, you could've just downloaded the game, allowing you to actually play it and give some feedback.
24  Discussions / General Discussions / Re: Vulkan 1.0 Release on: 2016-02-22 04:04:51
I've seen various reports on reddit/IRC channels saying some of the debugging functionality is broken. (annoyingly, I can't find any right now)
25  Discussions / General Discussions / Re: Unity3D/2D on: 2016-02-22 03:54:02
As much as I'd love to hate on Unity, it does what it's supposed to do, and does it fairly well.

As a fun exercise, let's apply all of these to Java:

Let's discuss why Java is such shit.

My views:.
Object oriented and hidden customizable things
Complicated UI that doesn't fit anyones preferences (But at least we have 2 complicated UI libraries that don't fit anyone's preferences)
Code that I don't trust is doing simplistic things (The execution of our code is at the mercy of the JVM)
Really high level code floods the space (We really should go back to punching holes in tape)
Horrible style of code (Okay this is subjective no matter what language)
26  Discussions / General Discussions / Re: Engaging the Voyage to Vulkan on: 2016-02-16 21:18:42
Guess how many lines of cross-platform C code it requires to draw a single textured triangle now?
Answer: 2413
Count probably another 1000 lines for proper API error checking, which this demo explicitly omits.
Now Java 2D Processing does not look that bad, does it? Wink

I'll need to look into it further, but a fair amount of that C code appears to be window creation, which is always going to be an absolute mess to make cross-platform unless you have a library for it.

And besides, you don't get this much extra power for free.
27  Discussions / General Discussions / Vulkan has been released! on: 2016-02-16 19:05:15
I woke up to the pleasant news that Vulkan has been released.

Also looks like I made the right decision switching to Nvidia at the start of this year, as AMD is yet to release a Linux driver.
28  Game Development / Newbie & Debugging Questions / Re: Ways(or Best Way) of Declaring Orthographic Projection on: 2016-02-12 04:49:17
(-window_width/2, window_width/2, -window_height/2, window_height/2)

Scales properly for pixel art and keeps (0, 0) at the centre of the screen (which makes manipulating the camera easier).
29  Java Game APIs & Engines / OpenGL Development / Re: Massive internal JEmalloc/Nvidia driver memory leak? on: 2016-01-09 03:13:46
@Icecore and everyone else
I really don't know where to proceed from here on. Is there any way to trace which library/.dll-file is allocating all this memory to confirm that it's the driver?

On linux there's valgrind for debugging these sorts of problems, but assuming you still haven't got a linux box/VM up and running (also the bug might be a platform-specific thing anyway), that's not exactly helpful.

A quick search on the internet turns up with, which at least has the memory-leak checking aspect.
30  Discussions / Miscellaneous Topics / Re: Happy 2016 on: 2016-01-01 22:32:22
  • Get a game on greenlight. (And at the same time, try to use it for as many school assessments as possible, eg: Music, Computing, Business)
  • Get said game through greenlight and make some sort of profit.
  • I'd like to do some sort of 3D project, but it'll depend on how much time I have between school and getting my main project greenlight-able
  • Get my restricted driver's license (total procrastination so far: 12 months)
Pages: [1] 2 3 ... 73
GrandCastle (21 views)
2016-07-01 09:13:47

GrandCastle (21 views)
2016-07-01 09:09:45

CopyableCougar4 (77 views)
2016-06-25 16:56:52

Hydroque (107 views)
2016-06-22 02:17:53

SwampChicken (112 views)
2016-06-20 13:22:57

SwampChicken (113 views)
2016-06-20 13:22:49

SwampChicken (106 views)
2016-06-20 13:22:26

Hydroque (150 views)
2016-06-15 08:22:50

Hydroque (145 views)
2016-06-13 06:40:55

DarkCart (252 views)
2016-05-29 02:30:33
Making a Dynamic Plugin System
by Hydroque
2016-06-25 00:13:25

Java Data structures
by BinaryMonkL
2016-06-13 21:22:09

Java Data structures
by BinaryMonkL
2016-06-13 21:20:42

FPS Camera Tutorial
by Hydroque
2016-05-22 05:40:58

Website offering 3D Models specifically for games for free
by vusman
2016-05-18 17:23:09

Website offering 3D Models specifically for games for free
by vusman
2016-05-09 08:50:56

Website offering 3D Models specifically for games for free
by vusman
2016-05-06 11:10:21

Website offering 3D Models specifically for games for free
by vusman
2016-04-29 12:56:17 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‑
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!