What is Both At Once?
Both at once is a popular feature option used in @taronuke’s project Not in the Groove. It allows player one to input to player two, while playing mod files. As many of the mod files ported from NitG require two joined players, and before this alpha, the method to enable autoplay for the alternate player was a bit sketchy on SM5, we have taken the time to add this feature to OutFox.
How do we use it?
Ever accidentally turned on ‘Monkey Input’ and wondered why the game doesn’t work anymore? Well, we removed Monkey Input from the F3 Debug Menu, and in it’s place, we have added the BAO option!
You need to be in a game menu, and have added 2 players to activate it, (So after you have selected a mode, or on the music wheel) - or you simply will not be able to activate it. This is to protect you having settings or menus operate as both players at once, which could be a pain!
When you are in a game mode, you can add two players and then turn the option on: Press and Hold F3, then press 5
You will then be in BAO mode, and can play mod files! (You can find a collection of ported and original files from our community)
(Screen Select Music - Setting both at once mode on)
You can also select menu options and settings in BAO mode for the song, but do bear in mind many mod files set their own speed mods and noteskins:
You can then play the game as one player, but it will fill in for two!
Things to note!
If you are player 2, then player 1 will be your ‘ghost’ and vice versa
If there is a mini-game in the mod file, which checks for individual player input, we will not override this with BAO! (This is to mirror NitG Behaviour, and is as designed)
The player you are not playing on will be disqualified, and it’s score won’t be saved, even if it is displayed in the evaluation screen
You can turn off and on BAO during a song, using F3 + 5
BAO will be reset when leaving the Select Music Screen, or if the System Switch is pressed
On evaluation, you will note player 1 matches player 2:
We also have some different pages on the evaluation page - if you press left or right you will change ‘page’ to reveal more details.
The scatter graph in this alpha is drawn a lot more efficiently, which should prevent the slowdown when looking at many presses.
The ‘histogram’ is another highly requested feature for outfox, adapted from the features from https://github.com/Simply-Love/Simply-Love-SM5, we draw it differently in OutFox, as we have the different timing windows.
New Actor Multi Vertex Draw options!
This alpha also introduces a few new options for controlling your draw commands when creating an actormultivertex(). There were some issues we found in the methodology used in the older code which sometimes allowed the game to fall back to CPU based rendering/calculation for drawing some objects and lines, causing stuttering and arrow lag in screen gameplay, and would cause odd slowdowns in the evaluation screen (as noted by many of our stamina players, when playing marathon mode!)
We added two new draw options, and optimised some of the older modes to be less heavy on the game while drawing effects or UI objects.
Note the VPF (Vertices per Frame) Count. Higher counts mean higher loads on the system: (Before with drawmode_quadstrip)
The draw mode has been changed to just use points, dropping the value considerably. (After with the new drawmode_points)
Another thing that can be decided in the Lua command is the state of the points, which allow for square or circle points:
Square:
Circle:
New lua commands:self:SetDrawState{Mode="DrawMode_Points"}:SetVertices(verts)
New Draw Modes, we have DrawMode_Points and DrawMode_Lines!
self:SetPointState(boolean) (so false or true - Alias the Points. if the size is too big, or it is not supported on the GPU’s driver, it will be drawn as a square, but won’t crash.)
resizable points:self:SetPointSize(float) - Size in PIXELS of the point to draw. This will often round to a whole number on older systems, but most cards will use subpixel sampling to keep these as designed. For better performance, use a whole number, so 6.0.
Example:
self:SetPointSize(10.5)
These are called in your actormultivertex like so: