An Endless Runner meets Lunar Lander - LLL is a procedurally generated exploration, simulation and resource management game.

Explore Endless Space

Navigate the endless procedurally generated landscape. Every step of every run is different and unique. Powered by AI, the world adapts to always stay challenging to your skill level. 

Collect All The Fuels

Your rocket is able to burn many different liquid fuels, each with their own advantages and disadvantages. Soak them all up and use them to survive and explore. When your rocket is full, fly into deep space and find a space station to trade with.


Trade Fuel for Upgrades

Fly high enough and you'll be accosted by a friendly space station. Sell your extra fuel to buy upgrades for your rocket. Is your engine too weak? Upgrade it into a supersonic jet. Are you exploding at the slightest bump? Strengthen that hull with a very fairly priced upgrade.


Two-Week Portfolio Prototype Disclaimer

This game was developed as a prototype by one person in two weeks for portfolio content. As such, the game may have significant bugs and lack polish in some areas. That being said, the game is designed to reflect a professional standard of work and is published as a finished product.

For a more technical breakdown of this prototype, please continue reading.

Design Brief

The goal of this prototype was to achieve and demonstrate the following:

  • A casual browser game based on the concept "An Endless Runner meets Lunar Lander".
  • Multi-platform compatibility of geometry shader effects
  • Use of Shader Graph
  • Use of procedural generation with an additional logic layer
  • Lightweight level streaming

Level Streaming

Only a small chunk of terrain is ever generated at any given moment. Each chunk is designed, generated and rendered procedurally by a Terrain Streamer function as well as an added logic layer that responds to player skill level and play time.

Between random fluctuations and course corrections, the Terrain Streamer will place premade Terrain Features such as mountains, valleys, craters, inclines and declines. The Terrain Streamer integrates each Terrain Feature while still fluctuating and balancing the terrain as usual.

Currently, these Terrain Features are hardcoded in script, but future versions could use Scriptable Objects, XML files or database entries for easier asset design. The Terrain Streamer also has the ability to add Prefabs to the Terrain Feature, allowing for more advanced features such as landing pads, mining spots and enemies, however these were mostly cut from this prototype due to time constraints.

The simple design of the terrain allows for easy procedural generation. Every mesh can be generated vertex by vertex at run-time with no significant impact on stream delay.

Resource Management

This prototype uses 5 different fuel types, each with a different thrust multiplier. Fuels can also trigger player effects and unlock abilities. For example the Blue fuel unlocks a shield when used, while the Green fuel restores the rocket's health. Each fuel type has a use in-game, for example the Red fuel is very powerful and allows the player to easily leave the surface and reach the in-game store, whereas the Black fuel is barely strong enough to keep the rocket afloat, allowing the player a controlled yet soft landing.

Multiple fuel types allows for Resource Management game design patterns, such as stash balancing and a marketplace. This prototype includes a basic store and a limited yet upgradeable stash capacity. In future versions, this could be expanded with more fuel types and multiple stores.

Adaptive Difficulty

The Terrain Streamer has an additional logic layer that is designed to keep the difficulty roughly optimal for fun. The Terrain Streamer Brain calculates the current difficulty of the game as well as the overall skill of the player, and attempts to balance and grow these two metrics evenly.

Using a Priorities list, the Terrain Streamer Brain is able to design the next Terrain Chunk intelligently. When the player is low on fuel, the terrain starts offering more resources. When the player has shown adept flying skills, more mountains and difficult Terrain Features are generated.

Upgrade Game Loop

If the player flies directly upwards, a satellite will catch their rocket and offer to trade. The player can sell fuel for credits, which can be used to upgrade their rocket. A simple Resource Management loop, but one that was important for this prototype to function.

With this upgrade loop, the game is elevated from a simple arcade-based coin-eater game to one that has a clear goal. It also allows the player to offset any difficulty spikes by purchasing better engines or a harder hull. Without this loop, this prototype and this game design overall is basically just a sandbox physics sim.

URP Multi-Platform Shader Graph Materials

The fuel tank of the rocket uses a combination of a "Half-Life Alyx"-style liquid shader and a candy cane stripe shader to produce a reactive, animated material that can be used on Desktop, Web and Mobile. 


This prototype also uses a wireframe shader made using a combination of vertex position data generated at the design stage, and a Shader Graph material that creates geometry-dependent effects at runtime. This combination of baking and Shader Graph overcomes the lack of geometry shader functionality on WebGL and some Mobile platforms, giving the prototype multi-platform functionality.

Updated 14 hours ago
StatusReleased
PlatformsHTML5
Rating
Rated 4.6 out of 5 stars
(5 total ratings)
AuthorCursedSolutions
GenreSimulation
Made withUnity, Blender
TagsBlack and White, Casual, Gravity, Low-poly, Management, Physics, Pixel Art, Side Scroller, Space
Average sessionA few minutes
LanguagesEnglish
InputsKeyboard

Development log

Comments

Log in with itch.io to leave a comment.

Oh and by the way, what is the black fuel, that you talk about? all i see is white, blue, red, green, and light blue fuel types. Do I have to unlock it, or something? This game needs a tutorial. Even with your explanations, and the sort of explanation, THIS GAME IS TOO DIFFICULT............    EASY OPTION, Please, so, that a person, can get used to the game, and its controls, maybe a really, really, really EASY OPTION for ME.  On another note. I played a game years ago, it was jump, jump, fall into the lava, try again. jump, fall into the lava, jump, jup, lava... J,J,L... J,L. walk into lava. Try double jump, but end in the Lava. Well after about 84 hours, I was unable to traverse across this lava field with rocks that went up and down. I asked the next door neighbours son to have a go. He did it on his first attempt. Why was I not able to jump across? Its like this game, I need a very, very, very easy option. Oh also, I can solve many things, but certain speed related things are not my FORTE. Thanks.

Update on the Sixtieth attempt, I realised that I could press the fuel buttons 1 - 5 and managed to get to the space station, where i bought some fuel, I bought some, fired it up, but then ran out, and my spaceship, is very, very, very slowly, plummeting to its final demise, on the planet below, I can see by the vertical speed, which is 0.20, surely that should be going up, if it was negative -0.20 then i would understand. but hey good try at a space game. Good Luck Dude.

After 33 Deaths, and not being able to land on a resorce fuel, I have to give up, I thought that the landscape would adapt to my skill level, which is at this moment, Appalling. At first I tried to see if i could get into orbit, but soon realised, I didn`t have enough fuel to maintain a stable orbit. I didn`t read your instructions, though. HA, Ha. I thought that the AI would learn and give me more fuel to reach a stable orbit. So after many attempts, I read the Instructions, and still after the 33rd attempt, I was still unable to land safely on a fuel deposit, to load up. How do you land on the deposit? I tried the shield, that seems to do nothing. Avid Fan of Kerbal Space Program, so I know a bit about orbital mechanics, this game is too difficult, thanks but bye.

I never seem to be able to get enough resources to make it worth flying to the space station. I think either fuel consumption should be reduced or the veins should provide more fuel. Reaching the station to buy updates might also be a bit easier.

Also I think a better indication where to find fuel would make the game more playworthy. The fuel distribution does not make it any better, if you are unlucky you may find lots of the useless black fuel.

(2 edits)

In my latest update I reduced the amount the veins spawn with, so you might be right about them being too scarce. I'll keep testing and maybe tweak the rates if the issue becomes more obvious. If you can get enough credits for an engine or aerodynamics upgrade, youll get more bang for your fuel buck.

Its funny that you call finding the black fuel unlucky, its actually the most valuable product in the game by about 5x. Its also great for ultra soft landings later on when the gravity increases and your engine becomes very twitchy. I find the red fuel is the least useful tbh.

Thank you so much for the feedback! I honestly appreciate it a lot. If you keep playing itd be great to hear if your opinion stays or changes.

Does not deplete all the fuel:


Youre full. You can tell by the fuel tank liquid reaching the tip of the rocket.

(1 edit)

So? Blue was not full...

EDIT: Oh now I get it, the rocket can only hold so much fuel in total... that makes it even more difficult then?

(+1)

seems a little difficult to land?

also it can get stuck

Yep getting stuck is not a bug. If you have Red fuel, you can tip yourself back up, and if you have Blue fuel you can activate your shield and push away. Failing all that, you can hit Enter to abort and respawn. 

Regarding landing, if you have Black fuel you can achieve a very soft landing.

Thanks for playing, and thanks for the comments!

If you want feedback, it is too tough for a casual player.

I appreciate the feedback. Ive updated the game since you last played, it should be more forgiving now. Let me know what you think!

It's an improvement

I think the safe landing velocity should be significantly higher.