{"author_link":"\/users\/dustyroom","author_name":"Dustyroom","author_uid":"dustyroom","comments":[],"epoch":1621115143,"event":"LD48","format":"md","ldjam_node_id":256874,"likes":7,"metadata":{"p_key":"158046","p_author":"Dustyroom","p_authorkey":"1000920","p_urlkey":"378293","p_title":"Below the Tide","p_cat":"LDJam ","p_event":"LD48","p_time":"1621115143","p_likes":"7","p_comments":"0","p_status":"WAYBACK","us_key":"1000920","us_name":"Dustyroom","us_username":"dustyroom","event_start":"1619222400","event_key":"109","event_name":"Ludum Dare 48"},"node":{"_collation":{"body_sanitizer":"TextUtils::SanitizeHTML via existing importer","event":"LD48","removed_author":false},"_superparent":233335,"_trust":7,"author":920,"body":"Hi! We'd like to tell a bit about [our entry](https:\/\/ldjam.com\/events\/ludum-dare\/48\/below-the-tide) for LD48.\n\n**IDEA**  \n**Below the Tide** is a game-experience where a vessel of an unknown origin explores the underwater world. The mechanics lie in moving through the suspended islands without hitting them in a search for safe landing spots. The goal is to go as deep as you can before the battery runs out. The hook of the game is in maneuvering between the obstacles while preserving as much energy as possible at the same time.\n\n![1.gif](\/\/\/raw\/893\/z\/4273d.gif)\n\n**DEVELOPMENT**  \nThe gameplay development was all in Unity. Probably, the biggest chunk of the programming was in making the terrain for the never-ending underwater environment. The islands are generated in a procedural way by running the [marching cubes algorithm](https:\/\/en.wikipedia.org\/wiki\/Marching_cubes) on a [signed distance field](https:\/\/prideout.net\/blog\/distance_fields\/) produced by [3D perlin noise](https:\/\/en.wikipedia.org\/wiki\/Perlin_noise). The mesh topology is generated on the fly and expands as you reach the level bounds, while the rest is being occluded for performance reasons. Using such noise as an input for level generation gives an almost unlimited freedom for controlling the shapes, density, roundness, fuzziness, blobiness etc of the islands. But it was (and is in post-mortem development) a challenge to get it work and look nice.\n\n![index2.jpg](\/\/\/raw\/893\/z\/42744.jpg)\n\nBelow is the screenshot of the early work-in-progress, looking for a nice terrain variant.\n\n\n![index3 2.jpg](\/\/\/raw\/893\/z\/42747.jpg)\n\n\nOne of the early decisions was to implement meshing to run on GPU using compute shaders, which worked out well in terms of performance (no loading screens), but unfortunately is not supported on WebGL at the moment. This resulted in the game only being available for the desktop platforms.\n\n\nThe shading was done using a custom-made set of shaders. The biggest problem was in making the terrain look as intended, basically, generating smooth-shaded normals on the procedural mesh. Because we had no time to polish the look of the generated islands \u2014 it would be easier to do if they were hand-made in Blender \u2014 we had to do some shading tricks to mask the imperfections of the terrain. Particularly, the psychedelic silky-smooth look of \u2018charger\u2019 islands didn\u2019t work well with the marching cubes\u2019 sharp normals.\n\n![gif3-optimized.gif](\/\/\/raw\/893\/z\/4273e.gif)\n\n**WHAT WENT RIGHT**  \nWe finished the game that is playable and generally looks nice! Even though by the end of the jam the game was holding on sticks and a bubble-gum, we consider this an achievement.  \n\n\n**WHAT WENT WRONG**  \nThere\u2019s not much of the gameplay in Below the Tide in the Jam version. We have ideas on how to make the controls more interesting, but not sure if it\u2019s worth pursuing.\n\n\nWhat do you think? All feedback is very welcome!\n\n\nhttps:\/\/youtu.be\/I5-K_o1N6Is\n\nPlay + Rate:  \n[itch.io](https:\/\/dustyroom.itch.io\/below-the-tide)  \n[LD Jam entry](https:\/\/ldjam.com\/events\/ludum-dare\/48\/below-the-tide)","comments":0,"created":"2021-05-15T21:10:54Z","files":[],"files-timestamp":0,"id":256874,"love":7,"love-timestamp":"2021-09-18T09:13:37Z","meta":[],"modified":"2021-09-18T09:13:37Z","name":"Below the Tide","node-timestamp":"2021-05-15T21:45:43Z","parent":238725,"parents":[1,5,9,233335,238725],"path":"\/events\/ludum-dare\/48\/below-the-tide\/below-the-tide","published":"2021-05-15T21:45:43Z","scope":"public","slug":"below-the-tide","subsubtype":"","subtype":"","type":"post","version":790617},"node_metadata":{"n_key":"256874","n_urlkey":"378293","n_parent":"238725","n_path":"\/events\/ludum-dare\/48\/below-the-tide\/below-the-tide","n_slug":"below-the-tide","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"920","n_created":"1621113054","n_modified":"1631956417","n_version":"790617","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/48\/below-the-tide\/below-the-tide","text":"Hi! We'd like to tell a bit about [our entry](https:\/\/ldjam.com\/events\/ludum-dare\/48\/below-the-tide) for LD48.\n\n**IDEA**  \n**Below the Tide** is a game-experience where a vessel of an unknown origin explores the underwater world. The mechanics lie in moving through the suspended islands without hitting them in a search for safe landing spots. The goal is to go as deep as you can before the battery runs out. The hook of the game is in maneuvering between the obstacles while preserving as much energy as possible at the same time.\n\n![1.gif](\/\/\/raw\/893\/z\/4273d.gif)\n\n**DEVELOPMENT**  \nThe gameplay development was all in Unity. Probably, the biggest chunk of the programming was in making the terrain for the never-ending underwater environment. The islands are generated in a procedural way by running the [marching cubes algorithm](https:\/\/en.wikipedia.org\/wiki\/Marching_cubes) on a [signed distance field](https:\/\/prideout.net\/blog\/distance_fields\/) produced by [3D perlin noise](https:\/\/en.wikipedia.org\/wiki\/Perlin_noise). The mesh topology is generated on the fly and expands as you reach the level bounds, while the rest is being occluded for performance reasons. Using such noise as an input for level generation gives an almost unlimited freedom for controlling the shapes, density, roundness, fuzziness, blobiness etc of the islands. But it was (and is in post-mortem development) a challenge to get it work and look nice.\n\n![index2.jpg](\/\/\/raw\/893\/z\/42744.jpg)\n\nBelow is the screenshot of the early work-in-progress, looking for a nice terrain variant.\n\n\n![index3 2.jpg](\/\/\/raw\/893\/z\/42747.jpg)\n\n\nOne of the early decisions was to implement meshing to run on GPU using compute shaders, which worked out well in terms of performance (no loading screens), but unfortunately is not supported on WebGL at the moment. This resulted in the game only being available for the desktop platforms.\n\n\nThe shading was done using a custom-made set of shaders. The biggest problem was in making the terrain look as intended, basically, generating smooth-shaded normals on the procedural mesh. Because we had no time to polish the look of the generated islands \u2014 it would be easier to do if they were hand-made in Blender \u2014 we had to do some shading tricks to mask the imperfections of the terrain. Particularly, the psychedelic silky-smooth look of \u2018charger\u2019 islands didn\u2019t work well with the marching cubes\u2019 sharp normals.\n\n![gif3-optimized.gif](\/\/\/raw\/893\/z\/4273e.gif)\n\n**WHAT WENT RIGHT**  \nWe finished the game that is playable and generally looks nice! Even though by the end of the jam the game was holding on sticks and a bubble-gum, we consider this an achievement.  \n\n\n**WHAT WENT WRONG**  \nThere\u2019s not much of the gameplay in Below the Tide in the Jam version. We have ideas on how to make the controls more interesting, but not sure if it\u2019s worth pursuing.\n\n\nWhat do you think? All feedback is very welcome!\n\n\nhttps:\/\/youtu.be\/I5-K_o1N6Is\n\nPlay + Rate:  \n[itch.io](https:\/\/dustyroom.itch.io\/below-the-tide)  \n[LD Jam entry](https:\/\/ldjam.com\/events\/ludum-dare\/48\/below-the-tide)","title":"Below the Tide","wayback_source":[]}