Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (695)
Games in Android Showcase (202)
games submitted by our members
Games in WIP (767)
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 ... 11
1  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-09-22 17:12:53
What I did today (and yesterday!): Played around with Physically Based Rendering (PBR) in Blender.
All within a 'masterfile' that has all the shaders I ever made (or will make).

2  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-09-22 10:56:15

The link seems to be broken?
3  Discussions / Miscellaneous Topics / Re: What I did today on: 2016-09-16 19:26:43

This game gets pretty depressing after a while...

Also, tried my hand at web design once again:
4  Discussions / Miscellaneous Topics / Re: CuBBool Pixel language on: 2016-09-12 15:11:46
- in some way its even better then QR codes because you can decode text manually

If it were better than QR-Codes, it'd have some form of error correction. Does it?
5  Game Development / Game Mechanics / Re: Downloading and running jars from servers - Security? on: 2016-08-30 07:54:24
Good point, I should stop worrying about security and just make it more functional.
I'll make the requirement that mods must be downloaded online, rather than from entering a server.

You could also go and make two modding API's (that are 'one' behind the scenes):
One that is based on 'configuration files' (json/xml/ini), and another that uses 'code files' (java).

The API based on configuration files is easy to secure:
Its entirely data driven, so as long as you don't add the ability to reference resources that are not in the game assets, and/or functions that allow the modder to arbitrarily pack together data, it will be 'secure'. These mods can be made downloadable from a server without much issues.

Problem might be that modding based on configuration files is pretty much useless, so you might have to add something like a simple 'command' language (similar to how Minecraft did it) that allows the modder to execute simple commands from simple actions, all still within the sandbox of the surrounding program.

The API based on code files ala' Java... you cant secure. Mods based on these should not be downloadable from a server, since loading and executing class files is a security hole the size of the solar system and bigger.

Good luck!
6  Game Development / Game Mechanics / Re: Downloading and running jars from servers - Security? on: 2016-08-29 06:20:31
How does Minecraft manage the security risk in forge mods?

Not at all. One can easily add spyware into a MC-Forge mod; there is nothing stopping you from doing so.
It actually happened a couple of times with a well known Pokemon mod (don't ask me which one!).
7  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
8  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...
9  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?
10  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.
11  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.
12  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:
13  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):
14  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.
15  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.
16  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.
17  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!
18  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:
19  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:
20  Discussions / General Discussions / Re: Analytics on JGO? on: 2016-05-09 13:51:19  and might be interesting then.

EDIT: Messed up the links.
21  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...
22  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.
23  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();
24  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.
25  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
26  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
27  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.
28  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.
29  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.
30  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.
Pages: [1] 2 3 ... 11
Roquen (42 views)
2016-10-17 12:09:13

Roquen (43 views)
2016-10-17 12:07:20

Icecore (61 views)
2016-10-15 19:51:22

theagentd (320 views)
2016-10-04 17:29:37

theagentd (321 views)
2016-10-04 17:27:27

xTheGamerPlayz (599 views)
2016-09-26 21:26:27

Wave Propagation (788 views)
2016-09-20 13:29:55

steveyg90 (878 views)
2016-09-15 20:41:23

steveyg90 (863 views)
2016-09-15 20:13:52

steveyg90 (811 views)
2016-09-14 14:44:42
List of Learning Resources
by elect
2016-09-09 09:47:55

List of Learning Resources
by elect
2016-09-08 09:47:20

List of Learning Resources
by elect
2016-09-08 09:46:51

List of Learning Resources
by elect
2016-09-08 09:46:27

List of Learning Resources
by elect
2016-09-08 09:45:41

List of Learning Resources
by elect
2016-09-08 08:39:20

List of Learning Resources
by elect
2016-09-08 08:38:19

Rendering resources
by Roquen
2016-08-08 05:55:21 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!