Ludum Dare 36 – Lens

Basic Info:

Ludum Dare is always a thing that I’m looking forward to, and as always I joined the jam and started working. I will talk about the things I’ve done in chronological order (with time stamps).

I chose to jam solo, this means I made all assets and scripts alone.

 

Basic Idea:
The theme of the jam was: Ancient Technologies.
I choose the myth about Archimedes, who used mirrors to burn invading Roman boats. The player will control a tower that can shoot sun rays towards boats (by aiming the mouse and pressing the left mouse button). These boats will spawn by numbers increasing by the day and sail towards the center of the screen where your island is placed. The player is able to buy upgrades after each day to help him or her survive.

 

Design (48 hours left):

Mirrors are harder to make as a playeable character. If the mirrors are on the ground, it will be a hard time to shoot sun rays all across the island. I decided to mount the mirror on a tower top to give it more mobility.

 

Modelling (44 hours left):

I knew I needed atleast a tower, a standard boat, houses and an island.
For the boat I choose to make a trireme (greek ship) and to animate the peddles to make it less idle. The (now changed to) lens must be able to look at the position of the mouse press, so it needed to be skinned to a separate joint than the rest of the tower.

 

Basic Lens Scripting (43 hours left):

First I needed to program the raycast from tower position to mouse position. This was rather easy, but I also needed to make it visual. A ray mesh would be used, with a joint by the base and a joint by the end. The base joint would be linked to the lens tower and the end joint would be linked to mouse position when pressed. A little detail I added was making the ray invisble when not pressing, otherwise it would be confusing for the player when he or she isn’t pressing the mouse button.

 

Basic Enemy Scripting (40 hours left):

This was really the basic part of the enemy (no fancy stuff here).
Making the boats spawn in a pattern (the first pattern was an arrow shape) and let them sail towards the island. At first the boats didn’t stopped when they reached the island creating some funny moments.

I also gave the boats a moving speed, attack speed, damage, health and dificulty variable. But they weren’t used up to this moment.

 

Basic Interaction Scripting (38 hours left):

Whats a sun ray and a boat if it can’t interact with each other? Atleast it isn’t a game!
I needed to script the interaction (damage) the boats will have with the sun ray. This was rather simple and just a matter of variables decreasing. For the death state of the ship I choose to add a rigidbody and release an explosion force and instantiate a explosion particle on death. I choose to add a burning state for the boats. If you decreased their health bellow a certain point they would start to burn (like ants and a magnifying glass glass). When a boat is burning it will take a small amount of damage over time. This created a situation where the player can choose to set all boats in fire or take more time per boat to totally destroy them.

 

Sleep, eat and other things (30 hours left):

Also important!

 

Scylla enemy (28 hours left):

I wanted to create another enemy. A boss enemy. I decided to take the Scylla and create a boss enemy from that. This was a homage to the game Age of Mythology, that I’ve played alot as little kid. The Scylla is bigger and stronger than the boats but won’t spawn as often.

 

Island health (27 hours left):

It would be weird if you can’t lose the game, wouldn’t it? The island needed health to be able to lose the game. The boats also needed to do damage once they are next to your island. The healthbar is visible on the top center of your game.

 

Multiple patterns and spawn points (23 hours left):

To make the game less predictable I made multiple spawn patterns for the boats.
There is the strong arrow, weak arrow, square, split, line and donut spawn pattern. I wanted to create the patterns purely by script. But with the time limit in mind I created them as pattern prefabs with the spawn prefabs within. These prefabs communicated between each other to determine the dificulty and number of spawning ships.

P.S. There’s a random bug in the game that makes all the boats in a pattern do a barrel role. I found it funny enough to keep it in the game, giving it a quirky effect.

 

Rest time (21 hours):

I took a nice walk with a friend of mine who was also jamming. Clearing the mind and discussing things in life.

 

Difficulty per day (19 hours left):

As said in the pattern creation, the patterns had a difficulty setting. This variable determined how many ships were spawned within the pattern and if a Scylla was able to spawn. I linked this variable to the Game Manager which changed the dificulty based on days the player survived.

 

Upgrades per day (17 hours left):

If the player only needed to destroy ships the same amount of boats the game would become very dull and boring. However by changing the amount of boats based on days the player survived, would make the game impossible after surviving for some days. And still a bit dull to be honoust. I decided to add upgrades to the game. I started with 8 slots but changed it to 4 after realising I hadn’t enough time to create 8 unique upgrades. The first upgrade was the lens upgrade, which increased your attack. The second upgrade was the shield. A sphere that grows and pushes back enemies. The third upgrade heals your island back to health. The fourth upgrade places mines as bellow.

 

Sleep, eat and other things (13 hours left):

Still important!

 

Small details (7 hours left):

There are some little details that makes a jam game for me. If you only add the necessary thing you forget to have fun. And fun is one of the important parts of the jame. I added a wave particle. These are particles that spawn from the (big) shell and have a negative speed. This way they moved inwards.
Another thing I really wanted to add was the possibility to destroy your own buildings. It doesn’t serve any goal but it’s just a little detail that create more fun for the player. After making the houses explode able I discovered that it felt a bit empty. I decided to add a character UI that would comment on your action making you more conscious of what you are doing when you are destroying your own buildings.

Peasant talking (3 hours left):

After adding the peasant comment on destroying your own building I decided to add more comments when doing certain tasks. This way I could give instructions to the player or give them little hints or game “flavour”.

 

Small polishes (1.5 hours left):

A friend gave me some feedback on the text the peasant character said when destroying the buildings. He said it was a generic text and it needed more “randomness”. So I changed the text and made a little randomization between texts, giving the character mutliple lines he could say per action.

 

The game is now finished and is downloadable here.

The soundtrack.

 

Retro:

The project started easy with the idea being the second idea I had. Normally it takes around 4 to 5 ideas before I’m convident enough that I will start working on it. The jam actually went very smooth, however I wanted to add more things. As mentioned before, I wanted to create more upgrades letting the player have more freedom in his or her tactics. More enemies were also on the additional to do list. I wanted to have more variety in the enemy waves but the deadline was comming to close to make them.

However, putting aside all the things I wanted to add.
It was surpising to see how fast the production went. Creating the core of the game went really smooth and fast. If I had decided to do the Ludum Dare Jam instead of the Ludum Dare Compo, I would have been able to add much more details like the talking peasant and I would even been able to add the additional enemies and upgrades.
The thing I’m most proud of is the simple but yet pleasing visual style. It’s rather simplistic but the right effects and lighting makes the style do what it needs to do.
To do the Compo instead of the Jam was a conscious choice. The Jam would keep me occupied untill Tuesday. Being back from vacation, I wanted to get back to work on Monday and don’t use the additional day the Jam gets in comperison of the Compo, and as mentioned in the basic info, I worked alone and created the game from scratch, therefore classifying as a Compo project.

 

Jam Rating: 4 out of 5.

 

Fast Realism Models

Basic Info:

Before working with Speelbaars in the Global Game Jam I wanted to practice my fast modelling and choose to model 2 basic household objects each within a hour limit.
I choose for a stylized realistic look because I was less familiar with that style in at that time.

 

Power socket:

A power socket made within the hour limit. It was rather easy to model this within time. I used two flat rectangles and used bevel on the forward corners. After this step I used boolean and cut out the cylindrical shape in the middle. When using a boolean in 3d, you should always clean up the topology, so that was the next step. The last step was to make the small details that all originated from primitive shapes with a bit of polish.

 

Cup of coffee:

The second model was a cup of coffee. This one took me 10 minutes over my limit (1 hour and 10 minutes). The coffee itself costed more time than I realised. The plate was easy. A cylindrical with some more polish around the corners and moving the edge of the plate upwards for a tilted angle towards the middle. After making the plate I started making the cup originating of a cylinder. Creating the ear of the cup and adding it to the cup mesh (and cleaning up the topology afterwards). Adding the spoon in the next step. Made by placing a cube and extrude till I had the rough shape of the spoon. Finishing it with making it bend a bit towards the head an adding details and a material. Lastly I added the coffee layer in the cup. It’s a simple circular plan, nothing fancy. But the material took more time to get that coffee “feel”.