SMS: Early April Update

A couple of weeks since the last update and things are progressing, although a bit slower than I would like. The “Retro 70s” and “Classic 90s” versions of SMS are pretty complete (minor tweaks still needed here and there), and I have begun the development of Shmup Mode.

A few reasons why progress is slowing:

  • I have been experimenting with various ideas for Shmup Mode, and this is taking a bit of time. There’s a couple things I know I want in the game, and there are some things I need to try in order to determine if it will work for me or not.
  • I had to spend a lot of time in order to try things that I ultimately decided I wanted.  For example, in order to test moving the player’s ship across several screens, I had to implement a camera follow and a parallax scrolling routine. The results are promising, but still require some fine tuning.
  • I decided that a tweening library would be a great addition. I spent a few days playing around with the one I chose to buy and use. Amazing stuff, and I see the possibilities. I may also go back and add some tweening to the Classic 90s and Retro 70s version as well.

So, progress was a bit slow, but a lot still got done:

  • Addition of tweening library.
  • Successful test of parallax scrolling.
  • Division of Shmup, Classic 90s, and Retro 70s into individual Unity scenes.

I have another week or so of development, and then I will take a weekend off to participate in Ludum Dare 35. Looking forward to it.

SMS: The Next Mission Game Play Video

Early game play video of the “Classic 90s Console” and “Retro 70s Arcade” modes of Space Mission Survival: The Next Mission.

Space Mission Survival: The Next Mission is the working title of a re-write of my mobile game Space Mission: Survival. These 2 game modes, and an all new “Bullet Hell” or “Shmup” mode will be available in one game.

Game play is basically done for these modes, but graphics and sounds are subject to change.

March Development Status

It’s been about 2 months since I started my recreation of Space Mission: Survival for desktop, and there has been a lot of progress. The game play for the Retro 70s and Classic 90s modes are pretty much complete. I am going to begin the Shmup mode shortly.

I started with “Classic 90s” mode first, since I am borrowing the graphics, sounds, and game play from my mobile version of Space Mission: Survival (my original goal was to recreate the mobile version). A few minor tweaks to the graphics and sounds, and I also have a playable “Retro 70s” mode. These modes still need a bit of a graphics face lift, but I am happy with the current results (for now), and the game plays nicely in both modes. I may upload a video in a few days.

Now The Hard Part

I am thinking of what I want in the Shmup (aka “bullet hell”) mode. This mode will be an entirely new design, although the basic concept of saving your astronauts will remain. There’s still opportunity to send me your ideas.

Right now, I believe the game will still be in a 2D view, and will allow the player to fly their ship throughout multiple screens. These seem to be the two things I have decided on… everything else is still unknown, but I am thinking about the following things:

  • A weapons upgrade system, and how to display that graphically.
  • The type of weapons you can upgrade to.
  • Whether the astronauts start off of the asteroids, or if they float off ala Classic SMS.

The Next Mission

Space Mission: Survival is a game I wrote for mobile devices back in 2014. Out of all the games I wrote, I come back to this one and play a few games from time to time. I like it. I guess I like it a lot.

I always thought that SM:S would be a great PC and console game, so I decided to try and develop a PC version. Over the past year and a half, I’ve started and stopped development on SM:S so many times I lost count. Reasons for stopping are various, but mainly because of my lack of experience in Unity (I was always programming myself into a corner), and my lack of encouragement (little feedback, little downloads), but about a month ago, I decided to start again, and will release something, at some time, no matter what.

My Unity experience has grown, and I am trying to put aside the lack of feedback (somewhat expected as an indie developer I guess), so here I am again, taking another shot at this. I am thinking about a game with the following modes:

  • A “Classic” mode, which is basically a rewrite of the mobile version of Space Mission: Survival.
  • A “Retro 70s Arcade” mode utilizing sounds and graphics from the early days of video arcades. Yep, I’m old enough to remember hanging out in arcades at that time, so I think I can put this together.
  • A “Shmup” mode, which changes SM:S from a level based shooter to a shoot-em-up consisting of a constant onslaught of different enemies, a new way to increase your fuel supply, and a way to earn power-up firepower.

I plan to release on my itch.io page and if all goes well, Steam and perhaps consoles (thinking big), but let’s not get ahead of myself.

I am currently about a month into development of “Classic SM:S” and progress seems to be moving along rather well. I’m close to finishing Classic SM:S, so I think this is probably a good time to announce this publicly.

I mentioned it during one of my previous restarts, but I am interested in your feedback and suggestions on the Shmup version. It’s your opportunity to get some features added to the game. If you have anything you would like to share, please let me know. I will post links to where I will be requesting feedback, but for now you can send me an email or reply to this blog, my Twitter, and the SM:S Facebook page. Right now, I have a couple of ideas, but nothing really set in stone.  I do want to get the two classic modes completed before I start on the new stuff, so it is a good time to submit your ideas.

Meanwhile, if you are interested in what Classic 90s SM:S looks and feels like, check out the mobile version. Let me know what you think.

Also, check back here and on my Twitter and Facebook pages. I will try to post as many updates as possible.

My Improved Unity Object Pool Class

Nice, little updates to code are… well, nice! I’ve been using a home-grown object pooler in Unity, and you may recall I wrote about that here.  It’s a very simple, yet effective way of creating a pool of objects.

Originally, I used List<GameObject> and looped through the list to find an unused game object. Thinking about it a bit, I realized I could use a queue instead.  Here’s the updated code:

using UnityEngine;
using System.Collections.Generic;

public class Pooler : MonoBehaviour {

    public GameObject pooledObject;     // object to pool, drag into Inspector
    public int pooledAmount;            // number of objects, drag into Inspector
    public string objectName;           // name of object, enter into Inspector

    private Queue<GameObject> pooledObjects;

    /// <summary>
    /// Inits the object pool.  Renames the pool objects to the objectName
    /// </summary>
    void Awake() {
        pooledObjects = new Queue<GameObject>();

        for (int i = 0; i < pooledAmount; i++) {
            GameObject obj = (GameObject) Instantiate(pooledObject, Vector3.zero, Quaternion.identity);
            if (objectName != "") obj.name = objectName;
            obj.SetActive(false);
            obj.transform.SetParent(transform, false);
            pooledObjects.Enqueue(obj);
        }
    }

    /// <summary>
    /// Gets the pooled object.
    /// </summary>
    /// <returns>The pooled object or null if all objects are used.</returns>
    public GameObject GetPooledObject() {
        if (pooledObjects.Count == 0) return null;
        return pooledObjects.Dequeue();
    }

    public void ReturnToPool(GameObject obj) {
        obj.SetActive(false);
        pooledObjects.Enqueue(obj);
    }
}

Using Queue<GameObject>, there is no need to loop through a list.  The Dequeue statement at line 33 will remove the first item from the queue and return it. I added the ReturnToPool method, so I can disable the object and add it back to the queue when I am done with it.

This object pooler is a basic and easy to use. Feel free to use or modify it if it works for you.

To use it, place this script on an empty game object, drag in a prefab, choose how many objects you want to create, and name it something.

Continuing Development of Retro Rebound Challenge

After submitting Retro Rebound Challenge as my Ludum Dare entry, I received some positive feedback. I asked folks who played my game if there would be interest in me continuing development, and I decided I should at least explore the possibility of a full release.

I’ve spent the past week developing a real-time drag-and-drop level editor that can be used to create the in-game levels. It’s a bit crude, but it works. I am going to try to tighten the code up and add save/recall features.

If I can create some puzzles for a single player and co-op mode, I am considering releasing Retro Rebound Challenge as a full release. My plan would be to include the level editor so people can create and share their own levels.

As always, I am interested in your thoughts on the game, whether I should continue development, and any ideas for improvements.

Ludum Dare 34 Post Mortem

screen2Ludum Dare 34 has come and gone, and while it is still fresh in my memory, I decided to put my thoughts down about the development of Retro Rebound Challenge in this blog.

After the theme was announced, I spent about an hour hashing ideas around, and decided on a “throw a ball in a cup” game that eventually morphed into a pong-like game. Keeping it simple was the key… the theme was 2 button controls, and a retro pong game should use retro graphics, so the paddle, ball, and brick images, as well as the sound effects were a simple design that I feel worked well.

Tools Used
What went well
  • Since it was my first Ludum Dare, and my first time actually using Unity to finish a project, I really didn’t know what to expect other than it was a very good possibility that I would not get anything released at all. I did get a playable game out!
  • Saturday morning I got up and thought that perhaps I should start over with a new idea, since I wasn’t happy with the progress. I decided to stick with it, and it came out better than I thought it would.
  • I am glad I added a level select feature. This is great for my testing, and for rating my game. The game adds complexity as you play, and I don’t expect a reviewer to play all the way through.
What Didn’t Go Well
  • For some reason, it took several hours to get the ball to behave correctly. Guess I need to refresher in Unity physics settings. Looking at it now, it seems easy enough, but it was very frustrating at the time.
  • I wish I had time to fix a few minor issues (Don’t we all).

I accomplished what I set out to do… release something that is playable, and I exceeded my expectations. I think Retro Rebound Challenge came out better than I could imagine.

To conclude, I had a blast, and I look forward to the next Ludum Dare. Depending on responses, I may continue development, since I do have several ideas I would like to add.