The story of Lux and even more unnecessary stories


Hi...


This stuff is kinda hard to begin and I am really uncreative... A theme that you will see more than once during this post....

So yeah. Here we are. I for once actually managed to finish a project and this is a look back on it. I mainly write this whole thing down as a thing to look back in the future, since I had a lot of fun and learned some cool stuff along the way. And maybe one or two people will actually read this be entertained for a bit....

The story.

Recently I became interested in game development. You see.... I am a programmer in real life and a gamer by heart. Or at least I try to be with my more and more packed schedule....

So the idea of developing a game always kinda intruiged me. But now I thought to myself.... Try to develop something really really simple and polished.

With this in mind I started development of a simple mobile game but with a lot of polish in that. Development of that is still ongoing... Maybe you'll see some news in the future. :P

Enough of that.... With that I became more and more interested in this indie scene and came across these game jams. I knew for years what they were and that kind of stuff. But I was never really interested in them or even tried them. Until now...

Luckily my interest came across at a good time. One of the biggest game jams Ludum Dare was just around the corner and I thought to myself Why not try that one out?

With that I registered, voted for my favorite themes and waited for the day. 

What I didn't have in mind at that moment is that I would need that weekend to learn for an exam.... Ironically a programming exam.... But this is nothing too worrying. Just learn for the exam and do this when you have some time....

You see. Ludum Dare has two categories. The "Jam" and the "Compo". My original plan was to just participate in the "Jam" regardless, because of it's more lenient time frame for game creation. But I nevertheless made all the graphics/sounds/whatever besides a few things myself. And in hindsight this game could have been easily a game for the "Compo" because the development of this game effectivly began on the second day. Oh well.... But nothing too bad. It could have been worse. Like not making it at all...

Let's get back to the story. The theme came along and I really didn't expect that one out of all of them. Stuck in a loop

Hmmmm..... What can I do with this.... I thought to myself after I looked at the topic on the first evening after I had learned a bit for the exam. 

I already knew that I wanted to do some really really simple game with a simple premisse but rather polished..... That was my goal. But the game and it's mechanic needed some time to find out because I am really really really uncreative.

The story on how this idea came to my mind was on the other hand rather interesting....

I was just on the PC and it was getting a bit dark in the room. I was just listening to some music while I tried to come up with some idea. Then a song  called A Girl Like You by Edwyn Collins started playing. The song itself is kinda irrelevant to this story but rather the music video. This video featured a black and white asthetic with some silhouettes. This style kinda intrigued me for a second. Then I got up from my chair and turned the lights in my room on because it was rather dark in there..... And this was the moment where that little idea light bulb above my head turned on. 

You see. When I think of easy, simple and this black and white asthetic I personally think of the classic Pong. I don't think I have to introduce you to that one. Because of the lights that I just turned on I had this topic of Light in my mind. So I tried to combine these things with the actual topic of the game jam and the result was Lux. Kind of.... We need a few steps to actually get there. But we will get there. I promise.

The first general game idea that I had in mind was a light beam that was flying around the pitch dark void. You as the player can control four different mirrors on each corner to reflect it in a 90 degree angle to get it to loop in a circle. When the light escapes the loop you lose. It's as simple as that. 

With that in mind I went on to development. 

For the game itself I chose Godot mainly because I wanted to get more familiar with it since I really like that engine and I already use it in that other game I mentioned earlier. 

You may have seen the lack of pictures or any other colorful things in this wall of text. This is because I dumbass never really believed in myself that I would actually make it or even write a blog or post-mortem or whatever this is called.

I am really sorry for that. But I hope that if you made it down here you'll stick along until the end. There aren't even that many anecdotes from my life anymore. I promise.

Let's start coding.

The first thing that I've done was to get a simple character moving and get reflected in a 90 degree angle so it moves in a circle. This was rather easy. Just rotate this character by this angle whenever it collides with these paddles or later mirrors and you are done.

But that would be kinda boring to play. So these mirrors would need to moving and this part would need by far the longest time. My first idea for that would be that these mirrors would have a fixed path where they can move up or down. Then you could click and drag them with your mouse. But I soon realised that this would be rather difficult to implement with my limited knowledge. And this stuff with the fixed path was kinda difficult for me because I've never dealt with that kind of stuff. Luckily Godot makes this kinda easy with its path nodes and with a few YouTube tutorials this was sorted. The movement was another story as I said. I tried a lot of stuff from the web but that didn't quite work so I changed the approach for controlling the mirrors to not lose too much time. 

The fixed paths for the mirrors stayed since I got them to work but I changed it so all four of them would move at the same time. This was easily done but it has one problem. You could just stay in a fitting spot and the light beam would move in a circle forever without any action of the player. 

To solve that issue I made it so the controls for the mirrors are "kinda broken" and move a bit randomly when you don't actively press any buttons. And if you lock up the mirrors on the edges so they all don't move anymore the key press would be released for a short amount of time so the mirrors could move a bit. These movements were established because now it poses an actual challenge to keep the light beam in that loop.

Now we actually have an actually challenging premisse in the game. 

Now I just added a score counter in the middle of the field that goes up, when the beam collides with a mirror.

With that the basic game was done. 

Now onto the assets.

There is not that much to this actually. As you've probably seen the textures are kinda simple. But that was what I've going for anyways. Just some simple shapes for the mirrors and a rounded rectangle for the light beam and the basic graphics were done. More would come later. But this was the minimum that I wanted for the game. This would be a great point to show you a few pictures but yeah. Not pictures. But it doesn't look that different to the final product. Just some fancy effects like the trail and some animations are missing at this point.

The sounds/music may be very rudimentary but they have an interesting story that I want to share...

You see. I don't really have any experience with this kind of stuff at all besides a bit of music theory that I remembered during school.... So this was something completely new for me. But I thought to myself. Since the theme is already kinda loop-based a looping backing track would suffice. I found this program called Bosca Ceoil and tried to do something fitting.... 

You may have noticed.... But in the actual game there is no background music.

And with that I completely agree with you. But I actually tried and had an interesting idea. You see.... This came together when I was as usual listening to some music. Then a song called Fade to Grey by Visage came along. This song has at least for me this very futuristic vibe which I kinda liked. So I started with the first few notes of this "melody / bassline" however you want to call this thing after the short intro..... As I said. I am not a music nerd or anything like that.

With that and some changes I made with the notes/arrangement/instruments I had come up with something pretty nice..... But there was a little problem. I changed this baseline of an idea so much that it kinda changed it's vibe. It still had this futuristic vibe to it. But now it sounded like a backing track for the second Mario an Luigi RPG game. (Partners in Time)

Whenever I listen to it now I could really imagine it being a track that played during this forest section in the first parts of that game. I would right now show that to you but I can't really seem to find any place, where I could upload that.... If someone is interested in listening to that just write a comment and maybe I can find a solution. But for now you kinda have to believe me in that. 

As you've probably imagined this wouldn't fit that well to the game and this was the point where I thought to myself....

The game already has this kinda mood-ish vibe to it with it's darkness and emptyness and it's one light beam..... I think no backing track would suffice and I can focus on other stuff....

Then this backing track got scrapped. But I used some parts of that loop I created for some sound effects like the bounce and the game over only with another instrument (I think it was some kind of noice....) which you more sound like a light beam. So it wasn't quite for nothing.... 

The only thing in this department that I've done for now was adding these very very basic start menu and restart game screens. And as you've probably seen these only have a few very simple and even hand-drawn things. So I think there is no real explaination needed.... Just some simple icons.

For now the basic design of that game is done and even the basic game itself. I was kinda proud to myself that I've actually done something in a reasonable time frame. The great thing at that point was that I had like half a day left to polish the game a bit.

The first thing that I wanted to do was to add a trail to the light beam. So I did what what every developer does and fired up my search engine of choice. I found some tutorials for this kind of stuff. The basic idea for that was to use a Line2D and continously adding the current position of the light beam as a point of that the line goes through. This approach would create a trail with the entire path that the light beam went during the entire game. Now I only needed to delete these old points from the line so the trail would be more like a real trail and not like a trace. To do that just pre-determine a trail length and remove the first point of the the list of points which is the oldest point of that line with a pre-existing method. The only thing that I added now was to give the line some gradient as the color to make it fade out to its end. With that the trail is done.... 

The next thing I polished was to let the light beam start in the middle and choose a random direction. But the problem with that approach was that the score counter was in the way. My idea was to make it invisible and let it fade in after the light beam is out of the way. or after a short amount of time. The best way I came across to do that was to use Godot's AnimationPlayer. To be honest. I had some starting difficulties with that. But when you get around there it is really easy to use, especially for those simple fading effects. So I learned that during the jam as well.... Yaaay. With my motivation to do some animations I also made the start game button pulsate a bit to draw the attention to it whenever you start the game. 

With that done, I tried my game a few times. Fixed a few bugs :D 

And I thought to myself. That's so cool. I've made a game in two days and it's also kinda fun. At least for me....

With that I also felt like I was done. It was getting kinda late as well and I felt like adding anything else would cause a lot more stress to that thing that gave me a lot of enjoyment and I wanted to keep it that way. Adding that one more small feature is not usually worth it. Especially if you have already done some other stuff that you didn't think you'd be able to do in that time frame. 

When I look back. I had a lot of fun making and playing that game. I learned a lot of stuff along the way. While the competition is not over right now at the time of writing this blog-thingy I recieved a lot of nice feedback for the game which makes me really happy that I was able to make something that someone in this world enjoyed. 

So yeah..... This was the story of my first game jam. And it was a good one.... At least for me. 

And I hope you got at least a bit of enjoyment in playing my game or reading this blog that I had. 

Keep havin' fun....

D-Lord

Get Lux

Leave a comment

Log in with itch.io to leave a comment.