Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (686)
Games in Android Showcase (197)
games submitted by our members
Games in WIP (758)
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 ... 10
1  Discussions / General Discussions / Re: Why is Minecraft bad? on: 2016-08-12 01:09:31

Out of curiosity, how could it be done better? I imagine having the only input as a string limits your options somewhat

Most interpreters/compilers for various languages only need a string (or a file... which is a string) to generate executable code/to interpret the code.

So... a better way would be to use a tokenizer for taking apart the command string, just like actual programming languages do. After that one could convert the resulting tokens (strings, numbers and operators) into an Abstract-Syntax-Tree for further processing, or directly execute the tokens. The latter option is actually easier here, because many commands have different parameters, in different orders and amounts, which makes building an AST pretty complicated if not impossible (its also easier to extend).

Does that answer your question? Smiley
2  Discussions / General Discussions / Re: Why is Minecraft bad? on: 2016-08-11 12:08:56
I'm currently working/helping on a mod for Minecraft, and so I get to see a lot of decompiled(!) Minecraft code.
Its actually pretty nice. The worst bits are the ones where the various game systems/modules meet ech other.
And then there's the command system...

I think I can say with 100% certainty that the command parsing system is the worst part of the entire game.
While the thing is already extremely (needlessly) complicated, it is still entirely based on String.split(" ") and a bunch of regexes.
It is, by far, one of the most outdated parts of the game.

Just my two cents...
3  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-07-26 11:52:18

Awesome; question:
Will you open source your renderer someday in the future?
4  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-07-22 20:08:19
What I did today... and yesterday and the day before:
Traveled (over night) ~1000 kilometres from south-germany (Mannheim) to north-germany (Hamburg), stayed at my girlfriends home for a night, had a job interview with auticon the next day, then traveled ~1000 kilometres back home right afterwards...

Got both an internship and a job offer for a position as junior software developer.

Current Emotional State:
Pretty much dead, but happy.
5  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-07-08 18:21:05
I started writing an XML parser today, and it's getting along pretty well. This one is part of college assignment, and is purely educational. Just did some work on the tokenizer and got some basic tokens.
Will generate these tokens.
This is pretty awesome, now time to add support for attributes. I'm omitting the prologue for simplicity and this is not a real parser.

Why not try writing a XML parser without using tokens?
Its a fun learning experience (and a taste of hell)!
I did it once; never released it.
6  Discussions / General Discussions / Re: What does your dream language look like? on: 2016-07-06 17:38:19
Just for the heck of it, this is how my dream language looks like:
7  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-07-03 16:44:09
Technically I did this 27 days ago, but who cares!

I was bored and ported the 'par easings' one-header library from here to Java. The code can be found here (Warning: No documentation):
8  Java Game APIs & Engines / Engines, Libraries and Tools / Re: LWJGL 3 - Nuklear bindings on: 2016-06-06 14:11:02
Is this another alternative of Display.class? I hope it is.
> Shameless unreleased advertising x)

This is not a new 'Display.class', this is a freakin GUI system built in right into LWJGL3; Did you even read what Nuklear is?!
Also, your post is 90% 'shameless advertising'.

Finally a quick-and-dirty GUI solution for LWJGL!
This is going to be very useful for prototyping.
9  Discussions / General Discussions / Re: XHON: eXtensible Human Object Notation on: 2016-05-14 22:04:01
Go for registration with IANA! Wink
Would be an awesome experience if your media type got accepted. Who knows.

Just a few little things that caught my attention:

1. Please back all of your syntactic elements with a grammar definition
2. Is a Java "type structure" really necessary?

I'm not even going to think about submitting a registration request. Just take a look at that formular! Not gonna do that.
Yes, I will put a grammar definition to any and all elements (tomorrow); and remove the java examples while I do so.

It's a good thing I learned EBNF a few weeks ago!

Edit: I stayed up until 3:30 in the morning and added grammar definitions to pretty much all elements; Updated PDF, link is the same.
10  Discussions / General Discussions / Re: XHON: eXtensible Human Object Notation on: 2016-05-14 20:29:17
The reason .json is so bad when editing it by hand is because it was not designed for that purpose. It was meant to be used to pass data around applications. The data in .json is supposed to be program generated, not hand written.

Are you going to have an example implementation with some code examples? It would be nice to have code examples of situations where certain aspects of the language are useful.

SHC is working on a prototype implementation currently (he's learning to write parsers).

Sadly, I am very (very) bad with thinking of examples, so it might take quite a while until I have some good examples.

EDIT: I will start implementing an actual parser as reference implementation tomorrow.
11  Discussions / General Discussions / XHON: eXtensible Human Object Notation on: 2016-05-14 19:56:50
Hello everyone!

After roughly 5 weeks of writing and lots & lots of thinking and tinkering, I finally finished the file format specification for a format I invented: XHON.
The name is a amalgation of 'XML' and 'JSON' and means 'eXtensible Human Object Notation'.

I created XHON because I wanted a format like JSON, but with comments, graphs, s-expressions and a few more things. Since extending JSON is not possible due to it being standardized and all other formats (like YAML, Hjson, EDN and XML) are either way too damn complicated, use significant whitespace (which I absolutely hate) or have weird limitations like not supporting comments (Why JSON, why?), I decided to invent my own format for my projects that doesn't have these problems; the result being XHON.

XHON is a superset of JSON and is thus fully backwards compatible to it but at the same time extending it with quite a bunch of features.

To give you a basic idea on whats in store, here is what XHON has on top of JSON:
  • Quoteless Keys
  • Comments (which can be stacked)
  • A more complete numerical type (that supports NaN and Infinity).
  • Strings that can go over multiple lines.
  • A byte array type for embedding binary data inside a plain text format.
  • An actual datetime type loosely based on the Joda-Time library.
  • A special 'unit' type for numbers to allow things like 200m².
  • A key/value type that allows duplication of keys and empty keys.
  • A type for writing paths made of elements instead of just strings.
  • A s-expression type ala LISP, making it possible to store expressions w/o strings.
  • A graph type for storing undirected/directed graphs in a format similar to TGF.
  • Parser function callbacks to allow easy extension and extension by macros.

...and all of this while still keeping the whole thing easely readable by both humans and computers.

Right now there is no parser implemented for XHON, though SHC is being awesome and is working on one!

Following is the link to the 19 page long PDF file that is the specification (hosted on google drive):

The specification is feature frozen, so the only thing left to do is to fix grammatical mistakes and (possibly) logical errors in the definitions.
So, if you happen to read the specification and stumble upon a grammar mistake or a logical error, please tell me!

Thank you and have a nice day!

- Lars Longor K

PS: I'm pretty darn happy that I managed to finish this specification. Yay!
12  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-05-14 13:14:31

And here is a railroad diagram generator for EBNF while we are at it:
13  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-05-14 13:02:59
- snip -

I'm now gonna try out extending this to support Longor's XHON.

Just so you guys know what he is talking about:
The XHON file format is a superset (with nifty features) of JSON that I developed.
The specification is pretty much complete (all features are in) and can be found here:
14  Discussions / General Discussions / Re: Analytics on JGO? on: 2016-05-09 13:51:19  and might be interesting then.

EDIT: Messed up the links.
15  Java Game APIs & Engines / Engines, Libraries and Tools / Re: Java Library written IN Java on: 2016-03-21 21:02:23
Writing custom renderers just for fun is cool, you just need to realize that you only do it for fun and it will not be usable in any real world scenarios.

Actually, there is a good use for software rendering: Occlusion Culling by Software Depth Testing.

Draw a bunch of occlusion bounding boxes with a software renderer into a depthbuffer, then check with another pass if the bounding boxes of any object are hidden by the pixels in the software depthbuffer. Its one of the fastest ways to do occlusion culling; the company Umbra is selling a library that uses this technique.

Someone should write a software renderer for occlusion culling in java...
16  Game Development / Newbie & Debugging Questions / Re: Procedural (never ending) map generation on: 2016-03-17 18:20:27
Perlin-Noise can be used as-is for infinite maps. You just got to

  randomValue = perlin2D(chunk.x + inner.x, chunk.z + inner.z)

That is, add the position of your chunk and the position of your point inside the chunk and pass that to the noise-function in question.
The result should be a smooth, never-ending terrain.
17  Game Development / Newbie & Debugging Questions / Re: (Individual Tile Classes vs Method Stacking) and Storing Tile Data on: 2016-03-15 18:04:13
Actually, Minecraft uses the flyweight design pattern for its blockdata.
The whole thing with the 'strings as IDs' is simply an abstraction on top of the whole thing;
Minecraft will forever use this exact system for managing its blocks.

So... Here's a simplified version of the entire thing:

  class BlockStorage {
    int[] blocks = new int[width * height * length]; // this is where your block are actually stored
    List<TileEntity> tileEntities = new ...; // this is where tile-entities are stored (can be a hashmap)
    // Returns the 'raw' data of the block as a integer at the given position.
    public int getBlockRaw(x, y, z) {
        return (y * width * length) + (z * width) + (x);
    // Returns a flyweight Block-object for the block at the given position.
    public Block getBlock(x, y, z) {
        return BlockList.blockList[getBlock(x,y,z)];
  // Contains a list (/array) of all flyweight Block objects.
  class BlockList {
    public static final Block[] blockList = new Block[...];
    static {
      blockList[0] = new BlockAir();
      blockList[1] = new BlockStone();
      blockList[2] = new BlockOven();
  // This class represents a simple abstract flyweight Block with metadata.
  abstract class Block {}
  // This is a block that can have a tile-entity.
  abstract class BlockContainer extends Block {
    abstract TileEntity createNewTileEntity();
  // The three classes represent actual Block types.
  class BlockAir extends Block {}
  class BlockStone extends Block {}
  class BlockOven extends BlockContainer {
    TileEntity createNewTileEntity() {
      return new OvenTileEntity();
18  Java Game APIs & Engines / OpenGL Development / Re: UV of a LightMap. on: 2016-03-02 18:17:12
You should be able to calculate the texture coordinates for your light mesh like this:
 lightmaptexcoord.xy = normalize((light.xy - vertex.xy) / light.radius) + 1.0 * 0.5

Do this for every vertex of the image you provided above and it should work.
19  Discussions / Miscellaneous Topics / Re: Happy 2016 on: 2016-01-01 13:35:44
Yay, new year!

- Try to not be so forgetful.
- Spend less time on reddit.
- Finally enter the coding phase of my TC project after 6 years of planning. :'D
20  Game Development / Performance Tuning / Re: Float Division vs Multiplication on: 2015-12-21 14:52:21
*benchmarks too*

Slow: 9.542 ms
Fast: 6.202 ms
21  Games Center / WIP games, tools & toy projects / Re: Suzzle on: 2015-09-29 11:22:34
I'm running Xubuntu Linux 14.04, Oracle Java 1.8.0_45 and it worked mostly fine.

When I first did the java -jar on the Suzzle.jar, it crashed with an UnsatisfiedLinkError, so me being lazy and not wanting to deal with command line voodoo magic, I used Ninja Cave's Jarsplice to pack all the resources and run it.

I really like the minimalistic art style. It's really cool  Grin

I was happily playing along and got to the level that said "Ha ha" with the jump and the spinning laser, so I jumped over the laser and the game crashed. The crash dump is here.

I have some questions though!
1. Why are you using JS and what for?
2. How did you get the screen shake when running?

I'm very impressed that it runs smoothly on my awful 2 GB Celeron laptop while having Ecipse, a million tabs in Chrome, Skype, various folders, Sublime Text and two terminals open. Well done!

1. The art style is minimalistic because I am a terrible artist.
2. The crash is normal. If the next level cannot be loaded the game just crashes. I should make it go to the mainmenu instead...
3. I redid the level loading system. JavaScript is no longer used from the next version on (I am using a simplified LISP now). Also means I will have to redo all levels.
4. Thats 'view bobbing'; though in this case its called 'DynamicCrazyBob'.
5. It runs smoothly mostly because there is barely anything drawn, and there is (pretty much) zero memory allocations.

Thanks for playtesting Suzzle. Expect a new version (hopefully) within the week.
22  Game Development / Newbie & Debugging Questions / Re: Handling a large variety of spells and/or weapons on: 2015-09-16 18:55:04
This type of spellHandling is already alot better than I am currently doing, but still is it the best?

Just chiming in here:
There is no such thing as 'the best', since different games/applications need different functionality.
You can't make a 'fit all' solution, its simply not possible.
23  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-09-16 15:26:36

Wow, this exact situation you are in is happening to one of my classmates too.
(That is; 'Friend' takes away girlfriend; Depression happens).

What I Did Today: Refactored my game Suzzle all the way to hell and back (twice) and subsequently reduced the packed filesize by roughly (EDIT) 2.3 megabyte while still keeping all game features intact. Ripping apart lwjgl2 is fun.
24  Games Center / WIP games, tools & toy projects / Re: Suzzle on: 2015-09-15 14:05:58
So... I downloaded LWJGL 2.9.3 and used that to build+pack a new version.
The download link in the OP got replaced, but I am gonna put it here too:
Download Suzzle from Google-Drive

Can anybody confirm that its (not?) working?

I started working on a ingame level editor (I can already select/pick objects). When I am done I can create new (and better) levels a lot faster. Right now its just terribly annoying/complicated to make new levels.
25  Games Center / WIP games, tools & toy projects / Re: Suzzle on: 2015-09-14 22:12:31
Well... I somehow managed to either pack the wrong version, or corrupted copies, of the lwjgl natives into the zip.
I will upload the correct versions tomorrow when I can use my neighbours internet connection, because right now uploading anything bigger than a few kilobytes takes forever. Also should update to lwjgl 2.9.3 while I am at it.

Here are some 'patches' you can merge into the Suzzle.jar, if you want to help debugging.

26  Games Center / WIP games, tools & toy projects / Suzzle on: 2015-09-14 20:47:18
Hi everyone!

About 3 years ago I started making a game for my little brother, then for some reason stopped working on it.
A few days ago I found the project files and decided to work on it again.

And here is the result!

Fun fact: This is also the first time I am releasing something that can be called a 'game' into the public.

Suzzle! (The name doesn't have a meaning)

This game is a simple 3D puzzle platformer were you can run, jump, press buttons, fall down and get burned to death by lasers.
There really isn't anything to explain about this game. Also, there isn't much content yet, only a few levels.

The controls are explained in game using floating text, but for no good reason here they are:
  • MOUSE, to look around.
  • W A S D, to move around.
  • SPACE, to jump.
  • SHIFT, to run.
  • LEFT MOUSE BUTTON, to click buttons.

The game uses:
  • LWJGL 2, by the lwjgl team.
  • TinySound, by kuusisto
  • Rhino, by Mozilla
  • OpenGLText, by Philip Diffenderfer

Running the game requires barely 10mb of ram, Java 1.6 (preferably 1.7), and a OpenGL 1.1 compatible graphicscard because I am using immediate mode rendering (don't ask why... just don't).

Here is the download (version 0.3):
Download from Google Drive
(Note: The download button is on a hidden taskbar at the top of the site)

Please report any bugs/errors/problems, and if you get a crashlog post it as a pastebin.

Feedback is appreciated and suggestions are welcome.

Have a nice day!

- Longor1996

IMPORTANT NOTE: The game seems to have problems starting on linux and mac due to the packed native libraries being corrupt/the wrong version. Sorry about that.
Uploaded a new version and replaced download link. Should be fixed now. Can anyone confirm?
27  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-09-13 18:17:02
What I did today... or rather the last few days!

I picked up a dead project of mine again after ignoring it for roughly a year.

Its a small 3D jump'n'run game called 'Suzzle'.
There are only 6 levels right now, but its pretty playable.

Here's a download (4.1 megabyte):

(PS: This is the first actual game I ever released, yay!)
(PPS: Not going to make a thread for it right now; Not enough content)
28  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-09-09 20:23:39
I made a logo in inkscape just for fun, and it actually looks okay for once!

29  Game Development / Newbie & Debugging Questions / Re: Patchwork style render on: 2015-09-06 21:21:04
Go and find out what values the voronoise function gives you at these 'edges', then try to 'if them out'.
30  Game Development / Newbie & Debugging Questions / Re: Patchwork style render on: 2015-09-06 09:54:39
You should take a look at this:
Non-so-efficient Java implementation (by me) here:
Pages: [1] 2 3 ... 10
roseslayer (383 views)
2016-08-06 11:43:29

roseslayer (351 views)
2016-08-06 09:43:11

xTheGamerCodes (427 views)
2016-08-04 15:40:59

xTheGamerCodes (418 views)
2016-08-04 15:40:24

orrenravid (770 views)
2016-07-16 03:57:23

theagentd (845 views)
2016-07-11 14:28:54

Hydroque (936 views)
2016-07-06 05:56:57

Hydroque (977 views)
2016-07-03 08:52:54

GrandCastle (788 views)
2016-07-01 09:13:47

GrandCastle (634 views)
2016-07-01 09:09:45
Rendering resources
by Roquen
2016-08-08 05:55:21

Rendering resources
by Roquen
2016-08-08 05:52:42

Rendering resources
by Roquen
2016-08-08 05:50:38

Rendering resources
by Roquen
2016-08-08 05:49:53

Rendering resources
by Roquen
2016-08-08 05:32:39

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 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!