Author: Nav from Academy Of Games


6 Ways to Find and Interact and Collaborate with other people in the game industry


From making connections, getting jobs, learning new things, making friends in the industry, getting help and more! In this article we will look at how we can interact and connect with other game developers!

Many of us start our game development journey alone and it can be a challenge because we are so busy trying to make a game that when we do need help or advice or tips we rarely know where to turn. In this article I am going to dive into 6 (six) ways that you can find other developers and get connected more to the industry and thus collaborate, get tips, advice and more and become a part of it all!

1. Live Event Meetups and Social Groups

The following links are a great way to find local events in your area:
Meetup.com: Meetup is a great place to find local events simply by searching for ‘game developer’ groups in your local area. There are many various events targeted at developers (For example here in Toronto, Canada we have Hackernest and TechTO to name a few).
IGDA (https://www.igda.org/): The International Game Dev Association is a great place to find local events and many game developers are a part of the IGDA. You’ll find all kinds of great resources, including discounts and specials for various softwares and tools we all use (Ex. Unity Discounts, etc.)
Eventbrite.com: This is another great place to find local events going on in the software and development space. You’ll end up finding some great connections at many of these events.

2. Linked In Professional Connections

Another place is to get connections via LinkedIn. LinkedIn is the facebook of business and most people rarely carry business cards anymore. Everyone just has their phone and linked in with their QR Codes.
If you haven’t already, I recommend you go to LinkedIn and update your profile to make it look professional. Set it up in such a way that it matches your goals. For many its usually finding a job, so write down all you’ve done and all the game companies you’ve worked for and all the training and education you have. You should definitely write that you are a Unity Developer on there as well and remember that LinkedIn is generally considered an online resume.
Keep it clean, keep it professional and keep on connecting!

3. Discord Channels

Discord is another great place to find many developers and a go to resource for many. You can download discord today and start joining the various groups immediately. Here is the link to download Discord => http://discordapp.com
There are many game developer discord channels you can join which you can research online, but lets get you started by adding the OFFICIAL Unity Discord Channel using this link => https://discordapp.com/invite/unity
Other ones are generally available from popular YouTubers like Brackeys and Sykoo to Asset Store Creators who have discord channels for their assets. Do your research and find discord channels with developers you like to spend time with and have fun with.

4. Game Jams

Another place to find game developers who you can work with or connect with is at local game jams and online game jams.
Many times these game jams are done in short timeframes (Usually a weekend or 24/48 hour timeframes). One of the most popular ones is called Ludem Dare (https://ldjam.com/) and you’ll find many connections there with like minded developers.
NOTE: Some of these events cost fees, others will give away prizes and other fun things. Join what you want πŸ™‚

5. Game Colleges and Universities

Here in Toronto we have the George Brown College which has an incredible gaming program and education arm. In fact I’m writing to you from the George Brown Incubator for startup companies!
You’ll find many others who share the same passion for game development and gaming and there are always many events and student game developers in the industry learning at these colleges and universities, so its a great place to find connections and other game developers.

6. Game Expos

Finally we have our game expos. These are special events that happen throughout the world and throughout the year. The most prominent one being GDC which is a huge event for Game Developers worldwide and usually held in the United States.
Check to see which events are happening near you and you’ll be able to find some of these fun expos generally in major cities.

CONCLUSION

Connecting with your peers locally and globally is a great way to stay up to date with the latest stuff and really become a part of the game industry. You never know who you’ll meet and sometimes you may end up teaming up with other like minded developers and go on to create the next big hit game!
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Player and Targeting – Understanding Your Market and 6 Tips to Help You!


If you believe your game is for “EVERYONE” then you have already made your first major mistake and are headed for doom! Learn these tips in order to solidify a real market and increase your chance at success for your game!

Over the years creating so many games has taught me a lot of things. I didn’t come into the video game business to be a marketing guru, yet in order to sell games you need to understand marketing.
Those who research and plan their target market for their game have a better chance of hitting real success with their game than those who simply say that their game is for everyone.

1. EVERYONE IS NOT A TARGET MARKET!

This is the first big mistake I made as well as many developers who come into the game industry these days. You cannot assume that everyone is your market and that everyone is going to play your game. I use to sit there and say to myself, “These marketing people are crazy, my game really is for everyone, I mean my kids love it, my friends love it, my mom loves it, so I mean everyone loves it, right?”
The fact is that most of the times we are simply assuming things without actual real data or information on what our market really is. We cannot expect to succeed based on ‘feelings’ or simply unrealistic data like a friend or family member playing your game. Most of the times these people will say good things anyways because they are your friends and family. Other times you may have some critical feedback from friends and then make MAJOR changes to your game based on it only to discover that friend or family member was NOT your target market and ultimately you made a code decision that ultimately led you to a failed game.
Defining your actual market takes TIME and you can only discover this by looking at competitive games in the same market as an indie (Unless you have a big budget to go out and test various audiences to find your market – Thats a whole other can of worms and outside the scope of this article).
For example, lets take Match 3 games in general. If you google “Match 3 games player demographics” and then click on the IMAGES tab in a google search you will find all kinds of key data points. (Give it a try now => CLICK HERE)
If you look at the image results we see the following data points from this specific game genre: a. 81% of Candy Crush players are female with a median age of 35 (Quantic Foundry) b. 78.26% of Bejeweled players are female with a majority age range from 25-34 (Magmic) c. Short session times, they play while commuting, washroom breaks, in the living room, on their beds (Magmic)
From that data right there, if you go out there making your next match 3 game for a Male Child, you would have gone right against the trend based on the data above and completely put yourself at business risk and ruin. I’ve done that several times and had many failed games because of that SAME mistake.
Now I’m not saying you shouldn’t setup for those other markets, but do keep in mind that you should focus on those markets as a secondary or tertiary market rather than your main market after heavy research as to who your most likely players are.
Remember at the end of the day launching your game into the markets to make money means you are running a BUSINESS and must make sound business decisions. If it’s a match 3 game (As described in the example), your first target market should be the female market aged 30 approximately. This would capture the highest probability for your game generating revenues. Once you have secured solid revenues you can easily reinvest to test those other markets that you were planning.
However there is one catch to this data that I outlined above…it’s not complete, its just a few data points. You need more information to confirm your hypothesis of your target market…

2. YOU NEED MULTIPLE DATA POINTS!

I have gone through this several times. I made the mistake of just grabbing the biggest competitor on the block and assuming that their data would work for me. BIG LESSON => STOP COMPARING YOURSELF TO JUST ONE BIG COMPETITOR (Ex. FORTNITE / OVERWATCH / HEARTHSTONE OR OTHER MARKET LEADERS) and start getting multiple data points.
The reason this is so important is that the larger competitors out there have enough money and funding to test the waters with new demographics and markets and even new game genres. Unless you have millions sitting around to test, for example, a female market when making an FPS game (When the actual overall GENRE has nearly 66% male players – SOURCE: Engadget), then you’ll be going down the wrong rabbit hole and wondering why your game is doing so poorly.
As a smaller developer you should look to first hit the majority market so you can secure solid revenue streams and then reinvest that revenue in order to test out new markets that may be harder to hit (For example a male market in a match 3 game).

3. CREATE A PERSONA

A persona is a marketing tool used to help you visualize your most likely player. It answers questions such as, What does your player look like? Where in the world do they live? What language do they speak? What lifestyle do they live? Are they students? employees? parents?
A Persona will generally answer all these questions and more and give you a more complete picture as to who you are targeting. This in turn can be useful for your graphic designers when trying to come up with colors, look and feel of your game and much more.
Many times people just dive into making a game without thinking about the very players they are making the game for. Don’t make that mistake!
To help you start creating a Persona here are some useful tools and articles (After reading them, go and make a persona for your target player):
a. Personas: The Foundation of a Great User Experience (UX Mag) b. Sample Persona (UX Mag) c. Persona Generator (LINK 1) d. Persona Generator Hubspot (LINK 2) e. YouTube Video on Indie Game Marketing – View Tip 3 Specifically! (YOUTUBE LINK)

 

 

4. DO A/B TESTING TO HELP YOU CHOOSE!

Tell me if you’ve ever experienced this…you sat back considering a piece of UI or a design element you are planning to put into your game (It could be a new game mechanic like lifting and throwing objects or jumping through walls or something), and then thinking to yourself “That is so cool”…then you go and implement it and unfortunately the market of players does NOT think that item was “So Cool”?
What’s worse is if that item took you months to implement!
Listen I’ve been there before and the only way to avoid hours of lost work and dev time and possibly even money down the drain is to first do an A/B test with your target market of players.
What exactly is an A/B Test? I had the same question when I first started out. Basically put, you would take two or more items that you are planning to create (It could be a new game icon or a few new game mechanics) and then show them to your players side by side and ask them which one they would prefer. You then analyze the data to see what the majority likes more and that literally becomes what you finalize on and implement.
This one tip can save you potentially thousands of dollars and or hours of lost time going down the wrong direction and at the same time can alert you of potential future opportunities and revenue streams that can help enhance your game. There are several services and lots of information about A/B tests online (I recommend a google search on the topic) but please do take the time to do A/B tests, especially for things that could really change the course of your game. You’ll be glad you did!

5. DEVELOPERS ARE NOT YOUR TARGET MARKET!

This is just here because I’ve done this myself and have seen many devs do the same thing. We go out there asking other developers to “test” our game out and help us to find bugs. We then get feedback from them that the “game sucks” or they don’t like the game.
Once again it goes back to what I already said and that is to ask yourself if developers are your target market. If they are not (Which usually is the case), you need to really keep those opinions out of your decision making. It’s great to have dev friends test for bugs, but whatever you do, do not make the mistake of taking this feedback from devs as decisions on your game itself.
I know I’ve been there and sometimes in the dev world we are pretty much surrounded by other devs. This is a big point that I don’t want any of you to make that same mistake. Please please please remember => DEVELOPERS ARE NOT YOUR TARGET MARKET! (Unless you are making a game specifically for developers, like a game to learn programming or something like that, etc.)

6. BUILD A LIST OF PLAYERS IN YOUR TARGET MARKET

Once you have found your target market or audience, you should start marketing to them early. Go to the same forums, introduce yourself, join their communities and showcase your game early.
Start by building a mailing list and keeping those potential players up to date on game launch times and any updates you may have.
There are many places you can find your audience, from local communities (like meetup groups) to online social networks. I find facebook groups are generally easy places to start as well.
Look for places your target players congregate to and go to them. You’ll see better results from your game by doing this than to just throw your game up on the markets and pray for downloads. Those days are gone and with over 1000+ games and apps being placed on the main mobile markets each day you’re up against a lot of competition. You need to have a market of supporters so start early! πŸ™‚

CONCLUSION

So there you have some tips to help you with targeting and finding the right players for your games. Every genre of game has a different player type. I urge you to go out now and research your target market based on the genre of game that you’re planning to create.
For example I’m working on my next game which will be a MOBA MMO style eSports Game (Armies of Riddle E.X. which is planned to launch on Steam Early Access later this year). Based on the data (I did several google searches and gathered data on MOBA’s, not just one but many of them) I’m looking at a market with an average age range of 18-25 years old heavily male and located in places like China and North America.
Go ahead and try it out now and see if you can gather data from google and other sources to really find your target audience. Do some A/B testing and hopefully after all of this, gain a better understanding of your target player!
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Game Flow – How To Guide A User Through Your Game


Game flow has several forms, but in this article we will be going over two of the most obvious ones, namely Game User Flow and Game Play Flow

 

Game Flow, it’s a fancy statement but basically it is ultimately how our users experience our games. Now game flow can be broken down into several types of flows, the two most common ones being User Flow and Play Flow.
Game User Flow comprises of the actual location in your game that a player is, from the starting loading screen where they may see a company logo to a main menu to the actual game itself. How we move users through these various menu screens and game play is what I like to call the Game User Flow so hopefully you understand that part for now.
The second type of flow we will go over in this article is play flow. Game Play Flow or Play Flow is specific to the actual playing portion of your game. Basically it deals with the delicate balance between how challenging your game is to play versus how easy your game is to do the actions required to overcome those challenges. If game actions are easy to do but not challenging enough, users get into a state of BOREDOM. If on the other hand the game is too challenging and not easy enough then users get into a state of FRUSTRATION. The sweet spot is RIGHT IN THE MIDDLE of these, and that there is GAME PLAY FLOW. Trying to keep the player in that zone (In the “FLOW”) can be a challenge and you have to try and balance many variables to do so.
Lets break down each area and go over some tools and tips to help you as you implement both into your games.

GAME USER FLOW TIPS AND TOOLS

So in this part of flow, we are specifically taking users through menus and overlays and then back and forth between game play screens. It is very important that you plan this out in a flow chart style tool that will allow you to see where specifically your user is at any given time in the overall hierarchy.
Before you start working on your game, you should definitely define the game user flow using flow chart software. One of the ones that I use specifically is draw.io diagrams in Google Drive. Not only does it work quite well, it also allows you to collaborate with your entire team! Simply create a shared google drive folder and invite your team in and then have several team members work together to create the user flow.
What screen do we show the user first when they open the game? Do we go straight to a menu or is there a main menu screen? What are the buttons on that menu and where do they lead to? How many clicks before a player gets right into game play? What about when game play ends, where do we send the user on a victory? What happens if the user gets defeated, where would we send them then?
A full user flow flow chart will help you understand how your user will be moved thorughout the game and is a very important part of the overall experience. For games like Starcraft II or other eSports styles of games where the number of mouse clicks can literally determine victory or defeat, it would be extremely important to make sure that less mouse clicks are required to get right back to game play. Every game is different but keep these things in mind when you are designing your game.
Other games such as casual play mobile games may have a more simplistic menu system and user flow and thus may have smaller flow charts to make. Whatever you do, always make sure you have a flow chart to view what is going on and test out each user flow to make sure things happen as per your design. There have been many times that developers assumed that a screen takes a user to a certain part only to have users come back with bugs where they get held up on a certain screen they weren’t supposed to go to or get stopped in a location without a certain menu screen loading. This can be quite frustrating for users and thus could lead to uninstall rates and user attrition rates increasing.
Here are a few other tools I’ve used in the past in regards to building out my own game user flows: -Microsoft Visio -Lucid Chart -Smart Draw -Dia -yEd (You can easily google any of those above)

GAME PLAY FLOW TIPS

Game play flow is even more important than user flow (yes I know both are important, but this one is even more important if you want players to say your game is a great game). If you have very complex mechanics and require a lot of skill for players to achieve success in your game, you may have a game that loses players early.
If on the other hand you have a game that is so easy to play and no real challenge to it, it becomes boring. You really need to figure out a good set of mechanics and challenges to throw in to make your game both easy to play and challenging as well.
Take for example Hearthstone (Made with Unity 3D by the way *WINK WINK*) which has simple actions to pick up and place cards and for players to battle. It is well balanced in terms of game play flow and the use of Mana Crystals helps to increase the challenge over time (So that the player does not get bored).
Several other mechanics exist in the game to add just the right amount of challenge to keep the player interested and thus build a delicate balance between easy to play and challenging events.
In your games I want you to think about how easy it is for a player to play your game. Do they have to move around an environment? How many button options do they have to hit (Ex. Fire a Weapon, Block an Attack, Jump, etc.)? How advanced are the puzzles?
Sometimes the answers are not always clear and in those cases I recommend doing A/B testing to see how many users actually accomplish the tasks and also how many of them enjoyed the process. Remember, when a user is in a state of flow, they are actually enjoying the game a lot and would easily play your game again. Those who do not get into that state will end up deleting your game for another game that has a better game flow.
In Overwatch their game flow increases over time but then gets adjusted via save points or checkpoints. Many games use the concept of checkpoints to help keep the player challenged enough but not get too frustrated having to start over from the beginning of the level.
Most games start off in a state of low energy (meaning the players are resting or learning their environment or waiting for something) for around 30 seconds to a few minutes. After that players are generally taken into a more intense battle sequence only to repeat the process in greater and greater increments each time.
Take for example League of Legends that takes players through simple battles that get more and more flamboyant each time and thus keeps the players state of flow going along with the game. Players go from states of high battles to low power ups while waiting to regenerate. We see a similar situation in Overwatch where players battle with guns and then are regenerated in their home bases after being killed.
Think about this when creating your own games and when you do find that sweet spot between easy actions/mechanics with enough of a challenge to make things interesting, you will have a game that players will want to play over and over again and in my opinion is a sure HIT!

CONCLUSION

So now you know more about Game User Flow and Game Play Flow when it comes to video games. I hope the tips and information laid out here will help you in your games and please do click on the reference links above to continue your research even more.
Feel free to come watch me live on twitch where I teach game development and these same training’s using the top games such as League of Legends, Starcraft II, Hearthstone, Overwatch, Fortnite and many other top games! https://www.twitch.tv/academyofgames0
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Pathfinding Basics, Concepts, Tips and Ideas


Pathfinding is the process of navigation that is used in moving an object from one point to a second distinct point in space and the logical steps to do so.

The simplest form of pathfinding is between two points with empty space in between. More usually however we generally tend to have objects (Such as walls, objects and other terrain) in between those two points. Pathfinding can get even more advanced when the computer has to detect moving objects (also known as dynamic objects) as end points or moving end points, as well as other more advanced situations where we need to simulate human style realism within the AI Pathfinding that we choose to use.

 

 

In this article we will go over several pathfinding methods (There are many, I’ll just focus on a few I’ve learnt and used personally) as well as some amazing assets that can help you with pathfinding as well in your own games!

SEVERAL PATHFINDING METHODS

Basic pathfinding involves finding the SHORTEST path between two points. Given a starting point and an ending point, we would provide the logic or code to the computer to calculate the shortest distance. As easy as this is, it’s not realistic as most games rarely have a straight path between two points and generally tend to have many obstacles in between. Other things to consider is if we are using pathfinding for our PLAYER characters (Ex. using touch based input or allowing a player to navigate, in this case the end points are chosen by a player) or if we are going to have pathfinding for our friendly NPCs (Ex. A Pet or a Friendly Character) or for actual Enemy Characters (Ex. A monster or something that is trying to attack the player).
In pathfinding we use the terminology of NODES (Which is simply saying a point in space), however many articles and stuff you may find in regards to pathfinding will use the node terminology.
There are some very extensive mathematcial calculations involved with finding the shortest path which I wont go into in this article (You can check the reference links above for a more in-depth look at it all), but understand that when you have obstacles in between, finding the path becomes more challenging.
Lets break down the various pathfinding concepts based on the following: a. Player node pathfinding b. NPC node pathfinding c. NPC node follow player via BREADCRUMBS d. Enemy node pathfinding e. Enemy AI style node pathfinding After that we will go into Unity 3D and how we implement basic pathfinding using the NavMesh system as well as several assets available on the asset store to help you with all the pathfinding concepts I have listed above and including even more advanced pathfinding methods like A*.

1. PLAYER NODE PATHFINDING

Player node pathfinding is when we have a player move from one node to another in the shortest possible way. This is a great method that is useful for point and click style games such as many strategy games (Ex. Starcraft) and moba games (Ex. League of Legends). You’ll find that the challenge lies in obstacles in the way and how to avoid such obstacles.
The key thing here that is specific to this form of pathfinding is that it is PLAYER DRIVEN. That means that the user specifies WHERE the final node is placed. It is in general not a consistently moving/dynamic item but is changed ONLY when the player decides to move the end node. For example in League of Legends, when a player clicks in an area, the hero will move to that point. If they do not do anything, the end node is set and no other calculations will be done other than finding the shortest path between that last clicked point and current location of the player.
I personally use things like the Unity NavMesh system that allows players move around these obstacles. It can be a challenge however when trying to have players move between two points as you can run into various issues, such as for example when there are no paths (Something blocking the player from moving or no paths could be calculated) or if your navmesh in unity is not setup correctly (If you miss an area when defining your navmesh, it wont be walkable, OR if you miss adding the right layers, it wont be baked correctly OR if you forget to bake your navmesh…ya you can tell I’ve done this several times LOL!).

2. NPC NODE PATHFINDING

Similar to the player node pathfinding, npc node pathfinding uses input from several sources which could be user input, computer input or environmental input or a mix of several input types.
a. User Input This is the exact same as player pathfinding where the actual player clicks on a location for their NPC to go to. Think of a strategy game like Starcraft where you click on a location that your various NPC characters all go to. In other games this could be a pet or other character you can control that is NOT your main playable character. b. Computer Input This is where the computer calculates an end node or point for the NPC. Things such as roaming characters or randomly moving NPC characters are a great example of this. You can use this method to have the computer place an end node a certain distance away from the start point randomly and then have the NPC go between those points back and forth and do that again. This method is usually known as guard mode or random movement mode and you can set the radius for the NPC to move back and forth in. For example imagine people inside of a little town who are moving around a zone randomly or friendly NPC’s that move back and forth seemingly guarding an area. As stated, these NPC characters have a predetermined radius of movement and depending on what they are (A character that can attack others or simply a bot in your game for helping the player) they may even have activation ranges and zones (Ex. if an enemy were to come within this NPCs activation zone while it’s moving, it may be attacked. For example think of a minion in Starcraft such as a zergling or a zealot that attacks automatically when another enemy character comes within a certain ‘activation’ distance).
c. Environmental Input This is where the environment determines the end node. You can think of a boulder for example coming down to hit your NPC characters, and then based on that the NPC characters are either pushed or move out of the way if that boulder is within a certain activation distance. At that point the path that those NPC’s take is determined by the direction of the environment obstacle. There are several places you can use this method which is still under the computer input category in general however no action or movement takes place UNTIL an environmental change. There are many more variations that occur and even mixtures of types of input but these are just a few I decided to put in that I’ve personally used or seen in games.

3. NPC NODE FOLLOW PLAYER VIA BREADCRUMBS

So you have a pet or other NPC characters that need to follow each other (Think of Starcraft groups of minions who need to follow each other at times or in League of Legends where the minions all follow a line pattern and follow each other based on the last position of the NPC ahead of it). In these situations where we want to track a path that has already been taken either by the player or another NPC we would use a breadcrumb system.
Simply put, just like in the childrens stories about breadcrumbs to follow them back home, a similar concept is used where the NPC character or player character drops nodes of their last position as they move to their next position.
At that point the computer or NPC character goes to that dropped node as the end point and then converts that node to a start point while looking for the next dropped node that the Player or NPC character will drop.
This is used heavily in many old school games that have enemy NPC’s that follow the player around. It gives a more realistic feel without having the computer go directly to the player in one shot but follow the player path. In a racing game for example, you could use this method to get a recording of the player or simply put an enemy car in the last node points to simulate a very basic enemy system in a racing game.
I’ve seen many games use this style of pathfinding to have a pet follow the player for example. There are many uses for breadcrumb pathfinding but it cannot be done without having at least one other object that is dropping breadcrumbs consistently (breadcrumbs in this case are simply empty 2D/3D empty objects in space that specify a location.

4. ENEMY NODE PATHFINDING

This is where an enemy character moves along a path. There are many methods, however I’ll be going over specifically the following methods => enemy to dynamic player, Breadcrumbs and enemy via waypoints.
a. Enemy To Dynamic Player When a player is moving constantly (Such as in an FPS Shooter game), the computer must recalculate the end point (Where the player is) in a real time way. This can take a solid toll on the computer processor and so other methodologies such as estimation of the players next possible location or other methods are used to help reduce the ongoing calculations. Sometimes if an enemy character has an activation distance, then as long as the enemy character gets within range of that, the actual calculations wont have to be done as regularly. There are many methods that are used to help reduce the cpu load however keep in mind that it is very taxing on a computer processor to constantly calculate the end points of a moving object. As I said, there are several great methods out there that help. I personally use Unity NavMesh and even sometimes A* pathfinding however it is not needed for every type of game. Find which one works for your specific game as each game is different. Always keep in mind that dynamic pathfinding is costly on the processor and if you have a LOT of moving objects all trying to find a player, it can definitely slow things down. b. Breadcrumbs (Enemy Follow Player) As I outlined earlier, breadcrumbs are very useful methods to both reduce down the computer cpu usage and also still provide enough of an experience of enemies chasing your player. The concept once again is simply dropping a point in 2D/3D space over a given regular time or distance. For example I could drop a node every 5 units or I could drop a node every 5 seconds. My enemy would then use that node as the end point and go to that node and await another node OR attack if it is within range of the player.
c. Enemy Via WayPoints Waypoints are a group of nodes that are generally PRE-DEFINED (but not always). The enemies will take those node paths and follow along those points. Great examples of uses for WayPoint systems include racing games (Where cars are meant to go around tracks which are pre-definied) or games such as Tower Defence (TD) games which have pre-built paths of movement.

5. ENEMY AI STYLE NODE PATHFINDING

This is more of an advanced style of pathfinding that includes things such as calculated emotions and is used in games to simulate a human style behaviour.
In the older days, games were very static and very unrealistic even with all the various movement types as I outlined above. The thing that was always missing was the human element.
To counteract that, some devs over the years started implementing things such as Emotion calculations into the mix and in today’s world we have even more advanced AI systems that make game play even more challenging.
I’ll go over the example of emotions but understand there are many new AI models for enemies being built all the time to really give players a challenge. Sometimes the shortest path to the player may not be the BEST path to the player. Be careful however as some of the methods you implement could become too hard for people to beat.
When it comes to emotions, if you put in calculations such as fear or anger you can add an additional dynamic to movement of your enemies. For example, maybe you could have the enemy move the path FASTER if it has an anger value of 80%+ or you could have the enemy run away to another node if it’s fear goes above 50% (At which point it could choose a new path back to its original position). Playing around with these types of values can give a more realistic enemy and/or npc movement and path and thus could make players truly enjoy certain things.
These are just ideas but I’ve seen several games that implement various pathfinding changes based on things like emotion. As I said these are more advanced forms of pathfinding that are available and should be researched based on your own game that you’re trying to make.

6. UNITY NAVMESH

In Unity 3D we implement pathfinding using the NavMesh system. To do this we would create walkable areas (Objects that we will have the player walk on) and then we would BAKE the NavMesh ontop of these objects (Shows up as blue ontop of the objects).
Once that’s done you would then mark your players/enemies/npcs or any object you want to navigate through the NavMesh as NavMeshAgents who would then be able to navigate over the NavMesh. Ofcourse this is just a simplification of the entire steps and process as you DO require code to make it all work.
For a detailed step by step for NavMesh creation please refer to the Unity Docs => https://docs.unity3d.com/Manual/Navigation.html
To get you started, Here are the steps to make a NavMesh in Unity 3D: a. Select scene geometry that should affect the navigation – walkable surfaces and obstacles. b. Check Navigation Static on to include selected objects in the NavMesh baking process. c. Adjust the bake settings to match your agent size. d. Agent Radius defines how close the agent center can get to a wall or a ledge. e. Agent Height defines how low the spaces are that the agent can reach. f. Max Slope defines how steep the ramps are that the agent walk up. g. Step Height defines how high obstructions are that the agent can step on. h. Click bake to build the NavMesh. Your NavMesh will show up as blue overlay.

7. UNITY ASSETS

Here is a list of assets that you can use for navigation and ai. Keep in mind this is just a handful as the Asset Store has many others. Please do you research and look for assets that work well for your type of game πŸ™‚

CONCLUSION

Okay well there you have it, that’s just a very basic overview of such a complex topic of Pathfinding. Don’t forget, game dev is all about MASTERY (Ongoing learning)! Keep on learning and growing and don’t ever give up! As always, have a blast making awesome games! Feel free to come watch me live on twitch where I teach game development and these same training’s using the top games such as League of Legends, Starcraft II, Hearthstone, Overwatch, Fortnite and many other top games! https://www.twitch.tv/academyofgames0
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Spawn Points and Object Pooling


In any game you may be making, more than likely you will run into times where you will need to spawn objects (Enemies, bullets, players, pick-up items, etc.). In this article we go over spawn points and object pooling and go over some tips that can help you in your game development!

 

CONCEPT OF SPAWN POINTS

So what exactly is a spawn point? Simply put it is a location in space (2D or 3D), which you define by placing an empty GameObject in that location, and then you would MOVE or PLACE an object at that location via instantiation or pooling (which you will learn about below). Some examples of common objects that people place at spawn points are a pick-up item like health for your game, characters (Such as in an FPS game after a player dies you would respawn them in a certain location) or enemy objects ready to attack the player. (I’m also placing a link to the Wikipedia definition of Object Pooling as well => https://en.wikipedia.org/wiki/Object_pool_pattern)
Strategically placing spawn points in games for various object types can help to add more variety and challenge to the overall game and bring in some much needed game play elements.

INSTANTIATION

This is the most basic way to spawn an object however it is not recommended as it is very memory intensive and can cause your game to crash over time, especially if it is being used on lower end devices with limited memories.
Basically what you’re doing is you are asking the computer to give you a dedicated amount of memory to create an object in your game. Once you are done, you want to destroy the object and give the memory back to the computer to use again elsewhere.
The challenge comes in when you are trying to instantiate many objects (as is the normal use case in games). Take for example a weapon which has bullets. If you instantiate each bullet in memory and then destroy it, over time you may not have the memory available and thus the program crashes or you just dont get a bullet created as the computer comes back to you with an error. Not only that, if you are instantiating many objects (especially if they are more complex and dynamic, such as enemies to attack the player and they all have animations and effects and more on them), then you can see how this could easily slow down your computer and thus lead to lower frame rates and quality.
The solution however is using a technique in game development known as object pooling…But first lets go over how we do a basic instantiation of objects!
To instantiate an object in a certain location in Unity 3D simple use the following script (REFRENCE: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html):
// Instantiates 10 copies of Prefab each 2 units apart from each other

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Transform prefab;
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);
        }
    }
}

Once you have instantiated objects a lot of developers wonder how we get rid of them (Ex. an enemy that has been killed or a bullet that has been shot). The INEFFICIENT way would be to make sure we remove them from our scenes via a destroy command. This however does not help us with the issue of memory as it does return the memory to the computer to reuse, however over time if the computer decides to give that memory to another process, we wont have it available for our game to instantiate another object…This leads us to OBJECT POOLING!

 

 

CONCEPT OF OBJECT POOLING

So now that you understand a bit more about the concept of spawning and instantiation, you may be wondering what object pooling is and why it is so important?
As you read earlier we reach limits with memory and thus we end up getting program crashes and other issues along the way with instantiation and destroying objects. This is not efficient and does not help our frame rates nor our game being smooth and fast.
Enter Object Pooling! It is literally the concept of REUSING the same objects that have been loaded into memory rather than destroying them.
The easiest way to see this concept in action is to think of a weapon with projectiles (Bullets). Lets say you wanted to simulate many bullets in your game, you could easily instantiate them each time the user presses the fire button and then destroy them but that returns the memory back to the computer (And imagine if the user presses the fire button continuously which happens all the time in FPS games, that could be hundreds if not thousands of instantiation calls).
The concept of object pooling instead is to take those same bullets and simply deactivate them and move them somewhere else (Into a POOL of objects) that you can easily call again to the same starting point of the weapon and reuse the object.
So now with that concept in mind, instead of having to have unlimited bullets being instantiated and destroyed, you could have a limited amount of bullets in total instantiated, and when the player fires a bullet instead of having the object destroyed after use, we would simply deactivate and replace it into the pool again ready to be reused again (NOTE By UroΕ‘ ZečeviΔ‡ in a comment below, ‘You need to reset their properties which can be tricky for more complex objects sometimes. Also, you need the way to track the number of spawned objects and adjust the pool size when needed.’) With that you can still simulate an infinite amount simply by using this wonderful concept and not have to exhaust your computer memory or slow down your frame rates.
You may be wondering how we write such code? Well there is a great tutorial here in regards to writing your own basic object pooling system (https://unity3d.com/learn/tutorials/topics/scripting/object-pooling). There are also several assets in the asset store that will help you out as well.
Keep in mind as I said that there are many ways to do this and many times they are dependent on the game type and genre. Try out different ones and see which specific pooling system matches for you and your game type. When done right you can save memory and increase your fps and thus give your players an incredible gameplay experience!
SPAWN POINT TIPS AND IDEAS
TELEPORTATION This technique basically uses two spawn points, one as a start point and one as an end point. You would use an OnTriggerEnter function to detect when the player or item to teleport enters the object. Once there you would simply move the object (you can use a tween effect if you wish) to the other spawn point location. This gives the illusion of teleportation and is used in many games.
PARTICLE EFFECTS Many times you may need to spawn up particle effects in certain locations (such as when you want to indicate a player has hit an enemy or object at a certain point in space). Rather than instantiating, try pooling your particle effects as well and reusing them instead of destroying them. This could give you a bit of a boost in fps (I’ve used this several times in my own games).
AUDIO AND SOUNDS This one is an interesting one, but if you are instantiating any sounds, try and put your sound and audio into pools. This would work well for things like sound effects that are commonly reused (Especially in 3D space if you are trying to get realistic sounds in specific locations. Think of VR style games for example).

CONCLUSION

So as you can see, spawning objects and pooling can be very useful and helpful concepts of the game dev world! Use some of these concepts today in your own games and until next time, HAVE A BLAST MAKING YOUR AWESOME GAMES!
Feel free to come watch me live on twitch where I teach game development and these same training’s using the top games such as League of Legends, Starcraft II, Hearthstone, Overwatch, Fortnite and many other top games! https://www.twitch.tv/academyofgames0
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Onboarding in Games – Learn 7 Tips For Onboarding and User Training


A good onboarding system can help build habits in your players that will keep them coming back to your game and enjoy it. Get it wrong and you’ll have players confused and even uninstalling your game!

 

Onboarding is the process of teaching or training users how to play your game. There are several types of onboarding and getting it right can mean the difference between a top title and a clearance rack!

 

TYPES OF ONBOARDING

GAME SPECIFIC This is the most common type of onboarding process in which you teach your players how to play your game. Things that are new to them that they wouldn’t generally know are things you would teach them. For example if it’s a match 3 game, they may not know that a certain color bubble can activate a super power or that selecting 3 bubbles in a row will allow them to pop. These are the basics of YOUR game and so you must make sure you teach them in an easy way that it can be understood, even across language barriers.
INTUITIVE This is a more advanced type of onboarding where players ASSUME something that they should be able to do in your game already. If it’s a mobile device, pinch to zoom in and zoom out is a good example of this. Another one is using the middle mouse scroll button to zoom in and zoom out. Things that normally a hardware system has as normal operation should be things you should easily account for in your game.
AUDITORY This is an AUDIO ONLY onboarding experience where players hear sounds (it could be a character or a computer voice or something that trains them with audio) and then take action based on those sounds. Things such as a computer saying, “Move your army to the red square” or “If you press the up button on the keyboard, the player will move to the top” are examples of an auditory onboarding.
VISUAL Visual onboarding is when a player can VISIBLY see something. This could be in the form of a button glowing or arrows pointing the user in the right direction, etc. Visual onboarding is very important and is generally used in conjunction with other onboarding methods here.
There are several other types of onboarding however these are ones that you will commonly encounter. Now lets break into some tips that can help you to make a stellar onboarding system!

1. FOCUS ON THE BASE GAME FIRST – STORE AND ADS LAST

This is one that many developers seem to swap around (Especially new developers learning about onboarding). I get it, you want to make money, but if your main focus on teaching players is to first teach them your store or teach them how to use the ad system to get free lives after watching an ad video, then your game is really not that good and I’d recommend going back to the drawing board to figure out why. Players have come to your game FIRST AND FOREMOST to play your game. Teaching your store and your ad revenue streams are the last thing, if at all, and I highly recommend staying clear from teaching any of those items first.
I recommend teaching the base game play first, then advanced gameplay, followed by store last and if you really REALLY need to, the ad system. Always remember that if you push your players too hard to see ads and miss out on the gameplay, they will simply uninstall your game for a comparable one that is not so pushy and thus you lose your user. FOCUS ON THE GAME FIRST!

2. THREE (3) TO SEVEN (7) ITEMS PER TRAINING!

When you are teaching your player how to play your game, stick to teaching them only 3-7 things. The human mind can only take on around a handful of items at a time, so if your game has like 50 weapons and 40 super powers, teaching it all to players would not be the best thing to do. Focus on three to seven items and break your tutorials and trainings into several onboarding trainings using that PROPORTION of items in each training. It’s easier for a player to learn a few things first and then several more items after, so keep that in mind and have a progression as you train your users.
A good example would be as follows: If your game is an FPS shooter game, you could start off by teaching around 3 items, namely moving, shooting and how to do actions (Such as a single command that opens a door or picks items up or does other actions all with the same command, usually the letter E on the keyboard in many FPS shooter games on PC). Then after that you’d do a second tutorial training on something like using a new weapon and then how to find a key and clear a level and even how to destroy an enemy. Over time your player would have learnt how to play your game and would find more value from it rather than if you had bombarded them directly with too much information!

3. REDUCE COMPLEXITY

If you’re dealing with a very complex game, reduce the complexity down to make things easier on the player. For example, if the game is a car racing game, instead of having a long extensive track, for the onboarding process, simply have a short round track that allows the player to experience the basics. If it’s a strategy game, instead of having a full map, simply have a mini map with shorter distances and fewer enemies.
The point is, the easier you can make your onboarding tutorial in complexity, the easier it will be to ramp up and teach your players a more advanced full version of your game. In League of Legends for example, instead of 3 lanes, they use a single lane to train players on how to move and play the game. This is a great example of reduced complexity in your onboarding. Give it a try!

 

 

4. NEAR IMPOSSIBLE TO DIE

Another area that you want to watch out for is giving your players chances to make mistakes. If your player can die in your first tutorials, chances are they are not going to be coming back. Some of the best tutorials never let their players die (Even though the player THINKS they can). Allow players to make mistakes as they learn your game!
Too many new developers who just start out in trying to do an onboarding forget this major point and thus players rarely learn and end up leaving the game because they died and never really learnt how to play. Now you’ll be prepared for this!

5. FIRST 30 SECONDS!

You have the FIRST 30 SECONDS to make an impression! You must put the player into a SUCCESS state within that time psychologically. The best onboarding I’ve seen has players win battles and win all kinds of goodies and praise.
Remember, players are coming to a game to get away from the real world. They want to have fun and in the first 30 seconds if you can’t deliver a great hit of success and fun to them, they are going to leave!
Do something amazing with the players, have them win, give them bonus items, make them feel like superstars, wow them with graphics and sounds and much more! If you can do that right, players will stick around in a game and give it a chance.

6. TEACH YOUR STORE LAST

After you’ve taught players how to play your game and they are happy, give them a chance to learn how to make a purchase by teaching them your store. Ofcouse this is the LAST item as the game itself must be the main focus, however having this is an important part to monetization. If you can teach your players how to use your store and make purchases they are more likely to do so!
Give them a free item using the same purchasing pipeline. For example if players need to hit the shop icon and then go and select an item in the shop and hit the pay button, have them do this process but give them their first item for free. This will teach them where the store is and also how to buy things.
As I said, this is an important item but not as important as the main game. Focus on the game first and your store last!

7. MIX IT UP

You don’t need to follow things exactly like others have. It’s okay to mix up the training and tutorials to fit your specific game and genre. Experiment with various onboarding pipelines and see what works best for your players. Ultimately ask yourself if you are getting the results you want (More players playing your game, less players leaving your game, and a healthy monetization, along with any other KPI items you are tracking).
Have fun with it, but make sure you have an onboarding system inside your game! In today’s world of gaming it is hard to compete without having this important element in your game titles.

CONCLUSION

Well there you have it, those are some tips to help you with the creation of your onboarding systems in your games. Feel free to come watch me live on twitch where I teach game development and these same training’s using the top games such as League of Legends, Starcraft II, Hearthstone, Overwatch, Fortnite and many other top games! https://www.twitch.tv/academyofgames0
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Expert and Mobile Game and App Developer

Writers Block for Developers – With 7 Tips To Help You Overcome It!


This is one topic that we hardly talk about as developers but it will definitely come up.

 

As we are constantly writing code daily we get into times where we just cant go forward. It’s generally due to an issue that comes out in the book writing/authoring industry when writers are constantly trying to write out ideas and finally just get “stuck” or “blocked”. If you’re new to code, you will learn about this more as you start developing longer, but for those who have been coding for a long time, at one time or another you have or you definitely will run into this. The challenge is OVERCOMING this using helpful techniques. Unfortunately in our development industry we have not come up with great techniques for this and thus many a developer either gives up on great projects or literally leaves their own companies thinking they are just no longer good at code or have reached their peak.

 

 

REFERENCES

I’m using the following websites for references for this article, so do feel free to check them out as they are definitely some great resources for us as developers to check out:

HOW DO YOU KNOW YOU HAVE WRITERS BLOCK AS A DEVELOPER?

Writers block generally comes up because of any of the following OR MORE:
a. Unsure: You no longer want to code, not because you’re a bad developer, but you just for some reason feel like you don’t want to code (Even though you aren’t burnt out, etc.)
b. Perfectionism: You’re trying to be perfect and your perfectionism is holding you back
c. Time of code: There are times when we code that things just move along so slow, and then there are those charged and wired times where you are coding so fast its as if your hands are possessed and going at light speed! This could be simply just waiting for the right time (Some people develop better in the wee hours of the morning).
d. Fear: You’re afraid to touch your code and make a mistake which could cause more things to break, so you’re not really coding at your full potential.
e. Lack of Ideas: You just cant come up with a great coding idea so you don’t take action.
f. Overwhelm: You’ve made a behemoth of code and its now gotten out of hand so much that you cant make heads or tails of it.
g. Too Many Ideas: You have so many ideas and so many ways to do something, but you haven’t decided which code path to take and are being held back because you don’t want to make a mistake (Ex. You code this now, but in the future it may need to be re-coded, so now you’re unsure whether to even start coding it).
h. Outside Skillset: You have enough to get through most of the actual code but THIS specific part of the code may be outside of your skillset and so you give up on it or get “stuck” waiting for a solution or looking for alternatives.
i. Too Far, Too Deep: You’ve coded for so long and realized you’re just digging a deeper rabbit hole, so you keep continuing HOPING that it will magically fix itself and all just work. You aren’t really developing at your peak, you’re just developing in the HOPES that something will work out (You become a mindless automaton at this point, hoping something happens to change the code).
j. Boredom: You no longer are excited about the idea anymore and you’re just going along with it because you want to complete it.
k. Criticism/Intimidation: You keep thinking about all the people who will say your code or game or app sucks and so it paralyzes you to literally stop your code. You may have seen similar games or apps and got intimidated (Ex. Look at that game/app, they already do it so well, why even bother trying to create that game/app even though I’m halfway through my game/app now, etc.)
l. Started Cool: The game/app in your head was totally awesome and then when you finally started coding it, it actually was not as great or cool as you believed and thus you slow down or stop. The above are just SOME of the many writers block forms that happen to developers in our Game/App industry.
Luckily for us, other industries have studied this issue extensively and if you’ve never known how to label it before, NOW YOU DO, it’s called writers block and we will go over several tips and tricks to get out of it and move on in your code.

1. GO FOR A WALK

This is one that a lot of developers favor. Simply changing the scenery and going for a walk. Whether it’s at the next team coffee run (Yeah you know the midday coffee runs where the team of like 20-30 devs all get together and go like a sports team down to the local coffee shop LOL) or simply just going for a stroll, it’s incredible what a walk can do.

2. SIDE PROJECT

Take on a simple side project challenge. Something simple that you know you can overcome. Something like a hello world app or something along those lines where you know you can code it perfectly.
START with a blank clean new project and start coding this SIMPLE app. Maybe its something that just adds two numbers together, maybe it’s a simple input/output app. The point is create something simple that will take you no more than 15 min or less to make.
This is similar in the writing world as starting on a fresh blank page and writing out whatever comes to your head. The art of simply writing a simple app and taking on something may actually jump start you back into action so you can return to your code! NOTE: PLEASE KEEP IT REALLY SIMPLE! A one function app that logs something to the console in unity, or a simple hello world or something that gets you going again but is not complex so you dont just get into another writers block!

3. CHANGE YOUR ENVIRONMENT

Sometimes simply changing WHERE you code can have a huge impact! I like to change the room I’m in or even the computer I’m working on. See where you can go to code and a simple environment change may be all that you need to get you back on track!

4. USE THE POMODORO TIMED METHOD

The pomodoro method (https://en.wikipedia.org/wiki/Pomodoro_Technique) literally has you time boxed into a 25 minute sprint where you just focus on code. The technique uses a tomato timer (Hence the name pomodoro) and you simply FOCUS hard on just 25 minute sprints at a time. Give it a shot, it works out really good for me and I’ve been using this technique for many years! πŸ™‚

5. CHUNKING / BREAKDOWN

The concept of chunking is not new yet for some of the readers it may be a new concept for them as it was once for me. Simply put, chunking is taking any task and breaking it down into micro steps that you know for sure you can do. If you are trying to bake a cake, break that down into the steps and then into the ingredients and tasks at each step, and keep going until there is nothing left that you cannot do.
If something seems too complex or would take you more than 1 hour, you should be able to still break it down further. For example, if I’m writing a piece of code to add two numbers, I put down things like: a. create a variable to store one number b. create a second variable to store number two c. return the addition of variable one plus variable two
Now that example may be simple but in general many times people arrive at just the “I want to output the solution to adding two numbers” without breaking it down further and thus get held back because of the complexity.
If it is still too complex, there are still many steps left and you need to take some time to figure out how to break it all down.

6. DAILY CODE PROBLEMS

Another neat way you can get your brain thinking is by taking on coding problems. These challenges usually take around 5-15 minutes to complete and you can find many online. These keep you in the same realm of development and allow you to crush a challenge thus giving you more confidence.
A great site I like to use is https://www.dailycodingproblem.com/ which sends you a daily code problem to solve. This is great to keep your juices flowing and may kick you out of your writers block.

7. MIND-MAPPING

This is one awesome one that will really help out. Basically start with a blank sheet of paper and a pen and go to an environment where there is NO COMPUTERS or DISTRACTIONS other than taking your phone for emergencies.
Next start in the center of the sheet and just write whatever comes to mind. If you can keep it targeted to the code you are working on even better. After that just let whatever flows from there come naturally without thinking too much and just draw leaves from the center of the circle. Each node should represent ONE task or item required to achieve that item in the center.
After 15 minutes you’ll definitely have something to move forward with. I generally do this and get so much insight that I’m able to solve a LOT of my code challenges with this one technique alone!

CONCLUSION

So there you have it, several techniques that can help you to overcome writers block as a developer. If you wish I recommend you check out the links I provided in the article so that you can see even more great ideas on how to beat out writers block.
Until next time, keep on grinding at the code πŸ™‚ You’re a super star!!
You are a super star! Keep up the great work and NEVER GIVE UP! You Got This!! BE A CHAMPION!
Nav is a Unity Live Help Expert and Mobile Game and App Developer

Mobile App Monetization Methods


7 Ways to Monetize Your Next Mobile Game or App!

 

1. Direct Premium Purchase

Many people think that this method is not a way to make money, yet there are games that are of high quality that do JUST THAT! This allows developers to focus on making a great game and charge a single fee. This is great as an Indie Dev strategy when just starting out if you have a solid list of people who you know who would support your development OR an incredible IP that players love. Take Square Enix and the whole Final Fantasy line which they charge a solid amount upfront (Here in Canada the Final Fantasy games are around $10.99-$20.99 CAD on the Apple App Store). If you have a strong brand or a solid following of users who are willing to support you, then this may be a great starting point. So many devs skip this because its not ‘Popular’ however don’t throw it out as a strategy of monetization when starting out as it could easily make you money if you have a solid IP or following of users to back you up. Maybe you use to make physical board games and own a certain IP and fan following. This has been done before and we’ve seen games get resurrected to life in the digital world because their creators decided to make an app. The point here is that FREE is not always the best solution.

2. Paid Premium

This specific model is where a player pays an upfront amount to get the game and THEN pays again for various upgrades inside the game. Several games feature this model and though it is an aggressive monetization strategy it can work in some games and situations.

3. Lite

This specific model is where a limited version of the game is available. Now many of the markets no longer support this anymore as they want IAP models of your game where a user can download the game for free and unlock via IAP (In-App Purchase). The Lite/Pro model does work well for Utility style non-game apps or PRICEY games in which users are not sure if they will like the game. Think of this as the “Shareware” model of games.

4. Free

Free models specifically focus on a FREE download and monetization done via external methods. For example a restaurant may want a ‘restaurant’ game in which players can play and win all kinds of prizes like 25% off their meals. This in turn translates to more customers for their business who frequent their stores more. Big brands use a model like this just to gain an increase to brand awareness and thus increase their overall physical product sales.

5. Free to Play

This model allows the user to download the game for free, but then monetizes via several variations. I will break them down here as subsets of the Free to Play (F2P) model:
a. Ads => Users are shown ads in exchange for some item in the game or at the end of a level or on game pause.
b. Virtual Currency Layer 1 (HARD): This is a direct virtual currency, also known as a HARD currency which directly relates to physical dollars being spent. Ex. 500 Gold coins could cost me $1.99 USD. Thats a HARD currency because it relates to REAL WORLD MONEY.
c. Virtual Currency Layer 2 (SOFT): Soft currencies are secondary layer currencies that are bought via first layer currencies. For example using the GOLD from the previous hard currency example, I may be able to buy 10 orbs where ORBS in this case would be the soft secondary currency which I can in turn use to buy other items. Ex. 1 Shield could cost 2 Orbs. 2 Orbs costs 300 gold. 300 gold costs $1.49 USD
The F2P Model is always being advanced the most with new methodologies all the time. It is generally the most popular of all the monetization strategies and has a very solid following in the game world. The challenge arises in VIRTUAL ECONOMY balancing so that you dont overprice or under price things in relation to their Virtual Currency Layers. Ex. If you make something easy to buy, players may only need to buy it once when you may have intended for that item to be purchased more often.

6. Subscription

This specific model is where players pay a monthly fee to have access to premium features. This monetization method is starting to become more and more popular as it gives devs a consistent monthly revenue and thus is being heavily invested in by many. If you choose this method make sure you have a solid value proposition for your game players to justify their monthly fee or else they will easily cancel the subscription.

7. Trial Subscription Model

This model is similar to the Subscription model except that it has an additional trial period. Players are given X amount of days of PREMIUM access to get a taste of things. This is similar to the Lite/Pro model or ‘Shareware’ style model.
Here is a little info-graphic I made a while back which has several of the methods above:

 

Nav is a Unity Live Expert and Mobile Game and App Developer

5 Unity Tricks, Hacks & Secrets for Beginners (PC Focus)


Here are some AMAZING tips, tricks, hacks and secrets I learned over the years that I wish I knew when I first started out. They have saved me so much TIME and even some HAIR PULLING!!

 

1. F2 Key

Every time you have to edit any name for an object, be it a simple Game Object or even a file inside of the Project window, you have to either double click on it or go into the inspector window and edit the name. This one trick definitely helped save me some time simply by clicking on any file and hitting F2 on my keyboard I can instantly edit the name of the object or file! Give it a try now!

2. Visual Studio – Mass Commenting

This use to drive me bonkers back in the day, yes I’m one of those devs who use to COMMENT LINE BY LINE! And of course you have the block comment capability, but the trouble was that I needed line-by-line commenting to happen…That’s when I setup this neat little trick inside Visual Studio (This also normally works on many other IDEs but in Visual Studio you have to set it up manually):
1. Go into Visual Studio and select Tools => Options
2. Select Environment => Keyboard and type in the word ‘comment’ in the box and select Edit.CommentSelection
3. Remove the current shortcut by hitting the “Remove” button and then click on the “Press shortcut keys” box and hit CTRL + / (Thats Control plus Forward Slash) and click the Assign button
4. Repeat the process for the Edit.UncommentSelection but this time use CTRL + SHIFT + / (Thats Control plus SHIFT Key plus Forward Slash) and then hit assign
Now when you highlight ANY code blocks, simply use your two new commands to comment and uncomment entire blocks! This ONE hack has saved me countless hours and stress!

3. Visual Studio – Mass Variable Name Change

The last time you were in visual studio and had like 10,000 lines of code and then realized ” OH SNAP, That one variable is named so wrong, I have to change it…but there are like 1,392 instances of the variable πŸ™ “
Don’t despair! This one trick saved me hours if not DAYS of re-coding variable names! When I learned it I was literally like, “WHERE HAVE YOU BEEN MY WHOLE LIFE!!”
Here’s how it works:
1. Inside of visual studio highlight ANY variable name you want to mass change and press CTRL + R and then again CTRL + R (Thats right, Control plus R twice in a row back to back):
2. You then start typing out the changes you want to make to the variable and simply hit apply and BOOM! All variables in the entire script have been changed!

4. Unity Special Folders

This was during my early years using Unity 3D. Apparently there is a list of SPECIAL folders or MAGIC folders that do certain things when you create them. Here is the actual documentation on these special folders which I HIGHLY RECOMMEND you look at => https://docs.unity3d.com/Manual/SpecialFolders.html
One example is the Resources folders. These LITERALLY package everything inside them into your app/game. Be careful what you put in here as there have been many times I’ve had unused assets sitting inside these folders which ended up increasing my final file sizes. The difference in file size can be MASSIVE so definitely check this one out for sure!

5. Image Import Settings

Yes you’ve got awesome images, and yes you want the highest quality, but it doesn’t matter how big an image is if its taking up a tiny set of pixels on the screen! You don’t need to have high resolutions for items that themselves dont take up space real estate. I’ve made this mistake time and again when I’ve developed for an iPhone with button image sizes of 2048×2048 which were taking up an actual pixel space of maybe 256×256 or smaller! What’s worse is that many of these graphics had ALPHA set when they didn’t need it (thus requiring more system resources). So here is how you change these settings for optimal file size savings:
1. First select your image in the project view and then inside of inspector, change the Max Size down to an amount that you know the image will NEVER go to. For example if you know its a small button, having an image size of 4096×4096 would probably not be the best size.
2. Next check to see if Alpha is Transparent is checked. ONLY use alpha settings if they are required or else there is no point and may take up valuable resources in rendering.
3. Finally, make sure your images are in SQUARE size. This specific size just makes things run faster and better (From my own results in the past) and I find that the textures come out more crisp and clean, which is important for 2D games especially.

Conclusion

Well there you have it, those are five things that should help you move forward in your overall development time. Keep on learning and growing and get better every day! You’ve got this! *FIST BUMP*…Now go make your hit game!!!
Nav is a Unity Live Expert and Mobile Game and App Developer

Paper Testing – 7 Tips to a Better Game / App


We are so caught up in a “Build Build Build” world that we tend to forget the easiest and most cost effective way of testing out an idea…PAPER TESTING!! How often do you paper test an idea?

 

Paper testing…it is the cheapest and most cost effective way to test out ideas, yet how often do we as developers do this?
The biggest challenge we face is when we forget this CRITICAL step as if it doesn’t matter and then we actually go and start working in Unity, laying down code and ideas and before you know it, you’ve wasted hours, days, weeks or even months on an idea that never should have been made in the first place!
Here are 7 tips to Paper Testing that will help you save time and money and avoid many stressful days shipping an unnecessary product!

1. Start With CLOCKWORK

Here at Game Scorpion Inc. there is a motto in our grand triangle of things that is called CLOCKWORK. Clockwork is the concept that we as human beings have HABITS that happen in cycles regularly. From brushing our teeth daily (Or at least I hope most of you do that hehe) to commuting to and from work, each one of us has habits that happen consistently. If you’re living in North America, we have seasonal habits, such as winter time up here in Canada and North US States, to national and international holidays such as Christmas and New Years Eve.
Even certain GROUPS of people have habits as well, such as students who have to get up for school or study for exams that happen around the same time for most students.
Make your app or game around HUMAN clockwork habits, things we as humans do regularly. If you do NOT make your app or game to fulfill a human need that happens on a daily or weekly schedule, chances are your users will NOT be coming to your app or game often enough to really monetize.
Consider this => Assuming a freemium or ad based model for your game or app, 1,000 Ad Views (eCPM – effective cost per mille) is equal to around $1-$5. That means it takes 1,000 eyeball views to generate $1-$5 USD in general (For the most part, these aren’t exact figures but just to give you a range).
If users are NOT coming into your app / game often enough (Some apps are actually made not to be used that often, yes those do exist), then your monetization strategy would have to be adjusted to match this. Using the example of a freemium ad based model, I’d convert the game / app into a paid premium solution and focus on building a high quality experience and remove ads in that case OR I’d try and find a way to BUILD a habit, which brings me to my next point about clockwork…
The best apps and games BUILD a habit using the end users clockwork cycles until soon enough, the game or app itself is a clockwork item. Take the Facebook app for example. Think about how FACEBOOK became a part of your daily clockwork cycle (For those who do use facebook. If not, then think of any other app that has become your daily go to app such as an email app). Before people would not even visit it when it was first starting out, but now today its literally a clockwork item (Generally checked first thing when people wake up and last thing when people go to sleep at the very minimum for most).
ACTION STEP: Figure out WHERE and WHEN your end users will use this app or game. What clockwork habits do they have? Is this something they would do at least 2-3 times a day? 2-3 times a week? Once per year?

2. Throw It Away! (Don’t Fall In Love)

The beauty of Paper Testing is that we can easily just erase things or even throw out an idea. I’d recommend taking a 30 minute brainstorming paper sprint to write out ideas and test them on paper. Literally design ideas and prototype them with paper.
Don’t be afraid to THROW AWAY a piece of paper! Get a notepad, draw all over the paper, and when you’re done with an idea, throw it out and just keep the items you like. Whatever you do, don’t just fall in love with any one idea.
The biggest mistake we make as developers is we fall in love with ideas and make them into ‘our baby’ when in fact we are NOT building these things to be ‘our baby’ but our ‘USERS baby’. That’s the point many of us forget, is that we are building this for the END USER and as such we need to focus on not falling in love with something. Our end users will let us know in beta tests if something is good or not, but once we fall in love with something, sometimes that ‘something’ (a feature or a way the app works) could be the very thing that causes attrition rates (Users leaving our app).
ACTION STEP: Take out a paper and pencil now and take 30 minutes to draw out your entire app idea! Draw out the screens, the steps, each action that could take place and more! Repeat the exercise each time and you’ll be amazed at the results πŸ™‚ Every time I do this, I end up getting new ideas for the exact same app and finding bugs and issues that would have been horrid if I had actually went ahead and coded things!

3. Do NOT limit the HOW!! (Drop Your Restrictions! Stop talking dev!)

When paper testing, we tend to put our “Programming/Developer” cap on and start looking at limitations. I want you to STOP THAT and pretend for a moment (Just when doing the exercise) that ANYTHING IS POSSIBLE! Yes your app can FLY if it wants to!
The trouble we run into when doing paper designs is we try and put things into a little box based on our previous experience. For example, “Oh I am going to put a div here and it will use a css highlight trick, etc. etc.” THAT’S DEV TALK! When doing this exercise, DO NOT TALK DEV!
Here is an example of what you SHOULD be saying when creating a paper design: 1. As a user I want to be able to LOGIN (This later becomes a USER STORY). What are some easy and fun ways I could login if I had unlimited resources and there was no restrictions and I had unlimited access to anything? You may come up with the following ideas: -Fingerprint -Eyeball scan -Call the user and check if they are real -Build a Ring that users can scan in (One ring to rule them all πŸ˜‰ LOTR Fans) -Login with a UPC Barcode etc. The point is that when you stop limiting the “HOW” to simply what you can do currently as a developer and open your mind to all possibilities you may end up finding that there may be a new and better way to do things. As we grow as a society we are rapidly changing how things are done. For logins for example, we have 2D input forms, but in the coming years everything could turn into AR (Augmented Reality) and be full 3D forms and experiences. By that time a login could be me LITERALLY walking into a virtual door.
ACTION STEP: When you are doing your 30 minute brainstorming paper design exercise, do it without thinking of any development restrictions and open up your mind to unlimited possibilities. You may find an idea or new experience for end users that could give you an added edge against your competition and could lead the way when it comes to your mobile app / game. By the way, if you think that “That’s impossible, it’s already been done”, think about how long after the INTERNET started that Facebook and Twitter came out. Facebook came after many community sites existed and Twitter came out well after blog sites existed to become a unique micro-blogging service. You may be surprised at what you find, and that is the heart of innovation itself! Go and innovate some new ideas!

4. Use Digital Tools To Test Ideas

There are several tools on the market that allow you to test out your paper prototypes. My favorite (And in my opinion the FASTEST one I’ve ever used) has been the Marvel App (https://marvelapp.com/). This one app allows you to simply take photos of your paper drawings and then create an instant prototype out of it with functional buttons and moving screens.
There are other apps as well (Such as Invision => https://www.invisionapp.com/) that allow for even more extensive prototyping, but the point is that these tools can help you really flesh out an idea even more.
ACTION STEP: After you have completed your paper prototype on paper, download the Marvel app on your phone and go ahead and make a digital prototype and see how your app works. After it’s done, give the digital prototype to some friends (even better if they are in your target market) and get their feedback on your idea. (If you think your app is really going to be the next hit app, feel free to have your testers sign an NDA – Non-Disclosure Agreement).

5. Use Templates

There are a whole slew of phone and tablet templates out there. Grab one you like and download and print it off. Usually these templates help you to design even better as you get an idea of the device that you’re building for. Below I have my own trace paper template you can use for designing on phone screens:
ACTION STEP: Print out a copy of the Template I posted above and use it for your own paper designing for phone apps and games.

6. Materials For Paper Testing

Here is a list of things I have when I do paper designing and testing of any kind: -Pencils (I usually have a stack of them) -Eraser -Pen -Paper Pads (Duh!) 4×6 pads -Garbage/Recycle Bin (Throwing out bad ideas) -CLOCK (To time me if I’m time-boxing my brainstorming session to 30 minutes) ACTION STEP: Go out to your local dollar store or Walmart or general store and get all the items listed above if you don’t already have them. This will allow you to start a solid paper design and testing session!

7. HAVE FUN!

This one is SERIOUSLY a seventh tip because we tend to forget to do this! Paper testing and design is a FUN process. This is the part of the entire development cycle that you are not losing massive amounts of money or crazy amounts of time fixing code or creating assets for your next hit game / app. This is where you can really refine things and get back to the basics with very little long term loss. Compare this to how much time and money you lose when having to refactor code or redo an entire game level because it just did not work out, etc.
ACTION STEP: Smile! Take photos, throw them on Instagram (Follow me on Instagram => https://www.instagram.com/academyofgames/), show your paper designing journey and let others see your progress. Not only will you build early fans but you’ll also have some fun along the way!

Conclusion

Paper Testing and Prototyping is not just a fun process but a CRUCIAL first step before laying down any actual code or design in Unity. I can’t stress how much money and time is saved and how many hurdles are avoided just by this one technique alone. I’ve seen too many developers launch games and apps only to have critical flaws that would have been caught in this early stage in the process.
I look forward to seeing you all create awesome games and apps! You’re a champion! Be the best! I believe in you! πŸ™‚
Nav is a Unity Live Expert and Mobile Game and App Developer

Subscribe To Email

Subscribe To Email. Let's stay updated!