Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1404748 Posts in 68420 Topics- by 62079 Members - Latest Member: elkim

February 06, 2023, 03:23:30 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsShoptown Dooter: Best competitive top-down shooter!
Pages: [1]
Print
Author Topic: Shoptown Dooter: Best competitive top-down shooter!  (Read 1992 times)
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« on: September 23, 2022, 02:05:44 PM »



About the game
Shoptown dooter is a dual-stick shooter local multiplayer "party" game that aims to have a significant amount of depth and tactical sense without lacking the fun of playing with your casual neighbor.
 
Main Mechanics
Shoot - Dash - break walls - use items - charge weapons


Charge Weapons: charged-weapons have different effects on charge. The combat shotgun is the simplest:


A Deep Party Game? (Motivation)
Party games are known for lacking depth. This is not bad, because I love party games; I played so many of them. And while these games are perfect for one night of fun. (I usually play them a few times with different people, rarely again with the same people). In my opinion, you get bored quickly of them even though they provide a tremendous amount of fun at first. Some people play these games for an extended period, but you can see the big difference in average playing time between highly competitive games and party games.
 
I'm aiming to solve this; I want our game to be played with your younger brother and sister while still being fun against a pro. I know this might be difficult to achieve, but I think it is possible. And If we fail at that, we will still have a fun/chaotic party game to play.

Some party games have more depth (like speed runners, worms, etc.), but it becomes tough to play vs. pros. How do I plan to solve this? More on that later.
 
Team of brothers!
How rare is it that the entire team is made of 3 siblings? I'm not sure, but I'm guessing pretty rare.
Working with my brothers is a blessing, but it also has its disadvantages.
While everyone can participate in every aspect of the game (for example, all of us do code), we distributed the work by our primary roles.
 
Abdurrahman Khallouf: Game Design/ Production/ Marketing.
Hassan Khallouf: Tech Lead/ Developer.
Alaa Khallouf: Concept/Technical Artist.
Alaa (our youngest) is the one who started the project as a graduation project for his project, believe it or not.

Tools
Unity - Blender - Plastik - Codecks - Discord

Can we succeed in our first game?
I know how hard it is to launch your own game; I've been in this industry for years. I've been working at gaming companies for the last six years. I've failed many times at bringing my own projects to life before. But I think we got the scope under control. This is the first time I have shared my journey; hopefully, your support will encourage us to continue!
« Last Edit: September 29, 2022, 07:49:24 AM by Abdurrahman » Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #1 on: September 26, 2022, 12:50:04 PM »

Weapons
Unity's Technical System
skip this part if you are not interested in technicalities.
We approached weapons cautiously since they were the most critical part of the game.


Our main programmer made an excellent weapons system to support our needs. It has these settings:




As you can see, there is an area to add a modifier to a projectile. Basically, projectiles contain "LEGO pieces" we call modifiers which can be added to a projectile. For example, the revolver has bounce + DieOnSurface modifiers. Where plasma shots have those but also have a pierce modifier that applies only to players. So it bounces off walls but goes through flesh. (you can see how that works in mages)

There were many ways to approach this, but we used scriptable objects as our modifiers. However, some modifiers have data to be saved; as you may already know, scriptable objects are shared objects, and this data should be saved per bullet. The bounce modifier, for example, has a number for bounces. And it needs to be saved per shot. The scriptable object has a dictionary containing all the bullets (a list of bullets) to keep track of how many remaining bounces for each bullet.

This way is more efficient than having a mono behavior per modifier. It also led to a cleaner inspector since we have a small area where you can throw your LEGO pieces in; instead of having many scripts attached.

Here is a code for reference:
Code:
public abstract class ProjectileModifierWithData<T> : ProjectileModifier
{
    private IDictionary<int, T> shotsData;

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

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

Weapons Philosophy

For now, we have 11 weapons, and we do not plan to add more (for a long time). And even when we do, it will be weapons tied to unique mechanics. as this is a competitive game, we want the players to be very familiar with how to use each gun strategically.

While play testing, I found the 3 most fun strategies in this game.
1. Play cowardly around covers, block entrances with plasma shots and mines.
2. Use hit and run to get closer to your enemies and finish them with a high-damage short-range weapon.
3. Suppress your enemies and blow up their covers while laughing like a psycho.

And we wanted to capitalize on that (while removing some of the not-fun) strategies that I might talk about later.

So I broke down my weapons into three main categories:

Assault: to support the suppression-aggressive types.
Safe: to support the tactical types.
Corner: to support the hit-and-run types.

Weapons Show Case
Art is not done yet.
So far, we have made these weapons:
Basic: Pistol



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



Safe: Anti-Armor Gun, Energy Sniper



Corner: Revolver, Plasma Rifle, Mine Launcher



Charging Shots
I'll let the pics speak for themselves.



And by the way, I need an idea for charging the mine launcher. Maybe other weapons as well. Feel free to contribute.
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
mobilelast
Level 1
*


View Profile WWW
« Reply #2 on: September 27, 2022, 12:18:28 PM »

Looks very good and interesting, there’s never enough good party games. It’s also nice that you share your technical experiences.

Are you planning a cooperational mode against the computer? My best party-gaming experiences have been when everyone works as a team against a common opponent. Also, losing must be somehow rewarding, showy, absurd and fun.
Logged

Avaruustaistelupeli (ATP) - a space combat game
- Free download from itch.io or IndieDB
- Dev diary here
kason.xiv
Level 0
***


View Profile
« Reply #3 on: September 28, 2022, 12:56:50 PM »

Looks fun :] planning to release on switch?
Logged
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #4 on: September 29, 2022, 07:07:32 AM »

Looks very good and interesting, there’s never enough good party games. It’s also nice that you share your technical experiences.

Are you planning a cooperational mode against the computer? My best party-gaming experiences have been when everyone works as a team against a common opponent. Also, losing must be somehow rewarding, showy, absurd and fun.

Thanks!
We are planning to have a co-op mode. At least a 2v2 mode where you play against AI. but there could even be a fully dedicated mode for co-op. but we don't want any half-cooked features. So if we run out of time, maybe we will let it go or do it post-release.

Looks fun :] planning to release on switch?

We will definitely look for console releases if we have a successful release on steam.
« Last Edit: September 29, 2022, 07:40:28 AM by Abdurrahman » Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #5 on: September 30, 2022, 03:11:40 AM »

Art is not our strongest suit, I would say. While we have a fantastic concept artist, he is still a beginner at making 3D art. both our artist and our main programmer are good at modeling. But texturing and directing the entire scene to look good will be a challenge.


This is how the game looks right now. But this is just an abstract level to test gameplay, not art.

We started going through iterations for level concepts.
Based on our lore and general art direction. We decided to have three main themes:
The Shoptown.
The Jungle Island.
The Crystal mines.

I will talk about why we picked these themes later. But for now, I want to show you a few concepts we've been working on. (mostly the shoptown)



We started with improving what we currently have.





Some colorless detailed environment.



Finally, we added some colors.

Although this is not final, and the post-apocalyptic features don't show. But we will start with modeling. I want something beautiful to present for devlogs and demos while the concept and art evolve.

Technical Requirements

Does the concept have technical requirements as well? of course it does!
It is a requirement to make the whole level or (arena) viewed on one screen. Our game spawns weapons and items across the arena, and we want the players to know what spawned and where.

We don't want to mess around with zooming that allows missing vital strategic information. Cam movements could be excellent for taste if done subtly. Or for other game modes.
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Alain
Level 10
*****



View Profile WWW
« Reply #6 on: October 03, 2022, 12:46:23 AM »

Cool, I like the concept art! The verticality in the train cart level is a nice touch. Keep up the good work!
Logged

Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #7 on: October 07, 2022, 04:45:04 AM »

Cool, I like the concept art! The verticality in the train cart level is a nice touch. Keep up the good work!

In shoptwon dooters.. sorry  Cheesy top-down shooters, you rarely see verticality. We intentionally want to add some "depth" to make beautiful sceneries.
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Hassan Khallouf
TIGBaby
*


View Profile
« Reply #8 on: October 25, 2022, 01:40:42 PM »

Hello everyone!

My name is Hassan and I'm the technical lead for this project.
I will try to share few issues we had to deal with from the technical side, this might be more relevant to Unity users, but I guess a lot of it is a general Software Architecture issues.

Technical Debt!
As mentioned in a previous log post, this project was started as a graduation project, and if you have been there, you would know quality of code would be in the bottom of the priority list, IF it made it to the list  Shrug

The next big task I was trying to tackle was making an AI for the game, the code for controlling the player was all crammed in one file called PlayerController, it handels taking input from the controller and make sure the player can move/dash/shoot or whatever action is taken before giving the action to the player class, and sometimes it handles part of the logic as well! And yeah, the animation logic was based on the input as well, so throw that into the mix.

this made the task of making AI very difficult, I needed to deal with an API of the player, general functions like Move(), Shoot(), Dash(), it doesn’t matter who is calling the function, it could be a controller, AI, or even a testing component.

so first order of business was to clean this, now the PlayerController class does nothing aside from responding to input from hardware and propagates the message to the proper behavior, we now have Movement behavior, shooting behavior, animation logic is also separate in a class!



Implement the AI
We flirted with the idea of doing machine learning agent but I learned from previous experience when to stop when I have a stupid idea or something that is interesting but it’s bit dreamy and out of our league, I can do the machine learning part, but it will take far too long for a game that is supposed to be played with friends and the AI is only a complementary part of the game.

So off we go to go-old fashion decision tree, I will make another post about the AI when it has interesting behavior and it is able to win against me for a single match at least.  Well, hello there!

For now all what I’m going to share is how good the structure is, all what I need to is to throw a component called Brain on the exact same player prefab we are using and it will start acting and moving and come to life!, but all what it does now is move north – how exotic!  My Word!
I will continue sharing updates about the AI soon hopefully.


« Last Edit: October 26, 2022, 12:26:58 PM by Hassan Khallouf » Logged
mobilelast
Level 1
*


View Profile WWW
« Reply #9 on: October 28, 2022, 12:45:45 AM »

The first loss to the AI you’ve made yourself is one of the most rewarding feelings a programmer can have.
Logged

Avaruustaistelupeli (ATP) - a space combat game
- Free download from itch.io or IndieDB
- Dev diary here
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #10 on: January 07, 2023, 12:17:25 PM »

a Major Setback

It's been a while since we updated the project. We were bottle-necked by design, and the new features are code without anything to show. Luckily it is good news! It is personal, so we will skip this part.

When the design stopped, the motivation started to drop, as we felt we were not progressing in a way we could "sense."

The Football Worldcup came along during this period, so we started following the event. We like sports, but we don't have time to watch them. The world cup was the perfect excuse to take a break after 2-3 months of heavy work. So we took it.


Our designer is back now, and the weapons, items, and other features will see the light!

The new levels are a work in progress, but our concept art is turning into reality:


Gameplay Improvements
We've worked hard the last few days and are officially back to the project. We tested the game, we managed to turn the features we made fun by minor changes, and I wrote this on our discord:

Quote
Wow, even with someone with my experience, I've learned much today! Yesterday, we had a little bit of fun, but the game was meh. We kept iterating and fixing what we could improve. Things like damage of barrels, speed of throw, explosions radius, AA gun powerful shards, tweaks on mine launcher and plasma. Etc.
The game became fun again, and we played "just one more round" as we did before, and we were loud, excited, and laughing.

It was a friendly reminder of why I am making this game. And I am very encouraged to complete our vision.

More updates are coming soon!
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #11 on: January 21, 2023, 10:07:31 AM »

Items

Items Philosophy

Just like weapons, all items are built around using covers to your advantage; moving around the covers is the main thing we're focused on.

Given our close relationship with covers (that are mostly wooden boxes right now), I gave creating items 2 main rules:

  • 1. All items can be used offensively (to break covers or flush out your opponents) or defensively (to hold an aggressive attacker away while shooting safely)
  • 2. All items can be used on a wall(cover) for modified usage.
  • 3. All items can backfire/be used against you.


We will have a limited number of items because I want the player to quickly know all items at heart. The items should be dynamic enough to create exciting scenarios, and that can be done easily if your items(or weapons) are tied into your core mechanics.

With that in mind, I found myself creating two categories of items:
Choke point Items help you defend or flush out an area.
Movement Items modify your movement to escape or pass through a choke point. (we created only one so far; the teleporter)


Items Show Case
Note: not all items have a wall use right now.
Note 2: Effects are far from final.

Explosive Barrel


Use: damage opponents and break walls!


Toxic Barrel


Use: Fill an area with a toxic cloud. Great to flush out opponents or keep them away.


Shield

Use: Create a shield that allows bullets in one-way.

Wall Use: increase the HP of the wall.


Fire Amplifier


Use: Create a shield that will make your bullets do double damage.

Wall Use: Create a firewall that spits fire bullets when shot.


Tornado in a Jar


Use: Create a strong tornado pulling everyone in.

Wall Use: On breaking the wall, the tornado will move in the direction that was shot in.


Mine

Use: permanently stays on the ground. Explode if triggered by close movement, shooting additional bullets on explosion.


Teleporter

Use: Teleport

Wall Use: Create a teleporting wall, allowing players to teleport a small distance on touch.

--------------------------------
More are coming later, but these items are sufficient to test the fun of the game.
This show case will be updated.
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
mobilelast
Level 1
*


View Profile WWW
« Reply #12 on: February 02, 2023, 05:16:46 PM »

That’s a creative and well visualized set of features.

I have many similar ones in my project. One I’ve found useful is a force field or shield that reflects bullets back towards the shooter. It adds a danger factor to shooting, which can make a good tactical twist.
Logged

Avaruustaistelupeli (ATP) - a space combat game
- Free download from itch.io or IndieDB
- Dev diary here
Abdurrahman
Level 0
*

Excellent Falafel eater


View Profile
« Reply #13 on: February 03, 2023, 09:28:17 AM »

That’s a creative and well visualized set of features.

I have many similar ones in my project. One I’ve found useful is a force field or shield that reflects bullets back towards the shooter. It adds a danger factor to shooting, which can make a good tactical twist.

Nice eye! We were thinking about adding a reflect mechanic to the shield. You managed to think it without playing the game.
I will look up your project  Wink
Logged

Hey everyone! I am making a competitve party top down shooter. kindly check my devlog:
https://forums.tigsource.com/index.php?topic=73729.0
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic