Design a site like this with WordPress.com
Get started

Day 27: Marketplaces

My goal as outlined in the Day 1 post was “to have a game published on Android and/or iOS and/or Steam.” I’ll have to add several other “and/or” marketplaces to the list I wasn’t aware of.

Epic Games Store (owner of Unreal engine, developer of Fortnite) launched just this past December and is planning to open the store for all developers in the second half of 2019. The store will be “engine-agnostic” meaning they will accept games made in any engine (including Unity!) Epic’s cut is 12%.

Itch.io was created six years ago this month. Although their default cut is 10%, developers can choose how much money the site will get per purchase.

Game Jolt has been around in one form or another since about 2004 but their marketplace didn’t open until 2016. Developers here also have the choice of how much of a percentage to give the site with each sale.

Kongregate was released in 2006. Their cut is 30% and they have a submission checklist that needs to be followed.

I’m sure there are many other marketplaces available for indie game dev’s to list their games on. There is so much more research to do in this area.

Assuming none of these marketplaces need exclusivity, is there anything wrong with launching across all of them simultaneously? Sure, mobile ports might need retinkering, but if the game is for PC/Mac, it should be fairly straightforward, right? Maybe? I guess I’ll be finding out soon enough.

Edit: It looks like I was trying to reinvent the wheel with this post – a more complete and better researched article can be read here on Ninichi’s site.

Tower Defense Tutorial Progress: 10/73

Onward!

Advertisement

Day 26: Game Dev Podcasts

My commute to work is 45 minutes each way so I finally downloaded some game dev podcasts to make use of the time.

I’m starting with GameDev Unchained but I’m open to any channel suggestions or even individual episodes that you’ve enjoyed.

Stack Exchange

Where have I been for the last decade: I just signed up to Stack Exchange and subscribed to the game dev community (Unity and C# specifically) so I can browse through questions.

I’m trying to immerse myself and learn as much as possible from multiple avenues.

Tower Defense Tutorial Progress: 8/73

Onward!

Day 25: Assets & Resources

This entry will be short…it’s been one of those days. Admittedly, I’m glad I started this daily blog because it forces me to accomplish something each day. It has been a great tool to keep me accountable.

I’ve set up this page to help me keep organized and for ease of reference. It will be updated with links to free assets, tutorials and other resources that I’ve found helpful or am planning to look into further. It’s still fairly sparse, but will add more as time goes on.

Tower Defense Tutorial Progress: 5/73

Only progressed through one video today, but it’s still progress.

Onward!

Day 20: ProBuilder

The final lecture of CS50G course introduced me to new concepts such as Raycasting, Render Texture & Texture Masking. I was also excited to learn about a free Unity tool called ProBuilder which allows you to quickly prototype 3D environments.

Windows -> All packages -> ProBuilder -> Install
(Then ProBuilder will show up under 'Tools')

Next up, I’m planning on following along tutorials from:

I’ll pick and choose game types that I find interesting and just jump in.

If you have any other favorite Youtubers with tutorials about creating Unity games from scratch, please share in the comments.

Onwards!

Day 18: Networking


It’s not what you know, it’s who you know.

A couple former coworkers who have recently gotten better jobs did so because of connections within the new company; they knew someone that already worked there. Without that ‘in’, they wouldn’t have a) known about the unlisted job position b) been selected for an interview.

It’s likely the same within the gaming industry. I need to connect. Listen. Share.

I’ve created a twitter account to get a pulse of what’s going on in that medium, as well as a Discord account so I can chat with others. (PAUSED#8024)

I haven’t gotten around to Facebook yet… maybe I’ll signup for a company page when I start a project. My plan is to start generating interest as soon as possible (Add to to-do list: read about indie game marketing)

Marketing myself is difficult. When I was younger, if I was ever dragged to any house party, I would socialize more with the host’s pets than other people. I’m naturally shy and dislike being the center of attention.

But to be successful, I’ll need to get out of that comfort zone. Put myself out there.

HarvardX: CS50G – Assignment

What I learned by committing some more beginner’s gaffes during the “Dreadhalls” (Hell Maze) assignment:

  1. Make sure to include all the relevant namespaces in the script.

One task was to transition to a “Game Over” scene when the player falls through a hole. Simple enough.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class playerFallCheck : MonoBehaviour
{
   void Update()
    {   
        if (transform.position.y <= -5)
        {
            SceneManager.LoadScene("Game Over");
        }
    }
}

Why was I getting an error? I checked over the syntax of SceneManager then double-checked I spelled my Scene exactly “Game Over.” I finally discovered I didn’t include the namespace that includes SceneManager at the outset of the script:

  using UnityEngine.SceneManagement;

2. Check the Unity Console often

I attached the playerFallCheck script to my PlayerController so that shortly after it fell through the floor, it would call the ‘Game Over’ scene. Except when I tested it and fell, the character would just continue to fall and fall and fall. The “Game Over” scene was never being called.

I went back to my script thinking the error somehow lay there. Instead, if I had checked the Console first, it was explicitly telling me what was wrong:

Scene 'Game Over' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
 To add a scene to the build settings use the menu File->Build Settings…

Once the ‘Game Over’ scene was added in build settings, everything went smoothly.

Below is how the finished project looks. I shrank the maze considerably so I wasn’t wandering around for too long. Also, because the spawn, end and hole locations are random and the maze itself is procedurally generated, the layout isn’t always the greatest. Okay, enough caveats:

Tomorrow I’ll watch the ‘Portal’ lecture and start that assignment.

Onward!

Day 17: pBooks

As much as I love technology, when it comes to reading I still prefer a physical book. Something about the smell of print, the texture of the paper, the sound of a turning page – I’m not sure what it is exactly.

I (pre)ordered C# in Depth (4th Edition) as well as Unity In Action (2nd Edition). It depleted my already empty wallet but I’m okay spending money in exchange for knowledge. I’ve already saved so much by focusing exclusively on free courses I thought I could splurge a tiny bit.

Today, I watched the HarvardX: CS50G lecture on ‘Dreadhalls’, the first-person game featuring procedural maze generation and will be working on the assignment:

  1. Spawn holes in the floor of the maze that the player can fall through (but not too many; just three or four per maze is probably sufficient, depending on maze size).
  2. When the player falls through any holes, transition to a “Game Over” screen similar to the Title Screen, implemented as a separate scene. When the player presses “Enter” in the “Game Over” scene, they should be brought back to the title.
  3. Add a Text label to the Play scene that keeps track of which maze they’re in, incrementing each time they progress to the next maze. This can be implemented as a static variable, but it should be reset to 0 if they get a Game Over.

Onward!

Day 16: Duality

It was getting cumbersome toggling between all the open applications but today I fortunately was able to pick up a second (very old) VGA monitor for free. Sure, my two screens are different sizes and don’t match but now when I’m coding I feel like Tank in The Matrix.

During my lunch hour I watched a GDC Talk from a few years back with Grey Alien Games’ Jake Birkett. He explains how to survive as an independent game developer without having a single hit game.

Jake kept a log of all hours worked and income gained from his projects and provided a lot of insight to the financial challenges of being an indie dev.

This evening I completed the assignment for the 3D Helicopter game and tomorrow I’ll go onto the next lecture – Dreadhalls – which features procedural maze generation and first person camera control.

Added diamonds that appear less frequently than coins, worth +5 coins. Also fixed the bug where the scroll speed didn’t reset after each game.

Onward!

Day 15: Casual Endless Flyer

The game dev lectures at HarvardX: CS50G, while informative, are not like the how-to tutorials you’d see on Youtube.

There isn’t a step-by-step creation process to follow. Instead, the game is already completed (everything including models, sounds, and scripts) and then after watching the lecture your assignment is to make certain tweaks or additions to the game.

The lecture for the 3D Helicopter game is ~2 hours and the instructor does talk in depth about the game, but I don’t feel this would be a good place to start if it was someone’s first foray into Unity.

I spent several hours going through the code and editor, trying to figure out and understand what was done and where.

My version of the helicopter game I have linked in the video below is basically what would be termed a ‘reskin.’

I created a new scrolling background in MS Paint (because I can’t draw anyways), new sound effects using Bfxr, new explosion effects dabbling with particle systems, added music from Bensound and changed the font, layout and model colors – but the core of the game – the 3D models and code are not mine.

Still, it was altogether a good learning exercise. I basically have the framework to complete a simple endless flyer from scratch but need to learn how to build 3D models in Blender, animate and import them. The game itself isn’t technically 3D…more like 2.5 since it’s 2D with 3D elements.

Royalty Free Music from Bensound
Airplane, helicopter & building model by HarvardX: CS50G
Coin font from Lecompte Free Font (Andy Lobjois)
Spinning Coin model from Proto Pack (PIXELATTO)

The assignment for this game is two parts:

  1. Introduce gems into the game that spawn just like coins but more rarely; each gem should be worth 5 coins
  2. There’s currently a bug where the scroll speed of skyscrapers and coins doesn’t reset on game over (hint: static variables don’t refresh on scene reload); find and fix this!

I’ll start working on this tomorrow.

Onward!

Day 12: Game Dev Course

I enrolled in Harvard’s free online course, CS50’s Introduction to Game Development, to see what it offered. The programming language Lua and the LÖVE game framework is used for ~75% of the course but they do cover Unity and C# at the tail end.

The instructor recommended using Bfxr for creating simple sound effects for prototyping your game. The good part about using this program is: “You have full rights to all sounds made with bfxr, and are free to use them for any purposes, commercial or otherwise.”

Another option he touched upon in the second lecture was to download sounds/music at https://freesound.org/. However, you need to check the license restriction for each individual file to see how it can be used.

I’ll probably skim through the Lua specific parts of the course while listening to the theory portions and then follow along closely starting in Lecture #8 when it switches to Unity for the 3D Helicopter game.

Onward!

Day 11: Roll-A-Ball Tutorial

The Roll-A-Ball game was an excellent introductory tutorial for Unity. It didn’t use any premade assets or scripts. You start from scratch, learning to create your layout, player controller, prefabs, and write simple scripts. A lot of basic game concepts were covered that could be expanded upon.

Roll A Ball tutorial completed

Below are some tips you might find helpful if you’re planning on doing the tutorial as well:

  • To have your Unity screen look like the instructor’s in the video, change layout: Window > Layouts > 2 by 3
  • If you want a shortcut to Unity’s API documentation similar to the one in MonoDevelop, in VSCode you can download “Unity Tools” extension by Tobiah Zarlez. Now when you highlight a term, right click and select ‘Unity Tools: Open Documentation for Selection’.
  • [Video 1/8, 1:26] If you’ve created the Plane and it isn’t visible in Scene view but you can see it in Game view, click on the Plane object, then go to Layer -> 0: Default and make sure it’s enabled.

Tomorrow I’ll look into Udemy courses and Harvard University’s CS50’s Introduction to Game Development.

Onward!

%d bloggers like this: