Dev Log 11 – Spooky Springs Is Born

By February 27, 2017, I had a new character to add to the game. The following video shows the first look at Sheriff Hare in-engine:

He is the first character for the games first major level “Spooky Springs.”

By March 23, 2017, I had the theme music for the level, and the aesthetic started to come together thanks to a spooky new skybox, a new cactus character, and a new speech system.

By March 25, 2017 a saloon, a few ghost vegetables, and some eerie graves fleshed out the level with some silly puns.

Unfortunately, progress is overall pretty much at a standstill as I continue to search for an animator.

Dev Log 10 – Messing Around

Hello again!

This time we’ll be discussing the little progress made throughout the rest of 2016 (October – December).

By October 5th: 

I began implementing some very basic UI functions.

On October 8th: 

I just decided to have some fun! I also wanted to see how my character really felt by placing him in some familiar environments and seeing how he played.

I visited The Models Resource to find some levels from some of my favorite N64 games. I picked some levels from Super Mario 64 (Bob-omb Battlefield and Peach’s Castle), a level from Mario Kart 64 (Koopa Troopa Beach), a level from Banjo Kazooie (Click Clock Wood), and a level from The Legend of Zelda: Ocarina of Time (The Kokiri Forest). I threw the 3D models into Unity and tried to get them simulated as accurately as possible without wasting too much precious development time.

This gave me a much better idea of the things I need to fine tune in terms of our hero’s movement.

By November 16th: 

I implemented the first stages of a dive mechanic (with much work left to do.)

My wife and I were spending a lot of time house searching, moving, and on holiday throughout most of October 2016 through January of 2017. As such, I didn’t get very much work on the actual game. However, during this time I did get a lot of valuable administrative and design work done. I found a composer, started getting legal stuff situated, commissioned a few tracks, laid out the design for the rest of the game, and many other things. I’m very anxious to show off our Composer’s incredible talent, but that will have its own blog post.

Until next time,

Cheers!

Dev Log 9 – Wake Me Up When September Ends

Hello again!

Life has been getting in the way (in a good way), so I’ve had very little time to spend working on my game, and even less time to keep up with this blog.

It’s been a few months since I’ve updated the Dev Log, so I’ll be doing a lot of catch up. For that reason, this blog will cover the entirety of September 2016 and I will be trying to put out blog posts much more frequently in order to catch up. But that’s enough excuses, let’s get on to what you’re here for!

By September 15th:

Every hero needs a villain. That’s I made our hero’s arch nemesis… STRANGE BLUE CYLINDER THING! This test enemy was whipped up using standard shapes in Unity and some quick catscratch code.

You may remember me telling you about a field of vision script I wrote earlier… this little guy uses that script as a means to see the player. Whenever he can see the player, he follows the player until he dies, or he can no longer see our hero. If our hero stomps on his head, STRANGE BLUE CYLINDER THING              will die a quick, poorly animated death.

By September 17th:

That retro CRT filter is pretty cool (if I do say so myself), but something about it just didn’t quit feel nostalgic enough. That’s why I implemented a 4:3 aspect ratio for pure, retro, tube TV goodness.

At this time, I also implemented a camera mode that positions the camera directly behind the player when the ‘R’ trigger is pressed. If it is held, the camera stays behind the player. Eventually, I will evolve this into some sort of “lock-on” targeting system.

I also messed around a bit with some shaders to get some cool looking lava by using the same texture I made for grass.

By September 25th:

I want the characters to start feeling more real. They need to have some weight to them. That’s why I added a function in the player script that makes our hero lean in the direction he is running.

In any platformer, it’s important to be able to see where you’re going and to be able to assess any situation. So…. I started tooling around with ways to give the player more control over the camera. It may be wonky at the moment, but the player can rotate the camera around our hero via the right control stick, and by clicking the right control stick, the player can select between camera follow distances.

3D platformers can be tricky and unforgiving. That’s why many 3D platformers started implementing the infamous “double jump.” Now our hero can do that too!

Slight adjustments were made to the moving platforms as well. I’m constantly trying to make these things less jerky.

By September 30th:

At this point, I needed a break from scripting and started messing around with level design. I wanted to practice using non-default 3D models for designing levels within Unity.

I also threw in a cute little cartoony skybox. 😊

All in all, September was definitely one of my more productive months. Here’s to hoping September 2017 is like that too!

Until next time,

Cheers!

Dev Log 8 – How Long Does It Take?

In this dev log, I will be discussing progress as of September 11th, 2016.

On September 6th

  • I borrowed a song from an all-time favorite game, Banjo Kazooie, in order to make testing my game more fun for the time being
  • I thought of a simple way to implement a neat tall grass effect
  • And did some more testing with moving platforms. At this point, the platforms were working much better.

By September 11th,

  • I had made a CRT filter to give the illusion of playing on an old-school CRT TV
  • Implemented water and swimming (with animation)
  • Programmed an actual difference between walking and running (as well as an animation for each)
  • And one of my biggest struggles to date: writing a “Character Field of View” script and having the player notice certain objects as they come into his view. This involved projecting a series of raycasts from the player, then indexing all objects in the field of view, determining the best target, and rotating the players head to look at that target

Also, there’s something else I’d like to go ahead and touch on. I’ve had people approach me with two different mindsets. I’ve heard some people say: “It seems like you’re putting in a lot of hours to this. I don’t think I would have the time to actually get into this.” Or “Wow, this progress seems to be coming really fast, you must be putting in way more hours than I thought.” So, I’d like to address the issue of time spent on this hobby.

Obviously, the amount of time I am able to spend on this varies from week to week. And some days I do feel a little burnt out, but other days I can sit in front of my computer all day and grind away at it. On average, (during weeks where life doesn’t get in the way) I’d say I probably put about 10 hrs into it. Which may sound like a lot, but it really isn’t. This generally means ~1hr every week night and ~2.5 hours on Saturday and Sunday. I am fortunate enough to have a 9/80 work schedule that gives me every other Friday off, so I do try to use that to my advantage. Some weeks I’ll only work on Friday, but I’ll treat development like it’s my full-time job that day.

Regardless, the great thing about this hobby is the convenience. I can work on it just about any time, just about anywhere. Going home to visit family? Take your laptop and work on it for 30 minutes to an hour after everyone goes to bed. There’s no crucial time-sensitivity. And most importantly, it’s easy to put down and pick back up at a later date.

I think you’ll find that the more you practice, the better you’ll get (duh); and when you get better, it becomes drastically more fun. When you start out, you do most things by mulling over it for 20 minutes scouring the web for 30, implementing it for 15, debugging for 50, and celebrating for 5. Once you get to the point that those standard things take you about 20 minutes from beginning to end, you start seeing results much faster, and it becomes much more rewarding. And believe me, it doesn’t take long to get to that point. Keep at it for a few months, set the Unity Scripting Reference to your home page, and research EVERY unfamiliar term you come across. You’ll get there in no time.

Until next time,

Cheers!

Dev Log 7 – Finally Starting to Look Like a Real Game!

In this dev log, I will be discussing progress as of September 5th, 2016.

In this week, I made quite a bit of progress.

  • I made a (very temporary) test level in which to try everything out.
  • I threw in some (temporary) royalty free music to breathe a little more life into game.
  • I made some better animations for walking, running, and jumping, as well as a new falling animation.
  • I programmed some moving platforms and found that the physics start to get real wonky when the player is interacting with moving platforms due to the physics causing a collision every time it bumps the player.
  • I did a little fine-tuning on the camera.
  • I made a custom shader for the player to make his colors pop, and so that he would have a little bit more of a N64 look. Here’s a great video that discusses writing your own shaders: link

And of course, a video of everything in action:

Until next time,

Cheers!

Dev Log 6 – Progress as of 30 August, 2016

On August 26 I sat down to do some brainstorming and concept art. I eventually came up with this piece of MSPaint concept art for my main character. He would be a Lion with a sweet Hawaiian shirt.

Leo Mouth 3 Hawaiian Shirt.png

After I locked down the design of my character, I set out to find a talented 3D artist who could make a character model in the style I wanted.

I eventually stumbled across a few pieces of art done by Littlenorwegians (AKA Fredrik Strøm) on Deviant Art. These pieces of art (1 and 2) showed me that he was perfect for the job.

I got in contact with Fredrik, we negotiated pricing, and a few days later he had turned my crappy MSPaint drawing into this stellar character model.

Lion (Commission) by Littlenorwegians

So, I made a few rudimentary animations, threw the model into Unity, made a few minor tweaks to movement and physics and that’s what gets us to the point of this video:

Until next time,

Cheers!

Dev Log 5 – I’m Back!

Development on my game has largely been on pause for the last couple months. My wife and I bought a house, Holidays of course got in the way, and what little work I have done has mostly been administrative. But now that we’ve moved, things have settled down, and I got my new office set up, I’m ready to hit the ground running again!

Throughout most of December and January, I was doing a lot of the groundwork to have things in place for when we are ready to file in order to be an official company. That date is probably far away, but almost everything is in place for that process to be simple.

When I wasn’t working on that, I was conducting a talent search. I posted a classified ad on reddit’s /r/gamedevclassifieds looking for a composer. I received an overwhelming response. I think I had something in the neighborhood of 40 composers submit their portfolios. I spent many hours listening to and comparing tracks. I eventually narrowed it down to about 12 composers who had the relevant skills I was looking for and came at a reasonable price.

At this point, I came up with a challenge. I asked these 12 composers to whip up a sample track inspired by Grant Kirkhope and David Wise to demonstrate that they could capture the sound I was looking for. Most of the submissions were fantastic. But there were ~4 that stood out above the rest. One far exceeded the budget, but the other 3 were roughly the same price. After hundreds of repeated listens to each track, I narrowed it down to two people. When I couldn’t entirely decide, I ultimately selected one person as my primary composer and asked the other to do a few tracks down the road.

I am very excited to be working with this composer, and I can’t wait until such time that I can reveal who it is and show off their work.

Anyhow, I’ll discuss this selection process in greater detail in a later post (when the dev logs catch up to that point in the process). For now, let’s get back into the early stages of development.


In this dev log, I will be covering progress as of 25 August 2016.

In first the Dev Log covering the actual development (Dev Log 4) I was merely experimenting to learn about how I might implement some of the things my game would require. Almost everything you see in that previous video was scrapped as I started from scratch on what would eventually become my game.

I created a new test world with floating platforms to jump on and items to pick up. I created a placeholder character, and then eventually animated him. I reused a few of the physics scripts from the previous build, and started over with the camera scripts. At this point, the physics and camera have become much more stable and I spent hours fine-tuning the movement to look more smooth.

This process also helped me to learn how to create dynamic animations within Unity and control said animations through scripts.

As always, feel free to shoot me anyway questions you may have. I’ll be glad to answer them and perhaps edit this dev log to cover your inquiry.

Until next time,

Cheers!

Dev Log 4 – Let’s Get Into It

When I was younger, I messed around with several game engines (GameMaker, GameSalad, Construct, FPS Maker, RPG Maker, etc.) but I never felt I had the skills necessary to put together a complete game. So what I would do is something I would call “concept sessions.” I would come up with an idea for something I would want to incorporate into a game and just prototype it to get it working. What this did was allow me to play around and become familiar with the engine and game development in general.

During these sessions (usually in GameMaker) I would sit down and try to have my goal accomplished in one sitting. Next time I sat down in front of my computer, I would do a different concept. Eventually I would have learned enough of these skills that I could eventually put them together in a game.

I remember a few in particular where I made an inventory system. Then I made a 2D Zelda-style combat system. Then I made a cut-scene system. After making all these, I decided to make a prototype for a 2D version of Legend of Zelda: Ocarina of Time. Putting these skills together, I found an A Link to the Past tileset, a custom Ocarina of Time Link spritesheet, along with a custom deku tree spritesheet, and the official music to put together my own little custom 2D “demake” of Ocarina of Time. It ultimately paled in comparison to the more famous Ocarina of Time 2D fan-game (which appears to have been revived recently), but it was a huge step into my journey as a game developer.

Many of these concept sessions have been lost to the tides of time, but I’m hoping I can dig up a few for future Dev Logs.

I say all that to say this: the Bodhi Games conquest started with a measly one-night concept session. Thanks to the wonders of version control, I am able to show it to you today. The following is a video of my progress as of 20 August 2016.

In starting this concept session, I knew one thing: I wanted to make a 3D Platformer. So, I started with the basics.

The first thing I did was make a capsule with funny looking eyes and a mouth. Then, I sought to make a simple character controller to control 3D movement, jumping, sliding, floating, gravity, and simple physics.

I pieced the script together in a couple hours based on things I had picked up from several tutorials and concept sessions in the past. In the end, the player script ended up looking something like this: (WARNING: Bad/Messy code ahead)

using UnityEngine;
 using System.Collections;
 
 public class PlayerScript : MonoBehaviour {
 
  //public vars
  public float moveSpeed = 5;
  public float moveSpeedSmooth = 0.3f;
  public float rotateSpeedSmooth = 0.3f;
  public float jumpSpeed = 20;
  public float jumpAllowTime = 0.1f;
  float jumpAllowTimeTrack;
  public float airControlSmooth = 0.8f;
  public float gravity = 9.8f;
 
  float moveSmoothUse;
 
  float currentForwardSpeed;
  float forwardSpeedV;
 
  float targetRotation;
  float currentRotation;
  float rotationV;
 
  Vector3 currentMovementV;
 
  //private vars
  CharacterController controller;
  Vector3 currentMovement;
  Transform cameraTransform;
  float verticalSpeed;
 
 
  void Start ()
  {
  //set CharacterController var
  controller = GetComponent();
 
  //set camera
  cameraTransform = Camera.main.transform;
  moveSmoothUse = moveSpeedSmooth;
  jumpAllowTimeTrack = jumpAllowTime;
  }
  
  void Update ()
  {
  //calc movement
  Vector3 horizontalInput = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
  if (horizontalInput.magnitude > 1)
  horizontalInput.Normalize();
  Vector3 targetHorizontalMovement = horizontalInput;
  targetHorizontalMovement = cameraTransform.TransformDirection(targetHorizontalMovement);
  targetHorizontalMovement.y = 0;
  targetHorizontalMovement.Normalize();
  targetHorizontalMovement *= horizontalInput.magnitude;
  //currentMovement = targetHorizontalMovement * moveSpeed;
  currentMovement = Vector3.SmoothDamp(currentMovement, targetHorizontalMovement * moveSpeed, ref currentMovementV, moveSmoothUse);
 
  //rotate to match direction of movement
  //Quaternion targetRotationQ = Quaternion.LookRotation(Vector3.forward);
  if (new Vector3(currentMovement.x, 0, currentMovement.z).magnitude > 1)
  {
  targetRotation = Mathf.Atan2(currentMovement.x, currentMovement.z) * Mathf.Rad2Deg;
  transform.rotation = Quaternion.Euler(0, Mathf.SmoothDampAngle(transform.rotation.eulerAngles.y, targetRotation, ref rotationV, rotateSpeedSmooth), 0);
  }
 
 
  //apply gravity
  if (controller.isGrounded)
  {
  moveSmoothUse = moveSpeedSmooth;
  verticalSpeed = 0;
  jumpAllowTimeTrack = jumpAllowTime;
  }
 
  if (!controller.isGrounded)
  {
  moveSmoothUse = airControlSmooth;
  verticalSpeed -= gravity * Time.deltaTime;
  jumpAllowTimeTrack -= Time.deltaTime;
  }
 
  //jump
  if (jumpAllowTimeTrack >= 0 && Input.GetButtonDown("Jump"))
  verticalSpeed = jumpSpeed;
 
  currentMovement.y = verticalSpeed;
 
  //move
  controller.Move(currentMovement * Time.deltaTime);
  }
  public AudioClip pickup;
  //triggerenter
  void OnTriggerEnter(Collider other)
  {
  if (other.gameObject.CompareTag("pickup"))
  {
  AudioSource.PlayClipAtPoint(pickup, transform.position);
  Debug.Log("Sound Now");
 
  other.gameObject.SetActive(false);
  }
  }
 }

Anyone who has done any amount of development knows that this is some bad code. I show you this so the rest of my posts can serve as an example of what can be done by someone without amazing programming skills.

The next thing I did was write a script to make the camera automatically move around and follow the character at a specific distance, “smoothly” rotate around the character, and look at the character at the end of every frame.

Once all this was done, I messed around with a few other things I thought I may want to incorporate into my game. I made a couple torches with dynamic lighting and particle effects, I messed around with some custom shaders, I incorporated some collectibles into the game, and I placed some blocks and a ball in the environment to test the physics.

What I ended up with was my game in its infancy.  It’s not much to look at, and it’s super frustrating to play, but it was the first step in my quest to finish a game.

Until next time,

Cheers!

Dev Log 3 – Creative Tools

In your journey to making your first game, you may be surprised as to all the elements that go into making a game. For many games you will have code, 3D models, animations, textures, 2D art, pixel-art, video, music, and sound effects. If you plan on making a game on your own, these are all things you will have to learn how to do. If you plan on making a game with help from others, it’s still important to understand the processes involved in creating each of these things.

In this post I will be talking about my preferred tools for each of these things, some alternatives, and why I chose what I did. I will discuss the process of creation for each of these elements in future posts as they come up later in the development process, but for now we’re just going to talk about choosing the right tool for the job.


Code

To write code, you’re going to need a code editor and/or IDE (Integrated Development Environment) there are many you could choose from, but I personally think this is going to be the easiest choice. On both Mac OS and Windows, Unity comes bundled with MonoDevlop. MonoDevlop is a very capable, full-fledged IDE. You don’t really need anything other than MonoDevlop.

HOWEVER, because Microsoft Visual Studio recently released Visual Studio Community which is a free, full-fledged IDE in the Visual Studio environment, I am going to recommend this. It should also be noted that Microsoft JUST released Visual Studio for Mac. The Mac version is still in preview, and I haven’t tried it yet, so for now I’d stick with MonoDevelop on Mac, but keep Visual Studio on your radar.

If you already have Visual Studio Professional or Visual Studio Enterprise for some reason, or if you can get it free as a student, do that. The extra features are nice, but not worth the $500 price-tag if you are paying for it yourself.

Conclusion: If you’re working in Windows use Visual Studio Community unless you have access to Visual Studio Pro or Enterprise. If you’re working in Mac OS, use MonoDevelop but keep Visual Studio on your radar and maybe try it out. I use Visual Studio on my PC, and MonoDevlop on my Mac.


3D Modeling

There are several 3D Modeling programs worth considering. Which one will suit you best depends on your needs, so I will rate each on a scale of 1-5 in each of the following criteria (5 always being the most positive measurement): Learning Curve (5 being the easiest to learn), Power (5 being the most powerful), cost (1 being expensive and 5 being free), and Features (5 being the most feature-rich.)


Sketchup

Sketchup has the advantage of being extremely simple and easy to learn. However, this ease of use comes at the cost of being able to make more advanced models. For that reason, I recommend Sketchup to anyone needing quick models for prototyping or someone who only needs very simple models. It’s great for environments, buildings, etc. But not so great for characters due to it’s inability to create animations.

Learning Curve: 5

Power: 1

Cost: 5

Features: 1

sketchup.com


Blender

Blender is my personal favorite modeling program. It is available on both Mac and Windows. It is fairly simple to learn, and you are really only limited by your own abilities. Plus, it makes animation fairly simple. There are some amazing things that have been created in Blender.

I recommend Blender for anyone willing to take the time to learn, but whose main focus is on something other than 3D modeling.

Learning Curve: 3

Power: 4

Cost: 5

Features: 3

Blender.org


AUTODESK Environment (Maya)

Maya has long been one of the most popular programs for 3D modeling. In 2005 they were purchased by AUTODESK (the creators of AutoCAD) and they recently incorporated it into their new Indie Game Maker environment as seen on the Indie Game Maker Hub, this environment incorporates SketchBook (for 2D art), Maya (for 3D Modeling) and Mudbox (for texturing). I will discuss the rest of the environment in their respective sections, but for now we will just be discussing Maya.

Maya is feature-rich, lightweight, and fairly easy to learn. If you’re familiar with working in AutoCAD, this will be an easy transition for you.

Maya is a great program and it would be my number one choice if not for it’s price. So, if you plan on making a large budget game, can get it free of charge through school or work, or don’t mind paying $185/mo or $1470/yr, I would recommend Maya.

Learning Curve: 3

Power: 5

Cost: 1

Features: 5

AUTODESK.com


Rhino3d

Rhino is an interesting program. It really only exists for very specific use cases. If you are creating a lot of models that need very mathematically precise curvatures and don’t mind paying a lot to get it, then Rhino is perfect for you. But I don’t really see it having a place in Game Development.

Learning Curve: 1

Power: 4

Cost: 2

Features: 2

Rhino3D.com


3DS Max

3DS Max, like Maya, is owned by AUTODESK. It’s uses are better suited toward modeling for video rather than games, but you can get it free if you are a student or educator. If you aren’t a student or educator, it’s pricing model is the same as Maya.

3DS Max is feature-rich, intuitive, and well-documented. I recommend it to anyone who can get it for free. Try it for yourself and compare it to Blender.

Learning Curve: 3

Power: 5

Cost: 1 (or 5)

Features: 4

AUTODESK.com


Cinema 4D

Cinema 4D is not intuitive, and it’s not cheap… That said, it’s a super powerful modeling program. You’re looking at around $200/mo, but if you’re willing to pay it, you will be getting a program similar to Maya and 3DS max with much better integrated texturing tools.

Learning Curve: 2

Power: 5

Cost: 1

Features: 5

Maxon.net


Conclusion

If you don’t mind paying exorbitant amounts, or if you can get ahold of one of them for free, Maya or 3DS Max is the clear choice. For the average developer, Blender is an amazing free program and should be the clear choice. If you haven’t figured it out yet, I use Blender and I love it.


Textures 

Many of the 3D modeling programs I discussed have built in tools for creating textures. For most instances you probably will not need a separate program for textures because you will be texturing your models. However, there are times when you will want to create independent textures to apply to a number of things in game (e.g. ground and wall textures). For these instances, and for quick prototyping, it’s nice to have a separate program in which to create textures.   

I don’t want to discuss any particular programs in this section, because I think it’s important that you use one program for general 2D art AND textures. So skip ahead to the next section to learn more about the programs you should use for texturing.


2D Art


MSPaint

This was a joke. Don’t use MSPaint for your game art unless your game is also a joke. 


ADOBE Photoshop 

Photoshop is the best option by a long-shot. If you are a student (or just have a student ID) you can get an Adobe Creative Cloud membership (which also includes Lightroom CC) for only $9.99/mo. A super reasonable price for such a robust piece of software. OR you can buy the software outright by getting an older version (cs4, cs5, or cs6) or get cs3 for free (but you will be missing out on a lot of features, and are better off using Gimp.

Photoshop


Gimp

Gimp is the free, open-source, long-time competitor of Photoshop. For a majority of small game-developers, Gimp will be more than good enough. It’s not quite as intuitive as Photoshop, but that’s a small price to pay for free software.

Gimp


AUTODESK Sketchbook Free

 Sketchbook free is a great tool for drawing concept imagery. Especially if you have a drawing tablet. I wouldn’t advise using it for in-game art, but to each his own. Perhaps a sketch-style in-game could be really cool, but I’d still advise using Gimp or Photoshop.

Sketchbook Free


 AUTODESK Sketchbook Pro 

Sketchbook Pro has a huge list of features that it boasts over the free version. It fits into the AUTODESK environment and isn’t too pricey. ($4.99/mo or $29.99/yr). I still wouldn’t use it for in-game art, but it’s a great concept-art tool.

Conclusion: if you can get it free through school or work, or don’t mind paying, use Photoshop. Else, use Gimp. They are both available on both PC and Mac. I have gone back and forth between the two and while I like Photoshop more, Gimp is certainly sufficient.

Sketchbook Pro


Pixel Art


PYXEL EDIT

There is a free version and a paid version ($9.00) of PYXEL EDIT. It is currently in Beta, so it is always growing and changing. I really like this program for editing tilesets and animations. Another big advantage to this program is that its UI is similar to Photoshop, so it’s intuitive to anyone coming from the Adobe Suite.

PYXEL EDIT is available on both Windows and Mac.

PYXEL EDIT 


PISKEL

 PISKEL is free, open-source, and in-browser. It is nice for making quick sprites for prototyping, but an in-browser editor just lacks the convenience needed for large-scale projects.

Fortunately, there are offline builds as well (for both Mac and Windows) but the program lacks many of the features found in other free editors.

PISKEL


aseprite

aseprite is the most feature rich pixel-art program available. At only $14.99, it is very reasonably priced, and it’s retro UI is very charming. This is the program I use for pixel-art, and only on rare occasion have I needed to import pixel-art into Photoshop to accomplish something I couldn’t do in aseprite. For most uses though, it is much quicker to start in aseprite rather than Photoshop or gimp.

aseprite


Tile Studio 

Tile Studio is an older pixel-art program and it is the one I used to use. It has most of the features one would need, but it hasn’t been updated in several years. Feel free to try this one out, but I recommend against using it as your primary editor due to its stagnant state. Also, it’s only available on PC.

Tile Studio 


Conclusion: Shell out the $14.99 for aseprite. The program is evolving quickly due to a great dev team. Help them out and get a great program in return. If you’re absolutely against paying for this program, stick with Gimp or go with the free version of PYXEL EDIT. 


Video 

When the time comes that you want to make an ad for your game or implement pre-rendered cutscenes, you may need video editing software. There are far too many to choose from, so I’m just going to discuss a few of my favorites.


ADOBE Premiere

ADOBE Premiere is my favorite video editing tool and it will allow you to do anything you need to do. Unfortunately, it’s a bit on the pricey side.

Premiere


Final Cut Pro

Final Cut Pro is just as capable as ADOBE Premier, and it has a more intuitive interface. Unfortunately, it is also on the pricey side and only available on Mac OS.

Final Cut Pro 


iMovie

 iMovie doesn’t boast near as many features as ADOBE Premier or Final Cut Pro, and it is only available on Mac OS, but it is extremely capable compared to other free video editing software.

iMovie


Sony Vegas

 Sony’s Vegas is the editor portion of the Catalyst Production Suite. It is extremely feature rich like Premier and Final Cut. Also like Premier and Final Cut, Vegas comes at a premium price. It should also be noted that Vegas is available on both Mac OS and Windows.

Sony Vegas  


Lightworks

Lightworks is available on both Mac OS and Windows and boats features that put its potential somewhere between iMovie and the premium products. Lightworks is free, but has an expensive premium option that allows for more output formats. It’s only disadvantage over iMovie is that Lightworks has a much steeper learning curve.

Lightworks


Conclusion: If you are looking for a free product that’s easy to learn and you have a Mac, go with iMovie. If you are looking for a more robust experience and want to take the time to learn, go with Lightworks free. If you are willing to pay, I recommend Premier, but you’ll likely want to try all the premium options’ trials and figure out which one you like best. I use iMovie for most of my stuff and shell out for a month of Premier whenever I need to do something I can’t accomplish in iMovie.


Music

There are too many Music creation programs for me to discuss. For this section I will give brief explanations for some of the top editors and discuss the ones I use.


Audacity 

Available on Mac OS, Windows, and Linux, Audacity is by far the best free audio editor, but creating music in Audacity can be a pain.

Audacity


Garageband

 Garageband, part of Apple’s iLife suite, is a fantastic free music creation tool available only on Mac. I usually use Garageband for making music because of the virtual keyboard option and the massive virtual instrument library.

Garageband


Abelton Live

Abelton Live is paid (though inexpensive compared to most of the software on this list at just $79 for the intro version), it includes a lot of built-in sounds, and has a relatively steep learning curve.

Abelton Live


Fruity Loops Studio 

Fruity Loops is certainly one of the most popular music creation softwares. It is costly, but has a large variety of feature you can read through here.

Fruity Loops Studio


Apple Logic Pro

 Apple’s Logic Pro is basically Garageband with all the features of a full-fledged music creation software. It is the go to for many professionals in the music industry and my personal favorite music creation program. That said, it is costly at $200 for the software license.

Logic Pro


Avid Pro Tools

Avid Pro Tools is my favorite program for interfacing with real instruments. Pro Tools if great for recording. The only disadvantage is the price, at $599 for a perpetual license, it isn’t cheap.

Pro Tools


Avid Pro Tools | First

First, the free version of Pro Tools is certainly my favorite free software to use when recording. It has most of the features from Pro Tools that the beginning user would need. Comparison

Pro Tools | First


Propellerhead Reason 

At $399.99, Reason is another premium product with a premium price. Its fans praise its UI and collaboration tools.

Reason


Sony Acid

Starting at $59.95, Acid is much less expensive that other premium tools, but I would say it compares most closely to Avid Pro Tools | First.

Acid


Steinberg Cubase 

Cubase is the only software on this list that I haven’t personally tried, but I have heard a lot of great things about it in the last few years, so I felt it necessary to include it on this list. At $549.99, it is not cheap. I’ve read great things about its MIDI editor and Score editor.

Cubase


Conclusion: If you are like me and want to make game music with a lot of built in instruments and don’t feel the need to pay for premium software that would take years to learn how to get the most out of and you have a Mac, you should use Garageband. If you don’t have a Mac, you should use Audacity. If you’re primary need involves a lot of recording, go with Avid Pro Tools | First. When I’m creating music for my games I use Garageband almost exclusively.


Sound Effects


Audacity

Again, Audacity is by far the best free audio editor. For most of your sound effect needs, this should be sufficient.

Audacity


bfxr

bfxr is an amazing, free tool for creating retro sound effects.

bfxr


Conclusion: The unfortunate fact of the matter is that there aren’t a whole lot of tools out there for creating non-retro sound effects outside of typical music-editing tools and sound effect creation is something that’s very difficult for a beginner to learn. I create some sound effects with modulations of instruments and recordings in Garageband and Pro Tools | First, but honestly, your best bet is probably going to be buying sound packs or hiring a sound designer. So instead of recommending a program in this section, I’m going to recommend some of my favorite places to get royalty free sound packs.

Kenney Assets

Noise for Fun 

99 Sounds

Freesound


 

I hope that this was of some help to you. Full-stack game development can be daunting at first, but breaking it up into small parts makes it doable.

If I left off any tools you think belong on this list, let me know. And don’t be afraid to question my preferences. After all, this entire post is essentially an opinion piece. Try several different products and figure out what you like best.

Until next time… just keep making games.

Cheers!

Dev Log 2 – Back to School – Learning How To Learn

For someone completely new to game development, learning can be intimidating. So in this post I am going to provide useful links and resources for learning game development.


Step 1: Learning the Unity Interface

In the last post I mentioned that one of my biggest reasons for choosing unity was the sheer volume of documentation and videos. Well, this is going to help a lot. Follow this link and watch the videos under “Using the Unity Interface” and “Essential Unity Concepts” to familiarize yourself with unity’s interface and some general development terminology.


Step 2: Make Your First Game

After watching the “Interface and Essentials” video series, you should have a decent grasp on how to use Unity. Follow this link and start with the Roll a Ball tutorial then work your way through some of the other ones. Even if you’re just following along copying the tutorial click-for-click at the beginning, some of the things will start sinking in.

While doing these tutorials, be sure to look up anything you don’t fully understand in the Unity Scripting Reference. This will really help you to familiarize yourself with the many functions within Unity.

After going through these tutorials, here is another (long) tutorial that I suggest.  Master Indie AKA ETeeski really knows what he’s talking about and discusses in great detail many parts of the game dev process. Unfortunately, he was unable to finish the tutorials due to issues with his team, but what he did complete is extremely helpful.


Step 3: Basic Programming

If you don’t have any prior programming experience, you may want to head over to Microsoft Virtual Academy to learn C# for beginners. The Unity tutorials mentioned in the previous steps will teach you to program within the Unity engine, but it’s good to understand Variables, Methods, Classes, Loops, etc. before you write any code. It may even be a good idea to get a grasp on these concepts before doing some of the beginner Unity tutorials.


Step 4: Join Online Game Dev Communities

Make a Reddit account and subscribe to the following subreddits. Browsing through these frequently will help to maintain an active interest, find new ideas, and even get help. I have emboldened the ones that I think are the most useful.

/r/Unity3D

/r/Unity2D

/r/unity_tutorials

/r/gamedev

/r/devblogs

/r/TheMakingOfGames

/r/gamedesign

/r/gamedevclassifieds

/r/gamedevscreens

/r/indieDev

/r/indiegames

/r/indiegaming

/r/indieGamesToConsole

/r/playmygame

/r/gamejams

/r/playtesters

/r/LetsPlayMyGame

/r/leveldesign

/r/learnprogramming

/r/programming

/r/AskProgramming

/r/ProgrammerTIL

/r/coding

/r/dailyprogrammer

/r/greenlightquality

/r/gamejolt

/r/blender

And follow a bunch of Game Developers and Game Dev groups on social media!


Step 5: Experiment

Just mess around and make a bunch of silly games. The best way to learn is to practice.

I hope this helped, feel free to contact me with any questions.

Until next time,

Cheers!