Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (797)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (864)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 211 212 [213]
  ignore  |  Print  
  What I did today  (Read 3397069 times)
0 Members and 7 Guests are viewing this topic.
Offline 65K
« Reply #6360 - Posted 2019-06-23 08:55:54 »

These 2 logos are my 2 finalists.
left

Lethal Running - a RPG about a deadly game show held in a futuristic dystopian society.
Offline TritonDreyja
« Reply #6361 - Posted 2019-07-03 00:46:04 »

Porting TritonForge to libgdx has been equally frustrating and rewarding, especially after so many months without writing a single line of code. But anyway, the world now renders WOOO, and lighting is now done via vertex averaging!



Game runs a lot smoother and the physics are much cleaner than they used to be thanks to libgdx delivering delta as a float. Overall I'm becoming very happy with it.

The viewport is also fully resizeable now and the in game camera expands/shrinks to accomodate it based on screen resolution (was an absolute NIGHTMARE to try and do in Slick2d before). The scale value can also be modified live without any consequences which is nice!

now to tackle the next problems.....

Offline Shatterhand
« Reply #6362 - Posted 2019-07-06 13:24:48 »

Finally released my game FruityFrank!

Cheers

Micro$oft broke Volkswagen's world record: Volkswagen only made 22 million bugs!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline TritonDreyja
« Reply #6363 - Posted 2019-07-07 04:06:31 »

Last update I'll throw on this thread for a while, as to not treat it like its my own, but the libGDX port of TF is really turning out well. everything is smooth and flexible.

Click to Play


day/night sky and sun have been reimplemented.
block rendering masks were reimplemented.
character and animations were reimplemented.

 Grin
Offline Guerra2442

JGO Coder


Medals: 70
Exp: 3 years


Guerra24


« Reply #6364 - Posted 2019-07-17 08:08:31 »

After my 3-month break I'm back with improved contact shadows, this time is an hybrid ray-march instead of a pure ray-tracer.







Still needs improvements but it's way better than the previous one.

Working on Light Engine.
Offline TritonDreyja
« Reply #6365 - Posted 2019-07-17 16:28:15 »

More tweaks to world generation have been made. Caves have a more organic form and whatnot.
Next is tweaking  my lighting engine to improve performance.
Offline dime26

JGO Wizard


Medals: 86
Projects: 7
Exp: 12 years


Should traffic wardens be armed?


« Reply #6366 - Posted 2019-07-26 00:35:04 »

Added a new part to the LibGDX tutorial series I started some time ago:

https://carelesslabs.wordpress.com/2019/07/25/making-a-libgdx-game-part-14-firing-bullets-gamedev/

Click to Play
Offline KaiHH

JGO Kernel


Medals: 703



« Reply #6367 - Posted 2019-07-30 20:39:02 »

Today evening I played a bit with getting a minimalistic Java/OpenGL binding working that is capable of GraalVM native image compilation. Built a very simple glClear(), glfwSwapBuffers() example that weighs at ~8MB (main executable + single JNI shared library with GLFW and GLEW built into - will probably soon switch to GLAD). This was mainly a test that shared library loading and JNI in GraalVM native image actually works and System.loadlibrary() when in a static initializer block will apparently defer to being called at runtime.
Why GraalVM native image? => Small executable size, very small runtime footprint, very very fast startup time, no JVM dragged in the distribution/deployable (okay... the SubstrateVM is also a VM, but well... without a JIT). The only downside: GraalVM native image does not really work on Windows... (need Windows 7 SDK which cannot be installed on Windows 10...)
Next is looking deeper into LWJGL 3 and see what can be done to allow GraalVM native image compilation there.
Offline elect

JGO Knight


Medals: 69



« Reply #6368 - Posted 2019-07-30 22:57:47 »

it'd be quite interesting comparing that with a stripped down modularized java11 jdk
Offline KaiHH

JGO Kernel


Medals: 703



« Reply #6369 - Posted 2019-07-31 18:47:51 »

Today I used my gl.xml parser from LWJGLX/debug, modified it a bit so that it will spit out a JNI C file with all OpenGL functions and a Java file with the native methods counterpart. Also now using a generated GLAD loader to load OpenGL function addresses internally. Next was the problem whether native image would support reflection lookups of sun.misc.Unsafe.theUnsafe and java.nio.Buffer.address fields stored in static final fields. And indeed, it does! But only if the loading of those fields is very immediate, as in:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
import sun.misc.Unsafe;
import java.lang.reflect.Field;
import java.nio.Buffer;
public class MemUtil {
    private static final sun.misc.Unsafe UNSAFE;
    private static final long ADDRESS;
    static {
        try {
            Field field = Unsafe.class.getDeclaredField("theUnsafe");
            field.setAccessible(true);
            UNSAFE = (Unsafe) field.get(null);
            ADDRESS = UNSAFE.objectFieldOffset(Buffer.class.getDeclaredField("address"));
        } catch (IllegalAccessException | NoSuchFieldException e) {
            throw new AssertionError(e);
        }
    }
    public static long ptr(Buffer buffer) {
        return UNSAFE.getLong(buffer, ADDRESS);
    }
}

Anything more complicated, like iterating over all declared fields of sun.misc.Unsafe and seeing whether one is of type sun.misc.Unsafe, makes it fail, but that's probably because native image throws away any reflective class information other than what people are usually doing (such as direct lookup of a common field, such as "theUnsafe").
However, there is a possibility to mark a field as being an object field offset.

Anyway, now that I had a very direct and plain Java/OpenGL binding supporting off-heap memory addresses, I was able to fill a VBO and render that via a GraalVM native-image built executable:
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline CommanderKeith
« Reply #6370 - Posted 2019-08-05 08:23:16 »

Wow 8MB is really low. Nice job KaiHH
Using JLink 10.8MB can be achieved for a command line interface
But for a GUI it's 29MB according to this blog:
https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/


Offline KaiHH

JGO Kernel


Medals: 703



« Reply #6371 - Posted 2019-08-05 09:00:32 »

8MB is for the uncompressed files' combined size. If, in addition, I tar.gz it, it's 1,247,600 bytes. Smiley
Offline CommanderKeith
« Reply #6372 - Posted 2019-08-05 09:17:43 »

That's pretty incredible.
It will be interesting to see the future of what this new VM (or is it an ahead of time compiler?) can do and whether Oracle invest much into it.

Offline KaiHH

JGO Kernel


Medals: 703



« Reply #6373 - Posted 2019-08-05 12:49:04 »

Your application and all of its class/jar dependencies are ahead-of-time compiled to native code. But they still require a "runtime" to function correctly, which is linked statically into the executable. This runtime is called SubstrateVM. It contains the most basic features required by the application, such as a memory allocator with garbage collection, networking (including TLS/SSL) and threading support. It does not, however, contain a Just-In-Time compiler (which HotSpot is for OpenJDK), because... well... everything is already compiled to native code.
But the whole GraalVM Native Image hype is primarily driven by serverless (FaaS) application architectures requiring their functions/deployables to have very low cold-start times. Throughput is better with a JIT-compiled application. There have been measurements with Quarkus and Graal Native Image vs. HotSpot, and HotSpot does perform better once it is warm.
Ahead-of-Time compilation with GraalVM is all about having a small deployable (which for game development is not an important argument, I guess) and about having low startup times (which also is not an argument for game development with games out there going into the tens of gigabytes to download).
But it is an interesting thing to explore nonetheless.
Offline KaiHH

JGO Kernel


Medals: 703



« Reply #6374 - Posted 2019-08-05 18:46:51 »

On another note: Just built a maze generator and integrated that into an existing path tracing demo.

Maze generator code (produces a 2D array of bytes, where each byte is a bitfield of the possible ways to go from there into either N, S, E and/or W directions):
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
import static java.util.Arrays.*;
import static java.util.Collections.*;
public class MazeGenerator {
    public static byte N = 1<<0, S = 1<<1, E = 1<<2, W = 1<<3;
    public static byte[][] generate(int w, int h) {
        return generate(new byte[w][h], w, h, 0, 0);
    }
    private static byte[][] generate(byte[][] maze, int w, int h, int x, int y) {
        Byte[] dirs = { 0, 1, 2, 3 };
        shuffle(asList(dirs));
        for (int dir : dirs) {
            int nx = x - (dir >> 1) * (((dir & 1) << 1) - 1);
            int ny = y - ((dir >> 1) - 1) * ((dir << 1) - 1);
            if (nx < 0 || ny < 0 || nx >= w || ny >= h || maze[nx][ny] != 0)
                continue;
            maze[x][y] |= 1 << dir;
            maze[nx][ny] |= 1 << (1 - (dir & 1) + (dir >> 1 << 1));
            generate(maze, w, h, nx, ny);
        }
        return maze;
    }
}
Offline TritonDreyja
« Reply #6375 - Posted 2019-08-07 00:27:07 »

Made a new mountain background and re-implemented parallax scrolling.

Eventually figured out it was really easy to make the mountains color change depending on the time of day as well, turned out really well.


Click to Play
Offline ral0r2
« Reply #6376 - Posted 2019-08-09 13:39:35 »

The day before yesterday I started playing a little bit around with box2d and libgdx implementing A* pathfinding for a tiled map.
Most challenging for me was the integration between libgdx and box2d coordinates because box2d shapes have there origin centered however libgdx 0,0 is at the bottom left.
I managed to make some progress though.

Sorry for the bad gif. It takes some seconds at the beginning and ignore the weird graphic glitch on the left. That happened somehow when I converted the mp4 to the gif.

Click to Play
Offline VaTTeRGeR
« Reply #6377 - Posted 2019-08-09 22:41:14 »

@ral0r2 The gif doesn't load for me.
Offline ral0r2
« Reply #6378 - Posted 2019-08-12 20:38:54 »

@ral0r2 The gif doesn't load for me.

Sorry and thanks for pointing out. I fixed the link or I tried.
Offline TritonDreyja
« Reply #6379 - Posted 2019-08-15 15:41:32 »

Redid water flow and added ores.

Click to Play


Click to Play


Also redid lighting to make it emit a circle instead of a diamond shape. (based on this solution)

Click to Play
Offline SugarBlood
« Reply #6380 - Posted 2019-08-16 09:10:49 »

@TritonDreyja, hey I like it, espesially water Smiley
Pages: 1 ... 211 212 [213]
  ignore  |  Print  
 
 

 
hadezbladez (3628 views)
2018-11-16 13:46:03

hadezbladez (1294 views)
2018-11-16 13:41:33

hadezbladez (3634 views)
2018-11-16 13:35:35

hadezbladez (697 views)
2018-11-16 13:32:03

EgonOlsen (4000 views)
2018-06-10 19:43:48

EgonOlsen (4528 views)
2018-06-10 19:43:44

EgonOlsen (2688 views)
2018-06-10 19:43:20

DesertCoockie (3548 views)
2018-05-13 18:23:11

nelsongames (3701 views)
2018-04-24 18:15:36

nelsongames (4726 views)
2018-04-24 18:14:32
Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45
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!