project-image

Below the Stone - A Pixelart Caving Roguelike about Dwarves

Created by Strollart Studios

A hand-drawn pixel art roguelike about dwarves, mining, and resource gathering.

Latest Updates from Our Project:

Implementing Ore Sparkle Effects
over 4 years ago – Wed, Sep 15, 2021 at 08:24:55 AM

One thing we talked about adding for certain ores is an effect where they will sparkle a little bit. To maybe draw attention to the player.

Doing so requires a bit of logic which simply checks if a particular block has an ore on it, and of course, limiting the effect to a certain set of ores if we want to. Right now I have It doing the effect for all ores, but that can be changed relatively easily.

This is only the first iteration, of course, so the function/effect of the sparkles may change. But this does a good job at articulating the creative idea I had in mind.


Also, I want to say thank you to everyone for helping us reach our goal!

While looking at our daily stats, I was unsure when we would pass 20k. It seemed like it was going to taper off very quickly. But I had vastly underestimated the power of our community ༼ つ ◕_◕ ༽つ 

It seems we had some people who noticed we were very close and decided to go all-in and help us finish the last legs of our goal.


So big thanks to those who came in for the clutch ;D


Very soon we will have our musician Karam writing another update for you guys; maybe talking a bit about his music? Stay tuned for that!

We will also maybe try and show off some parts of the game many people haven't seen yet, like all the weapon art.


But anyway, thank you all for tuning in to our Kickstarter. This has been an exciting experience. What makes me the happiest is seeing our community grow every day. I always believed that a strong developer/community relationship is important in the success of a game. When developers put in the time to show their community that they are genuinely listening and that their input matters, that is when you know a game will go down in history (on a strong positive note).


So thank you all for supporting us, and we'll see you later!


PS: If you haven't seen it yet, we put some up-to-date footage of the game on YouTube for yall to watch.

https://www.youtube.com/watch?v=-pvRtXK6kjA


- Andrew

100% FUNDED IN 81 HOURS!
over 4 years ago – Wed, Sep 15, 2021 at 08:21:58 AM

To all the amazing people who have supported our camapaign so far: THANK YOU.   


Ever since our first Kickstarter in 2019, where we were only able to make 50% of our goal, we always wanted to come back and give it another try - because our fans believed in what we were making. With everyone joining our community, it shows us we're on the right path with this game, and as we see more and more fans come it to support us, we are going to use this to expand the scope of the game tenfold.


With 100% funding being hit, we are releasing our stretch goals up to $30,000, and more to come as we hit our next goals!  


Thank you so much to all of you who helped us know we have an awesome project we are working on, and that there is a big place for small dwarves like us.   


-Mike @ Strollart; Director of Below the Stone


P.S. Apologies for the fourth update in the space of a day, but we simply could not contain ourselves! 

PAX WEST Day 1 update
over 4 years ago – Wed, Sep 15, 2021 at 08:21:14 AM

Day 1 of PAX West has been a wild ride

After getting up 6:00 in the morning, we left as a group of developers from Apogee to the booth space. We spent the previous two days preparing the booth and ourselves for the wild journey that would come this day. To my surprise the event was packed despite the pandemic - not just packed, but packed with Indie games.

 From start to finish, We managed to only have an empty chair for a maximum of 30 seconds, with players looking forward for more (many of which are reading this after backing us at PAX!)

It was great getting so much constructive criticism, and also loving new fans who will be part of this Below the Stone journey. I hope to see many more of you over the course of the next three days of PAX West!

It was great meeting awesome fans in person for the first time. Surely more pictures to come as the event elapses. Fortunately, no elves decided to go to the booth, but humans seem to find the game appealing!

Day one has been an amazing convention so far, and I can only see it getting better with time, More updates to come as time goes on!


-Feat: Dwarfurious, and many other awesome attendees


-Mike @Strollart; Director of Below the Stone

We just got boosted to 86% !!!!
over 4 years ago – Wed, Sep 15, 2021 at 08:19:38 AM

I don't know who that was right now, or if it was multiple people.


But all of a sudden we just got a healthy boost to 86%

Thank you very much to whomever that was, or if it was multiple people.


I feel like I had to mention that ASAP because that person/people deserve this instantaneous response.

Thank you very much for the boost!


Our kingdom grows stronger! On each and every passing day!

- Andrew

Designing a System for Saving Arbitrary Data
over 4 years ago – Tue, Sep 07, 2021 at 10:53:29 AM

This title sounds like it belongs on a research paper! BUT NO!!!

Today I felt like doing some "code prototyping" for the game. I am writing this code outside of the project because It doesn't really depend on much from my existing code.


I want to design a system that allows for the saving (file saving) of information in an "arbitrary" fashion. Meaning, the data could consist of many different separate/unrelated pieces. But each "piece" will be saved side-by-side in a file with all the other data.

This would largely be used in things like Enemies/Mobs/NPC's but can also be used for other entities that hold "state sensitive information". There could be triggerable hazards in the level, and they may need to hold data about their triggered state. Of course, position data would also be saved as well!

The player would also have its own data that might need to be saved too. But yea, you can see where this is going.


Other games have developed their own solutions, which is why this isn't a research paper :P there's nothing new being said here. The way I will write my code will be based on how others have built their systems. So our system will have similar benefits.


(Technical Jargon Incoming)

One case example that I use WAY TOO MUCH for different game design implementations is, of course, Minecraft. They use a thing called "NBT" (Named Binary Tags). Which basically aims to combine typical binary serialization with "JSON-like" serialization. Where the data in a file is accessed through a string (text) based name, with a "type id" next to it; to tell what the data is supposed to be (float, int, string, array, etc.)

One benefit of NBT's is that the order of the data doesn't matter. Because the data can be read and stored in memory based on the 'string name'. This is very technical, but for those of you who have experience with JSON serialization, you'll know what I mean. File data is read based on its names, not the fact that it's in a certain order. And the data itself is still stored in a "binary format". Meaning the storage is more efficient. And harder to manipulate.

(Jargon Over, for now)


But there are different ways this can be achieved. So I wanted to take a second swing at making a system that is simpler (because I did write some code previously), and straightforward.


This is what I came up with today:

(note, this code is not used AT ALL in the game yet, this was written in a separate project for testing purposes. And there are no guarantees this will be used in the game)

This is essentially the "root" of the system. At which all the saving/loading can happen.

And this is pretty much it, other than there is no option to provide a filename. This system allows for saving groups of data arbitrarily. The only difference here is that there are no "type ids". So each "data element" can comprise many variables, and the order will matter in those places. Unless I decide to make this system work more closely to how NBT's work. Which will mean data ordering will matter even less.

(And people could even design programs that read the file, and gives you a nifty little tree viewer GUI to view the data)

The only other thing that needs to be mentioned here is this:

Which is a C# Interface which allows you to create classes which implement that. And these are what allow you to produce custom "serializers" for specific pieces of data.

This means that the code for serializing "some data" is completely separate from the class which holds that data.

You simply create the class and implement this code to save and load data. (which is order-dependent as you might see)

^ Those last 3 classes are "dummy classes" I made for testing this.


And this is my test code. As you can see, when it comes to saving the data, all you need is a simple dictionary. You do have to produce a list of "saver classes" which are used for saving the various pieces of data, which could be solved by making data more "arbitrary" like NBT tags. Because all data will essentially break down to a certain limited set of types. (int, float, string, etc).

But this is largely proof of concept. And what I end up using in Below the Stone might be slightly different.

But yea, if any of you would like to use this code in your own projects, go ahead. It's very basic and boilerplate. And its only dependency is C# standard libraries.


So anyways, thank you all for tuning in!


- Andrew