Void Voyager

2024-09-11

Greetings! Welcome to my second ever developer log! It's been a long... long... time, so let's catch up!

Asteroids in my previous release were looking like an afterthought, rather than the centerpiece of gameplay. The rings were thin, and the asteroid counts were so low that you could erase a planet's entire ring in minutes. I have spent a good chunk of time reading and looking for solutions to create natural looking rings, and eventually ended up on Godot's OpenSimplexNoise class. Generated asteroids now use noise to modify their distance from the ring's center. It was very easy to implement and the result is a nice even spread of asteroids across the entire ring.

I would like to come up with a solution for preventing asteroids from overlapping. The method for spawning asteroids does not account for asteroids already occupying the chosen space. The overlap looks cheesy, and ruins the look of asteroids all being on the same layer.

2D Vector art planet with dense asteroid rings.
A closer view inside the asteroid rings. The player's ship is surrounded by asteroids of various sizes and shapes.

I feel silly for not looking into noise sooner! It opened up many possibilities for how I wanted to depict objects. I started to go a litte nuts with noise.

I tried plugging noise into other elements of asteroid generation. Asteroid polygons were generated with the exact same method. Boom. Procedural asteroid variations. Asteroids actually resemble rocks now. Wait, aren't solid planets basically huge rocks?

You can guess where I started experimenting with noise next. I had been struggling to settle on a depiction of planets. They were looking extremely out of place, being the only objects in the galaxy that were '3d'. I was also very bored with them because they were nothing more than backgrounds to look at. Generating a planet polygon from the asteroid method was the secret ingredient I didn't know I needed. Not only do they now match the 2d vector art style every other object follows, but they can be solid foreground objects! I added the gravity fields back in and now we have varied planetary landings! A whole new gameplay element where there was once nothing!

Spent some time mocking up foliage, and I think these new planets are way more interesting to explore and look at.

I want to create more planet foliage, and continue to create more complex spawning patterns. Currently the foliage spawner places them randomly around the planet.

A view from the ground on an earth-like planet. Pine trees scatter the ground, as well as the odd small bush or stone. The terrain is variable in height, with small peaks and valleys to attempt a landing on.

NPC work has been started, but I would like to move it further along before showing it off here. I am struggling to implement a method for controlling NPC states.

Thank you everyone who has taken interest in this project. I have been spending more time learning programming concepts and rewriting the foundations of this game than I have documenting my progress. I am hoping that changes soon as I get closer to putting out what I would call an alpha build. If you have suggestions or features you would like to see in Void Voyager, please reach out via e-mail!

-ryann

November 28, 2023

Greetings Earthlings! As I progress further into this development, the desire to document the changes grows larger and larger. I wish I started writing a log earlier in the process of writing this game. So, to get us caught up to speed, this first entry will cover the key overhauls that launched Void Voyager into a whole new solar system!

Galaxy Map

The latest change that's been made to the game is within the Galaxy Generator. It has been reworked to allow more stars to be created, as well as plot those stars in prettier formations. This visualization of the star systems will be important for interacting the with Galaxy Map. Player will use the map to search for new systems to jump to and explore.

An example of the current galaxy generator. A 2D view of a distant galaxy, made up of tiny multi-colored dots. The dots are more dense in the middle as they spread out further in the spiral.

Current Galaxy Generator

An example of the first galaxy generator. A 2D view of a grid containing several dots. Each dot represents a star in this 'blocky' representation of a galaxy.

Old Galaxy Generator

Planets

Speaking of visualizing star systems, let's take a look at the updated planets and asteroids!

A map of a generated star system. Depicted are four colorful planets and an asteroid belt orbiting around a small star.
A 2D representation of a planet. The planet is blue and green, resembling Earth. It has a layer of clouds blowing across the surface.

I've added a few more types and sub-types of planets that can spawn. Most with unique textures, colors, names, sizes, and rings! As of now, I really like how these systems are predictable while still leaving room for lots of surprises! I plan to add more texture variations, sub-types, and colors to give you even more reasons to explore the galaxy!

Saving & Loading

The greatest acomplishment of them all: You can close the game and come back to it later! Void Voyager now handles saving to disk and loading. Your stats and generated galaxy are dumped into a JSON file, so you easily and safely poke around or modify your save as you wish. 1,000,000 credits? Yes please! Want this planet over there? Why didn't you just say so?

The Future

I'm very excited for the potential this game has. My short-term goals for the future are a mix between complicated scripting and cozy artistic expression. In no particular order, I'd love to acomplish these goals rather soon:

If you have read this far, thank you for coming with me on my first devlog of Void Voyager. :) My thoughts about this game are always a mess. Hopefully by keeping up with this site, I will get better at both planning and prioritizing ideas. Until next time!

-ryann