Space Dreamer - In development

Space Dreamer is a base-building survival game in development.

pulp-tiles-layer-Items-count-375-table-8-8

Development

More than 2 months ago the idea for this game came through a concept art that I did, I have dedicated most of my time with it since then. Thank you to all who tested the game on the discord server!

Smooth Movement

Instead of relying on the original "player" tile with movement and collisions, I opted to create my own "player" tile that the drawn character would be lerping to.

Since the player is a two-tile wide character, the implementation of interactions became easier, as reverting from a previous location using the go to function would fire the update event again, resulting in undesired bugs and interactions.

dreamer-demo
Made possible by decimal trick!

Movement Speed

I had a hard time deciding which of these two speeds to choose from, but eventually decided on using the faster one. The slower would be used in the future as an effect of a debuff of some sort.

dreamer-demo-fast
.25 increments

dreamer-demo-slow
.125 increments

Player States

The transition between walk and idle was achieved by checking every frame how long it has been since the last button press, using the event.frame variable.

dreamer-demo-idle-hold
Picking - up supplies

Doors and Exits

There’s a lot of tile checking happening under the hood for customizability, as I’m planning on saving the tiles for every room with a truckload of variables.

dreamer-demo-store-exits
Work day.

Hydroponics

Added a growth system for the crops, so now every week they'll grow until they are harvestable. The yield of the plants is still supplies for now, but I'm planning to add different materials such as water and food.

dreamer-demo-hydroponics
Space crops!

Introducing Nutri Dispenser!

You can now turn your delectable crops into horrible Nutri paste! Just put it inside the dispenser and viola!

dreamer-demo-nutri-save
Not delicious but nutritious!

Construction

I wrote a Python script that produces code for drawing and swapping buildings, making it less of a burden to code when a new building is added. I stayed away as much as I could from while loops and embedded variables, as they seem to slow the game. I instead coded functions that call themselves when needed, acting like a loop. I'm not sure how this affects the performance or anything, but it works! The theme for this game's coding style is brute force.

dreamer-demo-water-build
Build, build, build!

Bots

Reworked a lot of the player code to be able to also handle the bots. These needed a lot of code to be modular; it felt like making a whole new game from the ground up. Python made scripting this significantly easier, focusing on creating the system rather than doing repetitive code. Right now, they can move, collect, and supply both the nutri dispenser and water tank; they can also do this while the player is not on screen (no bathroom breaks while I'm away!). This code will also be used as a base for a possible entity system (aliens!?).

dreamer-demo-bots
They won't be stopping anytime soon.

Bots, Again

I had underestimated implementing the bots; it was really tedious, so there was little progress. However, development continues now that it's almost complete. Now you can command them and do all your work!

dreamer-demo-command-bots
Automation!

10 Likes

It's mad that this game is being made using Pulp! Really impressive stuff. Hopefully you can keep on top of the performance, I imagine you'll be brushing up against the limits of how many draws you can make per frame without things slowing down.

1 Like

Thanks! I also hope so, but I have indeed been encountering a limit on draws. I tried other means of clearing rectangles, and it seems to have increased performance for the more intensive parts but at the cost of an overall decrease. I can run it through pulp mill, but I haven't been successful in doing so.

1 Like

Did you ever get pulp mill working? I havent so far. This game seems really interesting.

1 Like

Would it be possible to share your code for this project? I would be fascinated to understand how you achieved this in Pulp.

Sorry to reply to you so late, but I'm afraid I can't share it. However, if you have questions, feel free to ask!

i would honestly just love to see exactly how the character works. I know you said you're using the decimal trick from the one dude's pong game but even still i cant wrap my head around how you're achieving that smooth animation.

I created a thread on how to do it. I've always wanted to create one, I hope I explained it well. :sweat_smile: