Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411428 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 01:58:09 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSmackball [Coming to Steam - May 27th]
Pages: [1]
Print
Author Topic: Smackball [Coming to Steam - May 27th]  (Read 4793 times)
Vidak
Level 0
**



View Profile WWW
« on: February 12, 2021, 11:26:09 AM »

WISHLIST ON STEAM

Teaser Trailer:




About

Hi, everyone! I’m working on a game called Smackball. It’s a fast-paced, competitive sports game for two players, inspired mainly by tennis, squash and air-hockey. The game has local multiplayer and single-player(player vs. AI) modes right now, with online multiplayer in the works. I created the initial prototype of the game during Ludum Dare 46, and back then it was called Untitled Sport Game. Since the LD jam, I’ve been slowly expanding the game, and recently I’ve picked up the pace of development. I’m developing the game for PC(Windows & MacOS).




Gameplay

The gameplay is pretty simple, but I’ve tried to make it so that there’s some depth to it. The basic rules/mechanics are:
  • Players can only move in their own half of the court.
  • Once the ball enters a player’s half, they have to quickly return it(shoot it back) to their opponent’s half, otherwise they commit a foul.
  • Players earn points by either scoring a goal or forcing their opponent to commit a foul.
  • Matches are played in a “race-to-X-sets” style.
  • Players can increase their moving speed and shooting force by sprinting.
  • Players have a limited amount of stamina, which is drained while shooting or sprinting, and regenerated otherwise.
  • Occasionally, players switch their sides on the court.

You can score two types of goals: straight goals & bounce goals. You can also try to force your opponent to commit a timer foul. Each way of scoring is worth a different amount of points. These values, along with some other settings are customizable in-game, so that players can modify the game to incentivize different styles of play.

Straight goal(2 points):


Bounce goal(3 points):


Timer foul(1 point):



Art Style

I went for a clean and minimalistic look, since it’s the only look I can easily pull off right now. Smiley I come from a programming background, and I’m not good at drawing/animating(yet). I think this style also matches up well with the fast-paced gameplay, because it makes it pretty easy to “read” the screen at any time.

Since the initial prototype, I’ve spent some time polishing the game’s visuals, mostly by improving the colors/animations, and by adding post-processing effects. Here’s how the art style has changed since the initial prototype:






Technical

I’m developing the game with Unity and C#. I’m also using ReWired for controller support(works great, especially for local multiplayer games), and LeanTween for tweening. I’ll probably also use either Mirror or Photon for networking, but I’m still researching this.


Status

So far, I’ve implemented most of the core of the game(including gameplay, UI menus, sound effects etc.), and things are in a pretty polished state. The bigger tasks that are still on my roadmap are:
  • Implement online multiplayer: This might be a bit of a challenge, since I don't really have any experience developing multiplayer games. Also, since the gameplay is pretty fast-paced, I'm not sure how well I can get this to work.
  • Experiment with some additional mechanics/game modes: I don’t have anything to share right now, but I have some ideas for additional mechanics which I think would add some depth/variety to the gameplay.
  • The rest is mostly about polishing up/refining things and bugfixing.

I’m hoping to have the game finished in a couple of months, if things go well. I’ll try to update this devlog about once a week every week or two. Any feedback is welcome and appreciated.


Links

I’ll also be posting updates about the game on my website and/or twitter.
« Last Edit: May 11, 2021, 02:59:28 AM by Vidak » Logged

Vidak
Level 0
**



View Profile WWW
« Reply #1 on: March 02, 2021, 03:46:42 AM »

Update #1 - Online Multiplayer

I’ve been working on the online multiplayer recently. I started by researching what networking solutions/frameworks are available for Unity. Since Unity’s old framework(UNet) is deprecated and no longer supported, and their new one(Unity Netcode) is still in preview, and it’s built on top of the new ECS framework(which I don’t use), I started looking for third-party solutions.

Networking Frameworks

This is the first time I’m implementing online multiplayer for a game, so I was looking for something that’s easy to use. My first two choices were Photon PUN and Mirror.

Initially, I thought I’d use Photon. It seemed pretty easy to set up, it has built-in matchmaking, and you don’t need to host any servers. It does come at a cost, though, depending on your number of concurrent players and amount of networking traffic.

I also took a look at Mirror, which is free and open source, it’s based on UNet, and it seems to have a strong developer community. However, you have to make your own matchmaking and host your own servers, if necessary.

After some research, I realized that I probably won’t need any dedicated servers, except for matchmaking. For the actual gameplay, I just need to have two clients communicating with each other. I also found out that Steam provides a networking and matchmaking API through Steamworks, which works well with Mirror.

I decided to try using Mirror and Steamworks. This way I’d be able to implement everything I need, including matchmaking, without worrying about hosting servers and server costs.

Demo Game

I first made a small test-game, to try out the tools and to learn a bit about networking in general. The game is a mini version of Smackball, with private matchmaking (through Steam, and locally - for testing). Here’s a video of the game, with two instances of it running locally(on localhost):





In-Game Implementation

Things were a bit laggy when running on localhost, but when connecting through Steam, everything was a lot smoother. It worked well enough, so I moved forward with this setup and started implementing it in Smackball. I had to rewrite a bunch of my gameplay code, and I broke some things, but I’ve managed to get most of the game working for online matches. Here’s what that currently looks like(running locally):





The main things I still need to do are to implement public/random matches and to add some missing functionality, like match settings customization. The rest are just smaller things and bugfixes. I should soon be done with this, and I’ll be able to move on to other gameplay-related work.
Logged

bram_dingelstad
Level 0
***


Always up for a chat!


View Profile WWW
« Reply #2 on: March 02, 2021, 09:15:00 AM »

Hey Vidak, cool stuff! I'm not that into Unity myself and don't know a lot of the specifics in that field. I do however have a lot of experience with application, network and game design. A thing you might be interested in is doing something with WebRTC/STUN in combination with a web export. This way, you don't even need something like SteamWorks to do the matchmaking for you, and you can run the game from any webpage and even in desktop binaries.

I've only gotten this to work in something like Godot, but it should be possible for something like Unity. Also, don't just take my words for truth or something you need to do Smiley

Just thought I would share, can't wait to see what you'll make!
Logged

If you'd like to see something of my work check out:
The devlogs of the game I'm working on - My website/blog - My itch.io
Vidak
Level 0
**



View Profile WWW
« Reply #3 on: March 02, 2021, 01:28:38 PM »

Hey Vidak, cool stuff! I'm not that into Unity myself and don't know a lot of the specifics in that field. I do however have a lot of experience with application, network and game design. A thing you might be interested in is doing something with WebRTC/STUN in combination with a web export. This way, you don't even need something like SteamWorks to do the matchmaking for you, and you can run the game from any webpage and even in desktop binaries.

I've only gotten this to work in something like Godot, but it should be possible for something like Unity. Also, don't just take my words for truth or something you need to do Smiley

Just thought I would share, can't wait to see what you'll make!

Thanks! Smiley I'm planning to just release the game on Steam. I'm not too familiar with web development, and I don't really want to host and manage my own servers, so Mirror + Steamworks looks like a great setup for me. From my tests so far, it looks like it'll work well enough, so I'll stick with that.
Logged

Vidak
Level 0
**



View Profile WWW
« Reply #4 on: March 12, 2021, 11:21:57 AM »

Update #2 - Color Themes and Game Modes

About one week ago, I finally managed to iron out all of my bigger issues/bugs with the online multiplayer. There’s still a lot of work left, like adding public matchmaking, polishing up a bunch of things, handling errors etc, but I’m happy with how the online multiplayer works for now. For the last week, I’ve mostly been working on gameplay-related stuff and the game’s visuals.

Color Themes

I’ve added support for color themes. There are 8 different themes right now. They still need to be cleaned up a bit, but I like the general look of all of them. Here are my favorites:







Game Modes & Settings

I’ve added a few more gameplay parameters that can be modified(paddle size, goal width, max. player stamina, game speed), and a few different game modes:
  • Standard: The default mode for Smackball. Bounce-goals are worth more than straight goals.
  • Relaxed: A beginner-friendly mode, with more forgiving timers. All goals are worth the same amount of points.
  • Runner: Smaller goals and paddles, players have more stamina. Requires more moving around. All goals are worth the same amount of points.
  • Striker: Like Standard, but straight goals are worth more than bounce-goals. Executing your serves well is really important here.
  • Custom: All gameplay parameters can be modified.

I haven’t done much playtesting, so these modes might change a bit(or a lot). I’ve also started working on a Powerups mode, where players are given a random powerup every 15 seconds. I’m still implementing this, and I’ll probably share more about it in my next devlog entry.
Logged

Vidak
Level 0
**



View Profile WWW
« Reply #5 on: April 12, 2021, 09:55:52 AM »

Update #3 - Steam Page, Tutorial, Powerups

Steam Page

Smackball has a Steam page now: https://store.steampowered.com/app/1554520/Smackball/.

This is my first time publishing a game on Steam, so things like this are taking a while. I’ve also created a teaser trailer.




Tutorial

I’ve added a tutorial that walks you through the basic controls and mechanics of Smackball. The tutorial is pretty simple, it just shows the player how to move, shoot & aim.



Powerups

I’ve also finished the powerups mode. The way this mode works is:
  • Each player gets a random powerup after 7 seconds.
  • Once a player gets a powerup, it remains available until used.
  • After a powerup is used, a new one is generated in another 7 seconds.
  • Powerups are reset after each set, but persist after goals/fouls.

I tried to design the powerups so that each one has a good counter-powerup. There are 9 powerups right now:
  • Reset timer: Immediately resets your ball timer.
  • Recharge stamina: Instantly recharges all your stamina.
  • Drain stamina: Instantly drains all of your opponent's stamina.
  • Goal shield: Spawns a shield on your goal line, active for 7 seconds, or until it's hit once.
  • Freeze ball: Freezes the ball to a halt. The ball is "unfrozen" the next time it's hit.
  • Ghost ball: Makes the ball invisible for 4 seconds.
  • Super smack: Gives extra power to your shots for 4 seconds.
  • Giant paddle: Gives you bigger paddles, extending your reach.
  • Dash: Allows you to quickly "jump" a long distance, just once.

I like how the powerups mode turned out, as it gives the game quite a different dynamic compared to the other modes. It adds an element of luck, but also allows for more strategizing. Here's the mode in action:





« Last Edit: April 12, 2021, 10:01:52 AM by Vidak » Logged

Vidak
Level 0
**



View Profile WWW
« Reply #6 on: May 11, 2021, 02:58:36 AM »

Update #4 - Release Date, Beta Test

Hi. It’s been a while since my last update. I’ve mainly been fixing bugs & networking issues, polishing the game and preparing for release. Here’s what’s new:

Smackball is coming to Steam on 27th May 2021!

Here’s the final gameplay trailer:





I’m also planning to run a closed beta before release. Here’s a sign up link, for anyone who's interested.

Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic