Still Alive Saturday #25: Caved In

Hey everyone!

Continuing with my usual tradition of making a horrible pun to celebrate the week’s update, this week is primarily about cave generation. Before I get fully into that, however, I should mention the other progress we’ve made this week.

Justin spent the week finishing up the ocean island chunk set. That means that all islands, regardless of what type, have at least one complete image set to work with. There will be more to come in the future, but this is a really nice thing to have complete and it looks great in-game.

We also put some time this week into starting the design for the game’s logo. We’ve come up with some pretty great ideas and I can’t wait to be able to show the finished image to you!


Cave Generation

Caves in Tomorrow’s Horizon are generated as part of an island event. Cave islands will be ones that are very thick (that you can’t see the bottom of) or ocean islands, mostly because it wouldn’t make a whole lot of sense if a thin snaky island hid a multi-level cave complex inside of it. Suspension of disbelief only goes so far!

Caves can be seen as a sort of alternate (or in some cases, supplementary) challenge for a location. A lot of island locations will have their combat/events/exploration entirely above ground on the island’s surface, but cave islands will typically be more heavily emphasized on the underground aspect. This means that there will be fewer or no enemies above ground. However, some late-game locations might end up being a two-part challenge that requires you to fight your way TO the cave, and then conquer it for your reward.



The generation process for caves is a grid-based recursion method. We start off with a root node which can have 1 or 2 children. These children are randomly placed in one of the four directions outside of the root node. Once this has been done, the children recursively generate their own children over and over (so long as the maximum branch length has not been reached). This leads to a very snaky layout that feels like a maze.

Obviously, you can see by the above screenshot that the generation is still very early in development, but this process allows us a great deal of customizability and control over the nature of each cave. In coming weeks you can expect to see more work done on the caves, so look forward to that!

I may write a more detailed technical break-down of the road, probably once the generation is a little bit more fleshed out.


That’s all for this week! See you soon.


Still Alive Saturday #24: What’s in a Name

Hey everyone!

This week was a bit of a monumental week for the game’s development. I say this because we have achieved two important things that we have been working toward for most of development. The first of these is the beginning of a functional, moving ai crew member. The second of these is an official name for the game.


Naming the Game

We’ve spent hours over the past couple weeks brainstorming what exactly we want to name this massive game. There are so many elements that make up what we want to achieve with this project, and it was hard to nail exactly what about this game is so unique and valuable.

What we eventually came to realize is that this game isn’t special by virtue of it’s gameplay, story or art style alone. Instead, the game is made up of a unique and powerful combination of all of those elements. We are not only aspiring to deliver an exciting and dynamic game to play, but also an emotionally moving and deep story each time you play.

In this game, you play as one of a number of captains. Each captain has their own unique story paths to take, but the similarity between all of them is their struggle, journey and discovery. The world that this game occupies is one that mirrors our own in many ways. There is racism, cultural issues and war. This is a game about exploring those problems, as well as individual conflicts. It’s a game about the human condition and how the world affects us. It’s a game about looking to the future and striving to achieve the impossible.

With all of this in mind, the name that we’ve settled on for the game:


Tomorrow’s Horizon


Let us know what you think of the name. We hope you like it as much as we do!


Moving AI

A very large aspect of the game has always been the dynamic nature of the crew. Your crew is meant to be smart enough to assist you in combat. This means that they have to not only be able to pathfind intelligently through any kind of map, but also that they have to be able to fight for you in a way that is actually helpful, not detrimental. Your crew should not need to be rescued all the time.

Developing ai this intelligent has proven to be quite difficult, but this week I made some serious strides toward achieving that goal.



As you can see, the ai movement is nowhere near completion, but it is a very important first step towards achieving realistic and intelligent movement throughout the game world. One of my goals over the next few weeks is to take this movement even further and achieve a highly versatile artificial intelligence that will enhance the game’s atmosphere and feeling.


That’s all for this week! We’ll be spending some time next week improving both the studio and the game’s representation online, so look for that. See you all soon.


Still Alive Saturday #23: It was Bugging me

Hey everyone!


This week was supposed to be a mix of a couple things: The sound engine, the debug console and continued AI pathfinding. Un/fortunately, the debug console proved to be a much more monumental task than I had anticipated and I instead spent the entire week working on it. The results are something I’m incredibly proud of, but the pathfinding will have to wait until next week.

Note that Justin was away for the duration of this week, so no progress was made in the art department! How dare he.


The Debug Console

The debug console is a tool that I’ve been meaning to add to Sky for some time now. It allows us as developers to test, watch and modify aspects of the game with ease.

Testing combat? Spawn some Jellyfish in with a couple clicks.

Trying to figure out what location the player is at? We can monitor that.

Want to change the probability of a random encounter happening? No problem.



The console gives us much more freedom with testing and will speed up a lot of processes. It also means we can customize and set up scenarios easily so that all components of the game are highly polished.



Other Progress

Despite the overwhelming focus on the debug console, I did manage to get some other small tasks done this week. For one, the sound engine is functional and there are some basic attack/damage sounds in-game for testing purposes. It’s nice to see that even with really basic temp sounds, the combat really comes alive. I’m excited to get some serious sound and music work done in the future!

Additionally, I spent some time on Friday optimizing the existing pathfinding structure. It’ll need some work yet before it’s fully optimized and ready to be run on slower computers, but it’s a start and it feels good to be able to have a dozen or more algorithms running at the same time with only slight frame loss.


That’s all for this week! I’ll see you all next Saturday for what will probably be a more interesting update than this!



Still Alive Saturday #22: Path Found

Hey everyone!


This week we focused primarily on path-finding development and ocean locations, as well as some mild progress into improving combat feel and some other minor features.



The path-finding used in this game is the A* algorithm. I’ve spent the past two weeks learning the logic behind the algorithm and then implementing the basic structure into the game. The result, while simple, is the basis for future work involving jump calculations, ropes.



Next week my goal for this is to code support for edge detection and climbing so that the week after, I can get to work making these little guys moving around and acting alive.


Ocean Islands and Decorations

Justin spent some time this week starting the ocean island tileset. Our goal with this tileset was to create a visual aesthetic that is unique from the existing sky island. Ocean islands make up about 1/3 of the game’s locations, and our goal is to give both types of locations equal love in a way that makes the game feel varied and expansive.



I also spent some time this week coding island decoration support. While incredibly basic at the moment, this engine allows for us to decorate the islands with foliage and other structures. Right now, all we have is a handful of small tufts and bushes, but once we get the full decoration set in, each island is going to thrive with life, colour and variety.




That’s the majority of what we worked on this week. There are a couple other small features that I added, but they aren’t super exciting and can wait for future updates, or to be discovered in eventual update videos.

With a little luck, path-finding progress will go smoothly and I’ll have some cool stuff to show you next week.


See you all later,