Про CrossVoice
Я люблю такі ігри, як Mordhau і Hunt: Showdown, і мені завжди подобалася система голосових фраз у Mordhau, а також у Chivalry 2. Колись я почав замислюватися, як використати ту саму механіку в Hunt: Showdown — а чом би й ні, у будь-якій іншій грі з голосовим чатом.
Ця ідея перетворилася на перший прототип на Python, що працював через віртуальні аудіопристрої. Концепція працювала, але з різних причин проєкт на кілька років відклали на полицю.
Пізніше я натрапив на саундборди на кшталт Soundpad і побачив, що вони вміють, відтворюючи звуки через мікрофон. Але всі саундборди, які я знаходив, працювали однаково: одна клавіша — один звук. Це спонукало мене повернутися до проєкту й зайти значно далі за початковий прототип. Я почав експериментувати з C++, щоб створити нативне аудіорішення, яке давало б мені справжній контроль над тим, як обробляється й передається звук.
Далі я написав решту застосунку на C#, почавши з інтерфейсу для керування профілями та налаштування голосових команд. Невдовзі я зрозумів, що відтворення звуків — лише частина задачі: усе мало ще й працювати з голосовим чатом кожної гри, зокрема в іграх, що використовують режим «Натисни, щоб говорити». Це привело мене до маршрутизації звуку й низькорівневої обробки клавіатури, щоб ці натискання клавіш можна було надійно контролювати.

У міру розробки CrossVoice зростав. Профілі навчилися впорядковувати команди за сторінками — з клавішами й модифікаторами, звуковими варіантами та налаштуваннями на кшталт гучності, висоти тону й швидкості відтворення. Я також додав постійний оверлей, щоб ви могли користуватися застосунком і керувати ним під час матчу, не виходячи з гри.
Моєю метою завжди було, щоб CrossVoice не залежав від якоїсь конкретної гри. Ви налаштовуєте профілі по-своєму й використовуєте їх у різних іграх — без інтеграцій під окремі ігри й без того, щоб застосунку треба було знати, у що ви граєте.
У якийсь момент стало не надто логічно, щоб уся ця робота залишалася лише в моїх профілях. Чому б не дати гравцям ділитися своїми й насолоджуватися тим, що створює спільнота? Так сформувалася частина CrossVoice, пов’язана зі Спільнотою.
Так CrossVoice виріс із прототипу на Python у проєкт, яким він є сьогодні. Те, що почалося як ідея під час гри в Mordhau і Hunt: Showdown, перетворилося на значно амбітніший проєкт, у якому я створив і розвинув практично кожну частину застосунку.
— Raúl Mateo