All posts by Brian Lindahl

Import GoogleMobileAds

In Game Design I needed a tool to my best effort to grasp what is going on under the hood of my SwiftUI mobile game scripts. As a result I put together this list of Threads ran by the GoogleMobileAds SDK, along with a brief description.

  • Google Mobile Ads SDK Threads
    • SDK initialization thread: This thread is used to initialize the Google Mobile Ads SDK and should only be used once per app launch. It is important to initialize the SDK on this thread to ensure that all subsequent calls to the SDK are made on the same thread.
    • Ad request thread: This thread is used to make ad requests and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ad requests to time out or fail.
    • Ad loading thread: This thread is responsible for loading ads and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ads to take longer to load or not load at all.
    • Ad rendering thread: This thread is responsible for rendering ads and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ads to not render correctly or not render at all.
    • Ad click tracking thread: This thread is responsible for tracking ad clicks and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ad clicks to not be tracked correctly.
    • Ad impression tracking thread: This thread is responsible for tracking ad impressions and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ad impressions to not be tracked correctly.
    • Ad measurement thread: This thread is responsible for measuring ad performance and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ad measurement to not be accurate.
    • Ad refresh thread: This thread is responsible for refreshing ads and should not be blocked by long-running tasks or expensive computations. Blocking this thread can cause ads to not refresh correctly.
Google Drive Logo

Sell Your Digital Artwork with Google Drive

Google Drive Logo
Try Google Drive for selling digital artwork.

As a small indie game studio, generating revenue through services or items to sell can be a challenge. To keep our business running, we are always looking for ways to make money from selling our creations. One way we have found to do this is by selling digital artwork, which includes cute monsters and Halloween Candy Corn emojis, at affordable prices. However, one of the challenges we’ve faced is giving our customers access to their purchases.

This is where Google Drive comes in. We have been experimenting with sharing our artwork using Google Drive, which has proven to be an effective way of distributing our content. Not only is it easy to use, but it also provides a secure way of sharing our digital content with our customers.

To share your artwork on Google Drive, follow these simple steps:

  1. Upload your artwork to Google Drive. You can do this by dragging and dropping the files into your Google Drive folder or by clicking on the “New” button and selecting “File upload.”
  2. Once your artwork has been uploaded, right-click on the file and select “Share.”
  3. In the sharing settings, click on “Advanced” to access more options.
  4. Next to “Link sharing on,” click on the drop-down menu and select “Expires in 30 days.” This will ensure that the link to your artwork will expire in 30 days and will no longer be accessible to anyone.
  5. Under “Access,” select “Anyone with the link.” This will allow anyone with the link to access your artwork without needing to sign in to a Google account.
  6. Check the box next to “Password protect.” This will require anyone who wants to access your artwork to enter a password.
  7. Enter a password of your choice. Make sure to keep this password secure and share it only with those who need access to your artwork.
  8. Click on “Save changes” to save your sharing settings.
  9. Finally, copy the link to your artwork and send it to your customer.

By following these simple steps, you can share your artwork with customers in a secure and efficient way. Google Drive provides an excellent platform for small indie game studios to share their digital content and generate revenue. We hope that these steps will be helpful to other small indie game studios who are looking for ways to distribute their digital content.

In conclusion, as a small indie game studio, it is essential to explore different avenues for generating revenue. By using Google Drive to share our artwork, we have found a simple and secure way of distributing our digital content, including cute monsters and Halloween Candy Corn emojis. With these simple steps, you too can share your artwork with your customers and generate revenue for your business.

Setup Firebase to Use MacOS

SwiftUI ONLY! (Does not include MacOS Syntax)

I was following Firebases Setup up and config from the Firebase Website. I was installing FirebaseAuth, FirebaseStorage, FirebaseFirestore using Xcodes 14 “add packages” service: File ->AddPackages

import SwiftUI
import FirebaseCore
class AppDelegate: NSObject, UIApplicationDelegate {
  func application(_ application: UIApplication,
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
  return true
struct YourApp: App {
  // register app delegate for Firebase setup
  @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
  var body: some Scene {
    WindowGroup {
      NavigationView {

Firebase MacOS

Found the below code snippet solution at If you are start your project fresh. You will have two files ContentView.swift and “MyApp.swift” <- or what ever you named your app. In the MyApp.swift file substitute the generic start up script with the below snippet.

import FirebaseCore
import SwiftUI
class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationDidFinishLaunching(_ notification: Notification) {
struct ImageManagerApp: App {
    @NSApplicationDelegateAdaptor(AppDelegate.self) var delegate
    var body: some Scene {
        WindowGroup {

Hope it works well for you and best wishes in your developing journey!

Import External Files into Xcode

Short Form Importing External Files to Xcode

Project target > build Phase > Compile Source > + > Add Other > select the external folder > Checked Copy item if needed & select create folder reference.

Detailed Description of Importing Files into Xcode

This mobile game development Goal will answer the question in this how to Tutorial…

How do you import external files into Xcode.

I start out by adding the the file want add to the current Xcode project that I am working on.

Yet just adding the files and folders to your “Project Folder” does NOT add them to the actual “Xcode Project.” To do this you must go to the “Build Phase” tab of your actual Project in Xcode. Once you click on this tab you will see a list.

Look down the list to “Compile Sources.” Select the drop down arrow next to “> Compile Sources.”

Next, “Compile Sources” will open up and at the Botton you will see a “+ and -“.

Selecting the “+” will open up a new Window with the phrase “Choose Items to add…”

At the bottom of this window you will see a button that says “Chooses Others”.

When you select this button another window will open allowing you go to the file in the directory you are wishing to add.

Once selected you will then see in within Xcodes left panel “Navigator Panel.”

Building Burger Magic Memory Video Game

A Friendly Mobile Games Development Process

I have been working with and around games of over ten years. My introduction into games was that of a Game Artist. During that time I focused my skills on learn Maya, 3D Studio Max, ZBrush and eventually Blender. By way of these friendly 3D programs I created high-poly 3D models which I painted in ZBrush and baked out to 2D illustrated digital paintings that I cleaned up in Photoshop and Clip Studio Paint.

It was during this time I also began using Unity 3D. I interacted with Unity by replacing grey box development levels or just adding by adding my own low-poly models to be published to Github for a future Unity 3D Games test build.

Today’s new frontier is the development of Mobile Games and Game Apps.

In the following blog I am listing important links I have discovered that I continually return to for the information they provide. With these links I hope to write out a discription and notes to why they are valuable and how each of them fit with in my current Mobile Games Development Process.

Z-Shell Commands

Firebase Console

Firebase installation for iOS and Xcode

Xcode Install

import UIKit
import FirebaseCore

class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
  func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
      [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    return true

Working through Google’s Data Safety Form for Mobile Games and Apps

As I barely get across the threshold of releasing my first game I discover there are new challenges abroad.

When I began looking to develop my first mobile game, Unity became my choice for game development. Since that time however Unity has changed their advertisement structure 3 times.

Being an Game Artist first and foremost, and a programmer on the side made this a bit of an up hill challenge.

Today, Unity has settled on using Iron Source as their advertising center. So I am in the process of interrupting and implementing the new “Iron Source” system.

Yet as I cross this bridge I am also discovering the new “Data Safety” policies of Google. With each API that is in stalled, the developer must share how that information is used and shared.

Therefore in order to make this information both more accessible to me and the users I am going to list links to the APIs I use. My goal is that you can follow these links and know who is collecting and using any of your data and what it is used for. As well as opportunities to opt out and delete any information that was possibly shared.

Google Play Authentication

Iron Source’s Advertisement Usage

Firebase API Data Safety and Usage Form

Also in using FireBase I am learning new tools, hopefully to improve, our games. Below is a list of FireBase Tools I am actively using and researching.

Firebase App Check
Firebase App Check protects your API resources from abuse by preventing unauthorized clients from accessing your backend resources. It works with both Firebase services, Google Cloud services, and your own APIs to keep your resources safe.


Mobile Game Character Cockroach – Roachie

Analyzing the Color Values for the Cockroach Character

Analyzing Color Values for Cockroach Character

Roachie is the best name I can come up with for this character. This roach is a lady and a very fine one at that.

In developing the artwork for the Candy Corn Critter Mobile Game I tend to be a stickler in every area. My current issue was not being able to separate the critter characters from the background artwork.


Color Profiles for Mobile Games

Did you know one of the biggest challenges to developing artwork for mobile games color profiles. In adevertising the artist always had to be aware of what color porfiles they would be developing the artwork in and where that art work would later be displayed.

With the growing power of Android and Apple devices as well as 4k, HD, OLED, and so on an artist is going to need a better understanding of the color spectrum for print, web, mobile games and console games and televisions. branding and marketing. Below are a few links to help learn more about the how the color spectrum is optimized by each color profile for each device.

Enhance graphics with wide color content for Android Color Profiles

Don’t under estimate the power of Emoji Stickers

Artwork has the power to communicate powerful emotions

If you are like me, images or artwork are more impactful than words. Through images even children can understand people’s emotions faster than long drawn out sentences and lengthy paragraphs. Art can be one of the funnest way to share ones feelings and emotions. No wonder, through the advent of technology, sharing emojis has become an exciting and humorous way to express your feelings and current state of being.

Today emoji’s are now as common as a handshake

Sending an emoji has become my most common way of responding to text messages. It is a fun way to find the perfect expression to response to someone’s comment with a wacky cartoon or image based on how their text made you feel. As an concept artist a great benefit to designing an emoji is having the same container shape for each individual expressions. The only challenge was deciding what that shape should be.

Exploring which Emoji Design possibilities turned into a daunting task

I didn’t want design emojis based on the already well known yellow emoji heads. As I considers all the options for my emojis I kept coming back to the thought of a candy as the subject matter. Candies are colorful and simple shapes and come in a variety of sizes and shapes. Still which candy to drive my emoji was still allusive to me. So, I considered and sketched alternatives, fruits, animals or a type of food sticker. Unfortunately, nothing clicked.

During the time when I was contemplating which the muse for my emoji’s stickers, my parents were in town for a visit. My father enjoys traveling with a container of salted nuts for snack. Dad likes to add a few hand fulls of candy corns to the nuts to create a sweet and salty combination. I was snacking on my Dad’s candy corn and salted nut concoction when I had my epiphany. Candy Corn was the unique candy to derive my candy emojis stickers from.

Candy corns and their magical connection into Halloween

The add benefit of using candy corns as my emoji sticker pack of choice was their natural connection to Halloween. Halloween is probably my favorite holiday along with Christmas. The magic of Halloween allows even adults to dress up and use their imagination. This connection of candy corn and Halloween would also help me to unlock the concept for my upcoming Kickstarter mobile game Candy Corn Critters.

Now I knew the subject for my stickers next step was to decide which platform to release my sticker pack to, the Google Play Store, Apple’s App Store, Facebook Messenger, Amazon or WhatsApp. At this point point in my life, the only App Store I had ever used was Apple’s. Also in considering all my family kids, wife, and extended family used iPhones. Also I wasn’t sure how many of them were using messenger or WhatsApp. So my final decision landed on Apple’s App Store.

You can follow the link here to take you to the final product, My Candy Corn Stickers.

To be honest the only online stores I had the most experience with was Apple’s App Store. As a start-up indie game developer I decided it would be a great benefit to become familiar with one of the online App Stores, either Google Play Store or Apple’s store. Since my family and I iPhones and I use a Mackbook and illustrate all my work on an iPad, I decide to start with Apple’s App store.

Now that the I identified where I was going go sell my stickers I wanted to keep the scope of our first project as an indie game developer low so I settled on just trying to publish a sticker pack. was to create a sticker pack for the app store. With meme stickers, emoji stickers and the success of Candy Crush and it’s candy stickers. Focusing on a food sticker seemed like a good idea for Apple’s

Landing PageGameGame Terms of Service – Games Privacy Policy – StickersPrivacy Policy – About – Corner Stone Page – ContactBlogs

Cute Kawaii Spider for Candy Corn Critters