Posted June 19, 2023 by Zortoise
#tutorial
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":
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:
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...
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:
Basic Controls:
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
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 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.
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.
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:
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: ¯\_(ツ)_/¯