VACCiNE 2 - an improved universal gamepad and debugger engine

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Hey everyone. I've spent much of the past couple of months (way more time than I should have!) on a complete overhaul of VACCiNE (Volnaiskra's All-purpose Customisable Controller & iNput Engine), which I'm releasing today as Please login to see this link.. This version is greatly improved over the original in many ways: It's more powerful, easier to use, does more stuff, looks better, and runs up to 430% faster.


    What is VACCiNE 2?

    Well, the simplest answer is probably just to watch the Please login to see this link.below. But in a nutshell, Please login to see this link. takes the stress and complexity out of using gamepads in Fusion. It makes just about any gamepad work seamlessly with an easy-to-use unified input system that combines gamepad and keyboard. It also offers a powerful in-game debugger, a benchmarking panel that includes an A/B testing utility, and a few other little features to make your Fusion experience easier. VACCiNE 2 gives you the same gamepad engine and debugger tools that I use in my game Please login to see this link.. Because I built it primarily to make my own life easier, you can be sure I did my best to make it useful. And because I also made it with other users in mind, I put extra care and attention into removing any rough edges. I tried to make VACCiNE 2 as easy-to-use as I could, but an intermediate level of familiarity with Fusion is recommended.

    Please note: due to the amount of improvements, it's not compitable with VACCiNE 1, so users of 1.x versions must remove all VACCiNE code and objects from their game before installing VACCiNE 2.



    VACCiNE 2's features include:

    Gamepad/input features:

    • Makes all major gamepads and a few minor gamepads work - no drivers required - in your PC Fusion game
    • Unlocks previously inaccessible gamepad functionality, such as precise analog control, consistent deadzones & 360-degree right stick input
    • Universal Input System simplifies and consolidates gamepads, keyboard and mouse into cohesive and ready-to-use Alterable Values
    • Improved mouse support compared to VAC1 (integrated buttons 3, 4 & 5 into Unified Input System; improved scrollwheel behaviour; introduced 360-rotation mouse movement)
    • Added tentative support for the Ultimarc I-PAC2 arcade controller (untested - if you have one, PM me your email and I'll send you a free copy of VAC2 to test)
    • Includes a greatly improved the "stepping" mechanism, which manages an optional type of movement input that's perfectly suited to menus and UI.

    Debugger tools:

    • Provides a robust in-game debugger panel, toggleable with a key or gamepad button
    • Convenient keyboard-activated Freeze-Frame functionality to help you debug
    • A/B testing system (literally 1000+ times more accurate than in VACCiNE 1, due to new Microtimer object): Place events in designated folders, and measure their performance against each other with a few keypresses
    • Benchmarking panel with performance data about your game, including FPS, Tick duration, and VACCiNE's own measure: VAC score
    • Visual alert system to conveniently test whether an event is firing and/or if it has ever fired

    General features:

    • Major redesign and code overhaul of VACCiNE. Most features improved; many aspects redone from scratch, several new features added.
    • Wholesale code overhaul. Input engine up to 250% faster. Debugger up to 430% faster.
    • Code is more compact, cleaner, better structured, and more thoroughly commented.
    • Comes in several variations for your convenience (including input-only)
    • Tick timers that count ticks and keep track of every 2nd tick, every 3rd tick, every 10th tick, alternate ticks, etc. Use them to fire events at particular intervals
    • Readymade real-time trigonometric values that can be used to quickly assign a curve or rhythm to something
    • Comprehensive demo included - just run the MFA and follow the prompts to familiarise yourself with all of VACCiNE's features
    • No longer clutters up your Frame Editor's game area - all VACCiNE elements are now positioned via events, so may be placed anywhere in the Frame Editor, including outside the play area


    All the major features are outlined in the video below.


    Please login to see this media element.


    Screenshot of the included demo:


    Please login to see this picture.


    Get VACCiNE 2 on the Clickstore:

    The original VACCiNE was (and still is, and always will be) free. Due to the crazy amount of time I've spent on VACCiNE 2 (many weeks, not counting all the time I already spent building VACCiNE 1), I decided I had to charge a small price for VACCiNE 2 so I wouldn't feel quite so distraught about how much of my gamedev time it consumed! You can buy it for $3.99 on the Clickstore here: Please login to see this link.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

    Edited once, last by Volnaiskra (October 3, 2017 at 6:58 AM).

  • It's certainly possible, and I'm sure VACCiNE would be of some use, but it would also involve a lot of tweaking of the engine from you. VACCiNE already does a good job of detecting multiple gamepads and telling them apart. However, it funnels them all into a single-player input system. So you'd have to change the code so that instead of funneling everything into a single-player input system, it keeps track of the different gamepads and funnels their inputs into separate input systems.

    It's also probably worth mentioning that this is not something I'm ever likely to add to VACCiNE myself in a future update, since my own game is single-player only.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • I bought this recently and had a good look at it for the first time today. This is some impressive work Vol.

    SUPER MEGA BEST CAT ADVENTURES Please login to see this link. and Please login to see this link. live now!

  • Hello, Dave.
    I use your VACCiNE 2 in my game and found one big problem with the ControlX extension and jumping between frames.

    To start the game the player needs to click on Enter on menu frame. I do it this way:
    + IsGamepadPreferred of VACEngine = 0
    + InputAccept of VACinputUI = 1
    - Jump to Frame Game

    But in some situations on the frame Game I always got InputAccept of VACinputUI = 1 when the Enter button is released. After some experiments I found the "problem", during the transition between frames, Fusion(?) loses the button release event. As a "solution" I set to global events the condition
    + End of Frame
    - Simulate key no (LastKeyPressed (ControlX)) up

    You can also run the example and briefly press the Enter button and you can get a constant frame change without pressing the button (This may not happen the first time).
    On the video, I got a looped jump between frame in example with 3 short presses on Enter
    [video]Please login to see this media element.]

    P.S. Sorry for my english

    Please login to see this attachment.

  • Hey [MENTION=15682]Volnaiskra[/MENTION], the comments in VACCINE suggest to place all the VACCiNE code groups at the bottom of all other code - is this right? Wouldn't the events that are updating the VACinput alterable values then set those after all the code that you use to move your character about? Meaning that each tick you're moving the character based on the input of the preceeding tick?

    I might be wrong, but just thought I'd check!

    SUPER MEGA BEST CAT ADVENTURES Please login to see this link. and Please login to see this link. live now!

  • Another follow-up question [MENTION=15682]Volnaiskra[/MENTION] - are the deadzones the same for both sticks on a controller? The right one feels different, but I could be wrong about that as I'm testing inverting the sticks as a control option and moving with right stick feels weird generally to me!

    SUPER MEGA BEST CAT ADVENTURES Please login to see this link. and Please login to see this link. live now!

  • Hey [MENTION=17875]PBarwick[/MENTION]. Sorry, I missed these posts earlier.

    Yes, I think you're right about the preceding-tick thing. I can't remember for sure, but I'm pretty sure the reason I did it this way was because it was less complicated in the long-run. Certain parts of VACCiNE do need to be at the bottom to work correctly, such as most of the the debugger stuff (so that it can accurately read the states of various values/strings/animations, once they have finished being twisted and turned by your game's events). So I had to either put everything at the end, or split up VACCiNE into two parts. The latter option seemed clunky and with greater potential for mess ups, so I opted to put everything at the end. I figured that input lag of 1/60th of a frame (or 1/120th in Spryke's case, as its engine runs at 120fps) wouldn't really be noticeable anyway - though I never actually tested this.

    I think you're very right to point this out. I've since included "input only" versions of VACCiNE that don't contain most of the debugger stuff, so it doesn't really make sense to keep everything at the end in those cases. I think I'll have to look into this. I'll try and make a quick 1-tick-delay and 0-tick-delay version and get some testers together to compare between them to see if there's any discernible input lag in the 1-tick-delay version. If so, then I'll try and modify VACCiNE to remove the 1-tick lag.

    I probably won't have time to look into this for many months though, so I can't promise anything. But if anyone is particularly interested in this, it's certainly something you can do yourself, so have a go at shifting the appropriate code yourself. It may literally be as simple as dragging the VACCiNE - INPUT group to the front of your code. Though I'd need to look into it closer to be 100% sure that there isn't some other event or component that needs to be tweaked also.


    Yes, the right stick has a stronger deadzone. I personally found that this was beneficial. The right stick is easy to knock by accident when hitting buttons with your right hand. And because it typically spends a lot of time without the player's finger on it, it's more likely to wobble around when the gamepad is moved vigorously. So I gave it a deadzone of about 300, whereas the left stick has a deadzone of 150. You can easily change this though, by modifying the number highlighted below:


    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Thanks [MENTION=15682]Volnaiskra[/MENTION], really helpful notes! And don't worry about taking a little while to reply, I wasn't in any hurry! I moved everything to the top of my event list, everything seems to work well there, but I've likely not tested it to the extent you would.

    The most important debugger items to me, all to do with the controller states all work well up there. I'll keep an eye on things and let you know how it goes.

    That's interesting to know about the deadzones, thanks! I read through all your code but missed that detail! I'll likely set them to be the same because of how I intend to use it. I've customised some of the code already (in very small ways) to facilitate the control scheme I need - and I have to say thank you for documenting everything so well! It's very refreshing!

    SUPER MEGA BEST CAT ADVENTURES Please login to see this link. and Please login to see this link. live now!

  • [MENTION=15682]Volnaiskra[/MENTION] Don't have two ControlX objects in your frame by accident, it breaks keyboard interactions if a gamepad is plugged in.

    Also, MenuToggle is still referenced as inputCancel in the documentation.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

    Edited 3 times, last by elvisish (October 7, 2018 at 1:32 PM).

  • [MENTION=15682]Volnaiskra[/MENTION] Don't have two ControlX objects in your frame by accident, it breaks keyboard interactions if a gamepad is plugged in.

    Good to know! But are you saying that VACCiNE2 currently has two ControlX objects in a frame somewhere? In which frame? I had a look but I can't see it.

    Also, MenuToggle is still referenced as inputCancel in the documentation.

    Thanks. I appreciate it! I'll fix it.

    Have you or anyone else ever combined all the vol products. Like the gamepad and camera engine.

    Well, I don't know about anyone else, but I certainly have ;) I've only ever published stuff on the clickstore that I use myself. Basically, all the things I've released are just tools that I built for my own use in Please login to see this link.. If I'm particularly proud of the tool and think could help others, then I polish it up, add better documentation, and release it on the clickstore. It takes a fair bit of time to turn some slapdash tool I've made into a self-contained and robust thing that I'm comfortable releasing to the public - but I don't mind, because it ultimately ends up benefiting Spryke, since I end up with a better tool than I would have had otherwise.

    I do my best to make the tools modular and self-contained, so they work independently of each other without stepping on each others' toes. The only caveat is that some of them should be in a particular order in relation to each other in terms of their events (I think I mention this in their documentation somewhere). Here's a screenshot of all of the volTools, in their optimal order. Basically, VACCiNE should go after volCAMERA, both should go after your main code, and volPROFILER has two groups that should be placed at the very start and very end, as indicated by the group name. (Also visible in the screenshot is my super-fantastic Please login to see this link. skin XD)

    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • [MENTION=15682]Volnaiskra[/MENTION] no, it was my fault! I was trying to debug the problem by editing, and my message was a bit more of curt changelog after so many edits, sorry about that! What I meant was, if you do like I do and accidentally have two ControlX objects in a frame, it screws things up ;) The documentation was just slightly confusing, not a real problem tho!

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • I modded this in to allow for numpad arrow keys:

    Right:
    Please login to see this picture.
    Up: Please login to see this picture.
    Left: Please login to see this picture.
    Down: Please login to see this picture.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • VACCiNE 2 uses two qualifiers. One ("Calculation") for all HUD elements, and one ("Radar: Neutral) for the little alert boxes. If you have the 2.5+ DLC, you can use the custom qualifier icons I've attached below. It's probably a good idea to do so, as it might help prevent you from using the same qualifiers for something else in your game down the track, forgetting that they're already used by VACCiNE.

  • [MENTION=15682]Volnaiskra[/MENTION] Steamworks review flagged a couple of cautions about my build, if the gamepad is unplugged during gamepad and hotplugged, the controller isn't recognized. What do you recommend doing for hotplugging gamepad situations? I could have the menu show if the gamepad is unplugged (would this be tested with Joystick extension?) but polling is expensive and can't be done on every frame. I could poll every second if the menu is up and every three or four seconds during gameplay, but I'm not sure how good this would be.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!