May 17 2013: Status Update

Hello my friends, Supernorn here with some short words about two dimensional spacemen! 

Art AssetsI’ve taken an approach to picking a job and then working on the items and objects required to perform it. I chose medical first, as some of the objects had already been completed by synthorange. Here’s a look at some new/old/tweaked items collated together for consistency purposes:

Gameplay features:

Atmospherics:  Basic atmospherics are in, remove a floor tile or open an airlock to watch all the air get sucked out the room. The Hypoxia effect indicator will now pop up to show when you’re taking suffocation damage..

Crafting: There’s a very bare-bones implementation of crafting in right now. Currently you add two objects together and if it matches with the game’s recipes you’ll have successfully crafted an item. This is obviously very simple but will be fleshed out later on down the line. This section of the graphical interface is also fairly outdated.

Health System: Health has been in for quite some time, and is a fairly basic implementation for now. However there are multiple types of injury you can sustain. Getting pierced with a sharp object will cause you to start bleeding and lose health, particularly severe wounds will continue to bleed until you treat them with bandages.


Hotbar: The mechanics behind the hotbar were originally going to provide access to ‘on the fly abilities’ for example, a stab ability if you were carrying a sharp object. Lately this seems like it would be an over complication, and it would make more sense to bring back the intents system. This is still up for debate so we’d be glad to accept feedback…

Don’t forget to follow us on twitter, or like us on facebook - where we continue to post small updates every now and again.

January 29 2013: SS13 Developer Q&A

Happy New Year!

2013 is going to be an exciting and hopefully fruitful year for our SS13 remake. We’re still busy porting our base over to SFML, as discussed in our November Update. This unfortunately involves shooting down the many bugs that pop up from such a switch, so while at the moment this sort of thing feels like a bit of a thankless task, we’re looking at the bigger picture.

A few weeks back we announced that we’d be holding a developer Q&A fielding questions asked from our community. We want to thank those of you for being so patient. It needs reminding that we’re working on this in our spare time, and real life events can often throw spanners in the works for a non-paid project. This January the spanner has appeared in the form of a wave of sickness, that quickly took us out one by one. Here’s the podcast featuring Supernorn, Keelin and Enstorm (Ostaf was sick) discussing some questions raised recently on the current SS13 remake.

Don’t forget to follow us on twitter, or like us on facebook – where we’ll post small updates every now and again.

November 04 2012: Status Update

 

Lobby Screen:

Hello crew!

For the past month or so we’ve been busy little bees, getting our foundations in place and preparing for what we’ll require for alpha. Our resident artist Supernorn has been working on the new lobby screen to replace our rather hideous placeholder!

Here’s a quick (not final) work in progress snap of how it’s coming along. Text content kindly borrowed from Goonstation .

The new lobby screen for SS13

Code:

On the code front, Enstorm has begun switching out our back-end graphics library from gorgon to SFML. Changing to SFML (Simple and Fast Multimedia Library) offers better cross-platform compatibility, better speed and allows us to do some more advanced things rendering wise since we have almost direct access to the OpenGL layer (whereas before we were relying on Directx 9). Opting for OpenGL is also necessary to future proof the game, what with Windows 8 recently dropping support for Directx 9.

Code wise there isn’t a whole lot left for the alpha, with the exception of a few things that could be tidied up and possibly re-factored after the switch takes place.

Human Mobs:

Our recently appointed modeller Hamshot has wasted no time whatsoever, cranking out a human model with a bunch of wearable items. Not only that, he’s in charge of creating our animations. The current method which we’re investigating is the creation of a low-poly 3D model which is then rendered out frame by frame and exported as a selection of 2D sprites. This method will save hundreds of hours of time and effort that would be required to do this by hand.

Here are some extremely first pass preliminary tests, with placeholder textures. But these generally show the method we’re investigating. Also note Hamshot has created a seperate walking animation for when you’re wearing heavier gear!

Preliminary first pass results below. These are tests to see how effectively we can achieve the ‘pixel look’ from a sprite exported from a 3D model

Preliminary first pass of 2D Sprite exported from 3D model Preliminary first pass of 2D Sprite exported from 3D model.

Got feedback? Join in the discussion here! Don’t forget to follow us on twitter, or like us on facebook – where we’ll post small updates every now and again.

October 17 2012: Status Update

Behind the scenes we’ve been updating and rewriting old code alongside creating debugging tools. A rather large map format rework has just been completed. Next on the list is an update to the placement manager – the system that lets you place objects and tiles in the world.

Hamshot has joined us and will be responsible for the 3D work we will require for future human sprites and their animations. Nannek, a long time coder for goonstation has also volunteered to help out with coding duties.

Apologies for the news blackout folks! when we have something worthy of the front page it gets a new post on here, with smaller updates usually posted on our forums and twitter pages. We’re expecting a big news post to happen around us hitting our alpha milestone, which we’re close to approaching!

June 19 2012: We need to talk about Mobs

Currently we’re working on some internal tools and trying to figure out how we want to tackle a few things.

Our first real barrier is how we want to get human mobs (aka the players) in. This has slowed progress down a fair bit recently as we discuss our options and what we can do with the resources we have available. Currently the player is a 2D sprite with 4 directions and a ton of separate items and objects for each. The prospect of animating players has looked more and more implausible with the current method, as we came to realize just how much work and time we’d need to put in. A walk cycle for each direction including each item of clothing and carried objects alone would amount to hundreds of thousands of frames of animation , making modding clothes and adding other animations pretty undesirable. This has been a bit of an elephant in the room for some time.

We looked at the possibility of 2D puppet animation but decided visually it looked a little off with the rest of the art. The stuff Project Zomboid showed off really impressed us however, and we contemplated using a similar technique of creating a crude 3D model with a range of animations and then exporting each frame as a 2D sprite to blend with the rest of the 2D assets.

This would mean we could animate the character once and have all four directions for each action instantly, allowing for more complex stuff like attack animations etc. With very little extra work.

Keelin has been working on a toolset that would take an animated model and export it, and we’ve put the word out that we’re looking to add a 3D character artist/animator to the team.

Thanks!

January 31, 2012: Still Going Strong!

If you’ve been following our twitter feed recently, you’ll know that (after a brief christmas hiatus), we’ve been cranking out new game features!

One of the biggest hurdles we faced early on was getting the health system; and everything associated with it, written up and working inside the game. Thanks to the recent superhuman efforts of Keelin, we now have player health, targeting and limb damage implemented and good to go!

We also have our inventory system implemented, allowing you to carry, wear and hold items. There’s also a health panel that displays full health information, including where on your body you are hurt, and a crafting screen – But more on those later.

Our new Inventory system Our new health system

On the art side, Supernorn has been working on more icons in an effort to get us closer to our internal alpha goal. He also just finished up the new cryochamber, which he couldn’t resist showing off to you guys!

Cryochamber

Don’t forget to follow us on twitter, or like us on facebook – where we’ll post small updates every now and again.

More to come soon!

Update: November 8, 2011

Highlights for the week:

  • Ostaf’s been working on the health system, stuff like organs and damage. Should allow us to start getting melee weapons more fully coded. He also hooked up the inventory/equipment system again after the recode broke it a little bit.
  • I’ve been working on some engine polish and development tools here and there.
  • Keelin this week did a load of stuff, like being able to smoothly restart the game, wall-mounted items, working table objects, some polish on the map editor, and a new resource manager– More on that below.
  • Supernorn’s been working on machinery, as he explains in this video:

(You’ll want to fullscreen it and switch to 1080p.)

Resource Manager:
We had been using a proprietary sort of format for storing the assets for the game, like all of the sprite images. We decided this was dumb, so this week Keelin eliminated that, in favor of a straight up zip file. What does this mean for you? Well it means that when you make mods and things, you’ll be able to zip them up, dump them in a folder, and go. Very cool stuff.

As always, come discuss the update in the forums!

See you next week.

Update: October 31, 2011

Hey folks, Happy Halloween!

To mark the return of the not-so-weekly update, we’ve put together a little developer video log! In the video, I give a run-through on how development has been progressing the past few weeks, while showing off an early pre-alpha build of the game:
Space Station 13 Oct. 31 Progress Update

A few key points from the video:

  • Job Selection is in the game and working
  • Considering how to improve on chat bubbles
  • New object handling code makes objects easier to make / add behavior to
  • Animations are planned, but will come during the polish phase
  • We’ve brought in Synthorange to help with art, and he’s been working on medbay and medical items.
  • Now the back-end rework is complete, the next milestone is getting the new objects functional and interacting with the environment
  • Atmosphere is functional, and has sexy things like velocity!
  • Quick run-through of how the new object handling code works to simplify object implementation and workflow.
Here’s a screenshot showing off the new sprites in action! Click to embiggen:
Images of our new sprites
That’s all for now, folks. As always, you can come discuss this update at our forums:

Weekly Update – Sept. 26, 2011

Discuss these changes in this thread in the General Discussion forum.

The time has come for another weekly update!

This week’s agenda for me largely revolved around finishing my Open Water Scuba certification. As of now, I’m officially certified! The downside is that I didn’t get quite as much done this week as I’d hoped. Since there isn’t really anything in the way of pics to post, I thought I’d let you guys in on what I’m working on right now.

When we first set out on this iteration of SS13, we very quickly put together a system of representing objects in the game as a big tree of related objects. Each item, such as a welder, a helmet, or a human mob descended from a single base object we were calling an Atom. This system worked really pretty well for a while, and could have gone on working for a while longer, with some serious babysitting.

Here’s kind of what it looked like (simplified):

                                       [Atom]----------------
                                      /      \                \
                                [Item]        [Mob]            [Object]
                               /     \             \           /      \
                          [Tool]     [Light]       [Human] [Firealarm] [Door]
                         /      \        \        
             [Flashlight]     [Welder]   [WallLight]

Each of these items would inherit the properties and functions of the parent object. This way, we could build objects with lots of functionality without rewriting lots of code.

Now, you can probably already see a problem with this. Because of the way C# and really, Object Oriented Programming, works, we can’t make child objects with multiple parents. So what if I want to have a Fire alarm that is also a light? I’d have to duplicate the code for the light, or I’d have to make some workaround system. Definitely not an ideal or practical way of doing things for a game with this much content!

So over the past 2 weeks, I’ve been working on a new way of representing objects, usually referred to a component object model.

In this model, we represent objects as parameters and behaviors.

A Fire alarm, for example, is a stationary object that attaches to walls, that we must be able to draw to the screen, must be able to emit light, and should emit sound, and respond to triggering events.
Therefore, the new system will represent it as follows:

|---------------|
|   FireAlarm   |
|---------------|
|  Renderable   |
| SoundEmitter  |
| LightEmitter  |
|  Triggerable  |
| WallMountable |
|   Clickable   |
|---------------|

This is far simpler than having to manage an unwieldy inheritance tree just to implement a fairly simple object like this.

A huge benefit of the new system is that once it is done, we’ll be able to greatly simplify object creation, allowing us and modders to build new object templates in XML, like so (this may not be the final specification):

<xml>
<Template name="FireAlarm" fullname="Fire Alarm">
  <Components>
    <SimpleSpriteComponent>
      <State name="on" filename="fire_alarm_off" />
      <State name="off" filename="fire_alarm_on" />
    </SimpleSpriteComponent>
    <SoundEmitter active="false">
      <State name="on" filename="klaxxon" repeat="true" />
    </SoundEmitter>
    <LightEmitter color="#FF0000" active="false" />
    <Triggerable />
    <Clickable />
    <Destructible health="100" />
    <WallMountable height="36" />
    <FireAlarmComponent />
  </Components>
</Template>
</xml>

You can see a sort of special purpose component in there, the FireAlarmComponent, which will basically just connect up the various components.

This, at least, is the goal of the work I’m doing right now. Things like user input are already wired up with the new system, and we’re working on porting over all of the existing functionality. In the coming weeks you should start to see new content screenshots, but it might be kind of dry from the coding department for a while.

Questions? Come talk to us on the forums!