June 9th: Chairs, Beds & Monsters

June 9, 2014 in Dev Blog

As I’m currently waiting on some new and fairly significant assets for the Outpost, I’m holding off on starting the dungeon for the moment. It doesn’t make much sense to go designing the dungeon only to have to fundamentally re-think it from the ground up based on new ideas that have arisen in our process. So for today I started looking into some of my secondary tasks (believe me, it’s a long list).

Since Kyren implemented a more functional orientation system some time back, there are a great many of our objects that would benefit from an update to this sytem, specifically our beds and chairs.

Why the beds and chairs? While the vast majority are okay, there are a number of these objects that under the old orientation system are prone to having the player appearing misaligned when sitting or sleeping on them. Often the seating/sleeping position would be configured to an ideal spot for one orientation, while sitting awkwardly in the other. It’s a petty grievance, but it’s the kind of thing that breaks immersion and drives perfectionist folks like me up the wall.

One of the other things I’ve been playing around with today concerns our monster sound effects.

For a while now Tiyuri and I have discussed a complete restructure of how the monster sounds operate. While the current monster sounds are functional, many on the team (myself included) feel that the current batch of monster sounds don’t quite mesh with the overall aesthetic we have going with Starbound. I’m currently experimenting with new sound directions, trying to find something that sits right with both me and Tiy, but it’s proving challenging.

Seeking inspiration, we’ve been looking at some of our most beloved games, examining how they approach sound effects for the enemies that populate their worlds. In doing so, we’re hoping to find an approach that works for us. Once I have a direction nailed down, it’s highly likely that the monster sounds you know right now will be removed altogether to make way for a cleaner and (hopefully) more suitable set.

The key thing we’ve taken away from many of the greats (Legend of Zelda, Mario, Rayman Origins) is that a lot of the time the sounds from enemies are usually fairly minimal. Rather than being especially vocal, the tendency is to have sounds associated with their physical actions.

The advantage of this approach would be that it ultimately decreases the number of unique sound effects I’d need to come up with. On the other hand, I’m having quite a bit of difficulty finding an audio aesthetic that doesn’t feel jarringly out of place in the world we’ve built.

I’m confident I’ll get there eventually, but it might take some time. I’m always open to any ideas you folks out there in the community might have, so feel free to shout ‘em out in the comments! What kind of sound design would you like to see on our monsters?

9th June Progress

June 9, 2014 in News

Hi there,

Today we mostly continued on the tasks we’ve been talking about lately. The AI interface is coming together nicely, work on the outposts is ongoing and we’ve added a whole ton more monster attacks. Here are just a couple. We’re aiming to make sure every unique monster piece has it’s own attacks and affects the monsters behaviour differently.





6 June, admin commands

June 6, 2014 in News

So in our internal build we’ve just implemented admin login/passwords, banning, kicking and some other obvious bits and pieces. Here is a non exhaustive list of current implemented commands available to server admins. We’re interested in hearing what you think might be missing from this list.

  • listcid lists all users and their associated client IDs
  • kickcid <clientID> [reason] kicks a player based on their CID
  • kick <username> [reason] kicks a player based on username
  • ban <username> [reason] kicks and IP bans a player based on their username
  • bancid <clientID> [reason] kicks and IP bans a player based on their clientID
  • softban <username> [reason] kicks and UUID bans a specific players character based on their username
  • softbancid <clientID> [reason] kicks and UUID bans a specific players character based on their client ID
  • globalalert <message> Issues a global alert to all players in large text
  • spawnitem <itemID> [count] [item param] Spawns specified item
  • spawnsword <level> [color] [kind] Spawns a randomly generated melee weapon
  • spawngun <level> [kind] Spawns a randomly generated ranged weapon
  • spawnshield <level> [kind] Spawns a randomly generated shield
  • spawnliquid [liquidID] [quantity] Spawns a liquid at mouse cursor
  • spawnmonster <type> [level] [param] Spawns a monster at mouse cursor
  • spawnnpc <species> [type] [level] Spawns an NPC at mouse cursor
  • timewarp <amount> Changes the current planet’s clock
  • togglelayer <layernumber> Toggles the visibility of specified draw layer
  • fullbrightDisables the lighting engine
  • setgravity <amount> Sets your local gravity
  • resetgravity Resets your gravity
  • debug Enables debug mode
  • togglelogmap Displays performance info (requires debug mode)
  • boxes Displays collisions (requires debug mode)
  • itemID Displays information on given item
  • reload Reloads local assets
  • serverreload Reloads remote assets

June 5th – Admin logins

June 5, 2014 in Dev Blog

Today, I finally slightly retooled the admin system to allow for admin logins on servers, and also admin logins for local client, which means that all of the commands that have previously been disabled can now be enabled if you type in /ruinthefun (local only). This will be ridiculously helpful for modders and such. I think we might look into segregating characters where admin has been used and where it hasn’t been in the future into different universe directories.

Also, I fixed a few UI and API bugs. The find random button was allowing you to leave the system when you technically could not leave the system.

I spend a good chunk of my day doing an interview. We’ve been interviewing various people for the programming position on the Pirate game.

5th of June: GeorgeV BlogV

June 5, 2014 in Dev Blog

Here’s a little something that you might find around outposts.  It’s just one example of a store you’ll find in Starbound.  This one is a re-purposed shipping container made into a TerramarT, a chain store where you can buy a variety of gardening supplies.



Short message as always. Until next time…


June 4: Monster Attacks!

June 4, 2014 in Dev Blog

This week we’re getting into one of the funnest parts of the monster and combat overhaul: monster attacks! As Armagon mentioned in yesterday’s post, Tiy and I have been going through each of the possible monster heads and coming up with a characteristic ranged attack to match them. Some of the attacks are similar to the ones you’ve seen before, firing directly at the player with various kinds of projectiles. In addition to adding a lot more of these, we’re mixing it up a bit with some different patterns. For example, ballistic projectiles are now properly angled to hit targets at different ranges (and with different gravity):

Other monsters will have ‘ranged’ attacks that are AoE (area of effect) and hit all nearby enemies:

This is just a small sample, but we want to leave some to be discovered! Once we have a set of these basic ranged attacks, we’ll move on to more elaborate special attacks for rare monster parts, unique monsters, and bosses. Some other, less exciting things I’ve been working on include moving control of the script tick frequency from configurations into Lua (monsters will update more frequently while in combat to balance responsiveness with performance), helping kyren track down rendering bugs, and continuing to refactor monster code for consistency and maintainability.


June 3rd: Mixing it up!

June 3, 2014 in News

While Tiy, Omni and Metadept have been working their butts off overhauling the combat, I spent the day doing a number of different jobs here and there.

The lion’s share was spent working on putting together a key for our outpost dungeons, which will serve as a hub of sorts for the player to sell their crops, trophies, and so on. The keys can be pretty involved to put together, as it essentially needs to show me exactly what objects I get with each given brush, the brush’s color (which I have to make sure is not duplicated anywhere), and the object orientations.

In the absence of a dedicated toolset, these keys are crucial to my ability to create the dungeons. For those who missed our early dungeon creation posts, this image should give you a pretty good sense of how this stuff works.


I’ve tried to make these keys as easy to read as possible so our modding community could dive right into any one of our existing dungeons and add new rooms and layouts if they wished.

Typically while adding all the objects to the key, I go through and make sure they behave the way they should, making sure their image positions line up properly in the world, switches function as intended, and if their omission is glaring enough, sound effects. I’m keenly aware that there are still many objects lacking appropriate sounds and I intend to check them all in detail at a later date when the progression update is done and dusted.

That doesn’t mean I haven’t had the odd sound task here and there. I had to devote some time away today to put together samples for our shields, chiefly designing sounds for perfect blocks and guard breaks. This sometimes can be a fairly straightforward matter, especially when I’m able to find that single perfect sample (like the footsteps, breakable objects, etc). At other times it can be fairly involved, requiring me to layer multiple samples and effects with careful balancing to get the sound I want (plasma weapons, monster sounds, and environmental ambience tracks were generally put together in this fashion). In the case of the shield sounds I had to make today, it was definitely the latter approach.

Fortunately it seems to have paid off, as combat is feeling that little bit extra satisfying now.

Tomorrow it’s back to work on the key and the objects. Once the key itself is completed, the next step is to take all the tiles and objects from the key and turn them into actual functioning brushes within a dungeon file. I’m aiming have the dungeon file done later this week so I’m able to start building the outpost proper. I look forward to sharing more on that with you soon!

June 3 – More random shields progress

June 3, 2014 in Dev Blog

Hey there, I spent most of today writing and configuring methods for making shields sound different when you perfect block and when they break. They also make particles on perfect block and break now.

I also wrote come code to suppress the shield while invulnerable and very slightly after (2 frames), in order to prevent tanking the first hit of a stream (that can hit you 2 or 3 times) in order to perfect block the rest of them, (essentially cheesing the system.)

I also discussed changing part of the lower level windowing system with kyren, and spent some time making sure she understood that area of the code, because she’s working on the AI stuff.

More work on Combat

June 2, 2014 in News

A bunch of work was done today on the new combat system. I can honestly say the combat in Starbound is now a lot of fun. We’re not done yet though.

Shields now have a perfect guard timing, if you block an attack within the first 0.15 seconds your shield is active the shield takes no damage.

On top of that, shield health is now balanced for all shields across every level, monster melee attacks are tied to the leveling curves.

Monster AI is massively improved and continues to see new improvements. Myself and Metadept are working hard on giving each monster part a unique attack.

Tooltips for shields are now complete, and work on parrying with longswords has started.

The combat consists of 100s of small tweaks that would take forever to list, but once it’s done I’ll put out a new combat video.

2nd of June, 2014: Dev Blog GeorgeV!

June 2, 2014 in Dev Blog

We’ve been hard at work on Starbound with stuff like ship A.I., shields, and the above which is a sample of an animation you might see when you upgrade your ship. The one you get is based on your species.


We’ve also done some more work on several basic ship A.I. animations like these:


Until next time…