I want to work with games. Where should I start?

Hello, folks.

How are you doing?

Well, today’s post I’ll talk a little bit about how you can start working with games, what engines you can use, what qualities and skills the market is looking for, and more. Important to underline this is my own experience due to my current situation – looking for a job/Co-op/Internship in a game company. (if you know something, let me know. Really!).

So, the first thing you’ll have to get over (or to not care) is about people thinking that you will work with video games is the same as you will be playing video games all day. I believe I talked a little bit about this in another topic (How to be a game tester), but, yeah, people tend to think that. Want to try? Tell your parents that you want to work developing games and see their reaction…. But, don’t worry. I’m here to help!

Building a game can be something from coding a simple couple of lines to a lot (I mean A LOT) lines of coding and more coding. It takes time, days, weeks, months, years, patient, studying, sometimes weekends at home to finish your game… But should I start with coding then? What language should I study? What books should I read? Which is the best language? Which castle is the princess?

One step at a time, grasshopper.

A game can be build in many different languages, and I’m not talking about that weird one that your uncle talks when he comes to visit you in your birthday. I’m talking about Programming Languages, C, C#, C++, Java, JavaScript, PHP, HTML5, Ruby, Python, etc, etc. Usually, most game companies like to work with C# and C++. Those languages, as far I’ve researched, are a little bit more difficult to learn, but as soon as you get them, all the other will be way easier to understand. The reason of that is because most programmers used C as a base to create others, anything that you need you have to write down – functions (some people may believe this is bad, but I like it). Knowing that, you can start working on something about C# and C++ specially because it will be used on the engines I’ll talk about here.

A little example of a code I used to learn how to create games.

In this example, I used VS2015 (Visual Studio 2015).

Do not worry about “OMG, what the hell is that?” or “How am I going to learn that?” Well, it happens to me everyday when I get a new code. That’s why I said it takes time, patient and a lot of study.

A little bit about VS2015, you can use it to build your game and extract into a .exe file. However, probably all Anti-Virus will identify as a weird program and block it if you let it. Even more, it compiles only into a MS-DOS windows, so your game will be like those 70’s one.

This is what happen if you compile a code created with VS2015.

The famous Snake Game where you have to catch a fruit or an object, you tail keeps growing until you have no more space to move. (Its my first game, give it a break, okay?!) It took me about 1 hours to build that with a tutorial, between learning, pausing to understand, writing down some notes, fix error that I’ve got the guy on the video didn’t, etc.

But, if you are here, you are looking for something more, right? Engines!

Engines are programs game developers use in order to help them create the games. With those, you can write your code, attach into a specific model (enemy, player, car, etc) and work with it. You can come and go between the code and the UI, background, music, sound effects, etc. If you want, you can create a game from scratch using your Notepad, but why trying to reinvent the wheel when you have those softwares to help you out?! Most commons engines are Unity 3d and Unreal. (I’ll talk about Unity as I’m using it right now….)

Unity is a really powerful engine with probably everything you need to start your own simple game. And its FREE! They even have tutorials in their home page to help you out. Its a great way to start, learn and understand what happens behind the scenes. Also, unity is one of the engines a few big companies is used to work with. Nintendo, Ubisoft, etc. So, it may be a software you want to learn.

Following the tutorials, I had the opportunity to create 2 other games.

Roll a Ball where the objective was to roll a ball (yeah!) and pick up all the objects on the screen. A nice tutorial and I didn’t have to import anything as features, assets, characters, 3D models, etc. It gives you a North where to start with and for the basics using Unity.

I had to create 3 Scripts (code documents) using C# (you can also use JavaScript if you want). Here’s a little bit of the code.

If you want more information about it, you can find at http://www.unity3d.com.

You can also notice I use a lot VS2105, but if you don’t have access to that, Unity is smart enough to provide you its own C editor, so you can write the code without having to use an external software.

This project had no sound effects and only one stage. As mentioned before, the objective was just to pick up the yellow squares (which I also had to animate to give more life into it (:

The next project I worked with took about 1 week to finish as going through the tutorial, College, assignments, nights awake until 2am to learn, etc, but it was a little bit more complicated than this one. On this, there was Audio, Models, Prefabs, Textures, 10 scripts, etc.

There are still other tutorials I’m working on right now and also others on-line not so hard to find. Important to underline that between creating, adding and finishing the game, there was the tests I had to run almost all the time to see if something was working properly or not. For anything wrong that I found, I spent like 20/30 minutes trying to fix, as I’m not an expert into this and I had to learn about it to make it work.

I believe this is somewhere to start if you want to create your own game and an important tip is to never give up and never try something way ahead of your experience (too far!). I know we all want to build games like The Last of Us, God of War but we have to take one step at a time.

And how can I get a job?

Well, about the market. Jobs that I’ve applied ask for, at least, some experience with Unity, programming and, sometimes, a portfolio. Alongside that, jobs offers can ask for knowledge in others languages as Java, PHP, etc, which there is nothing much to do with what you’re studying, but you have to know them. Important is to keep working in one language to be good at it and know a little bit about others. I like to say that working with Programming really depends on what you want to work specifically with. Web programming? Game Programming? Software developer? because each of them will guide you to a specific path. Web, you will see PHP, CSS, HTML, JavaScript…. Games, C#/C++… Softwares in general, Java is the top of it due to the fact that it runs in almost any hardware, OS, cell phone, table, etc.

I hope I helped you guys a little bit and thank you for stopping by.

Advertisements

Creating my first music for a game. It couldn’t be that hard… Right?!?

Hello, friends.

How are you?

Sorry about being so absent from the page and not posting something in a while. Things are getting busy (way more than usual) and I barely have time to sleep.

Anyway, I’ll talk about my first assignment inside the game industry where a company back in Brazil contacted me to create a music for one of their mobile games. One of the problems was that I had 48 hours to create it…
“Well, 48 hours is not a problem at all”, I though. Not for me… and I’ll let you know why.

To start, when I accepted this task I believed that with my music experience (over 10 years), experience in playing games (since I can remember), talking about games and music, discussing with friends, having this website, etc, would help me working on that. “I created a few songs before. It was nice, people liked it. I can do this.” The problem was that I was so exciting on working in a song project that I forgot a few steps over the way.

1 – The Design Understanding!

The game was simple, but interesting. It was a side-scroll type with no end and you had to keep jumping and avoiding things to get the highest score. I started imagining a few bits, drums set, rhythm on my mind and decided to use a program that would help me build the song fast and, as before, the songs I made with it were really nice. I build a track with a bass line continuously, around 165bps, 170bps. It needed to be fast, but still understandable. Then I created a drums set, jumping from the bass drum to the snare, coming and going timing by the Hi Hat and the Ride Cym. It took me a couple of hours to complete and I was really happy with what I made so far. My problem at this time was that it had nothing to do with the game, I mean, It was a fast and nice track and would fit in another games like it, but not this one. I realized this when I sent my first (and what I thought would be the final to) sample to the client.

2 – The Client!

So, the client received my sample…. and what happened? He didn’t like it. The quality of the music wasn’t the expected one, the instruments weren’t right for the game, volume of a few were too high, others were too low, etc, etc, etc. It was a “nice” disaster and I realized I couldn’t expect to do the right and perfect song at my first attempt. Or could I?

Big mistake.

After talking a little bit more about the client, I understood what HE wanted and it was not what I wanted. Thats another problem with design: You work for the client, not for yourself and the sooner you learn that, the sooner you will avoid getting hurt when someone says you work sucks.

2 – The Learning and Creation Process!

Dealing with the client and solving that awkward situation, I started to researching what programs I could use to create the song and here comes another problem. Learning how to use a new program in 48 hours in the middle of a job.

I downloaded FL Studio and started working with it. It took me a while and a few hours of tutorial videos and reading to understand what I needed to do to create a song. It has a whole set of instruments, effects, weird sounds, keyboard styles, licks, samples, and more. A really interesting software if you want to deal with something around funk, techno, spy, dance kind of music. On this moment the problem was that I had already lost a day creating my first song, dealing with the client, downloading a new software, learning how to use it and creating something new.

So, to move things faster, I decided to create the song in the program I was familiarized with (Guitar Pro) and transfered to FL Studio.

It worked… for a while.

4 – The Work!

First, creating the song with a guitar, then transferring to Guitar Pro and finally transferring to FL Studio. Coming up with the music wasn’t the biggest problem. I like to deal with that and I can imagine a lot of samples, rhythms, how they work together and the final project. My main problem was: How I was going to use the right instruments, effects, sounds in order to fit the design understanding that I talked before? What kind of instruments should I use?

Then, I started…1, 2, 3, 4, 5 samples and, all the time sending to the client to check, get his feedback and modify.

After talking with my wife about it – which is a designer – she explained to me the idea behind the painting, how I was supposed to create something that express the feeling of the character, the scenario, the objective, and the game itself. I finally realized I was doing – almost everything – wrong (I missed the Design Understanding topic above). I was thinking as a gamer and building the song as a musician, but I completely forgot about the design and how I had to put everything together smoothly FOR the player and the CLIENT and not for ME. I created some samples of what I thought would be nice, inside my own music style.

After that class, I new what instruments, sounds and effects I was supposed to look for. It took me another couple of hours to deal with it, but I managed to work around. The song was ready! I sent to the client and he liked! Mission accomplished! (What I believed….)

I didn’t realized that, even having a good song and the approval of the client, it needed to be inserted into the game and tested into the specific device the game was going to be running. Why? Because on my computer and on my headphone, the music was fine, but by the time I downloaded in my cellphone, it was completely out of tune! And after that, the client said the music had to be in a loop with no “feeling of end”. In other words, it has to go on and on even being a small sample (30 seconds). EDIT: That is another thing that took me a while to figure out and realized that, for the engine Unity, .mp3 files are automatically increase of information in both sides of the song (beginning and ending) in order to load and end the song. I had to use a .WAVE file or something else. Another information I got is that there is a way to deal with that when editing your file called Crossfading where, according to Mark Harris (Digital Music Expert) “The term crossfading is a technique that creates a smooth transition from one sound to another — […]”. (Yep, I really made a research on it).

For some people this may be an easy task, but remember, this was my FIRST job and I was just so excited about it that I didn’t think about the technical parts.

Well, what happened was that I had to download another software (WavePad Audio Editing Software) to edit the song, loop it, cut the end, put pieces together, etc. And there goes a few of my hours to complete my task because I had to learn once again the program to deliver a good product.

Over the end I was working with Guitar Pro, to create my songs, transferring to FL Studio to clean and edit the song and, finally, to WavePad to do the final cuts.

“But, why downloading and dealing with 3 programs to create a song? Can’t a single program do all of that?” you ask me. Well, you know when people say its better to hire someone else specialized in something than trying to do yourself and mess it up with everything? I decided to do that. I used Guitar Pro because it was one of the programs that I had experience and had worked before, it was easy for me to write a song in it, create tracks, insert instruments, etc, everything with an acoustic guitar or a keyboard. FL Studio helped me editing the song as I needed, volume, effects, different types of instruments, adding more tracks if necessary, changing timing, etc, with more quality than Guitar Pro.

However, as a big program with a lot of functionalities it would take me a while to understand it and really be able to take everything from it. Finally, WavePad is a simple program to do the finals with your song, cut, paste, loop, trim, etc. Took me a few minutes to understand – and thats what I needed due to the deadline knocking on my door.

5 – The Available Time!

After all the happenings, I really had to stay awake a few more hours to finish the work. Coming and going between the softwares, how to use it, the details of the project, a real understanding of the project, what the client was expecting, among other things are only a few things that I didn’t consider when taking this job. When working with creativity, you cannot rely on your brain to bring something up out of the blue. Sometimes it happens with people in the middle of the night, sometimes when they woke up, even when you’re in the shower (like me) and you have to run to write it down or record it before you forget everything.

Also remember as living in another country different from my client, I had to deal with time zone and not all the time both of us were available to deal with the samples, feedback, ideas, changes, etc. One more problem to our list.

TIP: Its hard, but if for any reason you get stuck in something that deals with creativity, its probably because you’re putting too much effort into it. Yep, thats right, you cannot “force” creativity to come to you or out of your head. It took me a while to understand that because I always had the feeling “I could be working instead of doing this” or “this is a waste of time” or even “I don’t have time for this”.

What happened at the end?

 
I’m still waiting for the clients final answer about The client approved my work!!! For something I came up with in 24 hours – because the other 24 I was working on learning everything else and with the rest of my life (College, family, eating, sleeping) – I guess the final work was fine. Lets see. EDIT: Final work was accepted and now I have another sample to work on! 🙂

I’ll keep you posted for any news!

And you guys? Any tips or suggestion on how I should be working from now on?