{"id":111279,"date":"2020-04-08T17:12:00","date_gmt":"2020-04-08T17:12:00","guid":{"rendered":"http:\/\/www.gamasutra.com\/view\/news\/360828"},"modified":"2020-04-08T17:12:00","modified_gmt":"2020-04-08T17:12:00","slug":"blog-a-postmortem-of-my-rope-swinging-action-title-hang-line","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2020\/04\/08\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line\/","title":{"rendered":"Blog: A postmortem of my rope-swinging action title Hang Line"},"content":{"rendered":"<p><strong><i><small> The following blog post, unless otherwise noted, was written by a member of Gamasutra\u0092s community.<br \/>The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. <\/small><\/i><\/strong> <\/p>\n<hr>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" alt=\"Hang Line Logo\" height=\"246\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line.png\" width=\"646\"><\/p>\n<p dir=\"ltr\">Spoiler: I was successful with my first indie game because it got pirated.<\/p>\n<p dir=\"ltr\">But before we get into that, let me introduce myself. Hi! I\u2019m Ed, and I survived making my first indie game by myself!&nbsp;Now that the shock of achieving this miracle has worn off, I\u2019d like to give something back.&nbsp;<\/p>\n<p dir=\"ltr\">I have so much to share that I had to split the article into 3 parts:<\/p>\n<ol dir=\"ltr\">\n<li role=\"presentation\">The story of the game\u2019s development and how I made it.<\/li>\n<li role=\"presentation\">The key lessons I learned.<\/li>\n<li role=\"presentation\">Facts and data about the development process and the tools\/plugins used.<\/li>\n<\/ol>\n<p dir=\"ltr\">Before reading this you will probably want to familiarise yourself with my game so you have some context. Hang Line is an extreme-physics climbing game where you swing up dangerous mountain peaks and rescue stranded survivors from avalanches and angry goats. You can watch the trailer below.<br \/> &nbsp;<\/p>\n<p><iframe loading=\"lazy\" allowfullscreen frameborder=\"0\" height=\"360\" src=\"\/\/www.youtube.com\/embed\/0zS_PjkFmss?rel=0&amp;autoplay=0\" width=\"640\">[embedded content]<\/iframe><\/p>\n<p dir=\"ltr\">&nbsp;<\/p>\n<p dir=\"ltr\">You can also download it here for free:<\/p>\n<p dir=\"ltr\">Download on Apple App Store:<br \/><a href=\"https:\/\/itunes.apple.com\/us\/app\/hang-line-mountain-climber\/id1372005090?mt=8\">https:\/\/itunes.apple.com\/us\/app\/hang-line-mountain-climber\/id1372005090?mt=8<\/a><\/p>\n<p>Download on Google Play:<br \/><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.yodo1.hanglinerescue&amp;hl=en_US\">https:\/\/play.google.com\/store\/apps\/details?id=com.yodo1.hanglinerescue&amp;hl=en_US<\/a><\/p>\n<p> So with that out the way, let\u2019s get started! This first part covers the emotionally turbulent and surprisingly unconventional journey of Hang Line\u2019s development. It\u2019s about how to find guidance through the near impossible challenge of launching your own indie game but also how to ignore advice and follow your own personal journey to success. And also how piracy can sometimes not be a bad thing&#8230;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">The main reason I decided to quit my job and become an indie developer was because I read an article written by a fake robot dinosaur.&nbsp;<\/p>\n<p dir=\"ltr\">No, really.<br \/> &nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"385\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-1.png\" width=\"560\"><\/p>\n<p dir=\"ltr\">\u201cSMART&nbsp; PEOPLE HATE&nbsp; DUMB IDEAS. ONLY&nbsp; THINK OF WAYS IDEA&nbsp; CAN\u2019T WIN.\u201d<\/p>\n<p dir=\"ltr\">The article basically explains how people turn down their own ideas because they think of all the reasons they won\u2019t work. This is a huge reason why some people never start their own business.&nbsp;<\/p>\n<p dir=\"ltr\">\u201cBE TOO STUPID FOR FEAR. TOO STUPID TO STOP. TOO STUPID TO FAIL.\u201d<\/p>\n<p dir=\"ltr\">This really resonated with me. I was basically an expert at finding reasons that something was a dumb idea!<\/p>\n<p dir=\"ltr\">Also I was getting a bit fed up of the AAA console industry. I had worked at about 10 different game companies at this point, and in almost half those roles I had lost my job due to layoffs. Studios were collapsing left, right and centre, projects were getting bigger and bigger and everything was becoming sequels, prequels, remakes, reimaginings etc. This was a big motivation to get out and do my own thing.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">So I had decided to take the plunge, but I was not in an ideal situation. At this point I had:<\/p>\n<ul dir=\"ltr\">\n<li role=\"presentation\">No team<\/li>\n<li role=\"presentation\">No funding<\/li>\n<li role=\"presentation\">No money for contractors<\/li>\n<li role=\"presentation\">No art skills<\/li>\n<li role=\"presentation\">Limited programming ability<\/li>\n<\/ul>\n<p dir=\"ltr\">I had spent the last 15 years working as a game design or design lead. The last thing I programmed was some crappy special effects for a football game in my first gamedev job. The memory leaking skid marks left by those football players still haunt me today\u2026<\/p>\n<p dir=\"ltr\">And not only was I lacking in skills and resources, there was also the little matter of the Indiepocalypse.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" alt height=\"258\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-2.png\" width=\"646\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">Too many games being released, impossible discoverability etc\u2026 Every single article I read on Gamasutra was telling me I was doomed. It seemed like the worst possible time to \u2018go indie\u2019. But then I remembered the important words of that robot dinosaur:<\/p>\n<p dir=\"ltr\">\u201cTOO STUPID FOR FEAR. TOO STUPID TO STOP. TOO STUPID TO FAIL.\u201d<\/p>\n<p dir=\"ltr\">So I went about trying to figure out how this could actually work.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">I didn\u2019t know anyone at the time that was dumb enough to take a chance working with me despite how many times I kept going on about wise robot dinosaurs. So I decided my only option was to keep my job for now and learn what I didn\u2019t know in my free time.<\/p>\n<p dir=\"ltr\">I went and downloaded Blender and started an online tutorial. I mean how hard could it be to make 3D art?<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" alt height=\"300\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-3.png\" width=\"400\"><\/p>\n<p dir=\"ltr\">Er.. yeah. Turns out it&#8217;s pretty hard. That\u2019s the first thing I built in Blender. It\u2019s supposed to be a submarine&#8230;<\/p>\n<p dir=\"ltr\">But I stuck at it, a few hours every evening, and gradually, bit by bit, I started to improve\u2026<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"1200\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line.jpg\" width=\"602\"><\/p>\n<p dir=\"ltr\"> Eventually I felt confident enough that I could make something in 3D, so the next thing I did was to get back into programming and try and build a super simple prototype in Unity. I ended up dedicating my evenings for the next few months to build a car parking game. Yep, it was about as exciting as it sounds.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"361\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-4.png\" width=\"646\"><\/p>\n<p dir=\"ltr\"> Turns out that parking cars in a video game is pretty similar to parking them in real life &#8211; boring.<\/p>\n<p dir=\"ltr\">Anyway, it did what I needed. I felt confident enough to quit my job and get started.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">This was my initial plan:<\/p>\n<ul dir=\"ltr\">\n<li role=\"presentation\">Make a game in 3-6 months<\/li>\n<li role=\"presentation\">Fail miserably<\/li>\n<li role=\"presentation\">Do another one and make it way better<\/li>\n<\/ul>\n<p dir=\"ltr\">\u2026.. PROFIT!<\/p>\n<p dir=\"ltr\">This plan did not go to plan. At all. You see there was one fundamental flaw &#8211; I\u2019m a perfectionist. No matter how much I would love to finish a game in 6 months, it just wasn\u2019t going to happen. But I didn\u2019t realise this yet&#8230;<\/p>\n<p dir=\"ltr\">The first big decision I made was to target mobile. This was mostly because it just felt more achievable. Every Thursday I would religiously download and play the latest free games on the Apple iOS Store that had got a front page feature. I felt like I had some chance of making something of similar quality.<\/p>\n<p dir=\"ltr\">So I decided to set some goals for the project:<\/p>\n<ul dir=\"ltr\">\n<li role=\"presentation\">Keep it small\/achievable<\/li>\n<li role=\"presentation\">Free to play with ads<\/li>\n<li role=\"presentation\">Relatable theme, no fantasy\/sci-fi<\/li>\n<li role=\"presentation\">Simple one-handed controls (so you can play stood up on the metro)<\/li>\n<li role=\"presentation\">Potential to look beautiful (helps with getting a feature)<\/li>\n<\/ul>\n<p dir=\"ltr\">I then went through a load of ideas that I\u2019d been writing down for months, and I scored them based on a bunch of criteria that were important to me for making a mobile game.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"118\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-5.png\" width=\"646\"><\/p>\n<p dir=\"ltr\"> The one that scored highest was a climbing game. I initially had this idea of making an \u2018infinite climber\u2019 rock climbing game. I thought climbing controls could be really cool on mobile with the touch screen. I did some competitive research and found out I was actually completely wrong!&nbsp;There were actually quite a few mobile climbing games that were attempting something very similar, and the controls were just utterly awful.<\/p>\n<p dir=\"ltr\">But then I thought &#8211; why not just tap on the screen to swing the guy where you want to go \u2026 on a grappling hook?<\/p>\n<p dir=\"ltr\">And at that moment, Hang Line was born.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">My first thoughts on creating a prototype were:<\/p>\n<p dir=\"ltr\">\u201cSwinging rope physics\u2026 that sounds a bit complicated.\u201d<\/p>\n<p dir=\"ltr\">Like I said before, I am not an advanced programmer. If someone has already solved a problem before, I will happily go and seek out that code. So I searched on the Unity asset store just in case, and lo and behold there it was &#8211; \u2018Easy 2D Grappling Hook\u2019!<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"249\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-6.png\" width=\"646\"><\/p>\n<p dir=\"ltr\"> Very rapidly I was able to get a basic prototype up and running.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"322\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line.gif\" width=\"182\"><\/p>\n<p dir=\"ltr\">I told you it was basic!<\/p>\n<p dir=\"ltr\">So the first things I needed to get in to tell whether this was fun were:<\/p>\n<ul dir=\"ltr\">\n<li role=\"presentation\">Barriers in the environment to navigate<\/li>\n<li role=\"presentation\">Hazards to avoid<\/li>\n<li role=\"presentation\">Some \u2018springyness\u2019 to the grapple<br \/> &nbsp;<\/li>\n<\/ul>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"364\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-1.gif\" width=\"205\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">Already this prototype was giving me a lot of useful information. It was already kind of fun to swing around, but it was really hard to be precise with the physics. This meant that swinging into something that instantly killed you was a really BAD idea!&nbsp;<\/p>\n<p dir=\"ltr\">So I started to come up with dangers in the environment that could cause you difficulty but still give you a chance to recover.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"> Things were coming together, but once I got the build onto mobile and started showing people it was pretty clear that there was a big problem. Even though there weren\u2019t any hazards that would instantly kill the player, people still smashed into things by accident constantly. The problem was because of the portrait aspect ratio, when you were moving left and right, there just wasn\u2019t enough of a view of what was coming up.&nbsp;<\/p>\n<p dir=\"ltr\">I wanted to keep portrait on the phone because it meant you could play the game with one hand. So what I needed to do was make the levels have more upwards traversal. But not just straight up because that was boring, I needed diagonals. But not just diagonals, curvy diagonals \ud83d\ude42<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"371\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-2.gif\" width=\"345\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">At this point I was making the levels out of Unity cubes. So making curves wasn\u2019t particularly easy. But I also realised that I needed to start thinking about art anyway. What was the environment actually going to look like?&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">I decided to do a few tests by exporting my whitebox Unity cube level and importing it into Blender to try and make it look more pretty.<\/p>\n<table>\n<colgroup>\n<col>\n<col>\n<col><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><strong id=\"docs-internal-guid-bea726c5-7fff-a3b1-2262-a58074340983\"><img loading=\"lazy\" decoding=\"async\" height=\"400\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-7.png\" width=\"225\"><\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong id=\"docs-internal-guid-bea726c5-7fff-a3b1-2262-a58074340983\"><img loading=\"lazy\" decoding=\"async\" height=\"400\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-8.png\" width=\"225\"><\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p dir=\"ltr\">The results were ok but it was just insanely time consuming to model everything in 3D. How was I supposed to make a game with 50+ levels&nbsp;using this method?<\/p>\n<p dir=\"ltr\">So I went back to the Unity asset store again to find a solution! At the time nothing on there did what I needed, but I did find a useful tool called PolyMesh 2D on github.<\/p>\n<p dir=\"ltr\">This tool allows you to create simple 2D shapes in the editor, and generate simple 2D colliders for them. It can also extrude the meshes outwards.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"337\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-9.png\" width=\"600\"><\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"199\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-10.png\" width=\"600\"><\/p>\n<p dir=\"ltr\"> Through some fiddling around with the mesh code, I managed to re-purposed this tool so I could start creating more organic shaped levels and the game really started to come together.<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"451\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-3.gif\" width=\"250\"><\/p>\n<p dir=\"ltr\"> But it didn\u2019t solve my art problem entirely &#8211; it still looked very flat and boring. How was I going to change this into something pretty?<\/p>\n<p dir=\"ltr\">And then I had a slightly crazy idea&#8230;. What if I could generate the art \u2026. automatically?!?<\/p>\n<p dir=\"ltr\">Now the reason this was a crazy idea was that my programming skills were still pretty basic at this point. But since I didn\u2019t have a producer telling me to stop, I decided to dive in headfirst\u2026<\/p>\n<p dir=\"ltr\">After many weeks of tearing my hair out I finally came up with a solution that did what I needed. It was basically a frankenstein combination of multiple different chunks of code that I\u2019d found on the depths of the internet that I bashed together to form a process that would convert a simple 2D shape into &#8230;.a&nbsp;sexy angular low-poly 3D rock!<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"446\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-11.png\" width=\"646\"><\/p>\n<p dir=\"ltr\"> I built this into the editor so that I could generate the meshes as I went along editing the level.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"283\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-4.gif\" width=\"504\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">This made a huuuuuge difference. It now actually felt like you were climbing something that looked like a mountain! It also meant I could create a level from start to finish in about 3-4 hours.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"402\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-5.gif\" width=\"227\"><\/p>\n<p dir=\"ltr\">The other most important technical decision that helped make the game was using behaviour inheritance. This probably seems completely obvious to the programmers out there, but to me it was something quite revolutionary.<\/p>\n<p dir=\"ltr\">What I wanted to achieve as a designer was to have every entity in the game interact with every other entity. To begin with, this meant having every single entity a physical object so they could all collide and bounce around, but it also meant creating interactions between each entity. For instance, what should a goat do if a cat leaps on it?&nbsp;<\/p>\n<p dir=\"ltr\">The answer was to create an object hierarchy and have each entity inherit behaviours from its parent. Looking at the diagram below, if we allow a goat to kick a \u2018destructible object\u2019, then all entities inheriting from \u2018destructible object\u2019 will be kickable by a goat.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"375\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-12.png\" width=\"602\"><\/p>\n<p dir=\"ltr\">So what should a goat do if a cat leaps on it? Obvious &#8211; it should kick the cat!<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"383\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-6.gif\" width=\"216\"><\/p>\n<p dir=\"ltr\"><em>(research shows that if you want your game to sell more copies, put goats in it).<\/em><\/p>\n<p dir=\"ltr\">This inheriting of behaviours allowed for a crazy amount of cool chain reactions and emergent gameplay. It&#8217;s really the core of what makes the game unique. There\u2019s still things that happen in the game to this day that I\u2019ve never seen before and I\u2019m the programmer!<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">So you\u2019re probably thinking at this point that things are looking good. I was about 6 months in and I had final environment art, a level editor and all the game mechanics. Must be about time to ship right? Well yes, that\u2019s what I thought too. And boy was I wrong!<\/p>\n<p dir=\"ltr\">Turns out that creating a UI and progression system, putting in Ads\/Monetisation, doing a tutorial, creating marketing materials\u2026. all this stuff is insanely time consuming. And not just that, it\u2019s also soul consuming.<\/p>\n<p dir=\"ltr\">During this period I hit a real low. The loneliness of working on a project entirely by myself was really starting to affect me, and I was also very anxious because everything was taking so long. Negative thoughts kept popping into my head &#8211; will I finish before I run out of money? Will it be successful? Am I wasting my time?<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"262\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-13.png\" width=\"349\"><\/p>\n<p dir=\"ltr\"> I covered these emotional struggles in another article I wrote a while back, which you can checkout <a href=\"https:\/\/www.gamasutra.com\/blogs\/EdKay\/20170801\/302776\/Climbing_an_impossible_mountain_the_struggles_of_making_a_game_alone.php\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> if you\u2019re interested.<\/p>\n<p dir=\"ltr\">During this period I asked a lot of very experienced developers for advice. Probably the most common thing I heard was:<\/p>\n<p dir=\"ltr\"><em>\u201cJust get the game out as soon as you can, it\u2019ll probably fail anyway.\u201d<\/em><\/p>\n<p dir=\"ltr\">Although this wasn\u2019t exactly what I wanted to hear, it was actually pretty solid advice, and statistically very accurate. But regardless, I chose to completely ignore it. Rushing things just wasn&#8217;t me.<\/p>\n<p dir=\"ltr\">So I battled on. And on. Slowly slipping deeper into the pit of anxiety.&nbsp;<\/p>\n<p dir=\"ltr\">Until one day I was chatting to a games journalist friend of mine over dinner who was telling me how they\u2019d spent a long time earlier in their career working completely alone. They said it was painful but there was one really big advantage that you gain. He basically said:<\/p>\n<p dir=\"ltr\"><em>\u201cWorking your ass off by yourself for ages makes you really flipping good at your job\u201d<\/em><\/p>\n<p dir=\"ltr\">When you\u2019re working alone, there\u2019s no meetings, no at the desk discussions, no casual chit-chat, no email conversations &#8211; you\u2019re 100% focussed on work all day. You are dedicating 100% all of your time to honing your craft. This gave me a big motivational boost. Mostly because I suddenly had the realisation that even if I fail, at least I\u2019ll be a lot better at making games. And that was what I needed to instill in my brain in order to finish &#8211; failure is ok.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"311\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-14.png\" width=\"646\"><\/p>\n<p dir=\"ltr\"> Finally I got it to the finish line. But I wasn\u2019t confident enough to go out all guns blazing straight off, so I decided to do a soft launch.&nbsp;<\/p>\n<p dir=\"ltr\">I was helped initially by the fantastic chaps at&nbsp;<a href=\"https:\/\/round-zero.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">RoundZero<\/a>. They work with mobile developers through soft launch to see if they want to create a publishing partnership. They provide you with a bunch of users for free initially via advertising, to see if your game has potential.<\/p>\n<p dir=\"ltr\">So I hit the launch button and waited eagerly to see what happened. After a week, on Unity analytics, the graph I was looking at was something like this:<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"275\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-15.png\" width=\"500\"><\/p>\n<p dir=\"ltr\">About 300 users in India, which was the country where we soft launched. Not bad, but not quite enough to get any really useful data. Then one evening I had a look just before bed, and suddenly the graph looked like this:<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"278\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-16.png\" width=\"500\"><\/p>\n<p dir=\"ltr\">For some reason there was a giant spike in downloads. Cool. But then I noticed the number of official users in the google dashboard was actually still about 300. What the\u2026?&nbsp;<\/p>\n<p dir=\"ltr\">I then filtered the users by country on Unity Analytics just to make sure they were from India. And what did I find? Most of the users were actually from Russia! But I hadn\u2019t released the game in Russia yet.<\/p>\n<p>Wait a minute\u2026.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"250\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-1.jpg\" width=\"250\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">Pirates!!!<\/p>\n<p dir=\"ltr\">But wait &#8211; the game was a free to play mobile game, what does it actually mean for a free game to be pirated?! It means the ad monetisation doesn\u2019t really work as you probably don\u2019t have the correct ad networks installed for the country, and IAPs won\u2019t function at all. Not only that, but the game itself is likely hacked, meaning users might not even have to watch any ads at all. So yeah, it\u2019s kinda bad.&nbsp;<\/p>\n<p dir=\"ltr\">But before I even had time to grasp what was happening, the next day the stats changed again&#8230;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"286\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-17.png\" width=\"500\"><\/p>\n<p dir=\"ltr\">Suddenly I wasn\u2019t looking at 300 users, or even 3000, I was looking at 500,000!!!<\/p>\n<p dir=\"ltr\">But it wasn\u2019t Russia that was making up the bulk of it, it was China! The game was posted on some dodgy app site in China and they just went nuts over it.<\/p>\n<p dir=\"ltr\">So at this point I was staring at the numbers in shock, wondering what I was going to do. People must obviously like the game because they\u2019re downloading it, this was a good thing. But how was I going to get any money out of this if they were all pirates?<\/p>\n<p>A few days later I suddenly get an email from a Chinese publisher called Yodo1. I knew who they were because they\u2019d worked on Crossy Road and Rodeo Stampede. They tell me they want to do a deal with me to publish my game world wide. They say they think it can be as big as Rodeo Stampede. I google rodeo Stampede and find out it has over 100 million downloads. They tell me Hang Line has the potential to make millions.<\/p>\n<p><em>Millions!<\/em><br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"227\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-18.png\" width=\"403\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">This was just insane. But instead of just leaping forward with excitement into the unknown, I decided to take a step back and seek advice. I spoke to a lot of developer friends to get their perspective. The key thing was that I already had a game, one that was already proved to be popular. I didn\u2019t need a publisher to fund the game\u2019s development, there had to be a big benefit to a partnership.<\/p>\n<p dir=\"ltr\">So after a lot of negotiating, we shook on a deal that removed a ton of risk from me and ensured both sides had skin in the game.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">So, ready for worldwide release right? Well, er\u2026 no. Not exactly. Yodo1 wanted to spend some time working with me to rework the game\u2019s metagame to improve retention and monetisation. How long did this take? Almost a whole year!&nbsp;But that\u2019s ok, I got to go to China lots and&nbsp;eat a ton of delicious dumplings and noodle soups.&nbsp;<\/p>\n<p dir=\"ltr\">Eventually, a whole two and a half years since I started developing the game, it was released in Jan 2019.&nbsp;<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"363\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-19.png\" width=\"646\"><\/p>\n<p> And\u2026 it did ok. Not earth shatteringly amazing, but pretty respectable. It was featured several times by both Apple and Google, and to date has about 2 million downloads on Apple App Store and 2 million on Google Play. And it\u2019s still earning new players. So for a solo indie developer, it\u2019s been amazing.<\/p>\n<p dir=\"ltr\">So you might be wondering what am I working on next? And you\u2019re probably thinking Hang Line 2 right? Or another mobile game using a similar style\/mechanics?&nbsp;<\/p>\n<p dir=\"ltr\">Nope. This probably would be the sensible thing to do, but I\u2019m actually working on an experimental&nbsp;twin stick shooter&nbsp;about angry viral triangles that spread across the screen in fractal patterns to consume the space around you.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" height=\"362\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/04\/blog-a-postmortem-of-my-rope-swinging-action-title-hang-line-20.png\" width=\"646\"><br \/> &nbsp;<\/p>\n<p dir=\"ltr\">Why? Because I\u2019m not following the obvious route that everyone would advise me too, I\u2019m following my own journey and working on something I\u2019m passionate about that I think I can hopefully do an amazing job of.<br \/> &nbsp;<\/p>\n<p dir=\"ltr\">The way I found success was by playing to my strengths and finding my own voice.<\/p>\n<p dir=\"ltr\">To sum up, the most important things I learnt were:&nbsp;<\/p>\n<ul dir=\"ltr\">\n<li role=\"presentation\">Listen to others but be yourself.&nbsp;<\/li>\n<li role=\"presentation\">Be true to yourself and your abilities.&nbsp;<\/li>\n<li role=\"presentation\">Follow your own unique path to success.&nbsp;<\/li>\n<\/ul>\n<p dir=\"ltr\">The journey to creating your own game is long and hard. The anxiety of whether you\u2019ll actually make any money is very real, and there were many times during development where I was at a real low point. But the reward of being your own boss and the ability to bring your own creative vision into the world is beyond amazing. I hope this article can at least prepare you a little if you\u2019re thinking of going down this route.&nbsp;<\/p>\n<p dir=\"ltr\">This is just part 1 of a 3 part article &#8211; the second part is the key lessons I learnt, which I will upload next week. To be notified when it&#8217;s online, or if you are&nbsp;at all curious about what I\u2019m working on next, you can sign up to my newsletter:<\/p>\n<p dir=\"ltr\"><a href=\"https:\/\/dinoboss.com\/newsletter.html\" target=\"_blank\" rel=\"noopener noreferrer\">DinoBoss Newsletter<\/a><\/p>\n<p dir=\"ltr\">If there\u2019s anything else that you\u2019d like to ask, feel free to reach out to me on twitter <a href=\"https:\/\/twitter.com\/edform\" target=\"_blank\" rel=\"noopener noreferrer\">@edform<\/a>.<\/p>\n<p dir=\"ltr\">All the best!<\/p>\n<p>Ed<\/p>\n<hr>\n<p>Ed Kay is&nbsp;an independent game developer and owner of one man game studio DinoBoss, responsible for goat grappling action game Hang Line.<\/p>\n<hr>\n<h2 dir=\"ltr\">References<\/h2>\n<p>Fake Grimlock \u201cWin Like Stupid\u201d Article:<br \/><a href=\"https:\/\/readwrite.com\/2013\/03\/19\/fake-grimlock-win-like-stupid\/\">https:\/\/readwrite.com\/2013\/03\/19\/fake-grimlock-win-like-stupid\/<\/a><\/p>\n<p> Blender tutorials that I used (in order of most basic first):<\/p>\n<ol dir=\"ltr\">\n<li role=\"presentation\"><a href=\"https:\/\/cgcookie.com\/course\/blender-basics\/\">https:\/\/cgcookie.com\/course\/blender-basics\/<\/a><\/li>\n<li role=\"presentation\"><a href=\"http:\/\/gryllus.net\/Blender\/3D.html\">http:\/\/gryllus.net\/Blender\/3D.html<\/a><\/li>\n<li role=\"presentation\"><a href=\"https:\/\/www.blender.org\/support\/tutorials\/\">https:\/\/www.blender.org\/support\/tutorials\/<\/a><\/li>\n<\/ol>\n<p dir=\"ltr\"><strong>PolyMesh tool download<\/strong><\/p>\n<p dir=\"ltr\">A simple editor tool that allows you to build simple 2D shapes directly in the editor. I used it to create my level editing tool:&nbsp; &nbsp;<a href=\"https:\/\/github.com\/UnityPatterns\/PolyMesh\">https:\/\/github.com\/UnityPatterns\/PolyMesh<\/a><\/p>\n<p dir=\"ltr\">I&#8217;ll post a full list of tools that I used in the 3rd part of this article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following blog post, unless otherwise noted, was written by a member of Gamasutra\u0092s community.The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. Spoiler: I was successful with my first indie game because it got pirated. But before we get into that, let me introduce myself. Hi! [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":111280,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-111279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/111279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=111279"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/111279\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/111280"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=111279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=111279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=111279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}