quote [ Dive into a one-billion block multiplayer simulation generated by Euler's Number. Experience 6DOF flight, mine voxel anomalies, stun rivals, and break the matrix directly in your browser. ]
So I have been thinking doing some work or more unfinished projects/games/distractions.
Have added a black/warp-hole at 500,500,500 that applies a drag that is constantly pulling at your ship, if you enter it resets you somewhere in the map and resets your MASS to 100 and applies a random +1 to a STAT LVL.
You can no longer hit 'u' to enter UPGRADES from anywhere, instead enter orbit around the FAVICON terminals spaced out at 100,100,100 , 100,100,200 , ... , ... , 900,900,800 , 900,900,900 or just follow a teal arrow.
'h' now lets you modify your HULL any which way.
'f' starts a call 'g' hangs a call up; trying to use a STAR TREE NETWORK with Supernode to Leaf clusters of 1 to 3 with upto 4 supernodes for 16 player chat. Assign the Supernodes on the fly and have a hand over auto-dialer if supernode leaves.
Oh the Emoji Cube 'y' now has a NUM PAD 1-9 shortcut for facing surface shortcuts.
Needing to update the server code to track the updated STATs 'j' but sort of distracted with testing out what I call Whales (if I could 3d model better){I picture holographic Whales 2 that swim opposite each other both will be singing which will project across map and depending on how far player from each makes background music} also want to test out Jelly Fish things that spawn in areas where 10x10x10 is mined spawn to in they only float in empty voids and they breed when to touch they make 4, when 5 in a set area they combine into one entity then when 25 in one area combine again (using bots to on server to play the roles) thinking they apply a slow down effect to the players if caught in tentacles and can be shot in head to get MASS back.
/DATA-DUMP
If your intrigued how the whales might look.
A Firefox Console Inject
Reveal
(function injectExplorerMegaWhale() {
if (typeof scene === 'undefined' || typeof ship === 'undefined') {
console.warn("Scene or Ship not found. Please initiate Live Play first.");
return;
}
// 1. Whale Group Container
const whaleGroup = new THREE.Group();
// Procedural Neon Sprite Texture
const canvas = document.createElement('canvas');
canvas.width = 64; canvas.height = 64;
const ctx = canvas.getContext('2d');
const gradient = ctx.createRadialGradient(32, 32, 0, 32, 32, 32);
gradient.addColorStop(0, 'rgba(255, 255, 255, 1)');
gradient.addColorStop(0.2, 'rgba(0, 255, 204, 0.9)');
gradient.addColorStop(1, 'rgba(0, 0, 0, 0)');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, 64, 64);
const spriteTex = new THREE.CanvasTexture(canvas);
// Whale Outer Body (Neon Point Cloud)
const whaleGeo = new THREE.CylinderGeometry(40, 40, 100, 32, 16, true);
whaleGeo.rotateX(Math.PI / 2);
const whaleMat = new THREE.PointsMaterial({
size: 5.0,
map: spriteTex,
transparent: true,
blending: THREE.AdditiveBlending,
depthWrite: false,
fog: false,
color: 0x00ffcc,
opacity: 0.55
});
const whaleBody = new THREE.Points(whaleGeo, whaleMat);
whaleGroup.add(whaleBody);
// 2. Internal Neon Planes & Vertex Connections
const wireframeGroup = new THREE.Group();
const planeMat = new THREE.MeshBasicMaterial({
color: 0xff00ff,
side: THREE.DoubleSide,
transparent: true,
opacity: 0.2,
blending: THREE.AdditiveBlending,
depthWrite: false,
fog: false
});
const rings = [];
const ringCount = 10;
const whaleLength = 100;
const segments = 8;
for (let i = 0; i 0) {
pulseColor.set(0x00ffff);
} else {
pulseColor.set(0xff00ff);
}
allOrbs.forEach(orb => {
if (orb.userData.alive) {
orb.material.color.copy(pulseColor);
const scaleFactor = 1.0 + (Math.abs(pulseVal) * 0.25);
orb.scale.setScalar(scaleFactor);
}
});
if (shimmerMat) {
shimmerMat.color.setHSL((zoneHue + 0.5) % 1.0, 1.0, 0.5);
}
// --- INSIDE WHALE BELLY: TURN OFF CURRENT DRAG ---
const distToWhaleCenter = ship.position.distanceTo(whaleGroup.position);
if (distToWhaleCenter 0) {
allOrbs.forEach(orb => {
if (!orb.userData.alive) return;
const orbWorldPos = new THREE.Vector3();
orb.getWorldPosition(orbWorldPos);
for (let b = activeBullets.length - 1; b >= 0; b--) {
const bullet = activeBullets[b];
if (bullet.mesh && bullet.mesh.position.distanceTo(orbWorldPos) orb.scale.setScalar(1.0), 100);
scene.remove(bullet.mesh);
activeBullets.splice(b, 1);
if (orb.userData.health o.userData.alive).length;
console.log(`%c[COMBAT] Explode Orb destroyed! Remaining: ${remainingOrbs}`, "color: #ff00ff;");
if (remainingOrbs === 0) {
implosionStage = 1;
console.log("%c[COMBAT] ALL 60 ORBS DESTROYED. LEVIATHAN IMPLODING.", "color: #ff0055; font-weight: bold; font-size: 1.2rem;");
if (typeof pushLog === 'function') {
pushLog("APEX PREDATOR: LEVIATHAN IMPLODED! ALL STATS UPGRADED.", "#ff00ff");
}
}
}
break;
}
}
});
}
requestAnimationFrame(swimLoop);
}
else if (implosionStage === 1) {
collapseProgress += 0.05;
allOrbs.forEach((orb) => {
if (orb.visible) {
const targetCenter = whaleGroup.position.clone();
const curWPos = new THREE.Vector3();
orb.getWorldPosition(curWPos);
curWPos.lerp(targetCenter, 0.15);
whaleGroup.worldToLocal(curWPos);
orb.position.copy(curWPos);
if (orb.position.distanceTo(new THREE.Vector3(0,0,0)) = 2.0) {
implosionStage = 2;
whaleBody.visible = false;
internalShimmer.visible = false;
wireframeGroup.visible = false;
}
requestAnimationFrame(swimLoop);
}
else if (implosionStage === 2) {
const flashGeo = new THREE.SphereGeometry(10, 32, 32);
const flashMat = new THREE.MeshBasicMaterial({
color: 0xffffff,
transparent: true,
opacity: 1.0,
blending: THREE.AdditiveBlending
});
flashSphere = new THREE.Mesh(flashGeo, flashMat);
flashSphere.position.copy(whaleGroup.position);
scene.add(flashSphere);
if (typeof spawnExplosion === 'function') {
spawnExplosion(flashSphere.position.x, flashSphere.position.y, flashSphere.position.z, 4.0, new THREE.Color(0xffffff), 4, 1);
}
if (typeof spawnPickup === 'function') {
for (let p = 0; p {
if (flashSphere) scene.remove(flashSphere);
scene.remove(whaleGroup);
console.log("%c[SYSTEM] Mega Cigar Whale fully collapsed. Pickups dropped.", "color: #00ffcc;");
}, 300);
requestAnimationFrame(swimLoop);
}
}
swimLoop();
})();
Should I bother adding a STRIPE payment for DONATIONS to the page or is it to toy-ish.
Don't want LOOT BOXES, SEASONS or PAY-2-WIN, but I was thinking would take donations and if you paid a certain tier; added notes could be custom request that could be added in game or a negotiated compromise.
Watching it on a screen after awhile, especially with the new sound effect for collisions; reminds me of Pachinko.
So should update the On-Boarding and TERMS.
But small niche toy.