WARNING: contains slight NSFW

ABSTRACT:
Create abstract art from junk on a conventionally (and sometimes unconventionally) floating island of cyberpunk junk.
You only have a limited variety of non-straightforward operations to move junk around, so it's a puzzle ^_^

CONTROLS  (enabled as tutorial goes):

ENTER - progress (in dialogues)

WASD - move (can fly and swim)

R - Reset level

E  - Destroy the junk layer you're on
Everything above will fall down one layer except for the column that is directly overhead . When underwater,  junk below the cleared layer floats upwards.

X - Drill Down through any number of junk layers and exit on another side.

SPACE - Beat junk-ground downwards
The higher (or lower underwater) you are before issuing this - wider area will be affected.
Ground is composed of loose junk floating on top of the water so you kind of stomp it to your liking. ^_^

F - Roll yourself and move junklayer directly below 1 block  to the left
(ground is a little bit special in this regard - discover mechanics yourself)

G - Roll yourself and move the  junklayer directly below 1 block to the right

L - skip level (if you are really stuck. This game is kinda hard.)

All of the operations are symmetrical or antisymmetrical between under- and above-water scenarios. i. e. you can (and need to) use them underwater as well.

A video of first levels:
https://diode.zone/w/o8hkYBHVFeMXiWo7c5rNhY

Used assets : 

Main theme: Isle of the Little Branches by Lobo Loco:

Fetch it here (CC-BY-NC-SA 3): https://open.audio/library/tracks/25666/

Font HiLo Deco (OFL ):  https://fontlibrary.org/en/font/hilo-deco

Font Now (OFL): https://fontlibrary.org/en/font/now

everything else is my own

Source code:

https://notabug.org/Houkime/nights_with_junk

HOW TO PLAY:

Air is pink where a junk-block needs to be to be a meaningful part of the composition.
Junk-block is pulsating when it is where PLP sees its place in his art.
All blocks that are not part of the ground layer should be either in the right place or not exist. 
Mechanics of operations is not always trivial and better play with junk yourself to get a gist of some edge cases and how to exploit that.

WARNING: DOWNLOADABLES (i.e not web version) WERE ADDED AFTER (~halfday) THE JAM SUBMISSION TO BE MORE COMPLIANT WITH RULES.
(they are still using unchanged source files that you can fetch yourself from git at https://notabug.org/Houkime/nights_with_junk)
Linux export may not work on Linuxes using old libc.

OSX is NOT SUPPORTED. This is because to compile for OSX (at least in official godot way) i would need proprietary XCode which goes against my principles.
If you're on OSX, go get the sources and play them directly.


Technical notes for Godot gamedevs:

One of primary features of my code is using self-destructing tweens for all animations Also self-destructing timers and soundplayers.
Also i made a nice noisy web-compatible blur GLES2 shader just for this one.

Among not obvious things: how one can animate shader params from a tween.
I really want godot docs to have sth written on this. Probably will contribute.

Such things are necessary since built-in animation player is quite bad, for example it doesn't inherit from Node2D. This means that whatever is a child of it won't receive position and scale updates from parents.

Also among less obvious things: that one can manipulate z index of a Control thing via attaching it to a dedicated Node2D with z-index. Because control for some reason is also not a Node2D etc.etc. 


Download

Download
nwj-x11-0.2.0.zip 41 MB
Download
nwj-win-0.2.0.zip 50 MB

Install instructions

WARNING: DOWNLOADABLES (i.e not web version) WERE ADDED AFTER (~halfday) THE JAM SUBMISSION TO BE MORE COMPLIANT WITH RULES.
(they are still using unchanged source files that you can fetch yourself from git at https://notabug.org/Houkime/nights_with_junk)
Linux export may not work on Linuxes using old libc.

Have a blast!

Leave a comment

Log in with itch.io to leave a comment.