First time in Ludum Dare
https://ldjam.com/events/ludum-dare/46/light
Introduction
I have to be honest. I always wanted to participate in Ludum Dare, but never had the time to do so. Now that we are in this quarantine situation, I finally managed to make a game for the jam. I was happy even though my game was not something that I wanted to make. I did participate in other game jams when I had a free weekend, but those were small jams, so I never got more than 5 reviews on my games. I thought that this will probably change in LD, but to my surprise my game faded away pretty quickly, then I realized that this is one, if not the biggest game jams in the world, so it's obvious why my game got so few plays and reviews. So what I came up with might solve this problem, and maybe help others who are beginners in game development. I'm going to show my journey of developing light.
Day 1
The funny thing is that I totally forgot about the jam. I woke up in the morning and I saw that LD46 just started. I checked the theme and began brainstorming. I knew that most of the jammers will make a top down shooter, so obviously I had to do something else. I came up with a system where you help someone or something to reach the end of the level. You do not control the main character. So in my game the main character is a light orb, and the end of the level is the sun. This means that the mission of this light orb is to reach the sun and bring back the light.

I achieved this effect by mixing a 2D sprite with a 3D sphere. The sphere is rotating based on a perlin noise. The texture was made with blender and its hand paint tool, so it really made this easy. I also added a trail effect so the player could really feel the direction where the orb is going. I wanted the light orb to follow a path, but how do I define the path? So I made a path editor.
You can find the source code here.
After this I began to draw some polygons that I used for the border of the map and the obstacles. Then I started to implement the drag and drop feature for the obstacles and the health system for the light orb. When I was building the level, I quickly realized that I will never finish it in time, because I spent half a day and I managed to make like 10 seconds of gameplay. The problem was that the orb had a fixed speed, so the level always took the same time to complete. At this point it was late, so I didn't want to develop the game more, because I would probably make dumb decisions that I will regret later. So I went to bed.
Day 2
When I woke up something great happened. I figured out a way to make the level in like milliseconds. Procedural level generation, right? So I opened up Unity and Visual Studio and began writing the generator for the map. I knew that I didn't had enough time to generate a true random map, so the path is always the same, but the environment is different. Basically I spawn in rocks along the path on both sides. The distance from the path was calculated with perlin noise (I really like perlin noise...), so sometimes the level gets tighter and wider gradually. At first I generated the whole map, but I realized that this will really kill the performance for the WebGL build. So I only generate segments. These segments are generated when the player gets close and destroyed when the player gets far enough. Here are some generated segments:
Again, the source code is available here.
Later that day, I polished the game and published it to https://itch.io/. I thought I should make a good page this time for the game (again, expecting good traffic). I spent way too much time on the design, but I'm glad that I did. So after that, I began waiting to see how my game would do.
Conclusion
I had a great time developing the game. I will definitely participate in the next one, if I can. I thank everyone who played the game to this point. I really appreciate the comments and reviews that I got. I hope everyone is healthy and happy. Remember to stay at home and maybe if you want play my game :smile:
I will rate some other games too, if I have time, so that I could prioritize my game in the submissions.
https://ldjam.com/events/ludum-dare/46/light

