our rambling
Want to be notified of new blog posts?

Elwin Verploegen

Fragments of Him out on May 3rd! May 2, 2016

By Elwin

In case you missed it last week: Fragments of Him is coming out tomorrow (May 3rd)!

You will be able to get it on Steam or the Humble Store tomorrow at 11:00AM CEST (2AM PDT, 5AM EST).

The Xbox One version of Fragments of Him will follow shortly after the Steam release. Sadly, this version has suffered a delay due to a stability issue. We are working on getting these fixed and will post an update as soon as we know more.

If you want to be notified by Steam when the game launches, you should add the game to your Steam Wishlist.

Tino van der Kraan

Sassybot at SXSW 2016 – Part 2 March 23, 2016

By Tino

In part 2 of the SXSW blog you can read about the day by day of the Sassybot adventure at SXSW in Austin. In this blog you can get tips & tricks showcasing your game at an exposition, know how Fragments of Him did in the competitions for the SXSW Single Player Gamer’s Voice Awards, and how the trip back home wasn’t as easy as we had hoped.

Day 1

The Gaming Expo that Fragments of Him was part of took place in the Austin Convention Centre. Elwin and I stayed at the Radisson hotel and getting to the convention centre took about 5 minutes. This hotel was much fancier than what we would normally stay in but we were able to make this work by saving on transportation expenses.
SWSW_10

Pro tip: Find accommodation close to your purpose and save on time and transportation expenses.

The Gaming Expo was from Thursday (March 17th) until Saturday (March 19th) and lasted from 12:00 until 20:00. Thursday morning we could set up from 8:00 onwards and was plenty of time for us to set up. Here is what we took with us:

  • 3 showcase laptops + locks
  • 1 banner (2m x 3m)
  • 1 tabletop poster (A5)
  • 400 posters (A2)
  • business cards
  • promotional
    • napkins
    • stickers
    • cards

We are not endorsed by Logitech though we could have been. They have set us up with additional hardware for showcasing. Namely:

  • 2 Headphones
  • 2 Keyboards
  • 2 Computer mice
  • 2 Mouse pads

SWSW_05

When showcasing, our general approach was to ask anyone if we could explain what Fragments of Him was about. In our case nearly everyone was interested in hearing more where people mentioned it was the unique visual style that caught their attention. When deciding on demo content make sure that your game or experience is curated in such a way that it grabs attention, is not too long, not too short, gives a pleasurable or interesting experience, and leaves the person wanting for more. After having played the demo you can explain the person more about the game such as when it will be released, at what price point, and where more information can be found. Finally, we gave people that played the demo a free poster.

Insight: With 2 demo laptops with a 5 to 10 minute demo and 1 laptop running trailers we think that no more than 500 people got to play the demo at 3 days of showcasing at SXSW with 8 hours of showcasing per day.

Pro tip: Before you travel, build your booth according to the booth’s specifications. This will raise issues you can deal with beforehand to be optimally prepared. Also think about how you can make your booth look unique and inviting.

Day 2

The second day had the same 12:00 to 20:00 schedule and makes it apparent that showcasing is definitely a 2 person job. Especially with a public event it is recommended to have an extra person to keep an eye on the valuable things during food or bathroom breaks. Out of the three, this day was definitely easiest considering the visitor number and that we could leave the less valuable things with the booth overnight.

SWSW_06

Events such as SXSW and similar are a great way to build your connections and networks. If you can spare the time it’s definitely worth it to stop by the other booths to get to know the people. These people can likely help you out with information and contacts in the future if you are nice to them. Try and tag along with a group of interesting people for food and drinks in the evening and these connections can be mutually beneficial for the future.

Pro tip: Showcasing or talking at an event usually comes with certain perks and benefits such as free food and drinks which helps drive down expenses.

Day 3

SWSW_07

The last day, Saturday, was easily the busiest of the three. The public showcase was cut short because of the SXSW Gaming Award Show that started at 20:00. It was streamed via Twitch and can be seen here:

Congratulations to all the great games and people that were nominated and especially to the people that rightly earned awards in their respective categories. Fragments of Him was nominated for a Single Player Gamer’s Voice Award. As the title implies, the winner here was determined by the people and the gamers. Votes could be cast during the Gaming Expo up to 2 hours before the show. The winner in our category was Super Hot and judging from the crowd’s response, rightly so.

Pro tip: Promote your attendance and make appointments with press weeks or even months before an event to increase the effectiveness of an event.

Day 4 & 5

SWSW_08

With our time in Austin coming to an end we were itching to get back home. This was easier said than done. Our flight back took us from Austin to Atlanta, Paris, and finally Amsterdam. When we left on Sunday we were informed about Paris’ air control personnel holding a strike, severely hindering all flights passing that port. This caused us about a total of 6 hours in delays.

Roadmap

We are close to getting the game ready for release and have had to move our release window to a month later. Don’t worry, it’s still going to be in 2016. 😉 However, we are not yet ready to pinpoint an exact date considering some of the delay is subject to external approval. We are very excited about getting this story into your hands as soon as we can.

Tino van der Kraan

Sassybot at SXSW 2016 – Part 1 March 16, 2016

By Tino

This is the first of possibly a series of blogs covering our showcase of Fragments of Him at the SXSW Gaming Expo which is part of the SXSW festival in Austin, Texas. The entire SXSW festival lasts from March 10th until March 20th. The SXSW Gaming Expo is from March 17th until March 19th. For convenience sake I’ll consider March 17th to be the first day of our three day showcasing adventure.

Day -1 – Arrival

SWSW_02

On Tuesday March 15th Elwin and I traveled to Austin, Texas via Minneapolis. We departed from Schiphol at 13:00 and arrived around 21:00 (local time) in Texas. Considering a time difference of 6 hours this trip took around 14 hours to get us from airport to airport and around 16 hours from Breda to our hotel. Perhaps a bit typical but very much indie gamedev, Elwin was in the process of submitting a build overnight for the Xbox One certification which ultimately had to be finished from Schiphol.

Day 0 – Day of writing

SWSW_00

The show starts tomorrow and Elwin and I used this day to get our bearings and sort some things such as exhibitor passes and supplies. While waiting for rental bikes to be dropped off we noticed a large amount of police parked at all driveways and intersections along the street of our hotel. Apparently the first lady, Michelle Obama, gave a talk at SXSW and this resulted in the streets being blocked off for the occasion. Pretty cool to have seen this by coincidence.

To be continued…

SWSW_01

Tomorrow is the first day of showcasing Fragments of Him which is very exciting. If time and opportunity allows for it we will try to post an update on our adventures in a future blog. In the meantime, keep creating and never give up!

Tino van der Kraan

Update on Fragments of Him Release March 4, 2016

By Tino

Hey everyone,

In this blog I will give you an update on Fragments of Him and our thoughts closing in on release.

Pre-order update

You may have noticed on Steam that we are aiming to release nearing the end of March though we are not 100% sure about this yet. Be sure to keep an eye out on our channels where we will publish a launch trailer with an exact date when we have one!

Have you pre-ordered the game already? Awesome! We thank you for your support and can’t wait to finally deliver the game to you. We do however have an announcement to share with you regarding the price you pre-ordered it at.

At the advice of Valve (& others) we have decided to start with a 10% launch discount (which is already active on our own site), which will last until a week after launch. Since we don’t think it’s fair that people pay more than those who have waited, we will be contacting everyone shortly via email to give you some options regarding your pre-order, it’ll be worth it!

The Game

Fragments of Him

Updates on the game have been fairly silent for quite a while and I apologise for that. The game was suffering from issues caused by a mandatory upgrade in game engine. Talking about this made it feel as if we weren’t making any progress at all and that the game was only getting worse. Ultimately, the problems that the game was facing should no longer be an issue.

The experience in Fragments of Him is hitting the right notes with our testers and we have recently been doing compatibility testing with small groups of players. What we generally test for here is how the game performs on consumer grade hardware. We do this by sending out Steam keys to peers, friends and family and ask them to play the game and report any problems they might run into.

When the game releases on Steam and Xbox One we really hope that people are able to enjoy the experience we have spent countless hours on crafting. Even though we hope the launch will go smooth, history and Murphey with his laws have taught us that it rarely does. Regardless, we will always listen to the issues you may have with the game and will try to address what we can within reason.

Thank you for listening and I hope to be able to count on your support.

Elwin Verploegen

Email Bug Reports in Unity3D (With Automatic Screenshot) February 15, 2016

By Elwin

For the Fragments of Him PC Beta we wanted to make it easy for players to send in bug reports. We wanted this to do a few things that cover most of the questions that we usually have to ask when a bug report is filed:

  • Type up a bug report
  • Send in a screenshot
  • Attach system specs
  • Automatically email it to us

Luckily, all of this is possible using C#. The following script allows the user to press F1, after which it takes a screenshot and opens up a simple GUI where the user can type in an email address (or just something to identify the user with) and a bug report. When the user clicks the “Send” button the screenshot will be attached to the email and sent to an email account that we can easily access.

Warning: Your login details can be read as plain text with relative ease, only use this when sending builds to trusted testers or when using internally.

#if UNITY_STANDALONE

using UnityEngine;
using System.Collections;
using System;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

public class Email : MonoBehaviour{

    //email setup
    private string from = "youremail@yourdomain.com";
    private string password = "yourpwd";
    private string smtp = "smtp.yourdomain.com";
    private string to = "report@tosendto.com";

    private bool isemailing = false;
    private string email = "";
    private string body = "";

    private string filepath = "";

    void Update(){
        if(Input.GetKeyDown(KeyCode.F1)){
            //take a screenshot when opening the form
            StartCoroutine(TakeScreenshot());
        }
    }

    void SetEmailing(bool dir){
        isemailing = dir;
        Time.timeScale = (dir) ? 0f : 1f;
    }

    void OnGUI(){
        if(isemailing){
            GUILayout.BeginArea(new Rect( 100, 100, 400, 600));
            
            GUILayout.Label("Your email: ");
            email = GUILayout.TextField(email, GUILayout.Width(150));

            GUILayout.Label("Bug report: ");
            body = GUILayout.TextArea(body, GUILayout.Height(250));

            if(GUILayout.Button("Send bug report", GUILayout.Width(150))){
                SendEmail();
            }

            GUILayout.EndArea();
        }
    }

    void SendEmail(){
        MailMessage mail = new MailMessage();

        //create the resource to be attached to the email
        LinkedResource inline = new LinkedResource(filepath);
        inline.ContentId = Guid.NewGuid().ToString();
        Attachment att = new Attachment(filepath);
        att.ContentDisposition.Inline = true;

        //create the content of the email
        mail.From = new MailAddress(from);
        mail.To.Add(to);
        mail.Subject = "Debug mail";
        mail.Body = String.Format(
                "Report by: " + email + "<br/><br/>" + 
                "Bug report:<br/>" + body + "<br/><br/><hr>" + 
                GetHardwareInfo() + "<br/><hr>" + 
                @"<img src=""cid:{0}"" />", inline.ContentId);
        mail.IsBodyHtml = true;
        mail.Attachments.Add(att);

        //set up the smtp
        SmtpClient smtpServer = new SmtpClient(smtp);
        smtpServer.Port = 587;
        smtpServer.EnableSsl = true;
        smtpServer.Credentials = new System.Net.NetworkCredential(from, password) 
            as ICredentialsByHost;
        ServicePointManager.ServerCertificateValidationCallback = 
            delegate(object obj, X509Certificate cert, X509Chain chain, SslPolicyErrors sslerrors) 
                { return true; };
        smtpServer.Send(mail);
        
        #if UNITY_EDITOR
            Debug.Log("email sent");
        #endif
        SetEmailing(false);
    }

    //return a string with some essential hardware info
    string GetHardwareInfo(){
        return    "Graphics Device Name: " + SystemInfo.graphicsDeviceName + "<br/>"
                + "Graphics Device Type: " + SystemInfo.graphicsDeviceType.ToString() + "<br/>"
                + "Graphics Device Version: " + SystemInfo.graphicsDeviceVersion + "<br/>"
                + "Graphics Memory Size: " + MBtoGB(SystemInfo.graphicsMemorySize) + "<br/>"
                + "Graphics Shader Level: " + ShaderLevel(SystemInfo.graphicsShaderLevel) + "<br/>"
                + "Maximum Texture Size: " + MBtoGB(SystemInfo.maxTextureSize) + "<br/>"
                + "Operating System: " + SystemInfo.operatingSystem + "<br/>"
                + "Processor Type: " + SystemInfo.processorType + "<br/>"
                + "Processor Count: " + SystemInfo.processorCount.ToString() + "<br/>"
                + "Processor Frequency: " + SystemInfo.processorFrequency.ToString() + "<br/>"
                + "System Memory Size: " + MBtoGB(SystemInfo.systemMemorySize) + "<br/>"
                + "Screen Size: " + Screen.width.ToString() + "x" + Screen.height.ToString();
    }

    //make the shader level more readable
    string ShaderLevel(int level){
        switch(level){
            case 20: return "Shader Model 2.x";
            case 30: return "Shader Model 3.0";
            case 40: return "Shader Model 4.0 ( DX10.0 )";
            case 41: return "Shader Model 4.1 ( DX10.1 )";
            case 50: return "Shader Model 5.0 ( DX11.0 )";
            default: return "";
        }
    }

    //unity returns a weird amount of available MB, this unifies it
    string MBtoGB(int mb){
        return Mathf.Ceil(mb / 1024f).ToString() + "GB";
    }

    //take a screenshot before opening the GUI
    IEnumerator TakeScreenshot(){
        yield return new WaitForEndOfFrame();
        #if UNITY_EDITOR
            filepath = Application.dataPath + "/../debugscreenshot.png";
        #else
            filepath = Application.dataPath + "/debugscreenshot.png";
        #endif

        Application.CaptureScreenshot("debugscreenshot.png");
        SetEmailing(!isemailing);
    }
}
#endif

You should be able to just copy/paste this script into your project (name the script Email.cs) and drop that on any GameObject in your scene. Press F1 to see it in action.

Couple of notes on the script:

  • It’s set up to wait for the screenshot to be taken, and only then will it open the email GUI. This is to ensure that the email GUI is not part of the screenshot. You can extend this to disable other elements in your game if you see fit.
  • You have to ask permission from the user to get their system data! While the data we get doesn’t contain anything identifying, you should always ask for permission (or in our case, if you accept our beta key you agree that we can use this data whenever you send in a bug report).
  • I’ve set it up so it’ll only work for Standalone builds (see first and last line of the script), I have no intention of using this for our Xbox builds, but you can always modify that to be available on other platforms, just make sure that the interface still works!
  • You may have to modify the SMTP port on line 81 to whatever your host uses.
  • You must set unity to use Api Compatability Level .NET 2.0. If you do not change this the script will throw an error once you send the email.

If you have any questions or recommendations, you can get in touch with me on Twitter @elwinverploegen.