Beginner's Tutorial


Starting Out

First of all, holoVersus is designed with keyboard in mind, all inputs are digital instead of analog. Yes, using a keyboard is highly recommended (you need to test for ghosting issues though). holoVersus is a 8-button platform fighter, and two of the buttons are "modifiers" which only has effect if pressed alongside other buttons and are intended to be pressed with your thumbs/pinkie fingers across both hands. You can still use a gamepad if you want though. I highly doubt arcade sticks will work with this game, but you can try.

You can navigate the menu with your mouse. Go to "Controls" first to set your desired inputs. If you go to "Load Preset" you can choose between some presets, including presets for gamepads. I recommend the "NavKeys" presets, which is what I use, but not all keyboards have the navigation keys.


Here are some explanations for some of the options under "Controls":

  • "Up to Jump" 
    • It's your tap jump. Turning it off makes it so that you can only jump with the Jump button.
  • "Down+Jump Fastfall"
    • By default you can fastfall just by holding Down, but you can make it so that you need to press both Jump and Down to do it. No double tap Down to fastfall in this game though.
  • "Input Buffer"
    • holoVersus by default has a pretty generous 5-frame input buffer, but you can change it if you want (players can have different amount of buffer in this game).
  • "Input Assist"
    • There are many actions in this game done by pressing multiple buttons at the same time. By default there is a leniency Input Assist system so that you don't have to press the buttons on the exact same frame, but you can turn it off if you want.
  • "Deadzone"
    • Your analog stick sensitivity. The lower it is the more sensitive your stick is. No effect if you are using keyboard.
  • "RS Up/Down/Left/Right"
    • Right Stick actions. In the current version of the game the Right Stick actions are used for Dodging only. No effect if you are using keyboard.
  • "Extra Buttons"
    • Allows you to set extra physical buttons and map them to actions. You can set multiple actions to the same extra button, allowing you to set macros if you want.

Be sure to save your inputs under a preset once you are done via "Save Preset". You can navigate the menu with buttons (Light = Accept, Fierce = Back/Save, controls for both Player 1 and 2 can be used to navigate the UI).

Under "Settings" you can set various display options and audio volume. You can turn off the FPS indicator and damage numbers if you want. The Replay management system is also here, but beware that it may be unstable.

Game Modes:

  • "Survival"
    • PvE mode. Fight against waves of CPU mobs alone or with local co-op. Buy power-ups to become broken.
  • "Local"
    • Local 1v1, I don't recommend both players playing on the same keyboard though.
  • "Netplay"
    • More on netplay later.
  • "Training"
    •  Bare-bones.

During PvP play, you can set various settings like Stock Count and Time Limit. The "Static Stage" option switches off moving platforms if toggled. More game modes will be added in the future. Oh yea, there are no CPU opponents outside Survival Mode. I couldn't figure out how to get pathfinding to work with platforms, sorry...


Game Basics

So what is this game? It's a platform fighter, of course, and is designed with a low skill floor. The game doesn't have normal Ring-Outs, being hit against the Blast Walls/Ceiling will bounce you back, unless you lost all your HP and took a Lethal Hit, then you are probably dead and will lose a Stock (it's kinda like a health-based version of KOF Stadium in Smash Ultimate). Instead of stage recovery and ledge guarding, the game is about doing silly combos and just beating the crap out of your opponent. Simple, no?

During character select, you can change your palette using Aux and Block buttons, as well as check your controls by holding Special.


UI:

  1.  Your remaining Stocks. You lose if you run out of these.
  2.  Your remaining HP. If it is below zero you are in danger of taking lethal hits.
  3.  EX Gauge - Used to perform EX Moves (stronger Special Moves) and certain metered actions. Supers are not in the game yet, but they are coming. You gain EX Gauge by attacking, being hit, or by staying near the center of the stage (PvP Modes only).
  4. Guard Gauge (GG) - You spend it on Blocking attacks and get Stunned if you run out. On surface it is similar to Shield Health from Smash Bros, but it has quite a bit more to it that I wouldn't elaborate in this beginner's tutorial. GG regenerates quite slow, but you can accelerate it by landing a physical hit on an opponent.
  5.  Burst Token - Indicates that you can perform a Burst Escape (Block + Aux) to break out of combos. You get only 1 per Stock, but can get it back after spending it if you land a kill.
  6. Remaining Time - In a Time Over, the player with more remaining Stocks/HP wins.

Basic Controls:

  • Left/Right
    • Move left/right. There is no walk/run in this game.
  • Up/Jump
    • Jump. The longer you hold the button the higher you jump.
  • Down
    • Pressing Down in air will perform Fastfall (unless you toggled "Down+Jump Fastfall"). You can fall through soft platforms by pressing the Jump button (not Up) while pressing Down. There is no crouching in this game.
  • Dash
    • Dash in a direction. You can Air Dash in this game, and the directions you can Air Dash in is character-specific. You can attack anytime during a Dash (except for certain moves) but you cannot Jump till the active Dash animation is done. You also cannot Block for the entire duration of a Dash.
  • Light/Fierce
    • Your Normal Attacks. Pressing Up or Down while pressing them will perform different attacks. Press Light and Fierce at the same time to perform a Heavy Attack!
  • Special
    • Used to perform Special Moves. In this game, Specials are done by holding Special then pressing Light/Fierce/both. Some Specials also need Up/Down to be pressed as well. Check your character's movelist for the commands. To do an EX Move at the cost of 1 bar of EX Gauge, press Special then release it while pressing the rest of the command at the same time. Not all Specials have EX versions and some EX Moves have no non-EX versions.
  • Block
    • Hold to block attacks. Can be done in the air. Cost GG. Do note that Blocking is directional in this game and you can be crossed-up.
  • Dodge
    • Aux + Dash. Has iframes, but cost GG. You can Dodge in 8 different directions, but there are no spot dodge in this game. If you are using a gamepad, you can use the Right Stick to Dodge. You can Dodge in the air once per airtime.
  • Burst Escape
    • Block + Aux during hitstun to break out of combos. Cost your Burst Token and can only be done when Guard Gauge is over 100%. Easily baited, watch out!
  • Pause
    • Open the Pause Menu. During Local/Survival you will need to hold it for a while. Cannot be used during Netplay.

These are probably all you need to begin playing. Once you understand basic controls you can get into the more advance stuff.
https://zortoise.itch.io/holoversus/devlog/546647/advanced-mechanics


Netplay


As stated before, holoVersus uses serverless p2p networking. It does not have matchmaking and stuff like that. You pretty much only play against people you know. You may need to make an exception for Godot and holoVersus on your Firewall.

To play over the Internet (WAN), the host need to do Port Forwarding. You don't have to do it if you are joining a game though. The host will need to share their public IP address with the guest for WAN. LAN play is supported as well. If Port Forwarding is not feasible, try using a Virtual LAN service like Radmin VPN or Hamachi, but this can cause latency/packet loss/desync issues. Or you can just play local games via Parsec.

More detailed instructions on hosting/joining games are contained in the game when you press "Netplay".

holoVersus has built-in tools for copying your private/public IP addresses to your clipboard. Don't worry, they are hidden on the game's screen. For the port number, you can set it to other values (0 to 65536) other than the default 44500, but know that port numbers 0 to 1024 are reserved for privileged services and designated as well-known ports.

holoVersus uses a Rollback Netcode made by me from scratch since I couldn't figure out how to incorporate GGPO into Godot. It's a prototype made by a beginner coder with no experience in networking, so it's not the most stable thing. The netcode can be highly unstable with spotty connection and become prone to desync and crashes.

The Max Rollback allowed can be adjusted in game. If your game keep desyncing, try cranking the Max Rollback up. Note that this may increase latency. holoVersus is a pretty fast game, try to keep the amount of rollback frames to 4 or lower or the game will become unplayable. You can add in input delay to "absorb" and reduce the rollback frames. Only the host can set input delay and it's fixed for both the host and the guest. This prevents one-sided rollback, if you don't like the input delay the host set, nag at them to change it.

Oh, if you playing on windowed mode, please don't adjust the position/size of the window or alt-tab during a networked match. It may cause freezing and desync. This is a known issue for Godot on Windows, nothing I can do about it.


Replays

Replays are saved at "C:\Users\___\AppData\Roaming\Godot\app_userdata\holoVersus\Replays". While watching replays, hold Special to open up the controls for replays. Frame Reverse can only done for the past 180 frames. Only replays of the current version are supported. If the versions mismatch, the replays will likely break.

The Replay System is a prototype, so it may contain bugs resulting in inaccuracies and the replay breaking.


Training Mode

Pretty barebones. You can save/load a save state within it, set Guard Gauge to return to a certain point, toggle regeneration, and toggle the hitbox/frame data/input viewers. You can control the training dummy with Player 2's controls and can also swap controls between Player 1 and 2.

I may add more functions to it in the future but that is low priority. I don't think this game is competitive enough or will have a large playerbase to warrant a better one, but we'll see.


Other Tutorials

Advanced Mechanics:
https://zortoise.itch.io/holoversus/devlog/546647/advanced-mechanics

Survival Mode Tutorial:
https://zortoise.itch.io/holoversus/devlog/546825/survival-mode-tutorial

Movelists:


FAQ

Q: Did you seriously just linked the in-game tutorial button to this article?
A: ...Sh-shut up. An in-game tutorial is low priority. I will do it in the future... the far future.

Q: No offstage game? Really?
A: I really tried, but it's too difficult to balance offstage game around the combo system, sorry.

Q: I am getting issues trying to update the game.
A: Try deleting "C:\Users\___\AppData\Roaming\Godot\app_userdata\holoVersus". All your saved data is stored there and some may have issues with the current version.

Q: My game is jittering/stuttering?
A: Try fiddling with visual settings under "Settings". I find that capping the framerate to 60FPS can reduce the jittering. Note that Vsync Via Compositor is only active on windowed mode for Windows, and may reduce framerate to 30FPS for some machines (mine does when I am running OBS as well). The game can stutter randomly sometimes but these random stutters often stabilize after the game has been running for a while. Probably some cache issues? I dunno.

Q: I am seeing screen tearing at fullscreen?
A: Yea, I have no idea how to get rid of that, I tried everything I can think of. Vsync stuff has no effect, only thing that resolve it is not playing at fullscreen. Even borderless fullscreen doesn't help. Could just be my PC being a toaster...

Q: When will >2 players be implemented?
A: Low priority. I don't think the playerbase for this game will be large enough to warrant the effort into implementing >2 players. The game mechanics are really not designed for >2 players as well. >2 players for Netplay is never happening.

Q: Will there be items?
A: Probably. Items in this game will just be Assist Characters. Yes, there will be unplayable assist-only characters. You don't actually expect me to add in every Hololive member as playable characters right?

Q: I am having problems in Survival Mode!
A:  Consult the Survival Mode Tutorial at https://zortoise.itch.io/holoversus/devlog/546825/survival-mode-tutorial.

Q: People cannot join my games OR I can't join games!?
A: The host needs to do Port Forwarding for the port number for UDP, the guest needs to enter the correct port number. The IP address needs to be the public one, not the private one (unless playing via LAN). You can get it by typing "What's my IP" into your search engine, but the game can also fetch it for you in-game. It could be firewall issues as well, you may need to make an exception for Godot and holoVersus for it.

Q: I can't do Port Forwarding...
A: Try using a Virtual LAN service like Radmin VPN or Hamachi, but this can cause latency/packet loss/desync issues. Or you can just play local games via Parsec.

Q: My games keep desyncing!?
A: The netcode is not the most stable thing, I am pretty new to networking. Try increasing the Max Rollback, or find games with better connections. Could be bugs in the rollback code causing desync too, I ironed out most of it but a few could still slip through.

Q: Will there be servers in the future?
A: No. On the bright side, the game will never die since it's never alive in the first place. Well, the game is open-source, you could probably mod in server support. You will have to pay for your own servers though.

Q: Any plans for Linux/MacOS versions?
A: Not really. I only use Windows, so I can't test non-Windows versions. However, the GitHub is open to the public and you can open it in Godot to export the version you want. Just know that there will be some issues (like the extracting of your private IP address).

Q: What's with the music in this game?
A: Look, I only started learning music a few months before starting to work on the soundtrack. Cut me some slack.

Q: I am hearing distortions in the lower end of the audio?
A: holoVersus uses 48 kHz mix rate. If your audio device's sample rate is not set to 48 kHz you will need to set it to that. It should be easy enough to do with some Googling.

Q: Will Holostars be in this game?
A: Nah.

Q: Is there an offical Discord for this game?
A: I am not a Discord person.

Q: I found a bug!
A: Just message me on my twitter (https://twitter.com/zortoise) if it's major. For minor ones just drop a comment for it at places I visit.

Q: Can I use your code for my own game?
A: Sure, it's an open-source game. I am no coding wizard though, so you may find my code lacking. You can get the Godot project at "https://github.com/Zortoise/holoVersus".

Q: Can I use your assets for my own game?
A: I am pretty sure all the fonts/sound effects I used are royalty-free and free for commerical use.
The non-Hololive related assets I personally made are free-to-use if you want.

Q: When's the next update.
A: When it's ready. It's a free game made as a hobby, I will work on it whenever I want.

Q: Do the move names need to so chuuni?
A: Of course. Chuunibyou is the lifeblood of fighters.

Q: This game is an unplayable bullshit kusoge!?
A: ¯\_(ツ)_/¯

Get holoVersus (Test Build)

Leave a comment

Log in with itch.io to leave a comment.