Posted on Leave a comment

New game launch + Thoughts on Unity on Linux in 2019

Hello Giants!

Those of you who keep an eye on the front page, follow me on twitter or are active in our discord server know I just launched a small game for Android today called Retro Sail. It’s cute, skill based, features no ads as lacks any kind of IAP. It was also designed and developed in under five days with Unity. Now those of you who think this is some kind of a praise for Unity as an engine, especially those who weren’t in discord, let me warn you – it is not.

For the past 5 days I’ve been through a roller coaster of emotions due to using Unity and I’ll walk you through the reasons in a second. Before that let me just say that after spending these past days using it on Linux makes me want to focus even more on Pint as my main game development tool. Let’s jump through it.

The most stable version of unity, 2017 LTS would put even a Bethesda game, on release, to shame in terms of crashes and bugs.

Last time I got to try Unity engine on Linux was in 2016 and for a first attempt at supporting the Editor on Linux they were onto something. Yes it wasn’t extremely stable and there were a ton of problems with dragging and dropping but it was also an experimental, fresh build. Fast forward to today and well, nothing much has changed. Unity now comes with a launcher called the Unity Hub and all I can say about it is that it’s a convenient way to manage different versions of the engine. In my case I had the option of installing:

  • Unity 2018.3.4.f1
  • Unity 2018.2.2.20f1
  • Unity 2017.4.19f1(LTS)

Out of the three choices the only one who would open up the editor was 2017 version, the 2018 ones would crash as soon as a project was created and loaded. 2017 isn’t far off from this behavior but at least I managed to do get the editor working.

2017 LTS version of Unity comes without Mono Develop, does not install the Android subsystem needed to build Android projects and crashes every single time you open up a project unless the project folder isn’t cleaned of any Interface or Project setting. But again, at least it works. Barely.

Mono develop can be installed externally but actually getting it integrated properly with Unity 2017 is a tale in itself. Let’s just say that I finally got it working but had to default to Visual Studio Code because:

  • Copy pasting anything from outside Mono Develop into Mono Develop was not an option
  • Trying to edit a script from the editor by double clicking on it would open up a new Mono Develop window and solution
  • Even more so sometimes Unity would point out errors on code lines that weren’t there in a given file.

So if you’re looking to try out Unity 2017 on Linux save yourself some trouble, get Visual Studio Code and install the .NET required plugins for it.

Building for Android is a no-no unless you install p7zip-full.

I needed Unity so I can develop a Android game (still Linux, right?) in a few days to put up on the Bearded Giant Games store. Let’s be honest, the BGG store is lacking content and I’m bleeding a lot of new visitors and old visitors. Might as well design a tight game to keep them busy until Outwarp comes out. Back to Unity tho’. If you try to install the Android subsystem needed to build games for Android and use the Unity Hub you’ll just be notified, after the install, that it failed due to an unknown error. After digging for a while the solution for this was simple, get p7zip-full onto my system because Unity requires it. Ubuntu users can just do a

apt-get install p7zip-full

Again this took quite a few hours to debug and figure out since, from my research, it wasn’t documented anywhere. Thank you who ever tweeted about this, you were a life saver (and the reason Retro Sail is out).

Importing audio files is a no-no in 2017.4.19f (LTS) because it is deployed with the wrong library.

Main mechanics completed it was time for me to focus on sounds and audio design for the game and another what the hell moment came when trying to import some audio files into the game. Long story short Unity would default on importing the Audio Files because of a problem with FSBTool and actively required me to download fmod and copy libvorbis.so.2 from it into the Data Folder (editor’s data folder, not the game’s). However, due to FMOD’s licensing I did not want to touch it. After some more browsing I decided to download Unity 2018.2.2.20f1 and copy the FSBTool libraries from it into 2017 and voila, it worked perfectly in 90% of the cases (the remainder 10% required me to import Audio file into Audacity and Export it again as an .ogg file).

Massive processor hog after a few hours of usage

My biggest problem with Unity on Linux didn’t come from android subsystem and/or the FSB Tool problems. Nor did the lack of MonoDevelop (as I affectionately use VSCode for Pint and my other projects) but the fact that a couple of hours in my little Brix PC would slow down to a crawl. And remember this is the same Brix PC I used Unity on for the past few years on major projects as a contractor/freelancer. The OS is installed on a SSD so closing unity and restarting it to get rid of the proc hog wasn’t a problem. Having to delete the ENTIRE LIBRARY FOLDER, Project Settings, Package Manager and Packages after every restart in order to be able to open up the editor? Now that can drive people crazy.

For those of you asking what’s the big deal here’s a small painting of the situation: At best I could go with Unity editor open for ~2 hours before pressing the play button became an exercise in frustration. Closing down the editor and making sure my changes are saved: 4-5 minutes. Restarting the PC from off state? 35 seconds. Deleting the Library, Project Settings and UnityPackage manager folder? 4 seconds. Waiting for the library to be rebuild? 14 minutes. Time for a FIRST BUILD for Android after a reboot? 23 minutes (with subsequent builds being done in < 1 minute). Also, remember, every new opening of the editor had me having to assign the scenes again and set the proper player settings anew.

So for every two hours of work in Unity 2017 under Linux I would loose 43 minutes trying to get it back up again. Add in a few Random Crashes from trying to change the Editor’s Interface elements and mandatory PC restarts and yeah, I lost almost 40% of my development time without doing anything for the game.

Other Linux specific quirks worth mentioning

One issue I discovered today happened while I was preparing Retro Sail for release on the Play Store. The game’s version for Bearded Giant Games was already up after being spitted out by Unity so that wasn’t a problem and it was deemed to work great by the people on Discord. So I did what any other person would do and spit up a Gradle projects and prepare the release for google Play. And release indeed it did but with a small quirk that I believe cost me a few refunds: The FIRST and LAST SCENES were reversed. That means the Main Menu scene of the game was positioned last (scene 4) in the build and the Game Over scene was the scene that welcomed users to their new purchase.

Another thing to note is that any window that pops up outside of the Unity Editor (profiler, shaders, etc) will not position itself accordingly on the screen. What I mean by that is that the top bar and half of the window in height will be hidden on the upper part of your monitor without the ability to move it. When you are a person that lives and dies with the profiler in it’s hand this can and will be a huge turn off. For this I found no fix and I only tested Unity 3D on Gnome. Not sure if this issue occurs on KDE, Unity (hehe) or any other desktop environment.

Ending Thoughts

I was on the fence about using Unity as a tool for my OWN games. I still have to use it for my legacy client projects but for my own titles I’m not sure I want to touch it again. I made a game in about 5 days with it and that shows it’s power. On the other hand those 5 days could have easily been an extended jam period (48h + 20-ish more for polishing) from conception to publishing. It’s a decent engine but on Linux it’s behaves worse than anything else I ever got my hands on. I recommend staying away from the LTS version if you can. And hopefully you’re not running integrated graphics on your machine or else the 2018 version won’t even start.

I made Retro Sail from inception to publishing it on the Bearded Giant Store and the Play Store in just five days using Unity 2017 on Linux because I am a masochist and you shouldn’t do it. But hey, if you want to support such masochistic acts get my games. It will only encourage me to keep doing stuff like this.

Posted on Leave a comment

[Announcement]: Outwarp 50S – your favorite coffee-break shoot ’em up for Linux

Hello Giants! 

Like I mentioned in the previous post, I’m working on a new Game! A devilish hard shoot ’em up that you can play one handed while you sip from your favorite coffee mug! It’s developed using Pint, my work in progress framework, and the core of the game is done! You can shoot, you can dodge, you can change your ship’s height on the map, since we’ve got a small faux-3D feel to the game using 3D perspective projection and all that in less than 50 MB of Drive Space. Check out the screenshot and we’ll get back to the nitty-gritty details after you glance at it!

Outwarp 50S SHMUP

Outwarp 50S

Outwarp Fifty-Es (or Es-Ogh-Es) aims to scratch a few itches:

  1. Gameplay sessions will be short (but not do to the lack of content). You’ll probably die in the first 10-15 seconds during your first playthroughs
  2. It auto-pauses when you switch to another window so hopefully you can sneak in some practice sessions at work
  3. Comes with a low memory footprint! In the current form the game gulps up around 48 MB of ram! It’s going to eat up 96 MB ram at maximum but I’m aiming to get it as low as 32 MB.
    • The idea is you can keep running it in the background and go for another run when you have the chance.
  4. You can collect tokens that are dropped by enemies or destructible environment elements! With them you can
    • Unlock new ships with different weapons, power up’s and special attacks!
    • Unlock new environment segments that can alter your current run
      • Enemy types with new movement patterns
      • Bullet types with various configurations and effects
      • Power-ups and
      • Even more destructible elements
  5. It aims to be the shmup you play while your steam client updates or your favorite online game is queuing you up!

Outwarp 50S’s source code

And let’s not forget my Linux first initiative! The game is developed on Linux and will release first for Linux. If enough interest in it will be gathered I’ll port it to another platform. Or you can port it yourself given that the source code of the game and engine (more on Pint in the next few days) will be available under a MIT license. Like my previous games the only thing that stays proprietary are the graphics because I need to make a living and have to pay to get some art! But you are free to get your own open source art assets into the game and distribute it with those.

What’s left to be done

The core of the game is completed. I need to hire an artist to get some quality pixel art graphics for the game and start working on the audio elements. The game’s content has been established but pacing and feel still needs work. Abilities will be added and removed constantly as I juggle around with the difficulty and feel of the game. Adding new content to the game is easy tho’.

Bullet patterns, enemy paths, enemies, power-up’s and even map segments are defined and controlled via CSV files. Map segments are designed in TileD and exported to Pint in simple Lua scripts. Technically, you can use the CSV files to make your own shmup with your own rules without even touching the source code. I’m aiming for a release sometimes near the end of Q1 (aka March). The game should be done by then but I want some buffer time to make sure all the art will be ready and given that I’m moving into another apartment I want to make sure I won’t backtrack on the launch date.

But fret not, if that happens, you will be updated. I’m planning a weekly development update on this blog with info on how development is going. Due to my privacy policy and commitment to protecting your data I do not have or use a mailing list so you’ll have to follow me up on twitter (or the facebook page) to stay up to date with new blog posts. You can also join our Discord Server for more updates in-between keyboard discussions and Sheo’s mad ramblings. Or go the old school way and refresh the Bearded Giant Game’s front page every day :).

If you’re wondering about the final price of the game, I haven’t decided on one yet. It’s going to be between $3 and $10 depending on how much the assets end up costing me. I’ll come back with more information on price soon enough.

P.s. I’m aiming to fit the game on a 3.5″ floppy disk. If I can get it under 1.44 MB of drive space and have it eat less than 32 MB of ram I’ll have a special surprise for all of you. But I’m keeping it a secret for now!

Thank you Giants! 

Posted on Leave a comment

January Studio Update – Income report

Hello Giants,

It’s a new year and with it comes my new transparency studio report on our earnings via the Bearded Giant Store, in-development projects and my open source tools/frameworks. I strongly believe in my Linux 1st Initiative and want more people to join in developing for Linux as a target platform. The best way I can raise awareness towards Linux as a viable platform is to publish my earnings in a monthly income report post and have said earnings, hopefully, grow as I release more games. My goal so far is to reach a steady 300$ / month of income from my web store before the year ends.

I get that for some people 300$ is nothing but do keep in mind that I have other income sources from freelancing to game design courses. I want to grow the Bearded Giant brand/business steadily over the next few years. With more games comes a bigger back-catalogue that will earn income passively and, in theory, each new released game should increase the monthly revenue. My hopes are that with each new income report the numbers get higher and higher and more people are attracted towards setting up their own long-term Linux centered side/main business.

Income Report!

I announced the Bearded Giant Store in December and thanks to Gaming on Linux and the r/linux_gaming subreddit the reception has blown my expectations in terms of sales. As such the turnover for December is way higher than what I expect the norm to be and is reflected in this month (January) sales.

The total amount of sales from December:

Ebony Spire Heresy:

  • Linux: 64 copies sold – 447$
  • Windows: 5 copies sold – 34,95$

Rogue Sweeper:

  • Linux: 26 copies sold – 36,14$
  • Windows: 7 copies sold – 9,73$

Total: 527$.

December was a great month for me that blew my expectations, however, it’s important to note that a huge chunk of the sales were from people who heard about the Linux 1st Initiative and wanted to support it. As such December will not contribute to my baseline towards the 300$/month target for 2019. For some more juicy December data check this out:

  • Visits to the Bearded Giant Store: 3.7K
  • Highest referral being GoL’s article with 893 visitors sent this way! (Thank you Liam and GoL’s staff! You are all amazing)
  • Number of requests to delete purchase data: 7 (check out my privacy policy for more details)
  • Most visits by country: US with 712 visits followed closely by Germany (347) and Romania (312)

Moving onto January things are a bit different and more in-line with my expectations for this month.

The total amount of sales from January:

Ebony Spire Heresy:

  • Linux: 6 copies sold – 41,94$
  • Windows: 2 copies sold – 13,98$

Rogue Sweeper:

  • Linux: 6 copies sold – 8,34$

Total: 64,26$

Like I previously stated there’s a huge discrepancy between December’s sales and January and that’s because of the amount of traffic sent my way from news coverage on the Linux 1st Initiative. However I’m not taking this as a bad thing since it’s pretty much in-line with my expectations! Let’s go over the other stats:

  • Visits to the Bearded Giant Store: 263
  • Highest referral being google with 43 unique visitors sent my way
  • Number of requests to delete purchase data: 0
  • Most visits by country: Romania with 97 visits followed by the US with 63 and UK with 27!

The total amount of revenue generated from the Bearded Giant Store so far:

Following up before the end of the month will be a blog post announcing the new game in development for Linux under the Bearded Giant Brand and a progress report on my new game development framework called Pint! If you want to get in contact with me you can do so via our DISCORD server or by sending me an e-mail at contact@beardedgiant.games! You can also follow me on twitter or stay up-to-date with Bearded Giant Games on Facebook!

Thank you Giants and have an amazing year! 

Posted on Leave a comment

December studio update and Pint progress report

Hello Giants,

Welcome to the last Bearded Giant Games studio report for 2018! The store has been live for a while now and sales have been steady. I’m happy with how well it performed ahead of my initial launch estimate. Starting with January 2019 I’ll open up a new blog category titled Sales and Transparency report where I’ll go into details on how the studio is performing. Hopefully people will be able to learn from my experience and I can grow both as a business and as a developer.

For the past few days I’ve been bedridden, struck by the flu so I had enough time to work on Pint, my new internal game engine. It’s pretty stable and nice so far and I cannot wait to push it out into full production use soon. In the video bellow I’m rendering ~1400 sprites for both backgrounds + the enemies on screen. All scaled, transformed and translated and the FPS is over 100 even on my little Chromebook 14. The memory footprint itself is also extremely small with the game eating less than 48 mb of ram.

Graphics are all placeholders from google images/oga for testing purposes. I’m using a neat little rendering technique inspired by how the scene/roads are rendered in a game like Outrun and it seems pretty fun. Once I add support for animation frames in Pint I think I’ll have a pretty nice demo to release alongside the engine. It just needs some explosions, some screen shakes and proper animations.

On the game development side I have no new game in progress right now however I am toying with a few ideas. I like the faux 3D and fake perspective usage in other games and I’ll probably play with that for my next title. The goal is to have a working game prototype by the end of January so I can focus on developing that in the upcoming months. I’ve already been throwing out some ideas and started a few debates on this subject with people from our Discord server (you are free to join the server and tag along in the conversations as they happen) so I guess I’m narrowing down the list of possible game candidates from a handful to 3-4 projects. Only one will survive in the end!

That’s all for this Studio Update. Pint development is going great, evolving slowly but steady into a framework I can use and abuse in the future. The discord community has been growing nicely in the past few weeks and more and more people are learning about the Linux 1st Initiative (a huge thank you to GamingOnLinux for their shoutout and the discussion it started on their article).

Thank you Giants and Happy Holidays! 

Posted on Leave a comment

Studio Update – Store, Linux and Direct Distribution

Hello Giants,

As you may have noticed the website has drastically changed. The itch.io and Steam widget are gone, the blog has been revamped and the entire landing page is a store. I’ve been hinting at this move for the past few months ever since this tweet. What’s going on?

In short, I’ve been toying with the idea of running my own store page for a while now. Ever since 2009 actually, when Ubuntu came up with the software center. I initially named this idea as “Games for Ubuntu”, according to the checklist and .txt manifesto I had written back then.

Back in the day there weren’t many gaming stores besides Steam and getting on that one was out of my reach (capabilities and experience wise). I was still in my honeymoon phase with Ubuntu as an Operating System (switched to it back in 2006). Fast forward a few years and in 2011 I self-published Pimps vs Vampires on BMT Micro for a whopping total of 8$. Mutant Gangland came around and itch.io was revealed so I jumped on it and fell in love hard. A few more years passed and I released Ebony Spire: Heresy on steam. However the release of the Anniversary Update for ESH got me thinking. 

I don’t want to handle a hundred different builds for all the platforms and stores the game is on. I don’t want to have to work hard to bring my own traffic to steam so I can keep making more sales instead of the “organic traffic” steam sends my way. I hate having to check several different forums, channels, e-mails just to stay up-to-date with my community of fans and users, I just want to make games and release them. I want to spend more time giving love to my projects instead of updating 4 different distribution channels, translating pages, writing different press releases and making separate builds.

Que the Bearded Giant Store and Linux #1st Initiative

The Bearded Giant Store is my attempt at solving most of the issues mentioned above since It allows me focus all my development efforts towards a single, unified, platform. Whenever I release a new game it goes straight up on my page. You can purchase it directly from me with no middleman involved to handle distribution or updates. I screw up it’s on me. I succeed? 98% of the spoils go to me. Discoverability is only up to me. No more translating a store page to several different languages hoping the steam discoverability algorithm pushes me up the list or spamming steam support for information on when I can add trading cards so I can attract more users and please the algorithm. Feedback and support is done through my discord server. Announcement and releases are made available via blog posts such as this one.

I’ve also chosen to remove other distractions from my development life. I know most of my players are Windows users however, for me, it was a hassle maintaining Windows builds and testing them out properly. This is why I wrote the Linux #1st Initiative. This doesn’t mean that my games will only be available on Linux but it does mean I’m targeting Linux first. I can develop a game on the platform I’m most comfortable with and make sure it’s air-tight in terms of design and implementation. When I released the anniversary update for Ebony Spire I discovered some issues on the Windows build that I quickly fixed. Turns out, on release, I broke the game for the users close to my heart (Linux). Que another set of updates to Steam and Itch. I just don’t have the man power and enough computers to test and support several platforms. This is why I’m embracing Linux #1st as a modus-operandi. I’ll write my games on Linux and release them for Linux. Once development is truly done, once quality can’t go any higher and once I’m done having to fix or tune stuff I’ll be able to focus on porting the game to other platforms.

And another advantage of going for Linux as my main target? I don’t have to compete as much as I do on Windows and I can lower my expectations and sales goals. This allows me to stay as small and nimble as possible. I can also start growing a small audience from this point onward that will look for me and my games here. 

Purchasing the games directly:

You can purchase all my current and future games directly from me. PayPal is the only payment processing service I’m using for now. I’d use Stripe but it’s not available in my country yet. But I’m sure I’ll add more options in the future as the need appears. But you don’t need a Paypal account and you can pay directly with your credit card through Paypal. You’re not renting the game from me through a license that goes away if my store goes away. You get it DRM Free and you are encouraged to make backups of it. You are also free to mod the hell out of them to your heart’s content or make derivative with their source code. Which brings me to another point.

Que Pint as my new in-house framework and engine:

I’ve been running on the back of external frameworks and engines since 2010. My games had a portable Lua core that I would use to wrap specific rendering and input functions from third party frameworks so I can re-use my code if I decided to move to something else. With this new change in approach to releasing and developing my game I decided to drop my previous tools and setup new ones. And like my games they are developed and built on Linux. It’s going to be fun porting them to other platforms in the future :).

Thanks to great (for me) Ebony Spire sales I can afford to do all of this. I’m not interested in short term success and I’d rather be more stable in the long run. My goal is to be able to retire making my own games and luckily enough there’s a ton of time left till my retirement (decades even). The move to hosting my own store and selling my games directly to consumers is a long term investment. If you ever played Game Dev Tycoon you know the feel I’m searching for. (Re)Starting small, improving my design, my tools and platforms, gathering an audience and building a back-catalogue of games and I’m not sure I can achieve this by chasing ever-changing platforms, users and trends. And once again, if I fail it’s all because of me. I think it’s a good decision.

Welcome to the Bearded Giant Store! Here you can purchase my games directly from me. You get the games, the source code and support a little indie that builds games and tools for his favorite platform! Join me on Discord if you want to chat or stay up-to-date.