Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 02:25:20 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLumote - 3D puzzle platforming as a squishy bioluminescent creature
Pages: [1]
Print
Author Topic: Lumote - 3D puzzle platforming as a squishy bioluminescent creature  (Read 937 times)
mich mash
Level 0
*


View Profile WWW
« on: May 15, 2019, 11:53:05 AM »







Whishlist us on Steam
Website | Twitter | Facebook | Twitch | Discord | Youtube

Lumote is a game about two opposing energies. Blue energy controlled by Lumote and red energy controlled by the Mastermote. You play as Lumote in this 3D puzzle platformer with only the ability to jump and possess. Possession allows you to take control of the world's inhabitants, the Motes, and use their abilities. Depending on who's energy controls a Mote their behaviour will either help or hinder Lumote to travel below and take control from the Mastermote.

In the gif below you can see and example of Lumote possessing a mote called a Dumbat, they act as batteries for the last power to possess them and can be used as your proxy to take permanent control of lightwires.



The lightwires are the veins of the world and whoever controls them controls everything. Send your power through the lightwires to fully turn the Motes to your side. Unlock towers to gain access to the next region and travel deep in the world to confront the Mastermote.



The world of Lumote is broken into three biomes you will need to gain control of all the towers in a biome before you can descend to the next one.  Each tower marks the completion and mastery of a mechanic, and the start of new challenges for you to explore. They will also contain pictographic blocks that will tell the story of the world of the Motes.






The Tech

Originally built on the Unreal Engine we've moved away and Lumote is now powered by a ground-up custom game engine called rEngine. The world is built using a unique voxel engine which allows us to quickly craft puzzles with very low resolution voxel grids, while keeping a high level of visual fidelity in the final game. Our goal is to have the flexibility and creative control of a voxel game without looking like a voxel game.



What's left

After working on the game for 5 years it's really getting down to the wire where we need to ship or get of the pot. Our goal is to be in Alpha and ready to ship by the end of Summer. We've not set a solid release date as dependent on the market we want to have the flexibility to choose when is best. No point in putting our all in only for it to be overshadowed by something from AAA.

We've tried to do a devlog in the past with little success I'm hoping in these final dev months we'll be able to show our progress in small snippets here. We've also recently started streaming some development on Twitch for anyone that would like to keep up with our development.

Updates

3D Tilesets - Making our voxel grid look good
Modularizing Lumote - How we stich together the world
« Last Edit: June 04, 2019, 10:34:31 AM by mich mash » Logged

luminawesome_kyle
Level 0
*

Programmer & Artist on Lumote


View Profile WWW
« Reply #1 on: May 23, 2019, 10:34:14 AM »

Devlog: Modularizing Lumote

Preface: You may notice this looks very different than what we have now. Lumote used to be a crystal creature in a high pressure cave system full of inorganic life... I'll make a post about that evolution in art direction in the future.

Disassembly

When we initially set out to take our UE4 game jam entry Bump and extend it out to be Lumote, we knew we wanted to make it one giant map. The game is extremely dark and as you progress you illuminate the world. Because of this, we wanted to not only give you some larger sense of progress, but also offer some nice vistas to show where you've been and what you've accomplished along the way.


The blue glow of discovered checkpoints and solved puzzles lingers in the distance

With that in mind, we started laying out the world. It's made up of a central hub surrounded by towers; you go up one side of a tower and down the other where you exit into the hub and progress to the next tower. We began by roughing in the flow of the first tower, making sure you can't reach places you shouldn't, and winding around so that you can get some nice views of where you have been. As we progressed, we were also building the puzzles which fit nicely into the flow. However, we soon came to realize that constructing the world this way caused some problems.


Each coloured section is a different puzzle in the tower.

First of all, the entire game world was in a single file. This meant that we could not iterate on the high level flow of the world and design new puzzles at the same time. We knew this would be an issue in advance but made the concession that since there are only two main level builders, we could work around each others’ schedules.

Secondly, we have always had aspirations for Lumote to offer either user-generated puzzles or procedural world assembly, or maybe even both. While this isn't a feature on our road map for the initial release, it is something that we would love to see one day. That means, having the entire world as one massive asset really limits the possibilities.

The third, and most important, issue was adjusting difficulty and pacing. Each time we added a new puzzle, there was often the realization that we had made something that would be more appropriate earlier or later in the game. Often this meant that all edits were destructive, replacing a puzzle literally meant that the old one was gone. If it was really good we might save off a copy of the map so we could isolate it and reuse it later, but that wasn't ideal and became quite time consuming.


Modular level sections can be swapped out and rearranged

After getting back from GDC 2016, we started discussing how we might overcome these problems as we continue to build out the game. The result was a fully modular version of the world, where we can snap puzzles together and easily swap them out or reuse them to adjust the pacing and difficulty of any part of the game.


Left an example of the hard to work with monolithic world. Right same area but in the modular world.

As you can see in the above example, this area is roughly the same before and after modularization.

Puzzles & Chunks

So now that we have this plan to break up the world in the individual puzzles that can be reassembled in any order. The first step was deciding a minimum size that a puzzle could be. All puzzles will be required to fit within a box that is a multiple of the minimum size in order to easily snap them together.

Voxel engines like the one in Lumote generally work by segmenting the environment into smaller pieces called chunks. These chunks allow for local modifications to be less computationally expensive when recalculating rendering and physics information. As it turns out, our levels happened to be almost exactly a multiple of our voxel chunk size which is 32x32x32.

For my sanity and yours, I'm going to present the world as a 2D grid through out this post.


Purple lines are level boundaries, green lines are chunk boundaries

Reassembly

We need to define a box for each level to fit in. Levels aren't restricted to a 32x32x32 cube, they can be any box but the box dimensions are always a multiple of 32 voxels. Once we've properly defined the box for a level, we specify up to 4 evenly spaced connection locations on the vertical faces of the level. Pink for exits, and blue for entrances. This configuration allows us to define modular levels that are can be almost arbitrarily arranged while not restricting the internal design of the levels too much.


Blue entrances, pink exits. Levels can be any dimension of box

Once all the levels have their bounds defined, we use a custom flow charting tool to define the connectivity of the world which is then used to create, rotate and translate the levels that form our world.


Some possible level arrangements based on the 5 levels in this example

Filling in the gaps

As you can see from the above level arrangements, we just have a bunch of floating levels. Lumote is a single world, there are no level load screens, just one big puzzle game all visible to you at once. This means we can't just have a bunch of weird floating platforms everywhere, we want to make the levels feel grounded and solid. In order to fill in all these missing walls and pillars, we enlist the help of our voxel engine and we simply extrude lowest part of each level downward to infinity.


Extruded final world

And finally, here is an example of a bunch of levels all stitched together using this system, this constitutes about 26 individual puzzles.



« Last Edit: June 04, 2019, 10:29:01 AM by luminawesome_kyle » Logged
luminawesome_kyle
Level 0
*

Programmer & Artist on Lumote


View Profile WWW
« Reply #2 on: June 04, 2019, 10:21:47 AM »

Devlog: 3D Tilesets

I thought it would be nice to share a few samples of our 3D tile-set system in action.

We author our puzzles using a coarse 1 meter voxel grid. The tools for authoring the grids are similar to the toolkit offered in MagicaVoxel but implemented in our engine so we can work faster.



We then create 3D tile-sets in blender which our tessellation algorithm uses to fill in the voxels with nice art. We also define constraints for the tiles in Blender so that the algorithm knows which tiles can be used for walls and floors.

This is a tile-set inspired by basalt crystal formations.


This is an other tile-set inspired by the smooth rolling surfaces you might find in a sandstone canyon.


This is the voxel puzzle from the first shot but tesselated using the basalt tileset


This is the same puzzle but tesselated using the sandstone tileset
« Last Edit: June 04, 2019, 10:28:39 AM by luminawesome_kyle » Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic