Space Clouds

Invasion of the Midas Goons!

King Midas is pissed off that you players keep farming him for Imperial Chests, so he has recruited a giant mob of various Big Greens and Green Battleships to warp into Perilous Space and exact revenge!
Invasion of the Midas Goons

As part of our month-long celebration of the 10th anniversary of Star Sonata, tonight, the invasions of the Midas Goons is beginning. Approximately every half hour, somewhere in Perilous Space, up to 25 ships will spawn. If you can manage to fight them off, they will each have a small chance to drop an Imperial Chest, Dementium Fragment, or Bindomite.

But if you think that you’re so leet that fighting off hordes of Green Battleships is easy, well, this *is* Perilous Space, and you might have to PvP other players for the drops.

Just for fun, here is the XML code we used to add this event. You may notice that this is limited to 4000 spawns. Once this spawner has produced 4000 children, it deletes itself and the event will be over. This should take somewhere between 3-5 days, depending on how vigilant people are at killing Goons.

<WILDAI>
  <WILDSPAWN name="SuperGreenSpawner">
    <QUANT>1</QUANT>
    <WILDSTART>3.8</WILDSTART>
    <WILDEND>99.0</WILDEND>
    <LAYER>4</LAYER>
    <USETEAM>Midas Goons</USETEAM>
    <SPAWNOBJ typename="SpawnNasty">
      <SPAWNER>
        <SPAWNBASE>
          <NAME>SuperGreenSpawner</NAME>
          <INTERVAL>1800</INTERVAL>
          <NUM>25</NUM>
          <LIMITSPAWNS>4000</LIMITSPAWNS>
          <LEVEL>-1</LEVEL>
          <MINATTACKLEVEL>0</MINATTACKLEVEL>
          <ATTACKFRACMINAI>0.5</ATTACKFRACMINAI>
          <ATTACKFRACMAXAI>0.0</ATTACKFRACMAXAI>
          <ATTACKFRACMINPLAYER>0.0</ATTACKFRACMINPLAYER>
          <ATTACKFRACMAXPLAYER>999.0</ATTACKFRACMAXPLAYER>
          <SCAREDYCAT>0.0</SCAREDYCAT>
          <DROPITEM chance="0.01">Imperial Chest</DROPITEM>
          <DROPITEM chance="0.02">Dementium Fragments</DROPITEM>
          <DROPITEM chance="0.05">Bindomite</DROPITEM>
          <SPAWNATONCE>true</SPAWNATONCE>
          <RANDOMIZED>1</RANDOMIZED>
          <NAMELIST>BigGreens100.txt</NAMELIST>
          <NAMEPREFIXLIST>UberPrefixes.txt</NAMEPREFIXLIST>
          <NAMESUFFIXLIST>UberSuffixes.txt</NAMESUFFIXLIST> <!-- extra suffixes for identification -->
          <BOUNDTOLAYER>true</BOUNDTOLAYER>
          <HATEMODIFIER>3.0</HATEMODIFIER> <!-- hate on the haters -->
        </SPAWNBASE>
        <PERIPATETIC>25</PERIPATETIC> <!-- jump reasonably often -->
        <SWARM>1</SWARM> <!-- birds of a feather ... -->
        <ALLOWJUMP>1</ALLOWJUMP>
        <GROUPATTACK>1</GROUPATTACK>
        <GROUPATTACKDIST>3000</GROUPATTACKDIST>
        <RALLYFACTOR>10000</RALLYFACTOR> <!-- fight everyone -->
        <CANUPGRADE>0</CANUPGRADE>
        <DONTDOCK>1</DONTDOCK>
        <ADDITIONALBRAVERY>200</ADDITIONALBRAVERY>
        <SHIPCONFIG weight="1.0">Green Meanie</SHIPCONFIG>
        <SHIPCONFIG weight="1.0">Titan Green</SHIPCONFIG>
        <SHIPCONFIG weight="1.0">Green Battleship</SHIPCONFIG>
        <!-- pooling all the skills all versions of the Greens get for a particularly nasty combo, +50%-->
        <XTRASKILL lvl="30">SKILL_COMBAT_FOCUS</XTRASKILL>
        <XTRASKILL lvl="15">SKILL_SNIPER_EFFICIENCY</XTRASKILL>
        <XTRASKILL lvl="15">SKILL_FLEET_FOCUS</XTRASKILL>
      </SPAWNER>
    </SPAWNOBJ>
  </WILDSPAWN>
</WILDAI>

Suit’s takeover of… AI ships?!

Hey guys!

So, a while ago I asked you guys which AI ship you would fly, if you could. Now you can know the reason! I’m actually planning on making one of these player available! Kalthi

You can cast your vote over at the forum, at http://forum.starsonata.com/viewtopic.php?f=9&t=60171

I’m looking forward to the results. Of course, I’m not going to tell you guys how it’s going to happen. But you’ll see soon enough. ;-)

So, that’s it for my little update. Stay tuned, there’s some cool things coming your way soon!

Regards,

The classiest Dev alive.

Base slots – We need YOUR help!

We are looking into possible revamps of the way base slots work, and we need your help! Before we can move on with the project, we need some basic information from the player base, which is where we need help from you guys :)

All we need are some questions to be answered, so please take a minute and help us out, and post the information in the forum thread related to this blog post :) If you want the information to be kept private, send it in a private message to The Vert or yclepticon!

1. How many accounts do you have?

2. How many Extraction Expert, Colonial Administrator, and Station Mastery characters do you have?

3. How many colonies do you have?

4. How many Extraction Expert kits do you have extracting basic materials such as Metals, Space Oats, Silicon, Nuclear Waste and Baobabs?

Suit’s Takeover

Hey guys/girls! So, I’ve taken over the blog again. Now with some fun little news. I’ve taken over the Star Sonata Facebook as well. With this, I’m planning to do some fun Q&A’s, some updates and last but not least, giveaways!

Be sure to follow us (me) at http://www.facebook.com/Star.Sonata !

First idea…. If you could have any AI ship ingame… Which would it be, and why? Be sure to reply on our Facebook page! I may or may not use the answers for something fun in the future… ;-)

~Suit

Global XP Boosts

A new feature that I’ve just finished coding is a global XP boost item type. Each of these items will bestow a certain amount of bonus XP to the universe for a certain amount of time. The most common ones that you will see will give +5% XP to all players for 30 minutes.

Global XP Boost Powerup

Each account can only have one XP boost active at a time, but as many people who want can theorectically activate simultaneous XP boosts which are additive with each other, and multiplicitive with any other XP bonuses, such as bonus XP from a weekend event. So if 4 players manage to trigger XP boosts simultaneously, then every player in the game will get +20% XP for the duration.

Whenever anyone triggers an XP boost, a message is sent to all players in the event text so they know that the XP boost has commenced. In addition, when you log in, it will tell you the current amount of XP boost, and which players have caused it.

Global XP Boost Scoop Text

To start with, there will be two sources of global XP boosts available, called “Pan-Universal Neural Plasticizer” and “Pan-Universal Neural Artificial Plasticizer”. The first will be generated by a power up spawner randomly placed somewhere in Perilous Space, and it will change galaxies every time it spawns. It is use-on-scoop, so no storing up a ton of them, and will be kind of an easter egg hunt to find it. The second will be tech 10, available in Free Market, and require 1 Space Point to trigger. Remember that this gives bonus XP to every player in the game, so it’s not “pay to win”, but maybe gives you something to spend that extra Space Point on that you have sitting around from verifying your email address.

This should be going into the game sometime after the next major patch. I’ll have to manually add them in after a patch, so there will be some delay.

You need to place your drone in a clear place

Most of us have experienced “You need to place your drone in a clear place” at some point in the middle of combat. You’re fighting, you want to get some drones down for defense, but there are ships swarming all over the place, and you just can’t get a clear spot. All you can do is Spam your hot key repeatedly, hoping for a brief opening.

You Need To Place Your Drone In A Clear Place
Since the main point of this retriction on drone placement is to keep them visually separate so they can be selected and targeted properly, it doesn’t necessarily make sense for such quick moving things as ships and mobile drones to block the placement of drones. It was also the case that you could deploy a mobile drone on top of a normal drone, but not the other way around.

I was up in the mountains, looking for something quick to code on my laptop and decided to rewrite the function that determines non-mobile, non-attached drone placement. The new code will not block drone placement from ships or from mobile drones. Since both of these types of objects move around a lot, it makes sense to me that they shouldn’t block normal drones from being placed.

Here’s the new code, just for fun. This should be appearing on live in a patch sometime soon.

// make sure nothing is underneath or it's a special drone
if (!bSuperItem && !IsMobile() && !GetSpec()->bEthereal )
{
  sobit_ALL it;
  for (it = husk->getGal()->sobs.begin(sobmap::PARSE_ALL); it != husk->getGal()->sobs.end(sobmap::PARSE_ALL); it++)
  {
    SpaceObject *sob = it->second;
    if (sob == husk   // The ship deploying the drone won't block it
      || !sob->Corporeal()  // Non-corporeal things will not block it
      || sob->SobType() == SOB_SPACESHIP) // Spaceships will not block it
      continue;
    Pillbox * sobPillbox = dynamic_cast<Pillbox *>(sob);
    if (sobPillbox && sobPillbox->IsMobile())
      continue; // Mobile drones won't block normal drones
    if (sob->WithinRange(husk, (sob->sizex * 0.5) + (GetSpec()->diameter * 0.5)))
      throw string("You need to place your drone in a clear place.");
  }
}

Calypso Update 11.6.14

It’s been a few weeks since an update, but I have some definitely interesting things to talk about! This update covers a few new mission and spawner options I’ve created for some new content I will also be discussing! Keep reading to find out more!

arctia_expansion

A few weeks ago there was what I thought was a rather good suggestion about how it makes a lot of sense to move some tutorial elements into the low level custom dungeons like Arctia and Vulcan. I really liked this idea. It really does make sense to not over-stuff the Nexus with EVERYTHING like slaves, drones, classes, et cetra, and I think places like Arctia and Vulcan really could use fleshed out a bit. Yes, they’re both excellent custom dungeon zones to help acclimate the player to the kill minion -> kill boss -> scoop loot -> repeat flow a lot of content in the game has, but I felt they could do a bit more depth and character.

So, I came hit upon the idea of doing a small expansion to Arctia focused on bringing a few tutorial elements into play to not only further establish the lore and character of the zone, but to help explain one of the most interesting and exciting features of Star Sonata; ship capture.

We have a bit of a ship capture tutorial already in place in the Blue Empire of the Prism Color Empires zone, but I really thought we could use a more involved tutorial utilizing all the new features we added for Nexus 3.0. However, even with the bounty of new mission options, I was still missing a few to make this tutorial really work. There were a few missing things.

arctia_boreal_cliffs

Firstly, I wanted to make sure the ship the player captures for the tutorial was easy to capture. I wanted it to be a derelict that couldn’t move, couldn’t fight back. It would just sit there and let the player capture it. Currently, players are unable to capture an AI without an engine, and if they could, it would be stuck, dead in space. So to remedy this, I’ve added a new spawner option called “Spawn Derelict”. When this flag is turned on it will mark the ship as a ‘derelict’. When it’s time for capture, any ship flagged as a derelict will override the controlbots engine check and if the capture is successful, it will add a Coalfurnance engine to the captured ship. That solved the first problem I had.

The second problem was with how I would actually have a tutorial mission verify the capture. Currently, missions like the Merchant Trader Goods or the ones in the Blue Empire have the player return an item that can only be obtained via capturing a ship. This is an obvious work around for the fact that we didn’t have an actual mission goal to capture a ship. So, I’ve added one. It works almost identically to the Kill mission goal currently in game, with the exception that it tracks when you successfully capture a ship with a conversion device.

Finally, in order to make the tutorial missions as straightforward as possible, I knew I needed one additional feature. I’ve expanded the Kill mission goal so it now includes an option to specify the damage type of the kill. Obviously, in the context I am initially using it, I am instructing the player to kill the ship they are to capture with Radiation damage. However, going forward I can see many different uses for this!

With all of these new mission features in play, I’ve been able to create a brief, but very involved tutorial mission chain to Arctia that supplies the player with a Prismatic Conversion and instructs them on how to properly use it. At the latest, you should see it implemented with the next universe reset, but I’ll see about getting it in sooner!

That’s it for this update, feel free to post feedback to the forums! I’ll be back again when I have something else new and exciting to share! Until then!

Star Sonata Wiki Updates.

Recently I created a program that allows rapid editing of ship statistics on the Star Sonata Wiki. This works by copying the content of a wiki page, searching for ship names, and then outputting various information about the ships into a table based on the information contained in the xml files that can be used for a local Star Sonata server (it does not update the images of the ships however).

I recently used this is update this page http://wiki2.starsonata.com/index.php/Ships, and to add the statistics of various fighters, at http://wiki2.starsonata.com/index.php/Fighters. Most of the ships in the main Ships page have been updated, but a few have not (many of the freighters in particular, due to the xml file that they are in having slightly different formatting to the xml file where I got the main ship statistics from).

If there are any ships or fighters that you want me to update with this tool, add a new row in either the Ships or Fighters page by adding this to one of the previous rows:

|-
| align=”center” | [[File:Coming soon.png|128px|Coming soon.png]]
| align=”center” | [[shipname]]
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |
| align=”center” |

with shipname being replaced with the name of the ship, or fighter. If you want you can replace the Coming soon.png image with an image of the ship or fighter. None of the other columns need to be filled out (my tool will do that automatically), but It wont do any harm if they are. Some ships, such as AI only ships and developer/admin-only ships I won’t be able to do unless I get permission to do so, but most ships that are flown by players are alright to add in for me to update.

Eventually I plan do a similar thing to other lists in the wiki, such as energy, shield and engines, by modifying the tool I already have to update the statistics of them from other xml files that are used in a local Star Sonata server, and I will make another blog post when I do this.

Suit… Revealed!

So guys, here it is! You’ve asked me all kinds of questions. I loved writing this for you, and I hope you’ll enjoy it! I’ve split it up into 4 categories; Game-related, myself and Star Sonata, Suit-related and other stuff.

 

Game-related

What is being done to update the wiki?

We’ve been thinking about connecting the wiki to the game data. The only issue is, certain things shouldn’t be on there (Like stuff which isn’t released yet, or stuff nobody has yet). We need to figure that out, and once we know that, we’re able to keep it 100% updated.

 

Any plans for new advertising campaigns before the Steam release?

Not specifically, as far as I know.

 

Any ETA on the Steam release?

It should be somewhere in this universe. We hoped for the first few weeks, but the crashes have put a slight delay on the release.

 

What is the next huge surprise in store for us Sonatians?

…Who knows? :-)

 

What’s  the name of your position? Are you QA or like lead QA or what?

The official position is just QA. However, I do more than just that. I also do some contact with you guys, I do some texturing and general ideas.

 

Not really specifically related to you, but why has there been no curation in the Suggestions system? Also, what is being done about the “accepted” but not implemented Suggestions?

We are doing our best to try and get them all in. But we’re just a small team, and you guys have so many good ideas that it’s pretty hard to get them all in that fast. We do get them in, but in relation to the amount of good suggestions you guys are giving, it’s barely noticeable.

 

Why do things like   the base log revamp seem to start but never finish (or do they even start)?

They start, but we get swamped with all kinds of things. Just like the suggestions, but more about that later.

 

Why has there been no more discussion about the list from the Dev side of things on the steam release?

We’re discussing it ourselves. Things like achievements (Whoop whoop, 15000 rat kills anyone?) are something we’d like to have as well. So basically, we have our own list of things to do! Of course we’re using your feedback.

 

Can you explain why the suggestions on the voting page have been sitting there for several months now?

As said before, it’s a huge list and we’re a small team. We’re doing our best, but for every 3 things we implement there are 10 new suggestions.

 

Are there any technical / server issues prohibiting the return of the base slots which were taken from our accounts a few years ago?

No, it’s just a code thing. It’s on our to do list. But, as you know by now, it’s a pretty big list.

 

Personal life and Star Sonata

How long have you been a dev now?

I’ve been a dev since December 2012, so almost 2 years!

 

How much time do you spend working for/volunteering for SS?

First off, I volunteer for SS. I am doing this to help out the game because I just love it. About the time; it depends. When I did a lot of the support tickets I’d put in 1-2 hour a day, but nowadays it’s a tad less. I’m always prepared to help out the other devs, though. Whenever there’s the need for a new texture, I’m always glad to help out.

 

How long were you a player before then, if you played?

For about 7-8 years (Client 1 yay! But no seriously. C2 is better). So yes, I’ve played it before I joined the dev team.

 

Do you think the dev team would be more organised if they all worked in a SS(tm) office and you could poke them with sticks?

We’d probably get drunk all day and poke each other with sticks anyway, regardless of doing work. Actually… That would be more productive than now. At least we’ll be with everybody.

 

How much of the stuff you do *here* do you find enjoyable? Are there any sekret reasons for what you do?

There’s not much I don’t like. There are some harder parts (like reproducing bugs people have sent in which turn out to not exist, after spending 3 hours of testing on it). There’s no secret reasons. I want to help out our community, I want to gain experience and expand my resume. But mostly I do it because I love helping out and seeing the progress of the game.

 

What is your favorite content (zone or mission chain ish) in SS?

I liked the mission chain to the Enforcer and Constable. It’s an amazing chain to learn everything and gain some great stuff in the process.

 

What’s your favorite team, and why is it Traders?

To be honest, my favourite team in the history of Star Sonata is E.P.I.C.

 

Not really a question about you, but does the dev team have a centralised google doc/calendar/to do list?

It doesn’t matter that it’s not specifically about me, I’m glad to answer. Yes, we have a centralised system. We use Dropbox, Google Drive, Calendar, etc. Our communication is through Google Hangouts for scrums and IRC for main communication.

 

Who was/is your char?

Diabolus. Didn’t expect that, did you?

 

Suit-related

3 Piece or 2 Piece? Pin striped or solid?

3 piece, solid. It’s not that I don’t like pin striped, I just prefer solid. Yes, this is me! In Star Sonata colours, of course.

Suit

 

 

Why not tuxedos?

Tuxedoes are an option. However, they’re not for everyday use. A suit can be worn every day.

 

Are you frustrated by “Why/what suit?” questions, and if so why not Hawaiian shirts?

I’m not frustrated by it. I’m just surprised nobody’s asked me for the origin of the name. I don’t do Hawaiian shirts, mostly because my country’s just not suited for it. Which is another thing I was surprised about that I didn’t get as a question, where I’m from!

 

Other stuff

Do you love me?

Of course. In a strictly platonic way. I’m not ready for commitment yet.

 

What is the circumference of a moose?

About the size of your mom.

Suit ohno

 

 

And why wont bananas grow on apple tree’s?

Because apples already grow on there. Else they’d be called differently. Appnana? Banapple?

Have you ever gone so far as to do want look more like?

Suit yes

 

 

 

Alright guys, that’s my Q&A! If you have any more questions, feel free to comment on this thread. I’ll try to reply to them whenever I can.

With love (specifically to heylo),

Suit

This past week….

As I’m sure everyone noticed, we have had a lot of problems this reset. Some of it because we weren’t ready on time, other due to the unavoidable need to track and fix year+ old corruptions that happened to cause problems in the uni reset patch. We worked intensively during the week to bring everything back to a normal state as quickly as possible and I can now say somewhat safely that the server is at a pretty good performance level (it is actually running faster than it was last uni now and should be more reliable thanks to the new memory validation).

A beta client is now available that contain fixes for most of the dumps that were sent (2 of which appeared broken / corrupted and as such i couldn’t see the problem, but it might be the same as other dumps). You can download the beta client from http://www.starsonata.com/dl/StarSonata_2_beta.exe. If you crash on the beta client, please be sure to send in your starsonata.dmp alongside a short description of what you were doing to dmpfile (at) starsonata.com

The visibility issue will probably only be fixed on Sunday, but at least from the quick checking I done on it, it appear to only be client side. AI etc should see you at your normal visibility, but your client sees everything as ultra high visibility.

The catching up event will begin now, from Saturday 1h30am to Wednesday 1h30am, experience gained, team experience gained, workhours and colony years will all be 3 times faster than normal

For those interested in the server fixing process, keep reading…

The major issues encountered were from code written years ago, a specific one could be traced to 8 years ago. Those were the kind of problem that caused crash that were extremely hard to track and properly fix. I spent months working and fixing those slowly but the harder ones kept escaping my grasp. I knew they were there since their signature was still in the crash that happened every few days / weeks depending on luck, but i could never pinpoint exactly where it came from. There were in total 5 such corruption source, 4 of which were only possible in a multiprocessor (as in multiple physical processor, not multiple core on a single processor) configuration.

After upgrading our memory fence from an old x86 asm call to an sse2 approach and modifying our map and set containers to use our own mutexed implementation instead of using directly the stl. Many of the real problems started surfacing (mostly hitting some memory redzone i added to our containers since i knew the corruption was container related). Fixing those took way more time that i could ever have expected, but this is now mostly behind us.

The first version I wrote was built in a way that it required no code change for all the thousands of variables using those container to actually use our new threadsafe version, but this implied keeping the original interface which is very poor when it come to acquiring / releasing locks (it had to be done in every calls, and iterator acted as a stack lock object so that once you requested an iterator on such container, only the thread owning the iterator could work with it until you were done with the iterator etc).

With that, most of those crashes went away and were replaced by a somewhat large lag (this happened about 30 hours ago, at which point server became a lot more stable, but also about 15 times slower). This called for a faster alternative for some of our most accessed containers (like for instance, the list of all souls in the universe or the list of items in a ship), for that i used a singlelockcontainer object approach. The difference with this compared to the previous one, is that it is not a “plug and play” replacement for the map or set (or any object in its case), it require actual code change to every location accessing the object in question, but at least enforce it. Without cheating the system knowingly (calling a reference and copying the pointer or similar “hacks”) it is impossible for a piece of code to access its content without first requesting a lock. Once the lock is granted the object can be read and written to by the thread which locked it. This is an order of magnitude faster than the “plug and play” approach, but is generally not worth using for small containers or containers only used for direct access etc.

I slowly replaced the slow parts with the new faster singlelockcontainer until the performance were at a point where the overhead from validating and enforcing memory access to all those containers did not actually affect performance, which is about where we are now.

Next step is to fix all the client issues and a few remaining server bugs, but very soon we should be back to weeks+ uptime on the server without crashes.