[Article / Discussion] What developers lack, and how to solve your issues.

Hello everybody, this is not a “you all suck” sort of thread, but a “Think about this…” type of message.

A little note about myself before we get started,

I am a 28 year old Former United States Marine who has been programming for well over a decade (from age 13 to be exact). Since getting out of the USMC at the age of 20 due to an injury I received while overseas, I needed to support myself, but I didn’t have the mobility I once had…I turned to Freelance Computer Programming. I have been working professionally in the freelance market for over 8 years, and I have learned a few things as I go. (Note: I am 100% self taught, but have multiple certificates in various programming related fields. Such as Security, Networking, Windows Development, etc.)

Time, time, and time again I see people say things like “Its not possible to do insert something here”. While this statement is not 100% wrong, it’s 99% wrong. The most common reason people say this, is because they can not think of the solution themselves, or can not find the solution themselves, therefore they deem it as “impossible”. This leads me to my next bit…Troubleshooting / Creativity.

Like Unity, C#, Javascript, ETC…No language can account for every single possible scenario, and make a function for it. Obviously there is no “USGovernmentSattelite.AsyncControlSattelite” feature. [Feds, don’t raid me]. But, if you truly wanted to, you could use various other commands to get there. Just like you do with EVERY bit of programming.

There is almost always a work around in place that could get your desired result. The matter is finding it.

For example, I just got done reading a post that is asking Unity for the support of a “Launcher”, and how it would make peoples lives “easier”. Although, this indeed would be a nice feature, the result is already obtainable.

Simple creativity on the matter is the process of “I want this (in this example, a Updater / Launcher)…How can I get that if its not already available to me?”

In my examples in the thread, I provided two solutions that would allow them to do this.

I can assume that these people already have a basic knowledge of programming, so I explained in simplistic forms that they could either…

A. Command Line Arguments, or B. Configuration Files.

Meaning…They could easily program a desktop based program in C# (or any other Mono program) that has the automatic updating in it, as well as settings (Sound volumes, resolutions, etc).

They could either A. Pass this information to the game.exe’s command line arguments and read the command line arguments at run time, OR save them to a config file, and read that file at run time.

Now, probably part of the people reading the suggestions would not understand what I meant, or how to get the desired results based off of what I said…So this leads me to my next topic.

Research.

As a career programmer who’s been doing this for oh so long, There are too many times that I decide to go outside of my “comfort zone”(current knowledge) and want to broaden my knowledge, and do something that I normally wouldn’t do. I have spent COUNTLESS hours researching on how to do something, or how something works, or how to implement something else.

Now, when I say research, I do not mean “Post on Unity forums, and check back in 3 hours until someone is NICE ENOUGH to post some code for me, so I can copy / paste it”. I mean look through the unity forums, and Google.

Did you find a thread that DID have some source code? Sweet. Don’t just copy / paste it into your project then complain that it doesn’t do what you wanted it to do…Take the time to LEARN the code being pasted. See a function being used that you’ve never heard of before? Look it up to see exactly what it does.

For example, today alone I was learning about Shaders. I saw some videos, and the guy doing it used the “saturate” function. I had NO idea what this was. After a quick Google search, I found that it will clamp a value between 0 and 1.

I know, I know, more work. I’m sorry. I bet you’re getting pretty tired reading this by now huh?

Which leads me to my next topic…

QUALITY

I too have fallen victim to this many times, where you are tired of a project, or so excited that the end is near, you just want to get the thing out of the door so you can get paid!

This is where mistakes happen. Bugs that don’t get fixed, or bugs that you say to yourself “Meh, the players can deal with it…for now…i just want some money!”, etc, etc.

This is a HUGE mistake. Take a look at the somewhat recent Sim City release. Although, I personally love the game, and think it’s great, look at all of the negative reviews and bad press the game received…due to bugs…or errors.

Marketing…

Just because you make the worlds greatest game, does not mean you will be rich beyond your wildest dreams… You still have to market it. You need to ask yourself “How much would I pay for this game?” and then ask 10 friends…if the prices are in the same ballpark, there is your MSRP.

YouTube videos, facebook posts, forum posts, Steam greenlight, etc, etc, etc. You need to “whore” out your game, and the gameplay. Not just “heres a few pretty screen shots of the game”.

Now, to summarize a few things before I “wrap this up”, I am going to end it with some tips / tricks.

Note your bugs immediately. Put it in a notepad, save it on your desktop. When you think your game is done, go through your list to make sure you fixed all bugs.

Categorize your games issues. I personally do it on a scale of 1 to 3.
1 being “It’s fine, but needs optimizing”
2 being “Not game breaking, but needs to be looked at ASAP”
3 being “Game breaking bug. Needs fixed NOW”.

This will obviously allow you to go through your bugs and fix the more “necessary” bugs.

Make sure you are CONSTANTLY advertising your game. It is better to have 1,000,000 people mad at you that your game isn’t out yet, than 10 people actually playing it when it is released.

So, in short…

Do research, be creative, and don’t succumb to greed by releasing a broken game.

Google is your friend, or is it? Good post, all relevant. Of course, what you write here for most professional developers is a no-brainer. What you have to realise, as is obvious from the posts in a large part of these forums, is that most people posting here are kids or students and are just starting out and they do not really have a serious attitude to this at all. Half the posts here are just people chewing the fat starting topics that they already know the answer to or because they’re fedup looking at the computer screen and wish for a rest for a few minutes and come here and post some bloody nonsense. I know this because I do it myself. The real work with Unity is being done by people who never post here because they ‘do’ and don’t ‘talk’. And now I’m going back to ‘do’. Seriously though, it’s a good article and it was generous of you to take the time out to write it.

The same thing applies to art, to anything else in life really. Some people are able to see and solve problems, some people will always only see problems, and be stopped by them, and some people are only able to take direction. The trick is to learn to work with those different types of people.

With kids who just want solutions, and no learn anything. You can either post something helpful, solve the problem, or ignore them completely. Anything else is contributing to the problem.

A good way to view things that come up here, on the forums, and also in other areas like unity answers, is like a sort of searchable wiki database of information - be nice if we could eventually get something sorted like that (I guess answers is supposed to be but its not ever been useful for me personally) but to the point, just because you think that the person asking the (to you) stupid obvious question, doesn’t mean to them (or someone else just reading it) that this problem is unsolvable, they may just not have the experience to get to the solution they need, some of us are better at digging out resources than others. This is where when I know the solution, I’ll often try and point someone to that, if I can, because it might help the person asking, but I also consider it might help the person who didn’t ask, but is reading, and may solve their own problem seeing the extra information that is now available.

Thank God, because the spelling mistake would kill me with that API. Ugh.

Seriously, though, you’re preaching to the choir here. Experienced developers already know this, and inexperienced ones rarely learn this stuff from reading about it. You can’t really understand it until you’ve lived it. This is why mentors are so helpful, especially in a business setting.