Home Indie Game Shoptown Dooter: Best aggressive top-down shooter!

Shoptown Dooter: Best aggressive top-down shooter!

Shoptown Dooter: Best aggressive top-down shooter!


Unity’s Technical System
skip this half if you’re not occupied with technicalities.
We approached weapons cautiously since they have been essentially the most important a part of the sport.

Our fundamental programmer made a wonderful weapons system to assist our wants. It has these settings:

As you may see, there may be an space so as to add a modifier to a projectile. Basically, projectiles comprise “LEGO items” we name modifiers which might be added to a projectile. For instance, the revolver has bounce + DieOnSurface modifiers. Where plasma pictures have these but additionally have a pierce modifier that applies solely to gamers. So it bounces off partitions however goes by flesh. (you may see how that works in mages)

There have been some ways to strategy this, however we used scriptable objects as our modifiers. However, some modifiers have information to be saved; as chances are you’ll already know, scriptable objects are shared objects, and this information ought to be saved per bullet. The bounce modifier, for instance, has a quantity for bounces. And it must be saved per shot. The scriptable object has a dictionary containing all of the bullets (an inventory of bullets) to maintain observe of what number of remaining bounces for every bullet.

This method is extra environment friendly than having a mono conduct per modifier. It additionally led to a cleaner inspector since now we have a small space the place you may throw your LEGO items in; as a substitute of getting many scripts connected.

Here is a code for reference:

public summary class ProjectileModifierWithData : ProjectileModifier
    non-public IDictionary shotsData;

    public void SaveData(Projectile projectile, T information)
        shotsData ??= new Dictionary<int, T>();
        shotsData[projectile.GetInstanceID()] = information;

    protected T GetData(Projectile projectile)
        if (shotsData != null && shotsData.ContainsKey(projectile.GetInstanceID()))
            return shotsData[projectile.GetInstanceID()];
        return default;

Weapons Philosophy

For now, now we have 11 weapons, and we don’t plan so as to add extra (for a very long time). And even after we do, will probably be weapons tied to distinctive mechanics. as this can be a aggressive sport, we would like the gamers to be very conversant in how you can use every gun strategically.

While play testing, I discovered the 3 most enjoyable methods on this sport.
1. Play cowardly round covers, block entrances with plasma pictures and mines.
2. Use hit and run to get nearer to your enemies and end them with a high-damage short-range weapon.
3. Suppress your enemies and blow up their covers whereas laughing like a psycho.

And we wished to capitalize on that (whereas eradicating a number of the not-fun) methods that I’d discuss later.

So I broke down my weapons into three fundamental classes:

Assault: to assist the suppression-aggressive varieties.
Safe: to assist the tactical varieties.
Corner: to assist the hit-and-run varieties.

Weapons Show Case
Art is just not finished but.
So far, now we have made these weapons:
Basic: Pistol

Assault: Machine Gun, Combat Shotgun, Sawed-off Shotgun, and Bazooka. We may add the Wrench right here.

Safe: Anti-Armor Gun, Energy Sniper

Corner: Revolver, Plasma Rifle, Mine Launcher

Charging Shots
I’ll let the pics converse for themselves.

And by the best way, I would like an thought for charging the mine launcher. Maybe different weapons as nicely. Feel free to contribute.



Please enter your comment!
Please enter your name here