September 23rd – Digging Deeper

September 24, 2014 in Dev Blog

As per usual, I’ve been juggling a few tasks the past couple of days.

Work has continued on the Glitch mission I told you guys about last week, though a gameplay decision that came about midway in its development has made me have to re-think the overall structure a bit. It turned out that having a larger scale structure didn’t necessarily equal more fun for the player. None the less, it’s coming along nicely and I’m looking forward to getting into scripting it. The old structure will likely end up being utilized elsewhere down the line.

As part of our restructure of the tiered progression, the mining experience is currently under the microscope. You may recall some time back, Metadept was experimenting with the matter manipulator as an upgradeable tool. Many who have tried the nightlies have likely experienced this in the form of the completely unbalanced and relatively weak starting iteration. The reason we haven’t addressed this yet is because we decided it didn’t make sense to focus on balancing the tools until we had tackled the larger task of rebalancing all of our tiles.

Every tile in the game has its own set health that governs how difficult it is to break. Since we’re having biomes split up by tier during the initial progression (note that all biomes will be available with higher difficulty levels at the end-game), it meant we needed to balance the large number of materials based on their biome and their place in the overall progression. At time of writing we have 140+ different types of tiles that each needed to be assessed and reconfigured, so most of my time the last couple of days has been tied up with this task. For now it’s looking good, but it’ll likely require adjustments as we test.

In the wake of the matter manipulator becoming the primary mining tool, it bears mentioning that the pickaxes won’t be going away altogether. Instead they will remain in the form of rare drops that, depending on your luck, could end up being one markedly more powerful than your matter manipulator at the time. The trade-off is that they will no longer be repairable, so you’d want to save them for the toughest of blocks.

The next step is going to be balancing the matter manipulator and its upgrades. We’ll be sure to keep you in the loop!

September 22nd – Loot, Loot, Loot!

September 23, 2014 in Dev Blog

On Friday I decided to make a small change to the treasure table format. I got a bit carried away and ended up spending a bunch of time over the weekend to clean up, organize, and rebuild ALL of our .treasurepools files, which I finally finished. It was a lot of work but the results make treasure much easier to work with and a much better system in general, so I’m very happy to have completed it.

For a bit of technical detail: our treasure pools are specified as weighted lists of items. The weight associated with an item determines how likely it is to be randomly selected, relative to other items in the table (not an absolute percentage chance). This means that adding new items to a table changes the likelihood of each of the other items in the table being selected. As you can imagine, this makes it very hard to edit and balance the tables! The engine change I made was to allow treasure tables to reference other treasure tables. With that functionality implemented, I rebuilt our tables by splitting loot into categories. For example, here’s the new table for a single general treasure item, such as you might find in a plain surface chest:

{“weight” : 0.4, “pool” : “money”},
{“weight” : 0.1, “pool” : “ore”},
{“weight” : 0.1, “pool” : “food”},
{“weight” : 0.1, “pool” : “healingItem”},
{“weight” : 0.1, “pool” : “fuel”},
{“weight” : 0.05, “pool” : “thrownWeapon”},
{“weight” : 0.05, “pool” : “weapon”},
{“weight” : 0.03, “pool” : “tool”},
{“weight” : 0.03, “pool” : “seed”},
{“weight” : 0.02, “pool” : “shield”},
{“weight” : 0.01, “pool” : “costume”},
{“weight” : 0.01, “pool” : “instrument”}

As you can see, the probabilities are now specified for general categories of items, each of which has its own separate treasure pool. Now, when we add (for example) a new weapon, the probability of getting SOME weapon will stay the same, as will the probabilities of other categories within this file. I’ve also split several of these categories up into sub tables, divided them based on threat level, and massively reorganized things to make them easier to work with. The end result is that we can now move ahead with our work on biomes and progression (more on that later in the week!) without creating huge amounts of redundant configuration files and future work in the process.

September 19th – Welcome to my garden!

September 19, 2014 in Dev Blog

Evening all!

Apologies for the lack of update yesterday! The team’s really been kicking the pace up a notch with sweeping changes across the board. I’ve been constantly sidetracked from the Glitch mission to do a bunch of configuration work, fixing a handful of UI elements, updating objects and adding a few new sounds to boot. That said, the mission is pretty thoroughly mapped out in my concepts now, so I have begun building and been chipping away at it whenever I’ve not been on some other task. The case being that this is a Glitch mission, it of course involves a castle.

Castle Gardens

I’m trying to establish a greater sense of scale than the generated glitch castle dungeons, so expect it to be quite open. It’s a bit bare since it’s still in early stages, but hopefully this peek at the castle gardens will give you some sense of what I’m going for. What exactly will be happening at this castle? I’ll leave you to speculate!

In case you missed it, Tiyuri posted over on our new Chucklefish blog earlier today. If you’ve had concerns about the longevity of Starbound lately, I suggest giving it a read. We’re not giving up this project of passion any time soon, and we’re gunning to get the next stable update to you as soon as we can. Thank you everyone for your continuous support and patience.

Until next time!

September 17th – Reach for the sky!

September 17, 2014 in Dev Blog

Howdy folks!

I’ve spent the past couple of days getting the tiered novakid weapons into the game, both functioning and craftable. Some of the guns are still a little on the big side, so they’ll likely undergo adjustments, but it’s nice to have something for the novakids to use besides that rusty old revolver.


Beyond that, I’ve been planning the structure for the Glitch mission, which I’m pumped to start working on. It’ll likely be very script-heavy so it’s one that may have some roadblocks to overcome before I’ll be able to finish it. I can at least start building the environment in the meantime.

That’s it from me, have a good one!

September 16th – Space Train!

September 16, 2014 in Dev Blog

Hello earth!

That’s so exciting, it’s the first time I make a “daily update”! I take this opportunity to introduce myself : I’m Neco (or Necotho), I recently joined the Starbound team as an artist. End of the introduction, let’s get serious! I have finally finished making the graphics for all of the the tiers of the Novakid’s Space-Train-Ship, and I spent a long time to implement them in the game.

I really looking forward to seeing how you will fill your Space-Train!


September 15th – Buncha Crunch

September 15, 2014 in Dev Blog

This week is off to a very good start, with lots of small (and not so small) progress made on several different fronts. My main accomplishment was adding functionality for quests to be turned in to quest giving NPCs rather than completing immediately once the requirements are met. Kyren’s continuing work on the status system and Lua APIs. We improved the gate placement and starting system selection, cleaned up a bunch of quest text, improved the layout of the AI interface a bit and fixed some GUI issues and other bugs. We’ve also started adding in tiered guns and ship upgrades for the Novakids!


September 12th: Missions and Stuff.

September 12, 2014 in Dev Blog

Hello there!

So we’re going to have a few missions in Starbound and here’s just a glimpse of another one. This is a Floran mission where… bad things happen. Staying true to myself I’ll barely say anything and let you wonder…



September 11ish – Post Lag

September 12, 2014 in Dev Blog

So as Kyren mentioned, yesterday I arrived in the UK! I said I’d write a post, but then immediately got distracted by a bunch of other discussions… sorry!

My main activities yesterday were discussing plans and priorities, getting my desk set up, and being a zombie from lack of sleep! Kyren and I talked a lot about her progress on the new status system, which is sounding awesome. The biggest feature is the conversion of all complex status effects to Lua scripts. Aside from massively improving the engine code and cleaning out a ton of unused hard coded stuff, this will allow us to easily implement some very interesting status effects, so we spent awhile coming up with ideas for possible scripted statuses. I also talked with GeorgeV and Armagon about how to implement features they need for the missions they’re designing. More traps, logic/wiring bits, and scripted/triggered events for NPCs are all in the works. More on that later; time for me to write some code!

Oh, and a small note for modders: Kyren added Lua bindings for getting and setting arbitrary world properties, so we now have access to world-level storage to communicate between script contexts and store persistent world data. I’m sure people will come up with some great uses for this!

September 9th – Pulse like you mean it!

September 10, 2014 in Dev Blog

Howdy guys!

Since I”m waiting on Metadept’s arrival at the office later this week before proceeding further on the missions, I spent my time today continuing one of my side tasks, which is to convert all existing lights over to the new flickering light code I discussed a few weeks ago. There’s a lot of lights that used the old flickering code, but I’m almost done with the conversion, and many lights (particularly fire-based ones) are being adjusted to look a bit more natural.

Working on this stuff isn’t terribly exciting in and of itself, but it makes for a welcome change of pace from all the mission work, and really it’s so gosh-darn nice to be able to make the lights pulse in time with their object’s animations!

Oooooh, shiny!

September 8, 2014

September 9, 2014 in Dev Blog

Hello again, since I spoke last, I’ve been working on a couple of different things.

First, there was the new status system for players, npcs, and monsters which has been written and integrated into Player, but for right now it sits in its own branch awaiting a couple more things.  The new system is basically ready, but there is a lot to the old status system which is needs conceptual reworking because it just wasn’t working out or wasn’t fun.  The biggest example of this is the heat / warmth system, which will probably be replaced by something much simpler.  The system is ready, but merging it to master is going to happen once metadept arrives in the UK and we can sit down together and make some design decisions and implement the scripts to drive them.  In any case, the system is cool, it works very much like tech that you don’t actively control (player effects that involve movement == tech, player effects that don’t involve movement == status).

Oh and by the way!  Metadept is moving to the UK to work with us in our physical actual corporeal office, and be a real life employee.  He arrives on thursday and I am super thrilled, because you just can’t beat working together in person.  Right now starbound programmers in the UK are pretty thin on the ground (me alone) so having me + metadept will be amazin’.

Other than status, I think you heard a little about the whole Star::Root threading debacle.. the important bit is that it’s fixed, and the atomic_store / atomic_load thing with shared_ptrs turned out not to even be needed.  Now *every* database in Star::Root is updated through Read Copy Update, not just the few with the problems, and Root locking is avoided entirely.  This fixes the problem without causing rendering slowdown, and actually speeds things up in a lot of places.

Other than THAT, I’m working on a few items in the starbound 1.0 todo, mission things and some boring technical ones involving Drawables and Particles.  When I’m done, rain will NOT slow down your game to a crawl, which is nice.  Next week, once metadept and I are both in the office, we’re going to start focusing very very hard on getting a new stable patch out, with all the save file compatibility fun that will go along with that.

Aaaaand in case you haven’t heard, Chucklefish is making a new game!  It’s called Wayward Tide and, you should check out the Chucklefish blog post about it here.  Development on Wayward Tide is *entirely* parallel with Starbound, a whole separate team in fact with Palf as the programmer.

In a technical sense, Wayward Tide is kind of cool for Chucklefish, because it represents a radical departure from the way starbound was developed, and if it works out it may very well be the way that Chucklefish makes games from now on.  It’s entirely written in Haskell, primarily based on Functional Reactive Programming, and it’s really really cool.  I would tell you more about it but I’m sure Palf will want to tell everyone more about it at some point in the near future.