Bloodirony Blog


Blog

INSIGHTS, TUTORIALS AND DIRTY SECRETS

Viewing entries in
Shooting Stars

Shooting Stars! out now!

3 Comments

Shooting Stars! out now!

For us, this is probably one of the craziest moments since we have founded Bloodirony Games – 'cause today, shit just got real and we couldn't be prouder!

But to skip my usual emotion-filled jabbering let's jump right into it.
In the name of the Bloodirony Team, I am beyond excited to announce that Shooting Stars is finally available at the AppStore.

About Shooting Stars!

Shooting Stars! is a mobile roguelike shoot 'em up. It's all about evil aliens, superstars, cats and rainbow lazers. Aliens have secretly conquered the earth and replaced all the famous pop-culture superstars by installing evil marionettes serving one purpose only – to control all human life. The sacred rainbow unicorn made it your mission to free the imprisoned stars, fight back the evil aliens and restore the balance of entertainment on planet earth. 

AppStore: https://itunes.apple.com/us/app/shooting-stars!/id1000418188?ls=1&mt=8 This game is the answer to one of the most important questions in life: "I can haz lazer kitty?" Yes you can! Shooting Stars is a refreshing colorful and funny take on the classic arcade shoot'em up, bullet hell, shmup, space invader like, whatever you want to call it - but finally, with evil aliens disguised as superstars, cats and rainbow lazers.

Thank you for all your support!

We want to thank so many people for their endless support. Without you, Bloodirony and Shooting Stars! wouldn't even be close to what Shooting Stars! finally became.

Thank you so much Katharina, Johanna, Stefan, Chiara, Francesco, Johannes, Jan, Sönke, Josef, David, Thomas, Philipp, Alexander, Stockwerk, Noodlecake, Wirtschaftsagentur Austria (Departure) and of course, thanks to you dear Rainbow Unicorn!

Please help us to spread the word

We have a lot of screenshots and made even more crazy gifs for you to share on Facebook, Twitter, Tumblr and all the other platforms old people like us have never heard of. The hashtag is #ShootingStarsGame. So please, help us to spread the word that Shooting Stars! is finally available on the AppStore.

Find all the craaazy gifs in our imgur gallery and screenshots on our press page.

What about android?

Android is coming soon, there is still no official date yet but let's say that it will be before Gamescom :)
The easiest way to get all the information first is to signup to our newsletter.

 

If you have this burning feeling that you need Shooting Stars! right now, we will definitely not stop you from downloading it.

 

May the Rainbow Unicorn be with you

Michael, Alex & Stefan

3 Comments

How to support multiple languages in Unity

4 Comments

How to support multiple languages in Unity

Together with our Publisher Noodlecake we have decided to translate Shooting Stars in order to boost the reach of the game.  For the initial release we have decided to go with the 7 most common (AppStore) languages English, German, Italian, French, Spanish, Portuguese and Russian.

To implement more than one language without a lot of fuzz, we wanted to find a solution that perfectly fits our workflow.  After a couple of experiments we have decided to create a custom Text component that allows our designer to easily build localized interfaces without the need to write a single line of code. To keep things simple, we are using simple .txt files to store our internationalized strings as key-value pairs. 

For example:

key=This is a test text

So there is a .txt file for every language we support, with same keys and translated values. To prevent lags during gameplay I load the right language file in a static Dictionary on app start. As a fallback I also load the english version in a separate Dictionary in case of a missing key.

Next step was the actual display of the translated text. Therefore I have overridden the built in Text component and added a key field to my new component.

This is how I load the strings from the file into a Dictionary:

private void LoadLanguage(string lang){
    fields.Clear();
    TextAsset textAsset=Resources.Load("I18N/"+lang);
    string allTexts="";
    if(textAsset==null){
        textAsset=Resources.Load("I18N/en");
    }
    allTexts=textAsset.text;
    string[] lines=allTexts.Split(new string[] { "\r\n", "\n" },
        StringSplitOptions.None);
    string key, value;
    for(int i=0;i < lines.Length;i++){
        if(lines[i].IndexOf("=") >= 0 && !lines[i].StartsWith("#")){
            key=lines[i].Substring(0, lines[i].IndexOf("="));
            value=lines[i].Substring(lines[i].IndexOf("=")+1,
                    lines[i].Length-lines[i].IndexOf("=")-1).Replace("\\n", Environment.NewLine);
            fields.Add(key, value);
        }
    }
}
    

The custom Text component:

public class TextI18N : Text {

    public string i18NKey;

    void Awake(){
        Refresh();
    }

    public void Refresh(){
        text=I18N.Instance.Get(i18NKey, false);
    }
}

UPDATE

After posting this tutorial on reddit, the user justaghostofanother wrote a super detailed do's and don'ts about localization which can be found in the /r/unity3d thread.

4 Comments

Shooting Stars is coming July 9th

1 Comment

Shooting Stars is coming July 9th

As most of you may know, we've spent the last six months working non-stop to create the worlds best mobile game called Shooting Stars! This game strives to combine great gameplay, super easy controls and lots and lots of fun. Or in other words, we drank about 12 megatankers of coffee, fred bull and horst limo (they should start paying us for this shameless product placement).

And as the first reviews and hands on are coming in, it seems like we've done a pretty good job! But hey... we are not here to tell you how awesome we are, we are here to tell you, how awesome every single one of you is! Without your help and feedback, we wouldn't have made it this far! Thanks a million! (delivered with rainbow glitter)

And since you are super important to us, we want to share a huge secret with you. Are you ready?

🎈Shooting Stars will be available July 9th for iOS🎈

Add the date to your calendar (ics file)

For us, this announcement feels like birthdays, international burger day, rainbow unicorn day and stroke a kitty day coming all at once! Supercalifragilisticexpialidocious, isn't it? So, we've decided to put together a new Release Trailer just for this super awesome! Ready, set, watch!

AppStore: https://itunes.apple.com/us/app/shooting-stars!/id1000418188?ls=1&mt=8 This game is the answer to one of the most important questions in life: "I can haz lazer kitty?" Yes you can! Shooting Stars is a refreshing colorful and funny take on the classic arcade shoot'em up, bullet hell, shmup, space invader like, whatever you want to call it - but finally, with evil aliens disguised as superstars, cats and rainbow lazers.

Android Version coming later that July

We did not forget about you fellow Android folks. Shooting Stars is coming for Android in July too but we need to do some more polishing and testing. And everyone knows that shipping a buggy version sucks. 

Except the fact that we're so incredibly excited about the upcoming weeks there's nothing to add!

1 Comment

Bloodirony joins forces with Noodlecake Games

1 Comment

Bloodirony joins forces with Noodlecake Games

When we started to work on Shooting Stars, we planned certain milestones and things we want to achieve within our six months timebox. For example, we planned to release a nice and polished beta every six weeks. What we haven't planned back then was how are we going to release Shooting Stars. Not because we had no ideas or simply didn't want to. No, we always wanted to wait and see what happens next. 

A few months later, after releasing the official Shooting Stars announcement trailer, things just started to fall into place and we just happened to be in negotiations with the lovely folks of an Canadian publisher. A publisher for mobile indie games that started pretty much like we did. A publisher that understands our needs perfectly and gives us the creative freedom to let the schwartz flow.

Ladies, Gentleman and Unicorns, we are extremely happy to announce that we are joining forces with the Canadian mobile games publisher Noodlecake Games for our upcoming game Shooting Stars.

We are super excited to be working with Bloodirony Games on their game Shooting Stars. The second we saw it, we knew it was something special and after meeting the team at Bloodirony Games, it really was a match made in heaven.
— Noodlecake Games

Shooting Stars will be released this July for iOS and Android. If you haven't signed up for the beta, you'd better hurry!

Oh and if you're looking for the official announcement, you can find it at the Noodlecake Games blog

1 Comment

How to create a Lightning Strike in Unity2D

3 Comments

How to create a Lightning Strike in Unity2D

After creating some Sci-Fi attacks like the Rainbow Lazer or the Ro-Cat-Paw Launcher we thought the next special attack should be something more RPG like. So this Blogpost is about how I created a cool chaining lightning strike.

The main idea behind the lightning is to have some line renderers between enemies and generate random line renderer points to get some movement into it. To get amount of points I callculate the distance from the lightning source to its target and split it into segments. After that i know how much points I need. To get the distance between our hero and the enemies I maintain a list of all alive enemies. Just add some randomness and you are almost done.

To make the line renderers look like lightnings I used a texture with a gradient. To make it even more better looking I added one more line renderer simulating a light.

For creating single lightning Bolts I created a separate class:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ChainLightning : MonoBehaviour{
    [Header("Prefabs")]
    public GameObject lineRendererPrefab;
    public GameObject lightRendererPrefab;

    [Header("Config")]
    public int chainLength;
    public int lightnings;

    private float nextRefresh;
    private float segmentLength=0.2f;

    private List LightningBolts{get; set;}
    private List Targets{get; set;}

    void Awake(){
        LightningBolts=new List();
        Targets=new List();

        LightningBolt tmpLightningBolt;
        for(int i=0;i < chainLength;i++){
            tmpLightningBolt=new LightningBolt(segmentLength, i);
            tmpLightningBolt.Init(lightnings, lineRendererPrefab, lightRendererPrefab);
            LightningBolts.Add(tmpLightningBolt);
        }
        BuildChain();
    }

    public void BuildChain(){
        //Build a chain, in a real project this might be enemies ;)
        for(int i=0;i < chainLength;i++){
            Targets.Add(new Vector2(Random.Range (-2f, 2f), Random.Range (-2f, 2f)));
            LightningBolts[i].Activate();
        }
    }

    void Update(){
        //Refresh the LightningBolts
        if(Time.time>nextRefresh){
            BuildChain();
            for(int i=0;i < Targets.Count;i++){
                if(i==0){
                    LightningBolts[i].DrawLightning(Vector2.zero, Targets[i]);
                }else{
                    LightningBolts[i].DrawLightning(Targets[i-1], Targets[i]);
                }
            }
            nextRefresh=Time.time+0.01f;
        }
    }
}

To draw the actual lightning segments I created another class:

using UnityEngine;
using System.Collections;

public class LightningBolt {

    public LineRenderer[] lineRenderer{get; set;}
    public LineRenderer lightRenderer{get; set;}

    public float SegmentLength{get; set;}
    public int Index{get; private set;}
    public bool IsActive{get; private set;}

    public LightningBolt(float segmentLength, int index){
        SegmentLength=segmentLength;
        Index=index;
    }

    public void Init(int lineRendererCount, 
            GameObject lineRendererPrefab, GameObject lightRendererPrefab){
        //Create the needed LineRenderer instances
        lineRenderer=new LineRenderer[lineRendererCount];
        for(int i=0;i < lineRendererCount;i++){
            lineRenderer[i]=(GameObject.Instantiate(lineRendererPrefab) as GameObject)
                .GetComponent();
            lineRenderer[i].enabled=false;
        }
        lightRenderer=(GameObject.Instantiate(lightRendererPrefab) as GameObject)
            .GetComponent();
        IsActive=false;
    }

    public void Activate(){
        //Active this LightningBolt with all of its LineRenderers
        for(int i=0;i < lineRenderer.Length;i++){
            lineRenderer[i].enabled=true;
        }
        lightRenderer.enabled=true;
        IsActive=true;
    }

    public void DrawLightning(Vector2 source, Vector2 target){
        //Calculated amount of Segments
        float distance=Vector2.Distance(source, target);
        int segments=5;
        if(distance > SegmentLength){
            segments=Mathf.FloorToInt( distance / SegmentLength)+2;
        }else{
            segments=4;
        }

        for(int i=0;i < lineRenderer.Length;i++){
            // Set the amount of points to the calculated value
            lineRenderer[i].SetVertexCount(segments);
            lineRenderer[i].SetPosition(0, source);
            Vector2 lastPosition=source;
            for(int j=1;j < segments-1;j++){
                //Go linear from source to target
                Vector2 tmp=Vector2.Lerp(source, target, (float)j / (float)segments);
                //Add randomness
                lastPosition=new Vector2(tmp.x+Random.Range(-0.1f, 0.1f), 
                    tmp.y+Random.Range(-0.1f, 0.1f));
                //Set the calculated position
                lineRenderer[i].SetPosition(j, lastPosition);
            }
            lineRenderer[i].SetPosition(segments-1, target);
        }
        //Set the points for the light
        lightRenderer.SetPosition(0, source);
        lightRenderer.SetPosition(1, target);
        //Set the color of the light
        Color lightColor=new Color(0.5647f, 0.58823f, 1f, Random.Range (0.2f, 1f));
        lightRenderer.SetColors(lightColor, lightColor);
    }
}

The Result

DOWNLOAD UNITY 5 SAMPLE PROJECT

As usual, we want to share a sample project with you – so, it's much easier to understand what we are talking about. Same as last time, be fair and please don't use the graphic assets in your own games.  

3 Comments

Shooting Stars Announcement Trailer

Comment

Shooting Stars Announcement Trailer

We are super excited about the progress we've made in these past few weeks with our game Shooting Stars. We are just about to finalize the basic gameplay to finally kick off content production in order to include tons and tons of great stuff in the game. 

So, let's not bore you to death, it's time to present you our first Shooting Stars Announcement Trailer.

Ladies, gentleman & unicorns. Fasten your seatbelt and enjoy the show!

New Shooting Stars Beta "Techno Viking"

We haven't spent the past few weeks just polishing our trailer. So from today on, there is a new and exciting beta of Shooting Stars in town, or at least on your phone. It's called "Techno Viking" and is completely different to what the previous beta looked like. And of course, it is not affiliated to the real Techno Viking in any way. (So, it's not a cheap ripoff, it's just harder, better and faster)

As mentioned before, we're pretty happy with the basic gameplay and most of the stuff is already where it is supposed to be. But as usual, we still have incredible arrays of open tasks and ideas to make the game even better than we as promised it to be.

If you aren't among the existing beta testers feel free to signup to our beta testers mailing list!

When is the final version of Shooting Stars coming?

There is no exact date yet, but we will launch it at the beginning of July. In the mean time, we will keep you up to date through our social media channels. (Mostly by showing you gifs of cute little kittens)

Meet us at the A Maze Festival Berlin

We are super happy to announce that we've been selected to present Shooting Stars at the A Maze Festival 2015 in Berlin. We'd love to meet you at our booth on Friday from 8pm to 12am. Just look out for this super cool hipster dude on a hoverboard with a lazer cat in his arms.

May the Rainbow Unicorn be with you! 

Comment

Ro-Cat-Paw-Launcher

Comment

Ro-Cat-Paw-Launcher

ro-cat-launcher.gif

Once again our Rainbow Unicorn Research Labs had an amazing technological breakthrough. We are proud to present the mighty and meowtastic RO-CAT-PAW-Launcher!

We asked the leading engineer for a statement and all he had to say was: "Relax dude, it's not Ro-Cat Science"

As usual we will soon publish a short tutorial on how we created this attack. 

Comment

Insights #1: Premium vs. Free-to-Play Games

3 Comments

Insights #1: Premium vs. Free-to-Play Games

We are making great progress with the development of our game Shooting Stars and as this progress continues we have to face lots of different challenges every day. Many of those challenges have minor impact on how to play the game or how the game looks like and most of this decisions can be even changed later without much fuss. But unfortunately, life isn't just a colorful world with Rainbow Unicorns singing Eminems Slim Shady in a beautifully weird honkytonk-ish mashup. We have to face major decisions too, like going Free-to-Play or premium which will radically change the complete game.

For this reason we have decided to share some of our decisions and challenges with you and most importantly why we are going that way. Don't expect this series to be too regularly, but whenever something important comes up we'll let you know. 

Free-to-Play vs. Premium Mobile Games

If you are a regular visitor on our Blog you may have already stumpled upon the fact that this is our first game as a team. So we try not to rush things and instead learn as much as possible to make rational decisions based on our core mission to save mobile gaming.

Ever since we have started with the development of Shooting Stars we had one question in mind: Free-to-Play or Premium? And after endless discussions we came to a point that the perfect fit for Shooting Stars is to become a Premium title. But how did we come to this conclusion?

Our Situation

First things first – the bigger picture: We are a small studio of three people with limited funds and a time box of six months to create (the worlds best) mobile game. Even though this is our first game as a team and the short period of six months, we are confident to do an outstanding job – especially the great feedback we receive on our first prototype (Mitch) proofs us right.

Why Premium instead of Free-To-Play?

If we fade out the needs of our target group, Free-To-Play makes total sense from a financial point of view – and our game would easily allow some cool InApp extensions. In our case, we could add new enemy celebrities, items, attacks, skins, ... every month. We have to change the overall gameplay to balance the In-App-Purchases but we may be able to establish a system with an constant income stream. To keep it short and simple: income is always a good thing and a constant income stream is even better! 

In theory, to implement a system like this sounds super easy.  (I imagine that everyone who reads this secretly wants to slap me in the face) – but even though it may not be that hard to implement Free-To-Play mechanics, there is a lot of overhead to consider. We need to define the Free-To-Play mechanics. We have to design and implement additional interfaces. We need to setup, test and maintain all the possible In-App-Purchases and the technical handling for two platforms. And most importantly, we need to balance those In-App-Purchases. Based on our assumptions, all this together will consume most of the time.

On top of that, we don't want to hide the fact that we are lacking Free-to-Play monetization knowledge. We don't want to start with a risky experiment in a field where we have not enough experience yet. 

Going premium allows us to solely focus on gamedesign & gameplay mechanics, arts, UI/UX, sound design, the overall story and a solid polishing job – not to forget to mention all the side jobs like planning a marketing campaign for the game. 

Another very important event, which gave us a huge confidence boost about our decision, was Apples promotion of Games without In-App-Purchases within the AppStore and we hope that over the course of the next months, Apple will expand that "category" further.

Furthermore, the setup of our game will be an action packed – meme-ified – pixel art – roguelike – shoot 'em up, where we are able to selectively narrow down the target audience to a mixture of various niches. This allows us to focus our marketing efforts on fewer channels without the need to tackle mainstream media in the first place.

Pricing of Shooting stars?

We haven't decided yet on what the final price for Shooting Stars will be. But we will let you know as soon as possible. In the meantime, there is an excellent read on Gamasutra about this

your opinion on Premium vs. Free-to-Play?

We would love to hear your opinion on Premium vs. Free-To-Play. What are your thoughts when it comes to Premium, Freemium, F2P? If you are a Gamedev yourself, tell us how have you handled this decision.

3 Comments

Mega-Rainbow-Lazer

Comment

Mega-Rainbow-Lazer

The last couple of days we have spent a lot of time to create a framework for our lazer attacks for our upcoming game Shooting Stars – and we simply love the result!

I proudly present you the uber-awesome and cat-tastic Mega Rainbow Lazer

Stay tuned for more, next week we'll publish a short tutorial on how we made this lazer in Unity2D.

Comment

Shooting Stars Beta Release – Mitch gone wild!

2 Comments

Shooting Stars Beta Release – Mitch gone wild!

I want to start this post by saying thanks to all the wonderful people who have supported us in the last couple of weeks. You guys are simply awesome!

As we have mentioned, approximately 12000 times, on our social media channels we'll release a playable beta every six weeks to give you an overview of what we're doing and how the game will look like. So, six weeks after the launch of Bloodirony Games we are here to keep our promise.

We are proud and super excited to announce the very first Shooting Stars beta, called "Mitch". (this is the moment where you start drooling and yodeling which of course is accompanied by a smooth and sexy drum roll)

We've sent out a mail to all the signed up beta testers, with all the necessary instructions to install the beta and to finally start shooting stars. (Ahhhh... now everything makes sense) If you feel left out and desperately want to be part of the cool beta kids club, Y U NO SIGNUP? Just signup to our beta and you'll receive an invitation to play this super awesome and exciting Shoot 'em up. 

Random facts about Mitch

  • It's a simple vertical endless shoot 'em up where you have to fight Minions and their level boss with an online highscore.
  • The game has absolutely no affiliation with any known TV character. Honestly!*
  • We started as ridiculous (kack-) noobs with no knowledge of Unity. This version is what we've learned in 4 weeks (+ a bit of optimization stuff).
  • The game is now optimized to even run on rather low performance devices. (We haven't decided yet if we support the Nokia 3210).

Electra, here we come!

Oh, come on! Don't say you haven't expected something like this? Electra was the only suitable name for the next version.

In the last days we've decided to completely start over with all the learnings we've made. We've also redefined our concept to be a bit more... erm... different. (And by different we mean better) Expect it to be completely random(!), probably as random as this crazy internet thingy is. Following our release cycle the next beta will be available on April 1st – jokes on you!

By the way, if you're able to guess the name of the 0.3 release, post it on our Facebook wall and if you are lucky, you can name the 0.4 release.

Don't forget to like us on Facebook and follow us on Twitter to get all updates.

 

* I lied.

2 Comments