Ludum Dare 48 April 24–27, 2021

Post-Compo version

Between work and being ill, I've not had as much time as I'd like to do a more 'playable' version.

play now (HTML 5)

Fixed stuff ( mostly) includes :m:

  • Addition of beetles on carpets
  • New UI / help stuff
  • Improved camera
  • New Queen animations
  • Fall death
  • Moving Snails
  • Air speed for cat is greater than on ground

aaaaaaaaaaaa.jpg

Rescue Time!

With less than 2 days remaining, don't forget to use the Danger filter to find games that don't have enough ratings to get a score but are very close. Let's get scores to as many games as possible!

dangerfilter.png

Enhancing foreground & background sprites

Have You played Descending? https://ldjam.com/events/ludum-dare/48/descending

ezgif.com-gif-maker (7).gif

Polishing even further after the Jam: Added some webs, and generated some normal maps to many of the foreground and background elements!

Deep Sea Settler Postmortem

Play and rate here

Deep Sea Settler is a puzzle-ish colony builder. It's loosely, or rather unconsciously inspired by Reus, Dorfromantik, and Solar Settlers from BrainGoodGames. I interpreted the theme thus: You have to slowly build out your underwater colony by placing buildings farther away from your base, deeper into the ocean, and spread in a hostile environment - without destroying said environment.

Day 1

I came up with two main game ideas for this theme: The first was a game about a submarine navigating in complete darkness based on sonar and dead reckoning. The second was an under-water colony builder with an ecological theme.

The first would either have looked really boring, with no visible environments, only 2D submarine controls and instruments, or it would have been too much work to mode the interior of a submarine and interesting underwater environments.

I decided to work on the colony builder, and to set it on a hexagonal grid. You start out just below sea level, and as you go on, the sea bed gets deeper and deeper, sunlight becomes scarce and pressure increases, so the game gets more difficult. (The depth and difficulty mechanic did not make it into the final game, but tiles of varying depth did.)

I started by working on the art and rendering code.

TilePersp.png

I made a simple renderer for infinite hex tilemaps (stored in a hash table), and drew some tiles. They all had a "base" or "depth" to them, allowing me to raise or lower them a bit without "floating" over the playing field. After seeing the tiles arranged like that, I decided to re-work the tile shape to allow for a better perspective when drawing tile contents, and I drew a bunch of tiles based on an ecological and "humorous" theme:

funny_tiles.png

A fishing submarine with a fishing rod and a fish farm with fish fenced in in a 2D enclosure felt like the peak of humour to me at the time.

Day 2

I drew some graphics for UI elements and cursors, and started making the map clickable and interactive. For this, I repurposed the drawing code and the hex marker that shows the selected tile. After a broad-phase collision check, the game checks if the mouse is inside the drawn tile by checking a collision mask at the positions of nearby tiles, preferring the tile nearer to the "camera" if two or more overlap. This was easier to code than convex hex shape collisions, and allowed me to stay a bit more flexible with depth and overlapping tiles. At this point I was still thinking about making depth a more prominent mechanic, but the interaction with the map and judging of distances got a bit too difficult when tiles were occluded too much.

Then I added the wavy underwater effect. It took me way too long to add it, and although everybody tells me it's a bit too distracting, without it it's not clear that you are underwater, which is an important thing to convey at all times, because of the theme.

I drew some sprites for resources and tile products, but I was still unsure which should become which.

After playing around with different configurations, I decided to focus on just building, without a way to destroy built structures, and without "turns". There were discrete actions, but no "turns" and no way to pass time. There was also no way to accumulate resources over time. The only action was clicking on a tile and building, with instantaneous effects: Left-click a tile, select what to build, repeat.

settl2.png

This gave the way a much more puzzle-ish feel, that I really liked, but it also meshed with the "ecological" theme: Every action is irreversible, every tile is a precious resource, every decision is meaningful. Using a tile for building can cost you food or oxygen production. Expanding can destroy synergies between tiles.

To make this more obvious, I added a UI that shows a tile's output when you hover your cursor over it.

settl1.png

Day 3

The game was "feature-complete" after the second day, but I felt a bit unhappy with the balancing and the UI. I took a third day and spent Monday evening adding mining tiles to make tile space more precious, and UI improvements like drawing the perimeter of the buildable area (instead of the range of the current habitant) when the cursor is outside of the buildable area.

The farms were too easy to build, and the power plants were too difficult, so I added power lines to distribute energy (at the expense of building over more tiles) and mining of rifts for science juice to build farms. This way, food, energy, and oxygen are more of a trade-off, and you can't just tile the world with farms, but you can upgrade some of your farms to undo your worst mistakes. If there are not enough volcanoes where you want to build, you can build power lines, but that will make habitat placement more difficult.

What Went Right

Scope: I am really happy with the tight focus of the game, but at the same time, this game mechanic has "legs". It would be easy enough to add more tile types, make the map bigger, and to increase the goal population in the future based on what I have now. But as it stands, it's an interesting game already. Adding more systems would have made it harder to balance, and I am glad I didn't add turns with actions per turn, or tiles that generate resources over time.

Art: For the most part, I stuck with the db32 palette, plus some transparent shades of those colours in the domes and bubbles. I don't think the tiles are as funny as I first intended, but they are distinctive and legible enough.

Balance: After playtesting the game for hours, it's really easy for me, but it's a decent challenge the first few times. Some of the difficulty stems from not knowing what tiles are available and the lack of undo, but it's replayable for some time without feeling "solved" even after you have internalised all the mechanics. None of the tiles is too abundant or too rare.

Game Design: The core loop is build habitat->connect food and energy->expand range->build habitat, but it's also possible to go back and increase the population of existing habitats by mining, upgrading farms and connecting more energy. In the endgame, the player can sometimes increase the population by densely packing the centre of the map with habitats after spreading on the map, and sometimes, it's the other way round. That gives this game a thinky, puzzle-ish feel.

Tile products follow the pattern [adjacent tiles->built tile->product->habitat], so that there are no loops. It goes kelp->fishing sub->food->habitat; rift->power plant (->power line optionally?)->energy->habitat; kelp forest->oxygen->habitat; farm->food->habitat. Evaluating the output of a tile is straightforward both for the computer and the player.

Theme: I tried to work in an ecological theme, where Oxygen is in short supply, built structures cannot be reverted into pristine nature, and tiles are an important resource. Players picked up on that.

What Went Wrong

Jam Theme: Unfortunately, the jam theme "deeper and deeper" got a bit lost in the process. The game was already difficult enough without making tile depth contribute to building costs, and complicated enough for a jam game without adding more mechanics. Making the terrain generation more extreme would have made tile adjacency hard to determine. I would have needed to use a 3D engine to make 3D game mechanics.

extreme.png

(extreme terrain generation with deep cliffs makes world difficult to parse)

Tutorial: There is no in-game tutorial that introduces the tiles gradually. I added some text on the itch.io download page and the LDJAM submission, but that can easily be missed. The only way to learn what the tiles do is to place them and then examine what changed, or the tool tip. Only after the compo I implemented a bunch of UI improvements, but they need to be enabled in the game's options. Now the tool tips are also shown in the build menu. I should have thought of that right away.

UI: The UI is too busy and the mechanics are not discoverable enough. Adding more things to the UI would make it busier, removing things would make it harder to see what's going on. The UI needs a complete overhaul if I add anything more.

Time: Looking back, I could have implemented all this and some more polish, animations, and sound effects within the time constraints of the compo, if I hadn't had anything else to do that weekend. I really wish I could have added some audio.

What I learned

  • Don't try making depth a mechanic thing in a 2D game if you can't rotate the camera and look behind things
  • Some users get annoyed by waves even if they don't get sea-sick
  • People call every visual effect a "shader", even if it doesn't use the GPU
  • Hexes are cool. Some mechanics just don't work on a square grid
  • My visual jokes are not as funny as I think they are
  • I can do LDJAM without feeling hungover and tired on Monday
  • Try not to accidentally take out the jam theme when cutting down the scope!
  • See, my games don't have to be platformers
  • Limiting your mechanics to simplify controls to one mouse button can pay off

Help me plz lol

guys i by accidentally saved my game as compo how do i change it to jam?

Making a commercial game from our entry

After the jam we've decided to dedicate our time to making a full game. Our entry Mine the Beat was awesome, but we couldn't implement a bunch of features due to time.

After getting a ton of feedback already, we felt like a full commercial game would be awesome to make. We can just implement the features we wanted, apply the feedback we have gotten and have a cool game for people to buy.

Here is the first devlog on our journey. Instead of having man-made levels, levels will be procedural:

https://www.youtube.com/watch?v=KlkbVOUFcUE

Hackers have attacked Dig World server

Maybe..

If you have not seen my game yet, it is an MMO sandbox, here's the link: https://ldjam.com/events/ludum-dare/48/dig-world

Now, here's the story:

One of the comments made on my game was by @togis who showcased my game on his stream and uploaded it to youtube (https://www.youtube.be/watch?v=Sx1MQ445u7k&t=8958s):

You may notice that when he joined the server he said hello to a random person without a passport.

This dude was just sitting there near the moneymaker pretending to be doing nothing

Screenshot 2021-05-17 134659.png

Now, earlier today I also joined @itsboats's stream. Unfortunately their VOD was not saved, but I was there when it happened.

At first I did not even notice, since the he blended well into the environment, but the suspicious guy was still present on the server in the same exact spot doing something suspicious.

And well, right during the stream while I was playing with boats, we noticed that our characters stopped synchronizing.

And this was it. I looked up on the server, and indeed, the hacker has done it! The server has been crashed!

May 17 07:23:10 kuviman bash[10744]: memory allocation of 838860800 bytes failed May 17 07:23:10 kuviman systemd[612]: ld48-server.service: Main process exited, code=killed, status=6/ABRT May 17 07:23:10 kuviman systemd[612]: ld48-server.service: Failed with result 'signal'. May 17 07:23:20 kuviman systemd[612]: ld48-server.service: Service hold-off time over, scheduling restart.

The server has an autorestart tho so you can still play the game, but it does not save anything to disk, and keeps all the world in memory. So that means that everything that was built by all other players - houses, ladders to the hell and to the sky, LD48 sign, all the swear words and statues - are gone now. The server has been wiped.

I was actually planning to make a save by connecting the client and downloading it all but I guess I cant do that anymore.

The server was up since the beginning of ludumdare and now, 1 and a half day before the results, this is the first incident.

Press F

See you next ludum dare

My game got a lot of attention outside of LD (Virtual Museum about Autism)

My Ludum Dare 48 game, The Spectrum Soup got some traction in Autistic Discords, Forums and Sub-reddits, and it turned out to be my most successful game ever. I even got some USD donations, totaling US$ 20 - not bad for a jam game. Many games made on the course of months never get to $1.

41829.png

[LDJam Page][Itch]

The game has thousands of plays registered in Itch, and then ironically it got less than 30 ratings in Ludum Dare, due to the fact that I did not do my work of playing and rating other games, and that the majority of players come from outside. And the feedback has been immensely positive all over the place.

Game Jams as mean of expression and art

I never actually made a "normal" game in Game Jams. In my previous Ludum Dare account, where I made a game in LD from 2011 to 2014, I always made experiments.

The same under this account:

The themes and constraints of a game jam allow you to create more experiences and focus on art, instead of having the pressure to make a commercial viable product.

I don't have any will to add combat, enemies and all those "mandatory" game design things you know of. Of course depending on the theme and idea I may do a "normal" game in future jams, but what I mean is: in my definition of game jam, I should break away from the chains of "game design".

The last day to expand the oasis, deeper into the desert!

promo08.PNG

The event comes to an end, if you havent visited it yet, or want to have a go again. Let´s meet at the oasis and let it reclaim the desert, growing trees or get lost in between the dunes.

Each time the server is empty the oasis will shrink again, so stay a while, listen (read^^) to its story and maybe you´ll meet someone to go with you :)

Thanks everyone for playing until now - it was always a blast to see you running around, jumping and trying to communicate without words <3

Last day and still no 20 ratings?

I'm here to help you! If you're like me and you're currently struggling to have your 20 ratings to finish this ludum dare... poke me! Just add your game url down below and I'll promise to go play and rate your game.

In return, can you help me with mine? Here's the link [https://ldjam.com/events/ludum-dare/48/alices-fall]

alicesfall_3.png

Accessibility - how we've made settings

Most game jam games don't have things like: options or remappable input. Sometimes they are just using the default settings in the game engine, but most of the time there is nothing. I understand for like webGL to not have resolution settings, but it still sucks for some folks with different keyboards that may not work for every game. That's why in this project we used a demo version of qASIC (my tools that I hope on releasing soon) to compensate for that. Screenshot 2021-05-17 142041-0.png

Settings

Yes, we have them. In unity. As with every demo, things didn't want to work, but they are fixed now. I've created my own scripts (took like 5 minutes) for swapping between options by pressing on them. This will probably be added to qASIC in the future, but for now I had to do it on my own. Most people will probably just copy the settings from the example scene and call it a day, but I couldn't get them to look good in time. Screenshot 2021-05-17 142041.png

Small microscopic problem. The options didn't work. I mean they did, but not 100%. You couldn't select the last option. What that means is that: you can't set the native size, or set framerate cap to 240! When we realized that, we've updated the itch page to help users fix this, by using another tool which I will talk about more soon Screenshot 2021-05-09 190052.png

Also, the specific option system works that you add fe. a slider controller to a slider and fill out the name of the option. Say goodbye to long confusing walls of option scripts. Screenshot 2021-05-17 145203.png

Remappable buttons

Our keyboards are different. This is why it's so frustrating when some buttons don't work the same for everyone. In our game you can change the buttons however you want. Well, on the jam version every time you loaded a scene they were being reset, but that's fixed now. We just had to add one component to be called on awake and load our key preferences and that was it. User preferences also get saved, so you don't have to remap them every time you boot up the game. We just had to use the input system in qASIC (that's using the legacy input system, that will change one day) and call GetAxis("Up", "Down") instead of the unity one. Screenshot 2021-05-17 142218.png

Later we added a remappable console button, since not all people have the back quote button and I wanted to show of some little cheats. Screenshot 2021-05-17 144859.png

Audio

Normally in jams I write my own custom audio manager that uses tags and other things. Luckily as qASICs job is to have "quick basics" there was already one built in. It also could change different parameters and save them. So, all I had to do was to add a component to a slider and assign the parameter name. Just like that, I was done. Screenshot 2021-05-17 145344.png

Console

In the beginning I mentioned, how our settings were broken and we had to fix them. Instead of having players play the game in 480p, we left a note on how to change that using the console. The in game console is one of the first features ever added to qASIC and it's solid. It's easy to add commands, customize colors and configurations. It also has some built in commands. One of them is changeoption, which was used, before we could update the game. Screenshot 2021-05-17 142402.png

Excluding accessibility the console was used rather a lot during this jam. We only added one command: noclip, but later for some screenshots we've added: ai, interact, speed, while for testing we used aidebug. Noclip has proven to be one of the most fun commands for players, when they realized there was a console. It was also used for screenshots, fall damage testing and even AI at some point. Screenshot 2021-05-17 142330.png

I cannot stress how useful these tools are and how quickly you can debug things. People still don't believe me that "a console is useful" or that "it suits a small game". One of the biggest praises we got was that we've added a dev map, where you could explore different testing places, or fly around, or even try to break the game. Screenshot 2021-05-17 145643.png

I don't think we could have finished our game without qASIC, so if you are interested, please try to use it now and wait for the official demo release, which will hopefully happen soon. qASIC full logo background.png

Or like a normal person, you could just play our game and see for yourself

I'm hosting a game jam?!

Yep, I'm hosting a game jam! It is called the hyper-causal jam, in which you have 72 hours to make a hyper-casual game. Everything is explained in the jam page!

https://itch.io/jam/hyper-casual-jam

Help me get to 20 ratings, I will rate your game too

Hey all, because of personal circumstances I was not able to play many games yet, but I would still love to get enough ratings today. So if you could rate my game, I always rate the games of anyone who comments on mine!

https://ldjam.com/events/ludum-dare/48/dice-demolition-into-the-core-of-the-earth

Help!! We need reviews! We rate back!

Hey!

My and my friend need some review for our game so it will be eligible for the tournament.

We write reviews back :)

Thanks everyone!

Modularity and Scalable detail

Have You played Descending? https://ldjam.com/events/ludum-dare/48/descending

After all the modularity We've added to Our Post Jam version (Available Soon) that's how it looks when Stacking multiple modular layers of detail one over the other:

z8kkeoXJ65.gif

pCI6W3kM7p.gif

oLIB9uITGG.gif

Try out my game! (HTML5)

logo.png

https://ldjam.com/events/ludum-dare/48/aquaphobia