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.

e2dbf6c3e39d2b4da30b1a0ec5cffb4e

 

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.

Chris

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.

Untitled-2

 

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.

Chris

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.

Untitled-1

 

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.

4081a938c09acc40e432f299b52e806c

 

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!

Chris

 

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.

 

Path-finding

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.

1a927c58de996d8c8bea14dbbd02a0f3

 

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.

5e794f3e8db10d7915e4dc26e2b38ab2

 

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.

a25bd43300f98c3e4268ebd750c9700f

 

 

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,

Chris

Get On With It

Hey everyone!

 

Just to let you all know, there will be no update this week on account of the fact that we got basically nothing done! It was a busy week and the things that we would have to show can wait until a future update.

Sorry about that, thanks for understanding!

 

See you all next week,

Chris

Still Alive Saturday #21: Deep Blue Sea

Hey everyone!

This week we focused on the beginnings of crew ai, ocean locations and some improvements to the Ledger/Map HUD.

 

Crew Ai

The crew ai in Projecy Sky needs to be fairly intelligent and complex in order to not only navigate the dynamic and diverse locations, but also to provide actual protection/challenge during combat. To do this, we’ve designed a system combining behavioural states (such as Attack, Follow, Flee, Support) that will apply the use of the A* pathfinding algorithm. The design of this has been completed, but the actual pathfinding code is still early in development.

 

HUD Improvements

Our goal with the Map component of the HUD is to provide a clear and simple representation of the zone that you are currently in so that you can formulate strategies rapidly and without confusion. At the moment, our icons are limited, but when the game features more varied environments and different special locations such as towns, temples, and the like, all of this will be visible on the map screen.

We’ve also settled on a tentative HUD font for the game, which is called Monkey (and can be found on http://www.dafont.com/).

f96fe06972470d89d10c5c383dc5c10a

 

 

The Ocean

Not all islands in Project Sky are floating. Some can be found at water-level. These islands are typically home to the Mo’ai, and will make up roughly 1/4 to 1/3 of the locations in the game.

52ba6a03900f84ccd56c743955923358

Obviously, the ocean is far from complete, but the framework for ocean islands/locations in general is in place and working perfectly. I’m excited to be able to show you all the locations as they progress in development and design!

 

That’s all for this week, see you all soon.

Chris

Still Alive Saturday #20: Ironing Out

Hey everyone!

 

Very short update this week, we didn’t get a whole lot done. The biggest thing that happened was the completion of the iron armour, the addition of Dawn and some changes to the energy/ability system.

2f578e0490ad9631ea6859a85a11a6b1

Iron armour is one tier up from leather armour and provides improved defence. Most crew members will start off with leather armour, but some higher tier recruits will come in better armour sets. Keep in mind that heavier armour does have its detriments!

2786a258d8e348418ba2993a60f0d45e

The changes that we made to the energy system allow it to carry more weight with each ability used. Dashes now require a certain amount of energy, which means that as a player you must be strategic with every move you make, instead of spamming the dash button to get away from combat. In addition, you can now dip into negative energy, which will slow down your recharge rate. This is useful if you have only a little bit of energy left but absolutely need to use an ability. It will cost you more in the long run, but it might just save your life.

 

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

Chris