Прошу советов и мнений на счет написания программы

Как-то я наткнулся на аналог Steam Deck от китайской компании Aya Neo и подумав, решил купить ее себе. Суть точно такая же — игровое устройство на x86, по умолчанию с виндой, только меньше, немного слабее, и экран получше.

Вот так выглядит белая версия, например.
Вот так выглядит белая версия, например.

Как можно увидеть на фото выше, с ней в придачу идет предустановленный "лаунчер" — программа, которая собирает по сусекам установленные игры и предоставляет настройки устройства — TDP, разрешение экрана, режимы подсветки и вентилятора и т.д.

Поскольку идти эта штука будет ко мне еще долго, а терпением я не наделен, я решил попробовать посмотреть, что там внутри этой софтины и поставить ее на домашний компьютер, который тоже на винде. Однако, нефритовый стержень сильно ударять по спина и программа отказалась запускаться.

"Мы пока не готовы поделиться со всем миром"
"Мы пока не готовы поделиться со всем миром"

Меня немного смутил этот английский, но интерес никуда не делся. В такой ситуации мне не осталось ничего, кроме как расчехлить x64dbg и дебажить экзешник.

Вот это условие, которое я инвертировал - теперь ПО запускается на всем, кроме оригинального железа, лол
Вот это условие, которое я инвертировал - теперь ПО запускается на всем, кроме оригинального железа, лол

За пару вечеров я примерно разобрался, что там происходит и исправил этот ужасный баг. К моему удивлению, программа заработала без каких-либо проблем, о ее проприетарном прошлом напоминают только неработающие настройки и батарея.

Домашний экран - на первый взгляд ничего страшного
Домашний экран - на первый взгляд ничего страшного

Но тут случилось самое страшное — разочарование. Я понял, что эта программа — полный отстой и что пользоваться ей просто невыносимо из-за чудовищного UX и UI.

Никаких анимаций в помине нет, весь интерфейс абсолютно статичный. Мне стало интересно, на чем же оно работает и судя по всему, они используют Chromium Embedded Framework для UI и LUA как скриптовый язык для всяких сервисных функций типа поиска игр на компе.

В общем, все очень плохо, я молчу про вес в 500 мб из-за фоновых картинок в PNG и прочие мелочи, которые замечаешь только когда смотришь вглубь.

Далее, в дискорде этой фирмы я пообщался с чуваком, который помогал на ранних (еще более ранних) этапах с локализацией и тестированием этой шляпы, спросил у него, есть ли вариант предложить им помощь и поправить хотя бы то, что сильно бросается в глаза. Оказалось, что я далеко не первый, кто хочет предложить помощь, но разработчики отказываются от любой помощи извне. Ну и ладно.

Я пошел реддит и рассказал про свою боль (чуть покороче, конечно) в сабреддите о портативных устройствах, но почему-то меня проигнорировали

Прошу советов и мнений на счет написания программы

И теперь к сути. Я подумал, что почему бы не сделать пет-проект в виде лаунчера, пустить его в опен-сорс. Ах да, стоит добавить, что свой «лаунчер» есть только у AyaNeo и владельцы других устройств, в том числе Steam Deck с виндой, очень хотят себе эту шляпу накатить, чтобы было удобнее. В общем, спрос точно есть, штука интересная, я решил попробовать.

Так вот! Что мне нужно от вас. Есть несколько вещей, над которыми я сомневаюсь.

Первое — посоветуйте на чем это лучше писать. Я точно знаю, что я хочу всяких фенси-анимации интерфейса и возможно, 3D. Это должно быть что-то тоже опен-сорсное. Я рассматривал два варианта — Flutter и Godot. На первом, кажется, анимировать будет сложнее, но очень понятный поток данных и архитектура приложения в целом. Godot, напротив, легко позволяет анимировать что угодно и достаточно прост, но он абсолютно ужасен во всем, что касается структуры приложения — там даже DI нет, весь код полагается на Observer, нет композиции компонентов, все только через наследование. Поддержка шарпа просто отвратительная.

Пару вечеров поигрался с анимациями интерфейса в годоте

Если кто-то писал что-то серьезное на готоде, дайте пожалуйста пару советов по структуре приложения, как разделяли логику и т. д. Или что-то другое может посоветуйте, я открыт для вариантов.

Второе — UI. Я вообще немного разбираюсь в том, как должен выглядеть и работать дизайн, но гораздо хуже чем в том, как его реализовать, поэтому буду признателен, если кто-нибудь посоветует какой-нибудь UI kit для фигмы, с которого можно будет собрать интерфейс с темной темой.

Один из референсов, что я нашел для себя, например. 
Один из референсов, что я нашел для себя, например. 

Третье — если вы вдруг являетесь целевой аудиторией или можете себя представить в лице оной, поделитесь, пожалуйста, что бы вы хотели видеть в подобном приложении. У меня есть свое видение, но хотелось бы расширить его и составить план разработки исходя из этого.

Ну и если вы разработчик десктопных приложений, дайте пару наставлений и советов, ибо у меня за плечами только игры, веб да несложные приложения для мобил.

Спасибо.

427427
205 комментариев

На всякий случай ебану тебе минус, ты какой-то слишком умный

256
Ответить

Чем минус, лучше

252
Ответить

И со Стимдеком, хоть и китайским.

1
Ответить

Эх, помню свой "юношеский максимализм" когда каждый день готов был переписать плохой софт сделав его лучше. Казалось, что написать программу любой сложности это максимум две недели.
Куда подевалась эта энергия? Наверное утратилась в коридорах кровавого интерпрайза.

Спасибо, что стриггерил эти воспоминания.

84
Ответить

Казалось, что написать программу любой сложности это максимум две недели.почему казалось? оно же так и было. это позже, с опытом, понимаешь, какое говнище на выходе получалось. зато было быстро и работало. я в свои студенческие времена за неделю написал программу, на которую сейчас ушла бы пара месяцев, с тем же функционалом. и не один раз :)

25
Ответить

Какой хуйней только люди не занимаются, лишь бы Свич не покупать :)

75
Ответить

Ахахахахахазазазазахахахахахаха

12
Ответить