MAD: Game DevLog #5: Game Over

Image by Steve Buissinne from Pixabay

Hello,

I don’t think I’d like to invest time and resources in this project anymore, I had fun programming it and learning about different aspects of game development and the Unity game engine.

Making games involves a lot of hard work and I initially started this in order to escape from my ordinary programming activities, to do something different.

Next, I think I’m going to shift my focus to some areas that will benefit the development of my career, like, trying to learn more about computer security and getting better at solving problems.

If you wanna checkout the game you can do on itch.io

I’d like to thank Andrei, Maxi and everyone who supported this project!

Before ending this article, here’s some Unity tips we’ve found useful while working on this game:

Make an atlas for prefabs to instantiate

Instead of setting prefabs to game objects manually in the editor, which is prone to error, you can make a static class to hold each prefab, this way can Instantiate all your prefabs programmatically.

    public static class PrefabAtlas
    {   
        /* Snow Walls */
        public static readonly GameObject DestructibleHighSnow =
            Resources.Load<GameObject>("Walls/destructible_high_snow");
        public static readonly GameObject DestructibleSnow = 
            Resources.Load<GameObject>("Walls/destructible_snow");
        public static readonly GameObject IndestructibleWoodCrate =
            Resources.Load<GameObject>("Walls/indestructible_crate");
    }

Instantiate(PrefabAtlas.DestructibleSnow)

Avoid classic singletons.

If you want to use classic singletons for your game logic or state then you may get things messy, depending on your specific use case, because Unity manages the lifecycle of MonoBehaviour classes.

To create a singleton in Unity you can inherit from Singleton:

public class MySingleton : Singleton<MySingleton>
{
    // (Optional) Prevent non-singleton constructor use.
    protected MySingleton() { }

    // Then add whatever code to the class you need as you normally would.
    public string MyTestString = "Hello world!";
}

Thank you!

References:

MAD: Game DevLog #4, Main Menu, Camera Shake and Enemies

Hello everyone!

Here’s what we did for our 4th devlog:


We’ve added a game menu to the game it is interactive and it’s working without any code at all. Thanks to Brackeys for making awesome tutorials, here’s the one we used for the menu: https://www.youtube.com/watch?v=zc8ac_qUXQY


After creating the main menu, we wanted to juice up the game a little and we’ve researched a ways to shake the camera when a bomb explodes.

The fist approach was naive and it didn’t work. I was taking the camera’s position and moving it randomly, which felt robotic. Luckily for us, Unity has a built in perlin noise generator for Cinemachine, the package we use for managing cameras.

The Perlin noise was developed by Ken Perlin and it is:

a technique used to produce natural appearing textures on computer generated surfaces for motion picture visual effects.

Unity also lets us tune the generator by modifying its amplitude and frequency parameters, which makes it very convenient to use.


Last but not least we weren’t satisfied with the enemies, we still have some bugs with their behavior but Andrei was there to fix them.

What I did instead was to try to make some decent enemy sprites in Aseprite, Cosmigo Pro Motion doesn’t work on my Mac :(.

Snow Enemy v1

Since I don’t have enough practice my sprites don’t look that good, I tried to keep them as simple as possible and I’ve only used two key frames when animating them.

If you want to start making Pixel Art there are lot of free tutorials on the internet. Here’s some to get you started:


Thanks for reading and have a nice day!

MAD: Game DevLog #3

Hello everyone!

I don’t have much to tell so I’m going to make it quick.

We’ve added Android build support and we’re working on setting up an internal test app on Google Play.

In order for the game to be playable on Android we’ve also added mobile controls and I got the chance to make them.

Here’s the button for placing the bomb:

To simplify our life we’ve used the CrossPlatformInput module from Unity’s standard assets package, this allows us to support PC, consoles and mobile devices with minimal code and configuration.

The current state of the game has some minor bugs with the enemies, explosions and UI, which we hope to fix soon.


I would like to thank Jan from Cosmigo for his amazing customer support he has given me while I was purchasing Cosmigo Pro Motion.

MAD Game DevLog #1

Hello Everyone!

In this devlog I’ll try to keep you updated with the latest state of our game. Since we all have full-time jobs, we’ve been working on this game only on our free time.

I’ve been implementing the world generation code and since I hadn’t any Sprites for the walls available, I’ve made my own ones in Aseprite.

Using the Sprite from above I’ve created two prefabs in Unity and I’ve changed the colour of one prefab to brown, the generated world looks like this:

The player sprite is also my doing.

A few days later I’ve received the wall sprites from Max and I imported them in Unity.

The reason the sprites look so small is that Max designed them so they can overlap but we’re not exactly sure how we’re going to do that, since this game is based on a matrix grid adding overlapping sprites to it might make it a bit confusing.

Here are some pictures on how the game would look like with overlapping.

Andrei took the heaviest task to get the bombs working. He was struggling with Raycasting, Coroutines and the 2D Physics system from Unity. After some time he managed to get it working. The bombs are placed and explosions are spawned, it still needs a bit of polish.

Thanks for reading and have a nice day!