Добрый день, реактор!
Сразу перейду к делу. У меня в мыслях было создать полутекстовую (текст + картинки/гифки) игрушку. Ничего особо сложного. Сам я в программировании +- новичок, но что-то умею. Языки на которых работал это С++, С#. Последнее больше нравится.
Мне необходимо найти язык+движок, на котором будет легче всего осуществить, то что я хочу сделать. Движок не должен ограничивать меня и при этом быть не слишком сложным. Требования к связке язык/движок:
1. Наличие темной темы в итоговом приложении. Т.е. дизайн должен регулироваться мной. По типу Кнопка.Цвет = темный. На WPF от C# чтобы получить темное приложение на выходе нужно морочиться. Я там установил плагин от Google, MaterialSkin или что-то вроде. Хотел было обрадоваться, вот она темная тема уии, но хер там. Во-первых верстка самого окна происходит в светлой теме, т.к. темная настраивается при запуске приложения через строку в коде, а во вторых она блядь не соответствует фактическим размерам. Т.е. то, что я вижу в окне конструктора окон != то что на выходе. Ну это имхо неиграбельно.
2. Умение менять цвет текста как на всяких играх написанных на Twine. Это выглядит прикольно и хотел бы этим воспользоваться. На том же C# нужно перегружать методы, и в самом коде это выглядит скорее как костыль, нежели как здоровое решение.
3. Одно из самых важных моментов. Динамическое создание модульных окон. То есть, на вход дается картинка+текст+выбор из 2х кнопок. Приложение генерирует окно, с этим содержимым и возвращает результат в зависимости от нажатой кнопки. В C# WPF можно понаделать этих окон и потом вызывать конкретное нужное, но как это сделать через функцию, чтобы для каждого ивента не было отдельного окна, которое будет засорять мне приложение, я не разобрался (возможно в силу неопытности, возможно из-за ограничений).
4. Оптимизация. Хотелось бы, чтобы после нажатия каждой кнопки приложение не висло на секунду, просто потому что. В игре особо сложных расчетов не будет, поэтому со стороны программиста особой нагрузки не будет.
Всякая там кроссплатформенность не особо важна. Хотелось бы язык, где нет гемора при создании структур, классов и можно нормально ими манипулировать, по крайней мере что-то не сильно далекое от С подобных языков. Поэтому всякие ассемблеры и прочую жуть точно не стоит предлагать.
Были мысли перейти на Java, т.к. похожа на шарп, подучить ее немного и взяться писать на ней. Но она вроде лагучая и лично для меня непонятно, насколько эта игра стоит свеч. Погружаться в язык, чтобы столкнуться с подводными камнями не особо хочется. Не очень желательно предлагать какие-то движки на JS и итоговой браузерной составляющей игры, поэтому предлагать можно, но как последние варианты для рассмотрения.
Как по мне мои требования к языку+движку не особо жесткие, какое-то решение точно есть.
P.S. скорее всего много опечаток, но мне как-то насрать.
Сразу перейду к делу. У меня в мыслях было создать полутекстовую (текст + картинки/гифки) игрушку. Ничего особо сложного. Сам я в программировании +- новичок, но что-то умею. Языки на которых работал это С++, С#. Последнее больше нравится.
Мне необходимо найти язык+движок, на котором будет легче всего осуществить, то что я хочу сделать. Движок не должен ограничивать меня и при этом быть не слишком сложным. Требования к связке язык/движок:
1. Наличие темной темы в итоговом приложении. Т.е. дизайн должен регулироваться мной. По типу Кнопка.Цвет = темный. На WPF от C# чтобы получить темное приложение на выходе нужно морочиться. Я там установил плагин от Google, MaterialSkin или что-то вроде. Хотел было обрадоваться, вот она темная тема уии, но хер там. Во-первых верстка самого окна происходит в светлой теме, т.к. темная настраивается при запуске приложения через строку в коде, а во вторых она блядь не соответствует фактическим размерам. Т.е. то, что я вижу в окне конструктора окон != то что на выходе. Ну это имхо неиграбельно.
2. Умение менять цвет текста как на всяких играх написанных на Twine. Это выглядит прикольно и хотел бы этим воспользоваться. На том же C# нужно перегружать методы, и в самом коде это выглядит скорее как костыль, нежели как здоровое решение.
3. Одно из самых важных моментов. Динамическое создание модульных окон. То есть, на вход дается картинка+текст+выбор из 2х кнопок. Приложение генерирует окно, с этим содержимым и возвращает результат в зависимости от нажатой кнопки. В C# WPF можно понаделать этих окон и потом вызывать конкретное нужное, но как это сделать через функцию, чтобы для каждого ивента не было отдельного окна, которое будет засорять мне приложение, я не разобрался (возможно в силу неопытности, возможно из-за ограничений).
4. Оптимизация. Хотелось бы, чтобы после нажатия каждой кнопки приложение не висло на секунду, просто потому что. В игре особо сложных расчетов не будет, поэтому со стороны программиста особой нагрузки не будет.
Всякая там кроссплатформенность не особо важна. Хотелось бы язык, где нет гемора при создании структур, классов и можно нормально ими манипулировать, по крайней мере что-то не сильно далекое от С подобных языков. Поэтому всякие ассемблеры и прочую жуть точно не стоит предлагать.
Были мысли перейти на Java, т.к. похожа на шарп, подучить ее немного и взяться писать на ней. Но она вроде лагучая и лично для меня непонятно, насколько эта игра стоит свеч. Погружаться в язык, чтобы столкнуться с подводными камнями не особо хочется. Не очень желательно предлагать какие-то движки на JS и итоговой браузерной составляющей игры, поэтому предлагать можно, но как последние варианты для рассмотрения.
Как по мне мои требования к языку+движку не особо жесткие, какое-то решение точно есть.
P.S. скорее всего много опечаток, но мне как-то насрать.
ссылка на гифку
Подробнее
пидоры помогите,реактор помоги,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,песочница
Подробнее
пидоры помогите,реактор помоги,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,песочница
Еще на тему
Хочешь увидеть предел свинга -- нагугли книгу "Filthy Rich Clients". Челюсть отвалится.
ну и не подводный камень, а даже плюс -- кроссплатформенность.
Если заинтересовало:
https://www.javatpoint.com/java-swing (тут же есть ФХ, если "хипстерности" не хватит)
Я понимаю что это было имхо, но мне серьезно интересно, с чего ты считаешь свинг тяжёлым?
* для виджетов можно загружать css подобную шнягу, меняя шрифт/цвет/размеры, да ещё и прямо на лету.
* на qml можно делать всякую мигающе-пердящую шнягу тёмноперламутрового цвета.
* qgraphicsscene отображает тысячи 2д объектов без тормозов даже на пентиум2.
* можно opengl виджеты, в которых прямо glBegin .... glEnd и прочее в repaint() вставлять.
но есть огромный минус - с++ ебанутый язык. пишу на нём где-то с 2003, инфа 100%.
в 4ой версии можно было заюзать qscriptengine и юзать qt объекты прямо из js, но это шило на мыло, кмк.
Но есть же всякие wrapper'ы как pyqt, разве нет? Или я что-то про них не знаю?
1. автор спрашивал про С подобные языки;
2. если конкретно питон, то ебитесь сами со своей динамической типизацией.
Берешь указанный тобой TWINE и делаешь. Экономия кучи времени и нервов. Познакомишься с такой вещью, как RAD. И заодно потренируешься проектировать внутриигровые сущности. Это гораздо проще делать на JS. Если упрешься в скорость/сложность, то добавляешь чистый JS. Если будет действительно выходить, что-то серьезное, то можешь переехать на более серьезные языки/фреймворки.
2. Менять цвет можно установкой флага или меняя нужный цвет в коде.
3. Это сделать сложнее в WPF(полностью генерить xaml). Но есть DataTemplate, где можно переключать разные варианты окна, про картинки и текст - это элементарно.
4. Кэширование или асинхронная подгрузка решит это.
WPF для старта будет хорошим вариантом, если цель попробовать закодить, что-то(наверно быстрее будет с использованием спец движков). Жаба или темболее куте будет напорядок сложнее. Но даже в WPF надо немного разбираться или хорошо гуглить (понять MVVM), чтобы не получился дикий говнокод и когда выйдет MAUI можно было легко портировать.
Если главное сделать игру, а не программировать игру - то возможно стоит посмотреть на различные конструкторы игр. Вот например один из них: http://docs.textadventures.co.uk/quest/