Jump to content
  • Advertisement
  • entries
    21
  • comments
    20
  • views
    1736

Perspective of living as an indie dev in my country

FatPugStudio

1067 views

Game development is a really nice job, at least when you’re an indie, not a cog in an AAA crunching machine. You can sit in the comfort of your home and have no expenses for commuting, office rental and eating out, at least that’s how i imagine it to be. But the real question is – can you earn a living wage by doing it?

You can read a lot on indie game developer hardships these days. Things are looking quite grim – Steam is not showing too much love for indies, some are afraid the subscription models will start to be a to-go model in selling video games, accessible game engines are making games easier to produce and that makes for a stiffer competition – it’s really hard for your game to be discovered. I’ve seen too many good games with lousy sales numbers because nobody know that they actually existed. A lot of devs are wondering is it really worth it anymore? Is it possible to live by making good games with niche market or do you need to strike gold with new Nuclear Throne or Minecraft? We’ll leave aside the marketing part of the story – you all know it, start as early as possible and build a community, preferably with your own brand if you released games before.

And now, let’s delve into the cold, dark world of numbers. For this analysis, i will be using some Numbeo statistics. According to them, cost of living for a single person in capital of Serbia is around $500 (without rent, which is around $200 for a small flat). It may be a bit hard too look at those numbers objectively, but i don’t know how i would survive with a salary of $500. Realistically, you need $100 for bills regardless of the flat size (if you want flat cable internet, cable TV and a cell phone subscription. Heating, electricity, water and garbage disposal have to be paid) so you’re left with $400, which is enough for you to eat (strictly at home) and maybe spend $50 on leisure. Forget about savings, driving a car and going out.

When i take my family in consideration, the math is following, to live relatively comfortably and maybe spare a few dimes on the side, you need about $2,000 for a three member family (for easier calculation, let’s presume that your SO has no income). That amounts to $24,000 a year. If you are selling your game for $10, Steam takes 30% and you are left with $7. Now, you probably think “Wow, only 2 grand to live comfortably with a family? What is this dreamland you’re living in?” and yes, Serbia IS a cheap country compared to most of the European countries and that is all fine, but my country has no tax treaty with US and it makes a lot of impact compared to other more expensive-to-live-in countries that have tax treaty with US. So, i have to give another 30% in taxes to the US. So, i’m left with meager $4.90 if i’m lucky to sell the game at full price.

But that’s not the end of taxation, i have to pay some taxes in my country too. If i earn up to $23,000, i don’t pay any income taxes, but from $23,000 to $45,000 i pay 10%, and over that i pay 15%. Let’s say i managed to earn more than those $23,000 a year and i have to pay 10% of income tax.  That means i need to have a net profit of $27,000 to earn a nice living wage for me and my family. To make a net profit of $27,000 i need to sell around 5,500 copies of the game at full price. That’s quite a number.

Now, according to this article, the average game on Steam will sell about 2.000 copies and make $12.500 in revenue in its first month. The average game will make $30.000 in its first year. I’m not quite sure what do they mean by “make”, but i guess it’s the revenue. So if you’re from around here and make an average game, you’ll be left with around $15.000, which is around $1250. A fine salary that most of the people living here dream of (average is around $350-$400) and it’s ok if you’re living alone and have no family to support.

But, lest we forget the cost of making the game itself. Unless you are a multitalented person that knows how to program, draw in 2D, model in 3D, rig and animate, design sound and make music, you need to spend some money to pay someone who does any of those better than you and has the time to do it. Until now, i spent around $4,000 on Rick Henderson. Sure, there’s some stuff like assets which are one in a lifetime expenditure and some of the art made will be left unused, but i need even more to finish the game (reason why i’m making an IndieGoGo campaign), so if all went perfect from the start, i think i would need minimum $5,000 to make a game of this caliber. So let’s readjust the figures. I no longer need $27,000 but $32,000 net profit so i have some money to invest in the next game, and that translates into 6,500 copies of the game at full price.

How did the others do?

How some of the similar games fared on Steam? I will use the data from the big Steam leak from last July in this one, so some data may be a bit off, but not too much i presume. Taken into account will only be some games of a newer date, since older once basically guaranteed sales once they were on Steam.

Super Hydorah – This fantastic game sold only 2,073 copies. It was already selling for a year when data leaked, so i presume it didn’t sell many more after that. But the price was a bit high i must say, €20. If it did sell 2k copies at that price, that’s cool, especially considering it’s a one man game.

Starr Mazer DSP – Still in early acces, but sold a nifty 5,500 copies for 10 bucks a pop. Nice, but their press kit says three of them are making the game, and paid artist is doing graphics.

Drifting Lands – Not really your usual shmup, but fits the genre. 8,275 copies for €18,99. Also, at least two guys work there, but probably more, so it’s not much of a success.

Steel Rain – We’re getting into five figure sale numbers. A whopping 10,440 sold games, full price €9,99, but there’s almost two digit number of people in their studio, so i’m not sure how successfull this was.

Monolith – 10,880 copies sold by three guys. Price – €7,99. Great success if you ask me. I suppose they sold a decent number of copies since then too.

Super Galaxy Squadron EX Turbo – 25,940 at €8,19. I suppose a lot of those copies sold at a discount, and as far as i can see they happen pretty often. Now it’s on sale at €2,99 so i guess that’s closer to median sales price. There’s a lot of them there, so i can’t even presume how many of them took part into making the game actually (and reaping the profits).

Sky Mercenaries – Made by PolarityFlow, team that also made Steel Rain. 30k+ copies, regular sales price €9,99, pretty good.

Steredenn – These guys kicked ass. 50k+ copies made by only two of them plus musicians and a pixel artist which probably had their fixed cut. At €12,99, hell, even at half the price, this game made a small fortune for them.

One game it’s like to point out to is Star Saviors, game that sells for €0,99 and has sold 300k+ copies. I haven’t played it but it’s not my cup of tea regarding rendered graphics, though i must say it looks like it feels good to play and makes me wonder of the pricing policy and what is right to do.

I didn’t take into account games like Ikaruga, Mushihimesama and Crimzon Clover, they’re quite specific and have their own audience. Bear in mind all these developers live in countries which are more expensive to live in than in my country, but also have tax treaties with the US to some extent.

Summa summarum

When i take all things into account, i didn’t move my point of view too far. I still believe that you need to have a top notch product (compared to few years ago, where you could be cool if you have a contagious game with maybe not so good graphics) to even scratch the surface. You need to start marketing your product as soon as possible, build a community and be involved if you want to have a crack at selling your game in a decent number of copies that will enable you to live nice until you launch your next game.


View the full article



12 Comments


Recommended Comments

Great post.  I think there are many of us who linger here on GameDev who are interested in being in the know.  @evanofsky made a parkour game back in 2014/2015 and released it on steam.  I remember thinking at the time that it was a professional looking game.  He put a lot of work into it. Then he posted his first day sales, that or first week.  I think if I remember correctly he had managed to sell 4 copies.  

One of the things that I think is worth while mentioning in the article you sourced, it also said that 82% of games sold on steam the creators won't make a meaningful return on their investment ( investment being both time and money ).  He also states that the 1,200 copies figure applies only once you've removed all the rubbish being sold.  So if you were to include rubbish then that figure drops even further.  That and I'd be more interested in knowing the median as opposed to the average.  I'd bet the median for all games sold on steam is around 50.  And I'd love that figure to be much much higher.

But yeah, I certainly don't think someone can just make a game and then throw it up on steam and make decent coin regardless of how good it is unless its epic and catches fire, or dumb luck.

Here in lies the necessity of learning your target audience and connecting with and enticing before the big release.  And even then you may only marginally increase your odds if its a good game.  Which is why I kinda am always griping about game-play and a game being fun, because if it's not and nobody else get's what you were going for while creating it it'll become history within days.

Mind you I'm just starting to really think about this because I'm one of those candidates who's wondering if there is a target audience for what I'm making and whether I can connect with them. 

Edited by Awoken

Share this comment


Link to comment

One of the major problems with indie developers is the lack of marketing dollars. Out of the several businesses I run, if I didn't spend a dime marketing I wouldn't have any sales... period! Overtime you'll build a following and word of mouth will help, but either way you still have to put money towards a marketing budget months prior to release and during release. You can have the best product, or service but if nobody knows about it then it means nothing. When you're trying to sell your game on steam you have to deal with the overflowing submissions on there on a global scale, and the exposure isn't going to happen without putting money towards it. It's a hard truth for many because a lot of indies don't have financial backing to push their marketing in order to generate exposure, but unless you have good connections for endorsements and a lot of "luck", your game will flop majority of the time if you just release it on steam and hope for the best.

If anyone is looking at doing this as a business and make games commercially, then you 'must' treat it like any other business. You have incurred costs to produce your product, and you have even more costs you need to up-front for the marketing to generate exposure in order to bring the product to your target audience.

Share this comment


Link to comment

Thanks for the insight, great write-up!
Living in a neighboring country and the circumstances and expenses are somewhat close to yours. Thankfully Hungary has a tax treaty with the US, but income taxes here are CRAZY, so I kind of understand your view.
There is one thing you could look into and think about:
The "dreaded" publisher.
I know it sounds crazy as you are preparing for a full-blown campaign and planning to self-publish, but if you sign on with a publisher (for e.g.: one from the EU or the US) if I'm not mistaken together you could keep 70% of each sold Steam unit and by giving them an approx 30% cut you would get the same amount of money per unit (or maybe even more depending on their cut) + they could help you out a lot with pr and marketing (and much more) increasing your chances of reaching a big enough audience to recoup your investment and make a profit.
Of course this is a difficult topic and choosing / pitching-to a publisher is not an easy decision / task, plus if your campaign succeeds you probably won't need much help with the release :)
Just thought I throw in this idea as food for thought.
Good luck with the game, it looks awesome + keep the cool posts coming ;)

Share this comment


Link to comment
10 hours ago, Awoken said:

Great post.  I think there are many of us who linger here on GameDev who are interested in being in the know.  @evanofsky made a parkour game back in 2014/2015 and released it on steam.  I remember thinking at the time that it was a professional looking game.  He put a lot of work into it. Then he posted his first day sales, that or first week.  I think if I remember correctly he had managed to sell 4 copies.  

One of the things that I think is worth while mentioning in the article you sourced, it also said that 82% of games sold on steam the creators won't make a meaningful return on their investment ( investment being both time and money ).  He also states that the 1,200 copies figure applies only once you've removed all the rubbish being sold.  So if you were to include rubbish then that figure drops even further.  That and I'd be more interested in knowing the median as opposed to the average.  I'd bet the median for all games sold on steam is around 50.  And I'd love that figure to be much much higher.

But yeah, I certainly don't think someone can just make a game and then throw it up on steam and make decent coin regardless of how good it is unless its epic and catches fire, or dumb luck.

Here in lies the necessity of learning your target audience and connecting with and enticing before the big release.  And even then you may only marginally increase your odds if its a good game.  Which is why I kinda am always griping about game-play and a game being fun, because if it's not and nobody else get's what you were going for while creating it it'll become history within days.

Mind you I'm just starting to really think about this because I'm one of those candidates who's wondering if there is a target audience for what I'm making and whether I can connect with them. 

World is a big place, if you are persistent i believe you can find audience for pretty much everything. Grid Sage Games (Cogmind) is really an inspiration for such a model. He funded himself by selling the game via his website to a specific audience. As for those 82% that don't make a meaningful return, i can't think of anything else than a poor or none marketing. Just BAM "hey i released the game, check it out". Sorry, it's nice, but that ain't gonna cut it.

10 hours ago, Rutin said:

One of the major problems with indie developers is the lack of marketing dollars. Out of the several businesses I run, if I didn't spend a dime marketing I wouldn't have any sales... period! Overtime you'll build a following and word of mouth will help, but either way you still have to put money towards a marketing budget months prior to release and during release. You can have the best product, or service but if nobody knows about it then it means nothing. When you're trying to sell your game on steam you have to deal with the overflowing submissions on there on a global scale, and the exposure isn't going to happen without putting money towards it. It's a hard truth for many because a lot of indies don't have financial backing to push their marketing in order to generate exposure, but unless you have good connections for endorsements and a lot of "luck", your game will flop majority of the time if you just release it on steam and hope for the best.

If anyone is looking at doing this as a business and make games commercially, then you 'must' treat it like any other business. You have incurred costs to produce your product, and you have even more costs you need to up-front for the marketing to generate exposure in order to bring the product to your target audience.

I agree, but i still stand by the opinion that no marketing dollar can replace a community that has been made throughout the development and i believe it's the best way of marketing for indies regarding the cost to value relationship.

Share this comment


Link to comment
11 minutes ago, FatPugStudio said:

I agree, but i still stand by the opinion that no marketing dollar can replace a community that has been made throughout the development and i believe it's the best way of marketing for indies regarding the cost to value relationship.

I've never once discounted building a community during development. In fact it's a highly recommended thing to do for anyone releasing a game and something I advise people to do all the time. That being said, if you put no marketing dollars you're going to limit your total exposure which will in turn limit your total sales assuming you have something marketable to begin with.

Share this comment


Link to comment
10 hours ago, Spidi said:

Thanks for the insight, great write-up!
Living in a neighboring country and the circumstances and expenses are somewhat close to yours. Thankfully Hungary has a tax treaty with the US, but income taxes here are CRAZY, so I kind of understand your view.
There is one thing you could look into and think about:
The "dreaded" publisher.
I know it sounds crazy as you are preparing for a full-blown campaign and planning to self-publish, but if you sign on with a publisher (for e.g.: one from the EU or the US) if I'm not mistaken together you could keep 70% of each sold Steam unit and by giving them an approx 30% cut you would get the same amount of money per unit (or maybe even more depending on their cut) + they could help you out a lot with pr and marketing (and much more) increasing your chances of reaching a big enough audience to recoup your investment and make a profit.
Of course this is a difficult topic and choosing / pitching-to a publisher is not an easy decision / task, plus if your campaign succeeds you probably won't need much help with the release :)
Just thought I throw in this idea as food for thought.
Good luck with the game, it looks awesome + keep the cool posts coming ;)

Oh no, i don't find the publishers dreaded and i would gladly give my game to a publisher (and i will need to so they can handle the royalties for folks whose music i'm using for the game), but besides the legal stuff and possibly cutting down on taxes, i'm not quite sure what else can do, it's like it's been kept in the dark. I suppose they can provide additional funding, press coverage and...that's where the list of things i know about publishers end :|

10 minutes ago, Rutin said:

I've never once discounted building a community during development. In fact it's a highly recommended thing to do for anyone releasing a game and something I advise people to do all the time. That being said, if you put no marketing dollars you're going to limit your total exposure which will in turn limit your total sales assuming you have something marketable to begin with.

What form of marketing do you recommend with the best ROI solution for indies?

Share this comment


Link to comment
1 minute ago, FatPugStudio said:

What form of marketing do you recommend with the best ROI solution for indies?

What is your budget?

Share this comment


Link to comment
19 minutes ago, FatPugStudio said:

Let's say $500-$1000

I have no idea how you could test the market and run enough campaigns to get enough data to push a good campaign with that budget. Not to mention preparing your marketing materials, promos, and getting your PR done properly. I've spent that in a day marketing a past app project I had for a client. I wouldn't market an indie game (smaller scale) unless I was prepared to dish out a minimum of $20,000 (which is still considered pretty low), assuming I can take care of some of the tasks myself otherwise it would go up to hire additional help.

I'm not too sure what you can do for $1000 and under as I've found hundreds of dollars can get eaten up very fast in marketing costs.

It's not uncommon for marketing costs to exceed development costs.

 

Share this comment


Link to comment
1 minute ago, Rutin said:

I have no idea how you could test the market and run enough campaigns to get enough data to push a good campaign with that budget. Not to mention preparing your marketing materials, promos, and getting your PR done properly. I've spent that in a day marketing a past app project I had for a client. I wouldn't market an indie game unless I was prepared to dish out a minimum of $20,000 (which is still considered pretty low), assuming I can take care of some of the tasks myself otherwise it would go up to hire additional help.

I'm not too sure what you can do for $1000 and under as I've found hundreds of dollars can get eaten up very fast in marketing costs.

It's not uncommon for marketing costs to exceed development costs.

 

Whoa, five figure amount for marketing is hardly considered indie in my opinion. Anyway, good to know what i can expect when it comes to paid marketing, thanks :)

Share this comment


Link to comment
25 minutes ago, Rutin said:

People are spending a lot more than that. If you have someone experienced enough you can cut the costs to market.

https://www.gamasutra.com/blogs/JustinCarroll/20170327/294552/The_Realistic_Guide_to_Pricing_Indie_Game_Marketing.php

Insightful article, thanks for that one. I guess it translates to my country too, you only need to cut one zero, since the average value of indie game developer's hour here can't be more than $9. Actually, that's mid to high tier manager salary here. That should give you an insight on my point of view on marketing costs :)

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • What is your GameDev Story?

    In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

    (You must login to your GameDev.net account.)

  • Blog Entries

  • Similar Content

    • By donpacino
      Hello guys, We are Arsanesia. Indonesia based mobile game developer.
      We are currently developing virtual pet games called Summer Town on Android and we need feedback from you guys especially about gameplay and bugs.
      Basically Summer Town is virtual pet games where you can create and raise your own avatar, dress them up, decorating his/her interior, interact with other pet owner. In this game you can get money to purchase items like decorations, clothing, toys, and foods by playing mini games.
      Features:
      Virtual Pet Dress Up Interior Decoration Shop Fishing & Part Timing Mini Game Social Interaction and more to come You can download it here: https://play.google.com/store/apps/details?id=com.arsanesia.summertown
      We Really need your feedback. Sorry for bad English. Have fun!
      Cheers,
      Arsanesia 
      Short_Trailer.mp4





    • By Transcendent
      So this is the problem that I have :- https://youtu.be/kU8Dm5bDJXg
      This is the code i am using:-
      using System.Collections; using System.Collections.Generic; using UnityEngine; namespace SA { public class AnimatorHook : MonoBehaviour { Animator anim; StateManager states; public void Init(StateManager st) { states = st; anim = st.anim; } void OnAnimatorMove() { if (!states.canMove) anim.ApplyBuiltinRootMotion(); states.rigid.drag = 0; float multiplier = 1; Vector3 delta = anim.deltaPosition; delta.y = 0; Vector3 v = (delta * multiplier) / states.delta; states.rigid.velocity = v; } } } For additional reference see the following code
      using System.Collections; using System.Collections.Generic; using UnityEngine; namespace SA { public class StateManager : MonoBehaviour { [Header("Init")] public GameObject activeModel; [Header("Inputs")] public float vertical; public float horizontal; public float moveAmount; public Vector3 moveDir; public bool rt, rb, lt, lb; [Header("Stats")] public float moveSpeed = 5f; public float runSpeed = 8f; public float rotateSpeed = 20; public float toGround = 0.5f; [Header("States")] public bool onGround; public bool run; public bool lockOn; public bool inAction; public bool canMove; [Header("Other")] public EnemyTarget lockOnTarget; [HideInInspector] public Animator anim; [HideInInspector] public Rigidbody rigid; [HideInInspector] public AnimatorHook a_hook; [HideInInspector] public float delta; [HideInInspector] public LayerMask ignoreLayers; float _actionDelay; public void Init() { SetupAnimator(); rigid = GetComponent<Rigidbody>(); rigid.angularDrag = 999; rigid.drag = 4; rigid.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ; a_hook = activeModel.AddComponent<AnimatorHook>(); a_hook.Init(this); gameObject.layer = 8; ignoreLayers = ~(1 << 9); anim.SetBool("onGround",true); } void SetupAnimator() { if(activeModel == null) { anim = GetComponentInChildren<Animator>(); if(anim == null) { Debug.Log("no model found"); } else { activeModel = anim.gameObject; } } if(anim == null) { anim = activeModel.GetComponent<Animator>(); } //anim.applyRootMotion = false; } public void FixedTick(float d) { delta = d; rigid.drag = (moveAmount > 0 || !onGround) ? 0 : 4; DetectAction(); if (inAction) { // anim.applyRootMotion = true; _actionDelay += delta; if(_actionDelay > 0.3f) { inAction = false; _actionDelay = 0; } else { return; } } canMove = anim.GetBool("canMove"); if (!canMove) { return; } //anim.applyRootMotion = false; float targetSpeed = moveSpeed; if (run) targetSpeed = runSpeed; if(onGround) rigid.velocity = moveDir * (targetSpeed * moveAmount); /* if (run) lockOn = false; */ Vector3 targetDir = (lockOn == false) ? moveDir : lockOnTarget.transform.position - transform.position; targetDir.y = 0; if (targetDir == Vector3.zero) targetDir = transform.forward; Quaternion tr = Quaternion.LookRotation(targetDir); Quaternion targetRotation = Quaternion.Slerp(transform.rotation, tr, delta * moveAmount * rotateSpeed); transform.rotation = targetRotation; anim.SetBool("lockon", lockOn); if (lockOn == false) HandleMovementAnimations(); else HandleLockOnAnimations(moveDir); } public void DetectAction() { if (canMove == false) return; if (rb == false && rt == false && lt == false && lb == false) return; string targetAnim = null; if (rb) targetAnim = "Sword And Shield Attack"; if (rt) targetAnim = "Stable Sword Outward Slash"; if (lb) targetAnim = "Standing Melee Attack Horizontal"; if (lt) targetAnim = "Sword And Shield Slash (1)"; if (string.IsNullOrEmpty(targetAnim)) return; canMove = false; inAction = true; anim.CrossFade(targetAnim,0.2f); //rigid.velocity = Vector3.zero; } public void Tick(float d) { delta = d; onGround = OnGround(); anim.SetBool("onGround", onGround); } void HandleMovementAnimations() { anim.SetBool("run", run); anim.SetFloat("Vertical", moveAmount ,0.4f,delta); } void HandleLockOnAnimations(Vector3 moveDir) { Vector3 relativeDir = transform.InverseTransformDirection(moveDir); float h = relativeDir.x; float v = relativeDir.z; anim.SetFloat("Vertical", v, 0.2f, delta); anim.SetFloat("Horizontal", h, 0.2f, delta); } public bool OnGround() { bool r = false; Vector3 origin = transform.position + (Vector3.up * toGround); Vector3 dir = -Vector3.up; float dis = toGround + 0.3f; RaycastHit hit; if(Physics.Raycast(origin,dir,out hit,dis)) { r = true; Vector3 targetPosition = hit.point; transform.position = targetPosition; } return r; } } } I've been stuck on this for too long, any help will be highly appreciated
    • By jb-dev
      This is a short .gif showing off visuals effects for the parrying mechanic
    • By Dyonisian
      Note: This article was originally published on LinkedIn.  If you enjoy my article, please click through and consider connecting with me.
       
      Can programmers art? How far can creativity and programming take you?
      I have summarized what I learned in several months into 7 key techniques to improve the visual quality of your game.
       
      "Programmer art" is something of a running joke. For those unfamiliar with the term, it refers to the "placeholder" or "throw-together" art that programmers tend to use while developing games.
      Some of us don't have the necessary artistic skills, however, sometimes we just can't be bothered to put in the effort. We're concerned about the technical side of things working - art can come later.
      Here's what this usually means -

       
      I worked on a game jam with some new people a few months ago. I just wanted to make sure that my gameplay and AI code was doing what it was supposed to do. This would have to interface with code from other teammates as well, so it was important to test and check for bugs. This was the result.
      That's not what I'm going to talk about today though.
       
      I'm going to take a different angle on "programmer art" - not the joke art that programmers often use, but the fact that there's a LOT that a programmer can do to improve the visual appeal of a game. I believe some of this falls under "technical art" as well.
       
      My current job kind of forced me to think in this capacity.
      I was tasked with visualizing some scientific data. Though this data was the result of years of hard work on the part of scientists, the result was unimpressive to the untrained eye - a heap of excel files with some words and numbers.
      There are very few people in the world who can get excited by seeing a few excel files.
      My job? To make this data exciting to everyone else.
      My task was to visualize connectome data for a famous worm known as C. Elegans, made available by the wonderful people working on the OpenWorm project.
      Part of the data parsing to read and display the data as a worm's body with neurons on it was done by my teammate. My main task was to improve the visuals and the overall graphical quality.

       
      The first thing that comes to mind is using HD textures, PBR materials and high-poly models. Add in a 3D terrain using a height map, some post-processing and HDR lighting, and BOOM! Gorgeous 3D scene. I'm sure you've all seen loads of those by now.
      Except, almost none of that would really help me.
      The idea was very abstract - neurons and connections visible in a zoomed-in, x-ray-like view of a worm. I don't think rolling hills would have helped me much.
      I had no 3D modelling skills or access to an artist - even if I did, I'm not sure what kind of 3D models would have helped.
       
      As a result, what I've made isn't a gorgeous 3D environment with foliage and god-rays and lens flares. So it's not applicable in every case or the perfect example of how a programmer can make a gorgeous game.
      But, it does provide a distinct viewpoint and result. The special sets of constraints in the problem I had to solve led to this.
      So here's what I actually did:
       
      The 7 things I did to improve the visuals of my Unity game
      1. Conceptualizing the look
      This could be considered a pre-production step for art or any visual project. Ideally, what should it look like? What's the goal? What are your references?
      In this case, the viewer had a hologram-like feel to it (also there were plans to port it to a HoloLens eventually). I liked the idea of a futuristic hologram. And the metaphor of "AI bringing us towards a better future".
      So what were my references? Sci-fi of course!
      My first pick was one of my favourite franchises - Star Wars. I love how the holo-comms look in the movies.

       
      Holograms became a key component of my design.
      This is a HUD design from Prometheus that I found on Google -

       
      In this case, the colours appealed to me more than the design itself. I ended up basing the UI design on this concept.
       
      Key takeaway - Your imagination is the very first tool that helps you create impressive art. Use references! It's not cheating - it's inspiration. Your references will guide you as you create the look that you want.
       
      2. Shaders can help you achieve that look 
      I had some shader programming experience from University - D3D11 and HLSL. But that work had been about building a basic graphics engine with features like lighting, shadows, and some light post-processing. I had done some light Shader programming in Unity before as well.
      What I really needed now was impressive visual effects, not basic lighting and shadows.
      I was really lucky that this was about the time Unity made Shader Graph available, which made everything much easier. I can write Shader code, but being able to see in real time what each node (Which can be considered a line of code) does makes it so much easier to produce the effects you want.
      I familiarized myself with all the samples Unity had included with this new tool. That wouldn't have been enough though. Thankfully due to my previous experience with Shaders, I was able to make some adjustments and improvements to make them suit my needs.
      Some tweaking with speed, scaling, colours, and textures led to a nice hologram effect for the UI panels.

       
      I wanted the viewer to feel good to interact with as well, and some work implementing a glow effect (alongside the dissolve effects) led to this -
       
      Key takeaway - Shaders are an extremely powerful tool in a Game Programmer's repertoire. Tools like Unity's Shader Graph, the old Shader Forge asset, and Unreal's material editor make Shaders more accessible and easier to tune to get the exact look you want.
      PS - Step 5 below is also really important for getting a nice glow effect.
       
      3. Visual Effects and Animations using Shaders
      I was able to extend the dissolve and hologram shaders to fake some animation-like visual effects.
      And a combination of some timed Sine curves let me create an animation using the dissolve effect -
       
      The work here was to move the animation smoothly across individual neuron objects. The animation makes it look like they're a single connected object, but they're actually individual Sphere meshes with the Shader applied to them. This is made possible by applying the dissolve texture in World Space instead of Object Space.
      A single shader graph for the neurons had functionality for colour blending, glow, and dissolve animation.
      All of this made the graphs really large and difficult to work with though. Unity was constantly updating the Shader Graph tools, and the new updates include sub-graphs which make it much easier to manage.
      Key takeaway - There is more to shaders than meets the eye. As you gain familiarity with them, there are very few limits to the effects you can create. You can create animations and visual effects using Shaders too.
       
      4. Particle systems - more than just trails and sparks
      I have no idea why I put off working with the particle systems for so long!
      The "neurons" in the viewer were just spheres, which was pretty boring.
      Once I started to understand the basics of the particle system, I could see how powerful it was. I worked on some samples from great YouTube tutorials - I'm sharing a great one by Gabriel Aguiar in the comments below.
      After that, I opened up Photoshop and experimented with different brushes to create Particle textures.
      Once again, I referred to my sources of what neurons should look like. I wanted a similar look of "hair-like" connections coming out of the neurons, and the core being bright and dense.
      This is what it looked like finished, and the particle system even let me create a nice pulsating effect.
       
      Part of my work was also parsing a ton of "playback data" of neurons firing. I wanted this to look like bright beams of light, travelling from neuron to neuron. This involved some pathfinding and multi-threading work as well.
       
      Lastly, I decided to add a sort of feedback effect of neurons firing. This way, you can see where a signal is originating and where it's ending.
       
      Key takeaway - Particle systems can be used in many ways, not just for sparks and trails. Here, I used them to represent a rather abstract object, a neuron. They can be applied wherever a visual effect or a form of visual "feedback" seems relevant.
       
      5. Post-processing to tie the graphics and art together
      Post-processing makes a HUGE difference in the look of a game scene. It's not just about colours and tone, there's much more to it than that. You can easily adjust colours, brightness, contrast, and add effects such as bloom, motion blur, vignette, and screen-space reflections.
      First of all, Linear colour space with HDR enabled makes a huge difference - make sure you try this out.
      Next, Unity's new post-processing stack makes a lot of options available without impacting performance much.
      The glow around the edges of the sphere only appears with an HDR colour selected for the shader, HDR enabled, and Linear colour space. Post-processing helps bump this up too - bloom is one of the most important settings for this.
      Colour grading can be used to provide a warm or cool look to your entire scene. It's like applying a filter on top of the scene, as you would to an image in Photoshop. You can completely override the colours, desaturate to black and white, bump up the contrast, or apply a single colour to the whole scene.

       
      There is a great tutorial from Unity for getting that HD look in your scenes - if you want a visible glow you normally associate with beautiful games, you need to check this out.
       
      Key takeaway - Post processing ties everything together, and helps certain effects like glows stand out.
       
      6. Timing and animation curves for better "feel" 
      This is a core concept of animation. I have some training in graphic design and animation, which is where I picked this up. I'm not sure about the proper term for it - timing, animation curves, tween, etc.
      Basically, if you're animating something, it's rarely best to do it with linear timing. Instead, you want curves like this -

       
      Or more crazy ones for more "bouncy" or cartoon-ish effects.
      I applied this to the glow effects on the neurons, as I showed earlier.
      And you can use this sparingly when working with particle systems as well - for speed, size, and similar effects. I used this for the effect of neurons firing, which is like a green "explosion" outwards. The particles move outwards fast and then slow down.
      Unity has Animation Curve components you can attach to objects. You can set the curve using a GUI and then query it in your C# scripts. Definitely worth learning about.
      Key takeaway - Curves or tweens are an animation concept that is easy to pick up and apply. It can be a key differentiator for whether your animations and overall game look polished or not.
       
      7. Colour Palettes and Colour Theory - Often overlooked
      Colour is something that I tend to experiment with and work with based on my instincts. I like being creative, however, I really underestimated the benefits of applying colour theory and using palettes.
      Here's the before -
       
      Here are some of the afters -
       
      I implemented multiple themes because they all looked so good.
      I used a tool from Adobe for palettes, called Adobe Colour - link in the comments.
      I basically messed around with different types of "Colour harmony" - Monochrome, triad, complementary, and more. I also borrowed some colours from my references and built around that.
      Key takeaway - Don't underestimate the importance of colour and colour theory. Keep your initial concept and references in mind when choosing colours. This adds to that final, polished look you want.
       
      Bonus - consider procedural art
      Procedural Generation is just an amazing technique. I didn't apply it on this project, but I learned the basics of it such as generating Value and Perlin noise, generating and using Height maps for terrains, and generating mazes.

       
      Procedural art is definitely something I want to explore more.
      A couple of interesting things (Links in the "extra resources" section below) -
      Google deepdream has been used to generate art. There's an open-source AI project that can colour lineart. Kate Compton has a lot of interesting projects and resources about PCG and generative art. I hope this leads to tools that can be directly applied to Game Development. To support the creation of art for games. I hope I get the opportunity to create something like that myself too.
      Conclusion
      These 7 techniques were at the core of what I did to improve the visual quality of my project.
      This was mostly the result of the unique set of constraints that I had. But I'm pretty sure some famous person said: "true creativity is born of constraints". Or something along those lines. It basically means that constraints and problems help channel your creativity.
      I'm sure there is more that I could have done, but I was happy with the stark difference between the "before" and "after" states of my project.
      I've also realized that this project has made me more of an artist. If you work on visual quality even as a programmer, you practice and sharpen your artistic abilities, and end up becoming something of an artist yourself. 
       
      Thanks for reading! Please like, share, and comment if you enjoyed this article.
      Did I miss something obvious? Let me know in the comments!
       
       
       
       
       
      Extra Resources
      OpenWorm project
      Great tutorial by Gabriel Aguiar
      Unity breaks down how to improve the look of a game using Post processing
      Another resource on post-processing by Dilmer Valecillos
      Brackey's tutorial on post-processing
      Adobe Colour wheel, great for colour theory and palettes
      An open-source AI project that can colour lineart
      A demo of generative art by Kate Compton
       
      Note: This article was originally published on LinkedIn. If you like it, please click through, get in contact, and consider connecting.
    • By invent71
      Hi GameDevs,
      We have been busy working on a new Retro Shoot em up called "IRIDIUM", A frantic new 2D shoot 'em up with huge levels and truly massive enemy ships. Mixing game styles from Uridium, Xenon 2 and Nemesis.
      We do have a demo to play for PC  https://nebula-design.itch.io/iridium
      If you love shootemups as much as us, please let us know your thoughts. Some example images below  We'd love to get this on NintendoSwitch if we can reach our goal.
       
       

×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!