October 30th – Biomes

October 30, 2014 in Dev Blog

After working on terrain and cave generation last week, I’m now configuring biomes and treasure pools to include all the new assets that GeorgeV, Armagon and the rest have been building. It’s actually been a lot of fun to test, and I’ve enjoyed discovering many interesting little spots:

…yep, just another day in the universe!

October 28th – All the small things!

October 28, 2014 in Dev Blog

G’day folks! Today I’ve taken a bit of a break away from getting more of the new biome weapons and drops working, in favor of working on a number of smaller things that I’ve needed to give some attention to for a while now.

Many of the game’s trap objects were broken when the status system overhaul hit, resulting in players no longer taking damage. Some of these objects were already a bit broken to begin with (electric-sounding instakill wooden spikes, anyone?) so I gave the traps we had a bit more TLC today.

Now their damage levels are a bit more reasonable across the board (though they could still be subject to change down the line), they make more appropriate sounds when you hit them, and what was probably most time-consuming was fixing all their hitboxes to more accurately reflect the areas that are actually dangerous, including when they are flipped.

Trap Hitboxes

Previously most had their hitboxes generated automatically, often extending into empty space around the object that should have been safe for the player. It’s one of those subtler details that one would rarely think about when playing games (unless they’re done poorly), but it’s pretty important to get right when you’re the one making them.

As a small aside, those of you more familiar with the game’s objects may have noticed that the propeller can be placed on walls and ceilings now. The more I looked at it, I figured it would be nice for the airship-enthusiasts in our player base to have more options. The spinning propellers are still dangerous though, so be careful where you place them!

I also did a little tidying with the interface to make sure all the new status effects were displaying the appropriate graphics when inflicted upon the player.

Status Interface

In a bit of more exciting news, Metadept has pretty much wrapped up work on the shield generator for our dungeons (which I spent some time testing today). Essentially these generators will exist somewhere within the dungeons, restricting the player’s ability to build, place, break and wire objects within that space. That is until the player locates the generator and disables it. This will mean players can no longer circumvent all obstacles by building across or digging through them unless they’ve already been lucky enough to find the shield generator before-hand.

Setting up the existing dungeons with this new functionality will likely be my focus for the next few days. This will mean creating shield generator rooms for each one and getting them to spawn reliably. This can sometimes be difficult when you want to have them appearing in randomized locations (and preferably some distance from the entrance).

If things go the way I’d like, it’s my intent that each shield generator should have some form of obstacle to make shutting the generator off challenging or risky in some way. This could be as simple as the generator being locked behind doors that are only able to be opened from elsewhere in the dungeon, some strong enemies might be guarding it, maybe a little tricky platforming and problem-solving, or perhaps a combination of all of the above.

That’s it from me, good night folks!

October 27th – Caves

October 27, 2014 in Dev Blog

Last Wednesday I decided to spend some time on caves as part of my work improving the terrain generation. Starbound’s cave generation used some very simple algorithms that worked reasonably well but weren’t very exciting, and I wanted to try my hand at an improved cave generation algorithm. So, I wrote a new generation method and reworked the existing ones to get more interesting results. The short version is that caves are more frequent, more connected, and more varied. If you want the long version, keep reading for a technical explanation!

I’ve been calling the new method “karst” cave generation since it loosely mimics natural geology by generating caves in layers. The algorithm itself is fairly simple, relying on a combination of several Perlin noise sources with different configurations. All of the noise is applied vertically, so it’s possible to use only one-dimensional noise sources. For Starbound, however, I’m sampling in two-dimensional coordinates around a circle with circumference equal to the world width, which creates a noise pattern that smoothly wraps around the world seam.

The first step in the algorithm is to pick layers to place caves at. This could be a simple probability applied to each Y position in the world, but I’ve chosen to enforce a minimum layer resolution in order to avoid clumps:

Next I use a Perlin function with a high period to select where on these layers caves should be generated:

Then I apply a second Perlin function with a moderate period and amplitude, as well as some positive bias, to vary the caves’ ceiling height:

I use another, similar function to vary the floor depth, with a lower amplitude to make the caves easier to walk in:

Next, I taper the endpoints of the caves to avoid the harsh edges, based on the original noise function being below a cutoff point:

At this point it looks a bit like real caves, but they’re very horizontal and boring, so the next step is to apply another function with a very high amplitude and period, which gives the caves slopes and makes the layers cross over each other:

This is looking much better, but is still very horizontal, so we mix in some large, tall chambers using a different configuration of the same algorithm:

…and finally mix in some normal worm caves to further increase verticality and connectivity:

The final result is a good mix of caves that feel natural and provide plenty of opportunities for exploration as well as some hazards (sudden drops and chambers of enemies) to keep things fresh.

In this example there are a LOT of caves in the world, and I’ve been tuning the configuration to get slightly fewer caves but still retain the right amount of complexity. I’ve already been having a lot of fun testing it, so that’s a good sign!

Sorry for the lengthy post, but hopefully some of you will find the explanation interesting and maybe even useful in your future projects.

October 24th – It’s getting wet in here!

October 24, 2014 in Dev Blog

It’s coming…

oceanstuff

A slight preview…

See ya!

October 22nd – Throw Me A Bone

October 22, 2014 in Dev Blog

I’m sure you can guess what I’ve been working on. Yup! Still adding new weapons and loot! While I’m keeping some stuff a surprise, over the past few days I’ve implemented a few fun craftable throwing weapons. Here’s a peek at a couple of them!

Thorn Grenade
Thorn Grenade
“A makeshift nail bomb. Scary what one can achieve with a fruit and small explosive.”

You may recall there was a nailbomb grenade in the game, however I personally found it not particularly useful due to the fact it operated on a timer and it was almost impossible to get the nails hitting where you wanted them to. This devilish combination explodes on impact, spraying twice as many thorns, making it pretty lethal if you land direct hits, particularly if the target was already in the middle of a large group.

Bones!
Throwing Bones
“Nothing screams archaic like throwing bones at your enemies.”

Finding old bones may now prove beneficial in more ways than one. This item when thrown releases three bones in an arc that bounce a couple of times before breaking apart. This makes it entirely possible to sling them considerable distance across the landscape, if the terrain is in your favour.

That’s it from me. Good night everybody!

October 21st – Terrain Generation

October 21, 2014 in Dev Blog

Regular readers of the blog might remember my previous posts about adding more terrain variation to planets. Well, that’s what I’m working on this week! Rather than talking much about it I’ll just show you a few samples of new terrain patterns:

Spikes!

Canyons!

Ledges!

These are still WIPs, and I’ve got more ideas to put in, but so far it’s adding a lot of interesting variety to planets and I’m excited to continue working on this for a bit.

We’re hiring! Part-time Office/Community Assistant

October 17, 2014 in News

We’re looking for an office assistant with an interest in games communities!
The role would involve helping out with administrative tasks as well as assisting with community-related tasks.

Who we are looking for:

  • excellent multitaskers
  • well-organised
  • super efficient
  • ideally interested in games
  • active member of online communities

This would initially be a part time role (2 days per week) at our office in London, UK.

Please e-mail your CV to [email protected]!

October 16th – Quick Fix

October 17, 2014 in Dev Blog

Hey guys, noticed there wasn’t a post made yesterday. Sorry I didn’t get this up sooner!

Here’s the quick rundown of what folks have been working on:

- Metadept has been working on the GUI stuff, following on from his Tuesday post. I’m really looking forward to seeing what the community does with this functionality once he’s finished.

- Kyren is working on something cool that we’ll (hopefully) have something to show for later today, provided things goes smoothly.

- George has continued his work on filling the biomes with more stuff, which ties into…

- Yup, I’ve still been working on making lots of the new loot and weapons actually function. I’ve spent a chunk of time recording new sounds for these things too.

For those of you who read my post on Monday and took a stab at identifying what the audio sample I included was; if your guess was that it was a paintball gun, you were right!

Did you guess correctly?

There are six colour variations you can get, each painting the enemies you hit in the corresponding colour for a few seconds, making it super clear when you’ve successfully hit them. Novel in the grand adventure, but potentially really cool for PvP servers. You’ll be able to find the blueprint and the unique resources to make it in one of the mini-biomes.

Later folks!

October 14th – Interface Foundations

October 14, 2014 in Dev Blog

One of the features that we’ve wanted for a long time is a better way for modders to make their own GUIs (graphical user interfaces). Currently, all of Starbound’s interface windows are configured in JSON, but their appearances are largely static and they can only respond to user input in a few fixed ways. On Friday we had been discussing this in the ##starbound-modding IRC channel, trying to figure out the best way to make objects with dynamic displays and lamenting the fact that there wasn’t any good method currently available. So, over the weekend, Kyren took the initiative and made one, which I finally got a chance to test out this evening!

The system she built allows an object to open a configurable interface window when the player interacts with it. This window can contain all the usual window elements, but can also include a canvas widget which gives a Lua script direct access to primitive drawing operations and user input. These ‘scripted consoles’ can monitor and respond to keyboard and mouse input, and draw their own lines, polygons, images, text, etc. Essentially this allows all kinds of custom interfaces and even simple games to be built as mods and run within Starbound!

One of the most obviously fun uses for this is to make in-game games. Here’s a truly awful implementation of Pong that I threw together as a test:

Unfortunately we don’t have the time to go wild on this just yet, but this is a good first step toward a much better GUI system in the future. Some other examples we came up with include controlling turrets in a base, hacking puzzles for missions, and numerical keypad locks for doors. I hope to have more time to develop these at some point. In the meantime, however, it’s available for modders in the nightly build, and they’re already going crazy with great ideas. For example, Neurisko is starting on a full-fledged programmable computer made from scratch:

…and that’s just the beginning! What kinds of things do YOU want to make?

October 13th – Mysterious Items

October 13, 2014 in Dev Blog

Evening folks!

I’ve carried on as usual with implementing the multitude of new weapons and items, many of which are taking advantage of our status system rework. I thought I’d try something a little different today and see how quickly you guys can identify what one of these weapons is from the sound it makes. I think this one is gonna be quite popular with PvP-oriented players. Click here to hear it!

It’s been a fun implementing these new items, and the list is expanding all the time. There’s even stuff like this!

Big Red Crayon

What would such an item do, I wonder?