Если захотите писать игры на Java — зайтесь вопросом, кто будет в неё играть? Если хотите написать игру чуть более чем для себя (да и со стороны изучения самой Java) полезно будет подумать про программирование игр для андроида. Соответственно:
1. OpenGl Es. OpenGL для андроида. Есть Java, а есть и С++. Выбирайте, что по душе и вперёд.
2. Производительность. На мой скромный взгляд Java врядли подойдёт. Попробуйте связку Java и C++ через JNI.
Я пушу нижний лайн. Снёс вышку.Начинаю бить в одиночестве вторую и вижу: мне на верхнем лайне вдвоём начинают сносить вторую вышку. Мои союзники пушат мид. Вчетвером троих. Диллема- что мне делать? Бежать на базу отбиваться? Присоединиться к пушу мида и сыграть наперегонки?
Побегу на базу — если отобьюсь, а наш пуш мида захлебнётся, то вероятно будет ничья( в турнире было ограничение по времени). А при ничьей я по очкам в конце буду тогда. А если наши выиграют, то я всё равно мало получу.
Плюнуть и пойти пушить мид? Если проиграем, то потери по очкам.
Вот в такой ситуации генетический алгоритм мог бы помочь принять решение.
Была бы оценочная функция. На вход ей подавалась бы инфа о моих союзниках — таланты, опыт, местоположение, о врагах, которых вижу, инфа о базах под прессингом, расстояние до базы. Задача генетического алгоритма- максимизировать мою прибыль по очкам. Ну, что-нибудь в таком духе
Для меня статья оказалась очень интересной — первые позывы, когда решил участвовать в конкурсе, были написать нейросеть или что-нибудь из машинного обучения. Однако, остановился на другом.
Как мне кажется, исходя из турнира, нейросети — это стрельба из пушки по воробьям. Намного важнее было:
1. Алгоритм движения (как пройти из точки а в точку б и обойти препятствие)
2. Алгоритм уклонения
3. Алгоритм движения в глобальном смысле (куда идти)
4. Древо развития талантов.
5. Взаимодействие с командой.
Я имел полный и бесповоротный фейл с 1 пунктом ( как раз перед вторым этапом. Захотелось написать нормальный поиск пути, вместо дуболомного, а получился фейл), 2ой отсутствовал, но кое-что сделал из 3 и 4. Как итог — когда 1 пункт ещё как-то работал ( тупой обход препятствий. Между первым туром и серединой междутурья) удавалось быть где-то в районе 400го места.
Почему-то, когда я слышу, что кто-то «простым» способом в очередной раз доказал Великую Теорему Ферма, я невольно вспоминаю про «открытие» очередного вечного двигателя…
Безусловно, если Java использовать по мере необходимости, а писать на плюсах, то лучше всё через Qt Creator. Ну а если наоборот Java сильно-сильно доминирует, то лучше, имхо, делать через андроид студию.
open the Gradle project.
create, edit the java files.
debug the Java part.
Android Studio will NOT be used to run your Qt application, you still need to use Qt Creator for that job!
А я как раз показываю как обойтись без qt creator. Более того, если смотреть его последнюю статью, то отчётливо видно, что он делает акцент на разработку из QtCreator, а мне хотелось, чтобы всё-таки акцент делался на андроид студию
ps. Вообще, у него отличный этот цикл статей. Как раз с него изучение qt под андроид и начинал :)
upd. Я пробовал делать aar в qt creator, но если вкратце… там получилось правильно, но несколько противоречило куче кода, что был уже в андроид студии. Мне было лень переписывать этот момент и я решил разобраться что к чему.
Ну… смотрите. У меня есть средних размеров Qt библиотека и приложение на Ios. Надо его портировать под андроид. Когда я не знал всех этих мук, я подумал:«Классно, есть андроид студия. На ней быстренько всё реализуем, а библиотеку подключу и буду пользоваться через native функции.» Сказано-сделано. Но тут засада: мне надо было в qt рисовать текст, а для этого неообходимо вызвать QApplication. Просто его вызов приводил к крашу приложения — поэтому вся эта кухня была затеяная ради того, чтобы вызвать QApplication и рисовать текст.
ps. Я думаю посмотреть как будет себя вести вот это
Как я понял, у вас огромный набор данных. Когда-то я сильно увлекался этой темой и помню, что в начале текущего десятилетия Томас Миколов работал со свёрточными нейросетями в области процессинга натуральных языков. Скажите, вы не пробовали свёрточные нейросети? По идее неплохо должны были бы зайти.
не. приложение на objective c. Оно использовало SDK, написанное на qt (процентов 10 всего приложения), Поэтому, так сходу сделать нельзя было. Smog1on1the1water постом следующим комментом более точно описал проблему
Вы не поняли меня. У меня на Qt небольшая библиотека, которая занимается расчётом и рисованием, а не весь проект. Весь гуи написан был на чистом objective c. Когда я начинал портирование, то передо мною стоял вопрос: на чём реализовывать основную часть? Либо Android Studio, либо всё писать в Qt. Я выбрал андроид студию потому, что по ней масса литературы и я знаком с Java. Знал бы я, что так трудно подключить qt в неё, то сразу бы делал всё в qt.
Очень хорошо смысл проблемы описал Smog1on1the1water немного выше
1. Можно опубликовать тестовую версию. Бета/альфа на ваше усмотрение.
2.
Это да. Поэтому, если нужен apk бОльшего размера, то надо разбить его: на основную версию и дополнения.
1. OpenGl Es. OpenGL для андроида. Есть Java, а есть и С++. Выбирайте, что по душе и вперёд.
2. Производительность. На мой скромный взгляд Java врядли подойдёт. Попробуйте связку Java и C++ через JNI.
Я пушу нижний лайн. Снёс вышку.Начинаю бить в одиночестве вторую и вижу: мне на верхнем лайне вдвоём начинают сносить вторую вышку. Мои союзники пушат мид. Вчетвером троих. Диллема- что мне делать? Бежать на базу отбиваться? Присоединиться к пушу мида и сыграть наперегонки?
Побегу на базу — если отобьюсь, а наш пуш мида захлебнётся, то вероятно будет ничья( в турнире было ограничение по времени). А при ничьей я по очкам в конце буду тогда. А если наши выиграют, то я всё равно мало получу.
Плюнуть и пойти пушить мид? Если проиграем, то потери по очкам.
Вот в такой ситуации генетический алгоритм мог бы помочь принять решение.
Была бы оценочная функция. На вход ей подавалась бы инфа о моих союзниках — таланты, опыт, местоположение, о врагах, которых вижу, инфа о базах под прессингом, расстояние до базы. Задача генетического алгоритма- максимизировать мою прибыль по очкам. Ну, что-нибудь в таком духе
Как мне кажется, исходя из турнира, нейросети — это стрельба из пушки по воробьям. Намного важнее было:
1. Алгоритм движения (как пройти из точки а в точку б и обойти препятствие)
2. Алгоритм уклонения
3. Алгоритм движения в глобальном смысле (куда идти)
4. Древо развития талантов.
5. Взаимодействие с командой.
Я имел полный и бесповоротный фейл с 1 пунктом ( как раз перед вторым этапом. Захотелось написать нормальный поиск пути, вместо дуболомного, а получился фейл), 2ой отсутствовал, но кое-что сделал из 3 и 4. Как итог — когда 1 пункт ещё как-то работал ( тупой обход препятствий. Между первым туром и серединой междутурья) удавалось быть где-то в районе 400го места.
А я как раз показываю как обойтись без qt creator. Более того, если смотреть его последнюю статью, то отчётливо видно, что он делает акцент на разработку из QtCreator, а мне хотелось, чтобы всё-таки акцент делался на андроид студию
ps. Вообще, у него отличный этот цикл статей. Как раз с него изучение qt под андроид и начинал :)
p.ps. Надо бы и о нём добавить
upd. Я пробовал делать aar в qt creator, но если вкратце… там получилось правильно, но несколько противоречило куче кода, что был уже в андроид студии. Мне было лень переписывать этот момент и я решил разобраться что к чему.
ps. Я думаю посмотреть как будет себя вести вот это
Очень хорошо смысл проблемы описал Smog1on1the1water немного выше
Был бы весьма признателен, если бы сказали какие. Не хочу в будущем повторять ошибок.