Light Lands

2018-08-29 at 11:04 | Posted in Computer path | 4 Comments
Tags: , , , , , , , , , , , , , , ,

Light Lands is a peaceful retro inspired exploration and puzzle bedroom coder GAME for PC with procedural algebraic visuals and sounds. Light Lands has CPU pathtraced (raytraced) interactive spectral graphics with full scene realtime global illumination on unlimited dynamic surface/volumetric lights and includes a benchmark option. Has music by Yerzmyey, It’s the second entry of the Hidden History Saga after Vector Vaults and looks like this:

System requirements

The thing to remember is that the CPU core count/speed is what dictates the graphic quality. On the other hand the graphics card has a negligible impact on performance:

  • Operating system: Windows 64 bits.
  • CPU: 4 or more FAST cores, the more the BETTER.
  • RAM: 4 Gigabytes (more RAM may be needed for high core count CPUs).
  • Console style game pad with two analog sticks is HIGHLY recommended (although Light Lands may be played with just mouse and keyboard).
  • Graphics card with OpenGl 3.3 or higher. Does NOT use DirectX, DXR API nor NVIDIA RTX.

Physical copy

The full game is available for free as a download at the end of this post, but if you find yourself compelled to posses a professionally pressed CD physical edition (DRM free) please follow this easy steps:

  1. You are advised to download and play Light Lands before buying it in order for you to asses speed performance on your hardware.
  2. Orders should be directed at alberto.rd.mr@gmail.com with subject ‘Light Lands physical edition’ and clearly specifying name and shipping address. Be sure to write from your PayPal email as this is the payment method. The game costs 38ā‚¬ with international shipping by registered mail included.

This is how the Light Lands pressed CD physical edition looks like (please note this is a professional injection mold CD):

Inside Light Lands technology

Light Lands is a photon simulation environment which uses Raydiant++ graphic engine through the lightspectering rendering module. It doesn’t draw each frame, instead they emerge as a byproduct of synthetic photons accumulating on a virtual photographic plate. It’s an ongoing interactive Monte Carlo simulation. Representation quality is linearly proportional to CPU power: Raydiant++ will take all cores/threads and max out your CPU. Light Lands is retro itself in the sense that in order to use this graphic technology at 2018 the display resolution is kept low, not unlike 8 bit games. You may think of the low resolution and noise of Light Lands in a similar way as other retro systems anomalies like ZX Spectrum color attribute clash or Amstrad CPC mode 0 ludicrously wide pixels: the result of technology limitations at the moment of making the games. Light Lands feels retro at 2018 because it uses technology for the future?.

The lightspectering technique has some parallelisms to jpeg compression. The jpeg algorithm recognizes that the lightness (gray scale) information of an image needs far more quality/detail than the color. So it separates both and devotes more resources to represent lightness than to color. Lightspectering is a collection of techniques tweaked to work together to achieve something similar on a interactive stream of images of a live user controlled camera. In this case is proposed that it’s more important to represent in a lagless way the effects of user controlled camera movement on the live image stream than the effects of world change. For world change we mean: lighting conditions change and object movement/morphing. So lightspectering allows for the camera movements to be reflected instantly on the live image stream. Then the lightning and object changes are progressively reflected and updated at a lower rate as allowed by the available CPU power. Thus we can produce interactive 3D games with full scene realtime global illumination on unlimited dynamic surface and volumetric lights on current (2015) hardware. With lightspectering the 3D graphics card is used lightly to keep frame rate constant by artificially increasing inter frame coherence dynamically only when needed depending on the complexity of the scene and the power of the CPU, hence making it possible to raytrace our way trough 30/60/… fps of global illumination game play on an open world without LOD or fog-limit. Lightspectering reduces the computing power needed to real time path trace a scene by orders of magnitude, dynamically. A drawback of lightspectering on not powerful enough CPUs is an added effect similar to motion blur.

Light Lands is tuned to work on an average 2015 i7, so it’s lowres. Still it gives a feel now for what it can be done in the near future. Another way of making this technology available now in HD and without noise would be through a cloud service. Raydiant++ engine is specially suitable for this as its performance grows linearly with server count. Raydiant++ has several rendering modes like global illumination, classic raytracing, preview mode… . The classic raytracer mode is around 30 times faster than the global illumination mode. I considered whether to use classic raytracing for Light Lands because it has no noise, gives realtime good resolution and has good hard shadows. In the end I decided towards global illumination because it’s more of an improvement over traditional hardware accelerated 3D game rendering.

As lightspectering method accurately calculates recursive refraction and reflexion it’s specially suitable for VR. Also lightspectering allows to select image quality on a per pixel basis which may be useful to leverage pupil tracking as a mean to devote more computing power to where the user is looking to on each moment and less to his peripheral vision zone.

On Raydiant++ engine no LOD is needed and light phenomena happen naturally (no need for constant tricks): recursive reflection, recursive refraction, focus, dispersion, caustics, global illumination, iridescence and more. Because of the efficient use of available SMP on current and coming modern powerful CPUs it may be of interest to Intel and AMD for this technology to go mainstream, since it will justify the need to get as many CPU cores as possible thus reversing modern trend to push for better graphics cards and shifting interest to CPU instead.

Raydiant++ is not restricted to drawing triangles, the limit is your imagination. These are some of the graphic specimens currently available:

  • Box.
  • Fractal procedural mountains (with no memory footprint).
  • Superquadric.
  • Superquadric specialized for integer exponents.
  • Solid cylinder.
  • Cylinder surface.
  • Elliptical cylinder.
  • Bit matrix.
  • Solid cone.
  • Cone surface.
  • Elliptical washer.
  • Sphere.
  • Heart.
  • Ellipsoid.
  • Cylindrical helicoid, right handed and left handed.
  • Elliptic cylindrical helicoid, right handed and left handed.
  • Box helicoid, right handed and left handed.
  • Infinite plane.
  • Alberto’s torus box.
  • Triangle mesh.
  • Polygon mesh.
  • Revolution polyline surface.
  • Convex polyhedron.
  • Generic polyhedron (with holes and non connected).
  • Elliptical torus.
  • Alberto’s groove ellipsoid.
  • Alberto’s bumpy sphere.
  • Alberto’s cos ellipsoid.

On the procedural front among the many generation functions the a-maze function family can be heard and seen throughout the game from the menus to the stages.

Development

Light Lands is coded in C++ through an IBM Model M keyboard on a PC surrounded by 8, 16, 32 and 64 bit retro systems and has been possible thanks to:

  • Bjarne Stroustrup: C++ father.
  • GCC: real C++ compiler.
  • Boost: C++ libraries.
  • SFML: nice portable multimedia libraries.
  • Inno Setup by Jordan Russell.
  • Linux: best OS there is.
  • ‘Texture and modeling: a procedural approach’ by David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin and Steven Worley.
  • Xolonium fonts: by Severin Meyer.
  • Bfxr: by increpare.
  • WinRun4J: rcedit.exe tool.
  • MinGW-w64: GCC Windows compiler.
  • KDevelop: IDE.
  • Ubuntu: Linux flavor.
  • DejaVu Fonts.
  • GDB.
  • Glew.
  • GLM.
  • GNU.
  • Mate: no nonsense desktop GUI.
  • Gnome classic: no nonsense desktop GUI.
  • OpenGl.
  • GIMP.
  • Stack Overflow.
  • gedit.
  • LMMS.
  • Audacity.
  • and many more…

Troubleshooting

  • If you have difficulty launching the game this is probably because you have ‘.js’ files associated to an action different from executing. Just go to ‘Program Files\Light Lands\multi-soliton\build\’, right click multi-soliton.exe and ‘Run as administrator’ (thanks to fibs111 for pointing this out).

Download the full game

Ā Ā Ā Ā Ā Ā Ā Ā  mirror 1: Light Lands

Ā Ā Ā Ā Ā Ā Ā Ā  mirror 2: Light Lands

Updates

Light Lands update 2020 09 17 – v1.0.23.zip

Realike: the bendy engine

2012-12-31 at 11:13 | Posted in Computer path | 1 Comment
Tags: , , , , , , , , , ,

Realike is a holistic simulation engine based upon the idea of atom that unifies what you see with what is detected (What You See Is What You Touch (WYSIWYT)) and let physic interactions emerge by themselves. It’s inspired by my previous work from 2004 Pentium IV 3000MHz II:Ā fabric.

The nominal way of making 3D games was and is being explored thoroughly by most developers, that is: everything in the game is an empty triangle shell controllable through predefined animations. But (and this is a big but) the interactions are performed between invisible bounding volumes. Also if you want something to be breakable you must program it specifically. There’s nothing wrong with this traditional way, several of my all time favourite games fall under this category. But there are another possibilities.

Here is mine: every part of every interactive object in the game behaves as it should by itself. Just put out there your avatar or any interactive part of the scene and attach to it some forces applied to specific parts (= muscles) and you are ready to go. All collision detection will be performed over what you see on screen: What You See Is What You Touch (WYSIWYT). Fracture patterns will appear spontaneously whenever enough stress emerges on some part of the system.

One way to do this is just plagiarism of the way things are done in the real world: everything must be composed of (and exclusively of) atoms. Each atom could have position, size, mass, softness, interactions with other atoms, orientation…

Arising problem: the amount of atoms required to construct anything playable is going to be huge. Very careful design is going to be needed to reduce memory usage. And even more care should be put CPU wise. It could be challenging to animate at 60 fps many thousands of interacting dynamic atoms. Let’s also allow for static atoms used to create non changing parts of the game. Realike has been designed to address this issue. Some of its advantages are:

  • Varied material properties arise by themselves from internal specific atom structure (just as in chemical compounds), examples are:
    • rubbery materials
    • rigid materials
    • combination of rubbery and rigid along different axis
    • fragile (easily breakable)
    • unbreakable
    • fabric
    • malleable
    • fluid
  • No need for separate handling of bounding volumes for collision detection and visualization, this just happens by itself whenever something is constructed on the engine.
  • New exotic types of avatars are possible, for example real bipeds/quadrupeds. Watch the video for another example of a wrinkled thick-fabric like ball.
  • The difficult to rate advantage of an exciting new feeling. Hard to describe how enticing is to control an avatar inside an all atom world. You’ll have to trust me on this one until the game ‘Fathomed dodecahedron’ is released.
  • On the game editor front whole new approaches are possible all stemming from the fact you are now dealing with real filled objects with internal structure instead of empty shells.
  • Potentially everything can bend and/or break without any extra effort, it will just happen under the right stress.
  • If individual atom behaviour is well programmed then 2 natural physic traits will emerge by themselves without having expressly been coded: precession on rotating bodies and angular momentum.
  • There’s an oportunity here to innovate also at visual level. How are you going to represent the particles? realtime blobs? individual polygon spheres? using the atoms as the skeleton of an empty traditional triangle shell? are you going to raytrace them? billboarding perhaps? …

Here is gameplay capture of ‘Fathomed dodecahedron’, it runs at 150 fps on my PC:

'Fathomed dodecahedron'

‘Fathomed dodecahedron’

Steampunk landscape

2012-10-21 at 19:27 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , ,

The video below has been rendered with the Raydiant rendering engine, also all the geometry has been procedurally generated with Raydiant from a digital photo using http://cutemosaic.com. As you will see there are several gear floors mounted in a clock like fashion. At the beginning of the video a close-up of an emerald bearing shows refraction and reflection. The surface of the uppermost plating is bumpmapped and modelled with triangles. Also cylinders, stretchedĀ  spheres and boxes are used as geometric primitives. The gears are procedurally bumpmapped on the edges. Everything has global illumination and several material kinds with unique light scattering/dispersing profiles are used. Can you see what is depicted by the whole gear maze? Pay attention to the inscriptions along the way and make sure you watch it on HD setting.

Playing across the domes

2012-01-08 at 10:17 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , , , ,

The video below is composed of around 2000 renders done with Raydiant at around 1 and a half minute each one. A geometry operator that applies non homogeneous scaling and shear to any contained object is used to transform spheres into beads. Images are automatically postprocessed inside Raydiant to show lens glow on saturated spots. To that extent a subpixel accumulative scalar field parametrized by angle, distance, intensity and hue has been applied at every glowing texel. All the geometry has been procedurally generated inside Raydiant from a digital photo of an undisclosed location of the Persian Gulf (http://cutemosaic.com).

Flying over the stained glass mountains

2011-12-18 at 11:10 | Posted in Computer path | 1 Comment
Tags: , , , , , , , , , , , , , , , , , , , , ,

The following video has been rendered with Raydiant over a period of 3 and a half days and It’s composed of around 3000 frames. The camera path was graphically edited inside Raydiant using 3er degree polynomial splines to smoothly interpolate location, orientation, speed and fov. To enrich the visual feedback during the camera path designing the render mode was set to full global illumination, giving around a frame per second at low resolution. This way the real refraction/reflections and global lightning were taken into account in order to create the video. This is the first Raydiant made video and all it’s geometry was automatically generated inside the engine using its procedural API from a digital photo of the Brandenburg Gate. This was done at Cutemosaic. Special thanks for the music go to the group ‘El perro de nadie’ (http://elperrodenadie.foroactivo.com).

Colorado: interactive raytraced unlimited geometry

2011-09-08 at 13:21 | Posted in Computer path | 2 Comments
Tags: , , , , , , , , , , , , , , , , , , , , ,

Mathematical operation sequences had been described for a ray to be realtime checked against all sort of geometries, basic (spheres, polyhedron, cylinders, torus…) and complex (clouds, classical fractals, trees…). The use of procedurally generated recursively inscribed bounding volumes offers a great creative canvas to improve along this line. The following is a realtime raytraced demo of a mountain landscape composed of slightly more than 17 trillion truncated triangular prisms (specifically 17.592.186.044.416). Also, truncated irregular triangular prisms are used as bounding volumes. There’s currently no LOD mechanism in place, every geometry is considered each frame. The 3D procedural texture is combination of 2D and 1D fractal turbulence splines mapped to a suitable color palette and has no LOD control. The demo runs on Raydiant, a general purpose light tracer not particularly optimized for real time. The default Colorado demo quality is preview and you can take high quality global illumination snapshots at any time that, depending on resolution, can last anything from 5 minutes to several hours (so start trying it at low resolution). Camera is controlled with the keyboard. This binary executable is for Linux and uses a Qt 4.6.2 GUI. Because those 17 trillion prisms exist as a potentiality defined by an algorithm they use no RAM. That’s a good thing because to store all prisms around 1 petabyte of RAM would be required. Colorado runs entirely on CPU, so you are strongly advised to execute it on a powerful multicore processor with 4 or more kernels. Raydiant performance grows linearly with kernel count. The binary has been tested on Ubuntu 10.04. The GUI provides you with help about the camera movement and means to change resolution. As the GUI is still at alpha stage mess with it at your own risk. More info about Raydiant is available at previous posts at this blog and at ompf. To get personalized renders from the engine this online service is available. Note that Colorado is different from what Euclideon is doing. Colorado is a raytracer and could have used *any* combination of geometry types: spheres, cylinders, torus, triangles, polyhedrons, polygons, bit matrix, washers, quadrics, points…
I found it difficult to grasp the meaning of elevated quantities like 17 trillion, to help me see what it amounts to this zooming sequence with a factor of approximately x4 million has been developed:

This slideshow requires JavaScript.

Download Colorado here, execute Colorado.sh and please mind this instructions. How to select the antialiassing level. How to make global illumination snapshots.

Should circumstances allow it (meaning time is available) I intend to release a very simple concept game taking place on a large scenario, may be with real time completely dynamic global illumination over unlimited light sources.

Golden slabs, glitter and silhouettes

2011-08-18 at 19:41 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

These mosaics have been made using some filter trickery, isosurfaces, height fields, procedural 3D manipulation and lastly rendered with the Raydiant engine. Try it with your own photos at cutemosaic.com.

Cute mosaic grows

2011-04-20 at 17:01 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

Thank you all for the support. Cute mosaic is getting popular and it seems many people want to get creative making mosaics from their photos. We have several interesting suggestions to improve the web (like making mosaics out of buttons, integration with PayPal, more materials…) that are being implemented right now. In the mean time here are some articles about the web and 3D engine:

wwwhatsnew.com

www.crunchbase.com

ompf.org

Make a 3D rendered mosaic and win an iPod

2011-03-26 at 10:39 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , ,

At cutemosaic.com we have a brand new bunch of mosaic types, better and prettier than the previous ones. To celebrate we are making a contest. So if you are creative just go to cutemosaic.com, make a mosaic for free, upload it to facebook and wait for the people to vote. If you win an iPod will be yours!. Here are some of the new mosaics:

Mosaics mosaics mosaics

2011-02-21 at 17:36 | Posted in Computer path | Leave a comment
Tags: , , , , , , , , , , , , , , , , , ,

After some fine tuning, the mosaics produced by the Raydiant engine at http://cutemosaic.com are now showing for what they are: full global illumination 3D renders. Try any of this images at full resolution and see for yourself. And remember to do it with your photos for free at cutemosaic.com. Also there is a new improved web interface.

Next Page »

Blog at WordPress.com.
Entries and comments feeds.