Cobble Games

Unity Outsourcing Team for hire

How to handle a “poor” code?

Event though we have delivered quite a few projects so far, I wouldn’t describe myself as an expert coder. I can surely call myself a professional coder … but with each and every project Me and Adrian learn something new. By keeping this kind of attitude you stay humble and become open to continuous growth.

source: xkcd

You can treat this article as personal point of view of how I try to manage a poor code. Be that my poor code or the code of external project. I won’t comment or give examples from real life if they regard my clients code as this is not ethical to talk about the code of my clients. The poor code is always there for a reason and as an effect of some particular circumstances. The clue is to understand the circumstances & possibly prevent them from happening in the future.

However it’s crucial for you to understand your role as a coder :

You are here to give solutions, not create more problems or talk about them.

This might break some code purist heart but believe me or not – clean code is not the most important thing in the world. Clean air or access to drinking water is more important, for example. Staying happy and being nice to other people is also more important.
Remember that in larger projects or organizations common good or projects well being is more important than the uber-clean code. It’s always the compromise.

Your ultra – hyper – efficient method or function is no good if the whole solution is not working as it was designed.

It’s also important to understand the basics of empathy – something coders are not too fond of. You see – people generally have good intentions. It’s crucial to keep this attitude at all cost.

If “Mark” delievered a bad piece of code it may because of several factors and that he did it on purpose is the least probable one:

  1. Maybe he was running out of time or other resources?
  2. Maybe the design principles have changed?
  3. Maybe the coding pattern he used was a good solution for a similar case in other project but is not the best choice for the current one?
  4. Maybe Mark did not know any better way?

You know… engines are improving with each and every iteration. Back in the old days you would write a function for an object path. Now you could simply use an Animator component in Unity which is more efficient and less time consuming. This is just a simple example.

Projects do have certain scope and deadlines. Some are managed quite OK some are managed in less perfect way. Sometimes design changes in the middle of production. As a coder you must adapt.

And it’s hard… I know it as I’m not saint in this matter as well. Sometimes when I see poor code I tend to curse quite a lot. No one likes having more job than it was assumed and you can always be sure about one thing in regards of poor code: It’ll bite your bottom in the times you least expect it.

It’s called Technological Debt for a reason. The big and ugly fellow who collects it is called “The Crunch” and no one likes that bastard.

That’s why in larger organizations or projects you have code architects and mandatory code review and unit tests.

I may sound here as a know-it-all guy. I’m far from that. Now I simply understand more the friend of mine who had done some code review for my projects when I was just starting my career as a professional coder.

Generally – the more time you spend on designing the code before you actually write it, the better it is for the whole project.

But what happens when you do not have such comfort? What to do if you get the code and the first thing that comes to your mind when you see a code is

” Who the heck wrote it? What was that guy thinking… I don’t even…”

I admit I do this all the time… sometimes I say it out loud… and its counterproductive. I wrote this article partly to learn how I can cope with that so I can be a better professional.

Set your current priorities right

Do you have to chase the time to deliver a usable solution for an expo? Is your deadline near? Are you running out of money?

You have to deliver. Sometimes at all cost.

General tip:

if (it is working)
   Do (not touch it);
else
{
   Make (as few modifications as possible)
   Or (it will stop working at all);
}

This, however, in many cases makes the Technology Debt even bigger. It will hit you even harder. I had this situation when we were coding Futurust when at around 4th milestone we had to stop and refactor almost the whole game. We crunched until 4AM for a week days and in the end I and Adrian got sick out of exhaustion. I promised myself never to do such a stupid thing. However at that time we had no other options. We were running out of money and in combination with publisher not being the most reliable financially partner we had no other choice. Either we crunch or we starve.

REFACTOR

This does not mean that first thing you do when you see a poorly written code you must rewrite to fix it. First you must understand the whole scope of the project. This is specially my favorite type of mistake I tend to commit too often. I see a switch – case condition for 200 lines and I get this urge to just delete it and write it from scratch in a proper way. This is this quirk I got after reading “The Clean Code” book which I strongly recommend to any coder. After reading that book I became almost a new-born code purist fanatic, a radical in purity…. and as all sort of radical solutions… it may not be the wisest of choices if you come and think about it in a long term and in wider scope.

Instead I recommend to do it piece by piece, class by class, write unit tests as you go and refactor, test the whole project each time you make a change, use a safe branch and merge only if you are 100% sure it will not break the whole project structure.

I remember once I saw a code moving some GameObjects on a scene in a loop. I had to prepare it so a non code oriented person could add some sounds to the whole loop. First thing I did was remove the darn code and substitute it with animators. It’s easier to add animation events to animation files for a designer than to read through a large class to see where should you invoke a method you need. I made a mistake thou. I erased the whole class. I thought that since I was not using it I could simply delete it. Well … not going into details … there was another class that, even though did not create an error when I deleted the class in question, depended or invoked a method in that class. One could argue who was right or who was wrong but the point was that my change, even it was more efficient, broke the project. I did not know the full implications and the whole code base. Poor or not poor – make sure that patient will live before you decide to extract the cancer.

Instead try to layer or make the code more modular without changing it. This leads to some reduction of interdependence.

Before doing such a critical change it’s better to team up, discuss designs, principles and solutions. It’s not possible if everyone’s busy with delivering the build… but sometimes this has to stop… and this is a good time for HAMMER TIME 🙂


source: giphy

COMMENTS

Here’s another tough one for a purist as me to understand. I was tought that a pure and clean code should be understandable without any comments. How about if this is the only way to understand this madness?


source: xkcd

Sometimes comments are the only choice to find a way out of this maze.

Final Summary

As I mentioned above: I’m not an expert. I do mistakes all the time. However I do remember one thing always – making games (and that means coding games as well) is fun.

Let’s keep it that way.

Being an a-hole to your team member or proving them you are right or proving them wrong does not help the whole team. In the end you and the rest of the team should be proud of the final result and you all should push toward the final release. If that means leaving this few bugs or losing a frame or two on the efficiency leave it as is. Friendship and having fun is more important than a code purity.


source: devhumor.com

Transition…. Evolution, not Revolution

I had this page for like roughly 3-4 years. I’ve started this blog before I even made games for living. It was meant to show my way from a n00b wannabe game maker to a professional game developer living from his passion.

The thing is… in February there will be a my second anniversary of me working & earning my living from making games full time. Moreover, I’ve managed to lead my own company for nearly 1 year and 6 months and I continue to do so, despite all odds.

The main challenge now is the lack of time and productivity optimization. I don’t have that much of a spare time to continue blogging but I’ve noticed that some articles I wrote here are really popular for my standards. It would be a shame to discard it all since apparently they add value to your life.

I’ve decided to transition this personal blog into my company page. I’ve started doing this several weeks ago. There’s still plenty to do, including re-branding and such. However you may be sure of one thing – I will not change it to yet another generic corporate web-page with PR messages. The transparency & integrity are the core of my business.

More to come soon so keep in touch with me and continue to stay awesome

Fid

Technical analysis of Project “Moria” first phase

I’m not sure if ya’ll follow me on my facebook page or twitter but recently I’ve revealed a Steam Page of our latest project that we’re building together with Games Operators #gamedev publisher. The project is now in  it’s prealpha stage and the aim of the phase we have just finished was solely to see if there is a demand for an Underground City Builder based in a generic fantasy world.

Click to visit our Steam Page

If you want to help us I strongly encourage you to add this game to your wishlist. Also I encourage you to give us feedback inside the Steam Discussions forum. We’ll be more than happy to answer all your questions. 

This postmortem will only cover the technical aspects and issues we have encountered in this 6 months phase (2 months of preproduction, 4 month for actual milestone). Obviously some data is a subject of NDA between us and our publisher or between Steam so we cannot talk about it. 

Here I’d like to give a cheerful shout out to our friends in Games Operators. It was a pleasure to work with you so far (which is a nice refresher compared to experiences with our first publisher). The cooperation, even though sometimes demanding, was and I hope will continue to be as good as it is now.

If you are new to working with a publisher then this article may help you prepare properly so that your project will run with even less issues.

This article will cover

  1. Low Pitch, High Pitch, Elevator Pitch: Why Underground City Builder? 
  2. “Show me what you got” – Technical prototype. 
  3. “Papers, please” – the better preliminary documentation the less issues later
  4. “Is it the vision or rather the hallucination ?” The art of not getting totally nuts while managing a team of artists. 
  5. “Feedback is king… insane king.” How to get feedback and not get torn apart by it.
  6. What technical skills I’ve learnt
  7. Quo Vadis, Nanus ?- Where are we heading with this project

Low Pitch, High Pitch, Elevator Pitch

I’ve met Bartek, CEO  of Jutsu Games and Games Operators during one of the gamedev meetups of local Warsaw KNTG Polygon group.  He was sitting with one of my gamedev colleagues Mateusz (his team Ice Code Games is making an awesome cyberpunk RTS game called Re – Legion. Go check them out.) I spent some quality time with them drinking beer and listening to what my more experienced friends were talking about their games. Bartek seemed to know a lot and he made a great impression on me. He also mentioned they are about to announce their Games Operators initiative. I noted that fact. However I was not thinking about pitching anything at that point. I think it was in the middle of February or something and we were busy delivering Futurust and the project for iFun4ALL was just kicking in. We met during gamedev meetups several times, Bartek even wanted to recruit me but I made my choice to pave my own path and build my own independant company. However…. after some time I figured. Why not? Futurust project will end sometime. After some time I thought “Let’s do this. At least I will learn something”.

Important lesson here for you is rather obvious (I think) – Drink beer … errr … Socialize with other game developers. Be visible. I’m not telling you to go to  each and every game conference or gamedev meetup (Actually I’m strongly against this so called “conference – cruising” phenomenon. Choose your spare time activities wisely.) but I wouldn’t be given the opportunity to start this awesome adventure by getting this deal If I hadn’t had drank that pint or two with lads during post-kntg-polygon meetup. Networking is key in every business.

So I’ve coined a concept doc. I thought – they made a 911 Operator. They are probably looking for something that will match their portfolio. I figured I’ll present an idea of coal mine manager simulator. In that concept You would be sort of a director macro managing the coal mining business. The game would start in late communist Poland period and your aim would be to keep it profitable. Guys did not like the idea of making yet another serious game. I saw that the long process of developing their 911 Operator got them a bit weary and they were really anxious to do something exciting.  After brainstorming with tons of ideas we came up with this concept of being a dwarven king ruling over his kin under the mountain – word “Epic” and “Tolkien” was used almost in every second sentence. We used a codename “Moria” for this one. We fell in love in the concept. As you can see it came a long way from the original coal mine manager set in communist Poland 🙂

Clue here is: Don’t get attached to your game idea. Let your creativity flow.

“Show me what you got”

Our task was to create a technical prototype of several key features of this project. The prototype was sponsored by the publisher. Yes. This may sound weird but we actually got money to do the thing. Usually it’s the other way around. You usually make a tech demo for free.  You show it to some smart-ass marketing wisecrack suit fellow in the publishing house… and you eventually get to do the project… or not. Here we had a totally different approach.

We have delivered the technical prototype which contained 4 basic features – procedural mountain, camera movement, digging in 3D space, hiding front room walls so that they do not cover the view what’s inside the hall. It was not perfect. We made a ton of mistakes but publisher was patient enough to let us finish it. 

Next phase was to create a visual static mock-up of dwarven mines. The aim of this phase was to prove that we can deliver this from artistic side .  This part also has been sponsored by the publisher.  We made the thing, however we were all moderately happy by the results. This artsy part is really difficult especially for me – a coder who is almost colorblind. More about issues with art style later. 

“Papers, please” 

While building the technical prototype I also had a task to prepare a concept and a content document. I strongly recommend you to do the same thing. 

For concept doc we used this general format:

  • Core foundations (Genre, Platform, Business Model, Play Mode,Target Audience, Main Mechanics)
  • Hook (game concept in one sentence)
  • Pitch (game feeling and concept in two sentences)
  • Marketing text (the text you sometimes see on the back of a book, brief and catchy description)
  • Main Features (or USPs)
  • Core Gameplay: main challenge, win and lose conditions
  • Written description of first 30 minutes of gameplay
  • Games, Movies and Literature references

For content doc we listed all systems, all locations, items, characters, monsters and such in a excel spreadsheet. Example below:

IDDescriptionStageStatus
system_terrain_generateprocedurally generated mountainPrototypeReady

The aim of this step is to clarify the scope of the project. This will help you and your publisher plan the budget for your game. 

“Is it the vision or rather the hallucination ?”

I’m a coder. More over I’m  colorblind. I see all basic colors and in normal day to day life it’s not a big issue but if you show me two different bars with similar hue, brightness and saturation I will probably get confused.  Now I had to manage a team of artists who were responsible for something I had zero clue about. You can see that in the final trailer.  Players generally like it (or so they say) but I don’t. You can say I’m a perfectionist but let’s face it. If we had an skilled art director who could magically read people minds, things would look better than this:

The problem was that we neither had a skilled art director nor we had a AAA budget to spend on countless months on a quest to find the proper art direction. At some point we had to make a decision we must show it – now or never.  

In the mean time my art team changed 3 times. I lost weeks on finding proper people willing to work with us.

Speaking of which: if you are looking for an artist – give them a test for a start. Only spend time on talking with them if they manage to deliver a small task. This will prove if they can stick to deadlines; if they keep discipline; If they are creative enough.  We asked our candidates to draw a concept art of a balista which we already had in game. 


Here is the result of such a task. Author of this concept is Emilia Nakielska who worked with us in the last phase of this project. Great person. Hire her. 

The lesson here is that sometimes you just have to work with whatever pieces you have. You may not like it… but such is life. It’s an art of compromise.

More about the future of art style in the  section 7 “Quo Vadis, Nanus ?”

Feedback is king… insane king.” 

We’ve conducted 4  internal feedback rounds (5 people each) and in the end with help of our publisher we ran a survey and got answer from around 100 people. At this stage it is important to know what you are looking for. We used mainly feedback from other game developers who focused on technical issues. Unfortunately we also got some feedback that was rather useless. The point here is that each and every developer would do their own version of their game. Not your game. Sometimes you have to close yourself to such feedback. It’s important to know where you are headed. 

The most valuable part of this phase was the surveys. It told us several key pieces of information: people like the concept, music is awesome (Made by Piotr Surmacz, great guy, hire him), graphics are so – so (players either loved it or thought it was meeeeeh), they generally got the game-play big picture however the trailer should convey more pieces of information to be more clear.

If you are a dev as well I strongly recommend you to build your own large group of beta testers or people who don’t know you personally and are willing to answer your surveys. The best and the cheapest way to get feedback…. or You can always go to a conference, spend a lot of money on a booth to lose time with people who will never buy your game… but it’s all up to you 😉 

What technical skills I’ve learnt

Our team was small, the budget was really tight, the only thing I was not doing in the team was drawing concept arts and  building models in 3D Max. 

  • I’ve learnt how to use Unity Cinemachine Timeline and Recorder module (You can check this tutorial)
  • I found out that you don’t need to buy Adobe Premiere to do some basic video editing – you can use an awesome totally free software called HitFilm Express,
  • I’ve learnt how cathedrals are built and designed and why they give a sense of an awe and being totally epic (check this 360 video)
  • I found out that we almost had a dwarven kingdom here in Poland in Wieliczka Salt Mine. Just take a look at it yourself 

Quo Vadis, Nanus ?  (Where are you heading, dwarf?)

Right now we are validating the concept business-wise. The steam page is out there and we closely observe the increase of people wishlisting it. 

Read here why it is so important for us now

We have a certain target to reach to be sure that we can continue working on this project.  Publisher has certain marketing plans related with this to help us get there. Obviously they don’t want to spend money on something that does not have a commercial value. We will learn more about their decision sometimes in January or so. 

If we get to continue working on this underground city builder there are some challenges that we must face later. The most important one is:

Finding a proper art style. The one which will not be to costly to make but will be consistent with game-play and will enforce the main feeling of the game – the feeling of grandeur and epicness of your kingdom.

I hope you liked this lengthy analysis of this project’s phase. If you are interested in the future of this underground city builder then please follow us on Steam and add it to your wishlist here

https://store.steampowered.com/app/792610/King_Under_The_Mountain/

You can reduce the team size without being an a-hole.

Being a captain of my own ship is sometimes frigging hard.  Sometimes I have to make tough decisions.

Over last couple of months we grew from just me doing all the stuff to team of 5 people(  me + 2 coders + 2 artists ). We closed several smaller contracts and we are currently involved in 2 large projects. However to scope and minor obstacles (like finding proper artists to do the job) occupied my attention much more that I have estimated it to last.

Several days ago I made a decision not to grow the company even larger and not to take additional long term projects.

That means less work & less money for the company but it also means we can focus more on delivering current ongoing projects. Quality over quantity.

I’ve ran the numbers and unfortunately the cost of having 8h a day of sleep and peace meant we could not afford to support a full time coder.

If we wanted to stay afloat I had to make the most painful decision in my short yet dynamic experience as a company owner. I had to let one person go.

Letting someone go from team in this scenario is way more difficult than simply firing a person who was not a good team member.

Our coder Patryk, who came to us for his university apprenticeships is really talented. He is one of those people who gets the job done, no questions asked. Just like that. Ultra high working ethics.

We hired him for 3 months after apprenticeships and since the company keeps getting more and more new contracts it is critical for me to build a stable team that will last for years.

Before I told Patryk we had to part our ways I could not sleep well for 2 days.

The core of my company values is transparency & honesty. No beating around the bush. No bull@%@t

Being in game industry since 2015 I’ve seen some weird “firing” practices. I’ve seen people being let go with no proper warning. People getting hired and promised heaps of gold just to be let go as soon as they became of no value to the company. Companies which bulked their team size by 50 people to deliver the projects and letting them go without no warning the next day the project goes live.

I strongly reject those kind of practices. Human people are not just resources or “assets”.

Being over 15 years on a job market, including 10 years in IT, I’ve seen also some good examples. Not all  CEOs and HR reps are evil. I’ve met some wicked psychopaths but in general they care about people.

If you hire the person you are partly responsible for them and sometimes their families.

I remember working for a large corporation which in the times of it’s glory hired over 7000 people just in one Polish location. After its golden days were over, the company had to let go over 5000 people just to become lean again and survive on the tough market. It didn’t happen instantly. The process took almost 2 years. As an IT I’ve seen it from the inside. Closed a tons of NT accounts in that period.

It was shocking for me in that period but later (after I’ve seen some cases in Gamedev like THIS )I came to an impression that my previous company wasn’t that bad after all.

I remember they even made a deal with some of their market competition, provided job transition courses and offered some nice financial packages for people being fired.

When was the last time you saw something like this in GameDev ?

So … even though I had to let go only 1 person It was critical for me not to act like those fellows mentioned above.

Instead pretending as if nothing happend I’ve decided to find Patryk another job.

I knew that Patryk is moving to Tricity so I posted on local Tricity gamedev group.

Guess what – Patryk is staying in the industry.

I’m really happy for him.

On the road of game development

I’ve decided to change the subtitle of this page.

It used to be called “On the road to game development” and I’ve started it while still being a wannabe gamedev in transition.

Since I’m already “on the other side” meaning – I earn money from making games full time for more than 1 year – the current name “On the road of game development” is more accurate.

Since I already got you here, let me try to make a brief summary of my route:

I started my transition in year 2014.

I was working as a senior IT help desk for nearly 8 years at that time. I had a descent, stable  money income but I was deeply unhappy.  33 year old overweight fart, talking about games in the environment full of professional “suits” could not be treated seriously. Dont get me wrong – IT team was full of geeks so we got along very well. However, I felt something was missing in my life.

In 2013 I found this course called GameDev School. They were just starting up with a pioneer game development tutoring service. I felt like it was something I could use to get away from my current position.  The course was fine. Not the type of “serious” IT courses I used to know. You could probably find a better place to get the practical knowledge about making games. However they managed to succeed in one thing: They sold me a dream that I could earn money from what I enjoy the most – games.

That was just a first step but it made me move my ass.   After that, all I have now is thanks to my persistance (or creative obsession).

I quit my corporate IT job, took the closest to gamedev job I could find with my skillset, and started learning, learning, learning like hell.

Two years, 10 game jams and 1 released mobile game later (postmortems are here and here) I got hired in one of the Warsaw companies making mobile games.

I worked there for like maybe 6 months for a salary which was way below any industry standard. Literally, people working in Polish supermarkets earned more than me, who worked there as a junior Unity coder.

However… I was happy. I knew bigger money would eventually come if I continued to learn and absorb new knowledge. I got a great life lesson there as well – I got unexpectedly fired.

Two weeks before my exit talk everything was fine. Owner even talked about long term plans and giving me more reponsibilities… then came RKO from out of nowhere.

Why? I know why but this is not a place to write about such pitty things. I wish them luck. In fact they made me a huge favour.

You see… I’m a survivour. I never give up. This stubbornness sometimes causes me major problems but in the long term I’ve learnt that this is my super power. I always prevail.

2 days later I found another game dev job.

This happened thanks to unbelievably awesome game dev community. When I called out for help the feedback was amazing. I felt like I was surrounded by brothers and sisters in arms, who had found themselves in similar situation at least once as well.

Later I found out yet another thing: even though I was a noob in some gamedev areas, I was way ahead in other things. It turned out that my work ethic, years of crunch mode, working in a publishing / marketing department gave me some skills many did not have.

I had been contacted by a industry friend of mine who asked me if I could help one team in need to deliever their project milestones. I thought – ok, I’ll take it. I sure could use some extra money for a planned wedding. Little did I know that yet again fate wanted to give me another push towards my goal. After 2 months in (at that time) my current job things got very ugly. You can read more about it HERE

As I mentioned I had a backup plan. I’ve decided to go full time freelance as a Unity Freelance Coder. I had a company registered already, a contract signed with a publisher and what is more important: No Non Compete Agreement signed. Meaning – I could do more than one commercial project in the same time.

Soon it started to pay off.

Since I could do more projects due to my high work ethic, dedication and productivity, I could offer a more competitive hour rate. That gave me a steady flow of incomming customers. In the same time I managed to secure one more long term contract and now I’m finally able to provide income not only for me and my family but also hire more people.

Dont get me wrong.

This is not easy what I’m doing. It requires me to be constantly working on improving my skills, thinking and planning 6 months of contracts in advance. Sometimes at the cost my private life. I must say I’m very lucky to be with my Justyna. The most patient and lovable person I know. I wouldn’t have went that far in such a short time without her.

That’s about it. It’s almost 9 PM. I’m actually writing this post waiting for the game build to finish being compiled.

Yes, game development is not a 9 to 5 type of job.

However, I regret nothing. All my mistakes and failures made me stronger. Despite of all odds, despite everything not-so-friendly people told me or told about me –  I’m here, doing my own thing, getting paid for that and I’m not going anywhere else.

Deal with it 🙂

 

Obsessive – compulsive creativity disorder

There’s something wrong with me. I’m not normal. I should be sleeping. It’s the middle of a night, everyone’s sleeping and I’m in front of game engine editor testing new solutions. Nobody forces me to do so. Nobody is paying me extra. I … just… cant… fall asleep… until I find the solution for the issue I have with this bloody code.

I’ve started my gamedev journey in 2014 and I cannot recall how many times I found myself in similar situations. Countless, that’s for sure.

Yesterday it happened again:

Before I went to sleep last night I was trying to solve this issue with one of the prototypes I’m working on. Game requires mining resources in 3D space. I figured I might use one of the 3D terrain generation scripts and later fill it in with some voxel cubes. Unfortunately the performance sucked big time. I was struggling to find the solution for couple of days and it got me more and more frustrated with each and every day.

… but I won’t give up. I can’t give up. I never give up!

Only my Fiancee can convince me to detach myself from crunch mode.
“Come to bed, Chris” I hear.
So I go… and quickly fall asleep next to my love.

4:30 AM I wake up, after less then 5h sleep.
I almost scream:

– EUREKA! I found the solution!

Then I realize what time it is. The sun is about to rise. Everyone’s sleeping. Even my dog.  I try to convince myself:
“Don’t do this, Chris. Go back to sleep like a descent citizen”

One hour later – I still cant fall asleep. I MUST implement this solution. I simply MUST check if I AM RIGHT about it.

I get up. Turn on my notebook. Open up the editor. Code the solution in. IT’S WORKING! Bloody hell, IT’S WORKING!

10 minutes later I’m back in bed sleeping like a baby.

Obsession. Creative Obsession. Without it I wouldn’t be here, doing what I love – building games.

 

Intermittent Asshole Syndrome

 

I have been silent lately here on this blog. My GameDev Freelance Service is going full speed so in order to put all the life pieces together I must chose what not to do in order to live in a healthy balance. I’m currently supporting 2 major clients and trying to deliver my personal project. If you add a life partner, a dog and practising capoeira you may come to the same conclusion as me that sometimes writing a blog post matters less than having a descent 8h sleep.

Despite being terribly busy I’ve decided to stand up and write about something which had happened behind the doors of a one of the closed gamedev groups.

We had seen a classic example of bullying. Friend of mine made something stupid and wrote a condenceting post which looked as if he was trying to teach the experts how to do their job, even though he had no experience in that matter. Later he was trying to turn it into laughs but it was way too late for the enraged crowd to step back. Some people made screenshots and posted them on twitter. People can be cruel in their jokes. Fortunately after a while  moderators and some more experienced and respected developers stepped in to calm down the mob.

Now we have a relative peace. However, later I spoke with the kid who started the thread and believe me… Feeling like sh@&t is the mildest way of trying to describe what he is going through right now.

Even though I’m partly responsible for his roast as I also participated in this whole madness, I’m writing this post to cheer him up and support him.

Why? Because 4 years ago I made the very same mistake as him.

The roast lasted not one day, not two days but it took 2 years of being regularly laughed on by some of the well known local devs. The gossips, the irritating trolling on social media, private messages.  It’s long over now but I still remember the names of those assholes. Also I keep screenshots of some of their messages. You know that saying: forgive your enemies but never forget their names.

I’ve grown a thick skin and slowly getting more and more credibility on the market. I’m no longer a noob as I used to be. It’s all because of the persistence and genetically encoded stubborness. This would not be possible without the support I received from my friends and the close ones.

This makes me thinking: Why are we so fast to judge and act like wild, starving monkeys who saw a banana? Aren’t we supposed to create a positive experience and welcome new people to learn from one another? Being an asshole to noobs does not help them grow to be better devs. We need mentors, not assholes.

So to end this long post here’s my 10 golden rules to be a better gamedev. It also took me some time to learn about the existance of them. Also I’m not claiming I have them mastered. As some of you may know I have a problem with the first part of each rule – shutting down the flapping upper.

Rule 1) STFU and work on your technical skills

Rule 2) STFU and listen to feedback

Rule 3) STFU and instead of giving your feedback ask if someone wants to hear it first.

Rule 4) STFU and dont waste time on things that do not get you closer to your target

Rule 5) STFU and kill your ego

Rule 6) STFU and do Game Jams

Rule 7) STFU and ask questions instead of giving opinions

Rule 8) STFU and accept that you know nothing and that this will not change until the very end of your career

Rule 9) STFU and be nice to people

Rule 10) STFU and dont stop. Never. Always iterate until awesome.

 

Remember that being an asshole to a n00b doesn’t make you a better GameDev.

 

1 year anniversary of Kurki Collective ! Yay!

 

Facebook has reminded me that 1 year ago Kurki Collective, indiedev initiative I am memeber of, went live and official.

What is Kurki Collective ?

Kurki Collective is a subgroup of “Indycze Jajo” virtual initiative which has been started by Izabela Latak – Grzesik couple of years ago.

“Indycze Jajo” helped amateur or part-time gamedevelopers like me to “get our stuff together” and motivate one another to become better and better. We usually meet up on our slack channel and Google Plus community to share ideas & knowledge, show our game development progress and generally socialize. We come from different parts of Poland, most of us do not live in large cities, some of us have families to support, some of us work GameDev full time, some of us do it after their day job hours.

We have one thing in common – We love creating games.

After several years of amateur acitivity we came up with an idea – how about going more “pro”, just a little bit. Still no stress and far from getting too much serious. Hence “Kurki Collective” idea emerged.

Numbers

 

What we as Kurki Collective and I could do better?

  • Personally I think we should become more visible in social media. However it requires more time and involvement from the members on promoting our initiative. I know this is partly my fault. I promise I will do better.
  • Publish More Games!  There are bunch of cool projects being developed under the cover of our small collective. Since we’re a tad shy we show it only to one another.
  • We need a webpage !
  • More similar to Kurki Games Factory initiatives
  • More live meet ups

The intitiative helped me personally a lot. With help of Kurki Collective members I became a fulltime Game Developer for hire (https://www.facebook.com/CobbleGames/), published my own small mobile game and now I work with Error Games Studio  ( who work with a a publisher Fat Dog Games) on their game called Futurust

If you take in consideration the fact that just 3 years ago I was still working in IT Support this is a huge life changer: I earn money from what I love.

So if you are or want to be a game developer – join a similar community in your area or simply create one – as we did. Just being around like-minded people will help you grow.

Summary of 2 months as a Freelancer: Cobble Games

The TL;DR; Version of this post should be read: “WTF Time, you serious?!”

Basically since I made a decision to leave the former employer I am working 16h / day on starting up my new Freelance Unity Contracting Service for IndieDevs (More about the business HERE )

I have no time for anything whatsoever. Which is not a good thing. Even now I write this post while preparing a test build for one of my clients and that takes a while so I’m kinda stuck on not-coding. The good part is that I work for myself and my family building independent life. If I screw up then I will be the only person I could blame.

One may ask: Why going Freelance ? You don’t have that much experience as a developer. 10 months? That’s nothing.

Answer is simple: Because there is a demand for my services and I work harder than the average 9 to 5 fellow.

My experience in 3 former companies where I either worked in a development or was closely looking at the production process proved that time on the market means nothing. I’ve seen companies that are 10+ years  in business which lack the very basic management knowledge. Companies that have no game designers and still make games! Companies that do not invest in employees or preproduction and they still manage to deliver!  Companies who even though have plenty of money from the investor have absolutely no clue what they are doing.

That proves the Michał Marcinkowski thesis from PGA2016 : We are equally incompetent.

Of course there is a bunch of well established studios with a great reputation with absolutely 0% employee friction.

They are simply great:  they make awesome games. They care about their teams and their employees never leave. Why would they? The problem is I know only maybe 5 of such companies and they either are not in Warsaw or I don’t have a required skill set in order to get their attention. For now, at least.

I know my place. Dunning Kruger syndrome is long gone.

I could either again start another junior position and risk losing my nerves and be dependent to some weird decisions of someone whose only advantage was that he started earlier, for a wage which is below any industry standards or take a chance that fate gave me and go Freelance.

My Fiancée was getting nervous – we’re planning to get married. Fortunately she has a stable job not in gamedev but being almost 36 years old and working 3rd year below my market value just to chase that rabbit would be very selfish of me.

Just to give you a perspective: Mc Donald’s pays more and gives better work conditions than some of the gamedev studios in Poland.

I could always go look for a senior IT support role again. With 10 years of experience in IT I can find a job in IT  industry practically with no effort.

However I got a call – name it … a Karma blessing.  One small team of developers had issues with their programmers who failed to deliver. I took a chance. In two weeks I delivered what they couldn’t have delivered for nearly 3 months. We all got paid. Then I delivered the second milestone and it got accepted again, payment is on it’s way. Then I got a outsource offer from another company working on some minor tweaks… and the contracts keep coming and coming.  I am in that point I must refuse to take any more work as I have no time for private live and sometimes sleep.

What about the future?

Hard to tell. Life tought me one thing: Never be sure of anything, go with a flow and adapt. I’m good at adapting.

I might have my personal targets or plans but in this particular industry you simply cannot be sure of anything. For now I have that Futurust game to be finished and published and those minor freelance tasks give me a great chance to learn different coding styles as I must add or change existing code which is a great experience. I might want to consider to form my own team at some point and contact a publisher for development funds… or I might consider joining one of those 5 renown studios to get access to their know-how and be part of something greater. Life will show.

For now I stay humble and keep up the hard work.

 

 

Sometimes you just have to say no.

Even though I really wanted just a bit of stability this year, yet again I’ve experienced that the only reliable factor in my life is my Fiancee. She’s with me no matter what. Supporting me with a God-like patience.

Without going into unpleasent details I’ve decided to cut my business relationship with my previous employer.  First 2 months had been almost perfect but the last week turned out in such way that I’ve started to doubt in the future of that particular enterprise.  I’ve decided that the fight was not worth losing my health for.

I didnt mind the money – I asked for a rise and I was promised one. That was a test. I knew we will crunch with that project scope. Guy wanted me to sign Non Compete Agreement which I was fine with… but not for the salary of a amateur bartender.  I was more worried by the type of contract I was offered to sign. It was not on partner terms, against our previous agreements – basically each month they could tell me – hey, we dont need you here, we won’t pay you as you havent fullfilled the non existing game document requirements and we dont care if you need to pay your corporate taxes and health insurance. They said it was a standard type of contract for their publisher.  Well… if this was the truth,  I was working for the wrong publisher.

Moreover it turned out that more and more people started to contact me if I could help them with their projects. They wanted to pay for my skills so the Punk inside me said “Dude, you dont have to be a slave…  F this S” and so I did.  Integrity is the key.

Since I already had a company set up I thought – Lets go full time with this…. and here I am:

I present you Cobble Games: Game Developement contract coder for hire.

More about this on my Facebook Page

« Older posts

© 2019 Cobble Games

Theme by Anders NorenUp ↑