(December 2017) Monthly WIP screenshot thread

Seeing how people were still posting in the November WIP thread in December (blasphemy!), I’ll start this one off with something jME-unrelated (more blasphemy!)


About a year ago, I tried to make a game on my graphical calculator (a casio fx9860gii, with a resolution of 128x64 pixels and 512kB ram).
I started with CASIO Basic (there’s a program to edit that on the calculator itself, but it was slow and unreliable. I then tried to port it to C, and it worked!
After several refactors, I created a game engine (or game library, it’s not very extensive) for this graphical calculator.

The next thing I did was create a zelda clone, named ‘zoldo’.
The maps for this game are created in Tiled, and I wrote a compiler to convert them into smaller files, which I can read on the calculator.

Here’s a screenshot (literally) of the current state of the game:

I also had fun with memory corruptions in the emulator:


red = debug pixels
blue/green = player
orange = enemy, follows you
purple = enemy, flees from you

And here’s how I create maps in Tiled:

All in all, it’s a fun project and I learned a lot from it, but using jME on a PC is much easier.

21 Likes

Slow gaming week. I’ve spent more time on this than I thought I would, but I really wanted to see if I could make this work. What you see is the app using online resources (git/gists) as plugins. They are compiled locally and updated whenever one is available.

For one, it makes people able to show others the engine really easily. Like download this and run the .exe - and see a lot of what it has right out the box in a GUI. For me that was important. First impressions will be the examples being run, not ten pages of code.

It took more time in thought of how to write this than anything else, but I think I’ve settled on something nice and simple. The video shows the following

  1. The “provide a test” situation can be given in a fully working gist link that will directly run it from the website.

  2. you can make games in a simple gist or entire repository and distribute them with a working/runnable link to games that will download/compile/run (or not, depending on whether it has to) from a website link.

  3. Easily use libraries and/or gists that people dont put on maven - with all the git goodies (version/etc).

blah blah blah.

14 Likes

Hi @jayfella

That is one of the coolest things I have seen the month.

For anyone interested I played last night a bit and wrote a little physics simulator to test jME’s physics performance.

It is still very basic but you can play around with some settings.

11 Likes

Native or Jbullet?

Default one if you use the sdk editor, native.

1 Like

I’ve been busy fixing all sorts of interesting bugs users have found during beta testing, but I’m finally starting to find some time to work on new content. My goal this month is to implement the Jungle Temple dungeon. This is an early WIP from it.

17 Likes

(No I’m not dead) I haven’t really been working on any JME games, but I have started work on a Metroidvania like game called Beneath the Ashes. It’s about a girl named Rika who gets killed by a criminal running from the police. However, she wakes up in a different world, where nearly everyone is either afraid of her or trying to kill her. Rika soon finds out this is because she looks identical to the game’s main antagonist, The Unnamed Enchantress, who is known to bring destruction wherever she goes. So Rika has to go kill the Enchantress to both clear her name and save the world from destruction. Aaaaaaaand yeah that’s all I got so far. Here’s the menu I’ve been spending two weeks now working on:

6 Likes

I like the story

I needed new enemies for the jungle temple other than the pygmy… so…

I was foolish enough to breed raptors.

13 Likes

More videos please :smiley:

A weird fireball thing. For a protoplanetary disk methinks.

No textures, just some odd fbm noise code I found.

This swirl also looks kinda good… for some time. Then it spins itself till there’s only circles left.

18 Likes

I’m still working on Maud (my animation editor) and still looking for more alpha testers.

I just uploaded a new (7-minute) demo video, in which I demonstrate how to import animated glTF models for use in jMonkeyEngine.

The project link is GitHub - stephengold/Maud: An editor for jMonkeyEngine 3-D models (code has New BSD license)

11 Likes

I’m working on a level editor in the style of Doom and Build engine editors (sector based).


19 Likes

So this is a technique I first thought of while watching a digital painting video. Basically, I noticed that artists where slightly changing the hue of colors as they moved from light → shadow.

Previously, Spoxel basically had a set of lightmaps which acted as the “value” of the color and was then multiplied by the user entered color to get the final output. Now I basically convert the user color into a hsv color, enter the lightmap value as the new value of the hsv color, and then shift the hue slightly based on that lightmap value. So now, for example, you can select a skin color and the shadowing looks more natural because it starts shifting red.

Overall, its a small tweak but it makes the recolored models look way better.

12 Likes

I made a mandelbrot shader for shits and kicks:

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif

uniform float m_xoffset;
uniform float m_yoffset;

varying vec2 texCoord;

void main() {
    float x = 0.0;
	float y = 0.0;
	
	int count = 0;
	for (int i = 0; i < 400; i++) {
		if (x*x+y*y <= 4.0) {
			float x_new = x*x - y*y + (texCoord.x + m_xoffset);
			y = 2.0*x*y + (texCoord.y + m_yoffset);
			x = x_new;
			count++;
		}
	}
	
	float perc = float(count) / 400.0;
	vec4 col = vec4(perc, perc, perc, 1.0);
	
	if (count == 400) {
		col = vec4(0.0, 0.0, 0.0, 1.0);
	}
	
	gl_FragColor = col;
}

400 samples per pixel rendered to a 512x512 texture.

21 Likes

I can’t help, but whenever I look at the screenshot you posted I’m reminded of Ken Silverman’s Build Engine

I’m learning ray tracing this month.

JLight2D

Light rendering in 2D (Java).

Translate from “Light rendering in 2D” by miloyip.

GUI

I made a swing GUI for setting renderer params.

Basic

Use Monte Carol integration and ray marching of signed distance field (SDF) to render a emissive circle.

Source code:

Uniform sampling (64 samples per pixel):

Stratified sampling (64 samples per pixel):

Jittered sampling (64 samples per pixel):

Constructive Solid Geometry

Source code : RayTracing1Csg.java

Use union operation for creating multiple shapes:

Reflection

Source code : RayTracing2Reflection.java

Refraction

Source code : RayTracing3Refraction.java

Applying Snell’s law to compute refraction direction. Total internal reflection is also handled.

Fresnel Reflectance

Source code : RayTracing4Fresnel.java

Applying Fresnel equation to compute reflectance of dielectric medium.

without fresnel:

with fresnel term:

Beer-Lambert

Source code : RayTracing5Absorption.java

Applying Beer-Lambert law to simulate absorption of light in medimum.

23 Likes

Thanks. That’s basically the experience I’m trying to reproduce, I want to design levels as easy and fun as it was 20 years ago!

This looks very nice.
Now you should look into some denoising techniques to keep the computation time within some limit.

2 Likes