Warcraft 3 на Android



Реп: (74)
Warcraft 3 на Android

Жанр: RTS
Версия Android: 2.3.3+, armeabi-v7a и выше, OpenGL ES 2.0

Ранняя версия в разработке, клон "Warcraft 3 Reign of Chaos" и "Warcraft 3 The Frozen Throne" для android. Сейчас может загружать оригинальные карты, можно строить здания и нанимать юнитов, добывать ресурсы, атаковать юнитов другой команды. Есть слабый ИИ противника. Много чего пока не реализовано и на это уйдет много времени.
В будущем язык интерфейса будет зависеть от ресурсов варкрафта, а сейчас язык английский, если кто найдет ошибки в переводе, просьба написать мне.
Скриншоты
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Настройка
Нужны оригинальные ресурсы, проверялось на версии 1.26.0.6401, но должно работать и с другими. Можете положить на карту памяти или память телефона. В главном меню нужно выбрать "Change resources" и там указать путь к директории, в которой лежит war3.mpq. Можете нажать "Auto search" что бы найти путь автоматически, главное, чтобы ресурсы были на устройстве, не нужно жать поиск без них, потому что оно будет искать очень долго и ничего не найдется.
Из ресурсов нужны минимум war3.mpq, War3x.mpq, War3Patch.mpq. Они должны быть в подкаталоге, а не в корне диска, потому что при каждом запуске будут искаться карты для загрузки в том каталоге и подкаталогах, а корень диска с кучей файлов и папок не удачное место для этого.

Управление
  • Одиночный выбор юнита, просто касание, но только пока ничего больше не выбрано.
  • Отдать команду - касание по карте или другому объекту.
  • Если нужно убрать выделение, то нажмите кнопку "X" или можно сделать три одновременных касания.
  • Выделить много юнитов можно двумя способами. С помощью двух одновременных касаний. Или можно одним касанием ЗАЖАТЬ и переместить в сторону.
  • Перемещение камеры - касание и БЫСТРОЕ смещение в стороны.
  • Что бы построить здание, жмите по кнопке с его иконкой в юните. Оно появится примерно в центре экрана. Нужно разместить его на свободном месте (земля ярко зеленая) и повторно нажать по желтой кнопке здания для подтверждения.
  • Справа от мини карты есть три кнопки, «+», «-» и «Х» - нужны для управления выделенными юнитами, соответственно добавить, убрать выборочно и убрать всех.
  • Что б прочитать описание способностей юнита, нужно коснуться и не отпускать нужную способность.


Известные проблемы
  • На многих игровых моделях есть артефакты, так как не все еще реализовано.
  • Грузится не все, что есть на карте в оригинале игры, потому что часть объектов загружаются встроенными скриптами, а они пока не реализованы.
  • На многих картах неправильно работает маркер на мини карте.
  • Масштаб интерфейса может не вписаться в ширину экрана, если такое будет просьба написать на каком устройстве.
  • Много карт просто не загружаются, особенно карты из компаний, поэтому если долго грузится, смело убивайте процесс.


FAQ
Где взять ресурсы?
Вам нужны файлы оригинальной версии с ПК. Нужно скопировать папку с установленной игрой на устройство. Сейчас достаточно взять war3.mpq, War3x.mpq, War3Patch.mpq и отдельно можно взять карты, если они не стандартные. Ссылка на ресурсы есть в шапке.

Как добавить карты?
Можно положить их в каталог рядом с ресурсами war3.mpq, War3x.mpq, War3Patch.mpq или в подкаталог там же. После добавления карт нужно перезапустить игру.

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

Где взять русификатор?
Его нигде нет, часть текста уже зависит от ресурсов (подсказка по описанию способностей). Остальное пока на английском, потому что так пока удобней, в коде можно писать сразу нужную фразу и не возиться с кодировками и переводом ради пары фраз. В будущем будет локализация.

Можно-ли играть в первую доту?
Пока нет, и думаю еще долго так и будет. Там используется много АПИ которые пока не реализованы, многие версии карт даже не полностью загружаются, потому что там используются протекторы.

Раньше работало, а сейчас перестало, что делать?
Возможно, испортились оригинальные ресурсы варкрафта. Попробуйте удалить полностью игру, полностью удалить ресурсы и поставить все снова, ресурсы нужно брать там же, где брали их в первый раз.

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

Почему совсем не похоже? Почему так долго? Зачем делать с нуля, может можно сделать скриптами, как, например, в …?
Сделать порт можно только с исходниками, которые есть у Blizzard, в этом случае было бы быстро и похоже на версию от ПК. Без исходников можно либо эмулировать ПК, либо писать все с нуля. Если эмулировать ПК, то понятно, что выйдет все как в оригинале, но дело в том, что современные устройства не могут обеспечить нужную скорость эмуляции, и мы получим только слайдшоу, если вообще что-то загрузится. В данном случае это клон, который использует оригинальные ресурсы и пишется с нуля, потому что нет никаких волшебных скриптов, которые сделают все быстро и сразу. Без исходника не все так очевидно, что и как устроено и приходится местами долго подбирать и угадывать что и как сделать, поэтому есть отличия от оригинала.
ExaGear — эмулятор, можно запустить и играть в оригинал, поймете про что я. Волшебный скрипт, ищите на хабре «StarCraft дизассемблировали и запустили на ARM», изучал этот вариант и там будет много работы и даже если что-то получится запустить, оно будет с кучей багов, по времени не быстрее будет.

Планируется-ли сделать компанию, меню, интерфейс, кат-сцены, многопользовательский режим и прочее, как в оригинале?
Да, нацелен на полный перенос всего, что есть в оригинале. Все будет появляться со временем, по мере готовности отдельных частей. Например, в компаниях пока нет смысла, потому что много чего еще не реализовано для обычной игры. Или меню и интерфейс пока свои, потому что так проще делать сейчас.

На чем написана игра, какой движок?
Написано на C++, используется движок Urho3D. Все оригинальные JASS скрипты будут конвертированы в Lua.

Я хорошо знаю C++ и есть опыт разработки игр, нужна помощь?
Спасибо, но нет, по многим причинам, считаю, что «Если хочешь сделать что-то хорошо, сделай это сам», хотя сейчас много чего реализовано как попало, на скорую руку и потребуется доработка :) . Думаю, на этом этапе меня может замедлить чье-то вмешательство даже довольно грамотное и в будущем полезное.

Почему исходный код не открытый?
По личным причинам, нет смысла убеждать в обратном. Если решу забросить проект, то открою исходный код.

Для тех, кто считает, что с открытым исходным кодом проект будет развиваться быстрее и хочет начать делать свой варкрафт.
Информация для начала (потратил больше, чем пол часа на то, что бы собрать это в кучу и мне бы такое сэкономило неделю поисков или больше, это точно):
Ссылки на русском и не русском, что почитать и где что взять: Прикрепленный файлссылки.html ( 23.85 КБ )

Список названий полезных проектов: Прикрепленный файлсписок.txt ( 854 байт )
Если в названии "*-master.zip", то ищите на github.

Что бы за месяц силами одного человека получить опенсоурсный проект под Windows и DirectX по возможностям равный версии в шапке.
План действий:
Берете движок для создания RTS на подобии OpenRTS
Добавляете библиотеку StormLib для чтения архивов близард
Делаете отображение анимированных моделей на основе War3ModelEditorSource
Пишете читалку карт на основе Zepir Map Editor (W3ZME)
И пишете какую-то логику для AI или даже без нее, чисто мультиплеер для начала, можно получить готовый проект от OpenRTS, к примеру.
И все, дальше можно развивать проект на другие платформы и во всех направлениях. Удачи.
Для тех кто хочет делать опенсоурсный старкрафт, я бы порекомендовал начать с гугления «github mavaL/MiniCraft»

Как отреагировали Blizzard? Может быть, можно с ними договориться, чем-то помогут?
Пока никак. Сомневаюсь, судя по тому, что про них пишут, они негативно относятся к подобным вещам.

Давно сборок нет, не забросили-ли проект?
Нет, делаю по мере появления свободного времени. Бывают просто сложные куски, в которых мало опыта и на них уходит много времени. Если решу забросить проект - то об этом сообщу.


Изменения
Изменения - 0.0.16
  • Отмечены позиции стартовых баз на экране выбора карты.
  • Можно изменить расу для себя или ИИ.
  • Исправление ошибок.


Изменения - 0.0.15
  • Сглажено передвижение юнитов.
  • Изменения в алгоритме поиска пути.
  • Добавлен ленточный источник частиц.
  • Отображение снаряда для дальних атак.


Изменения - 0.0.14
  • Повышена плавность анимации.
  • Добавлена система частиц.
  • Для выделения толпы нужно обвести больше половины юнита.
  • Исправлены некоторые ошибки, приводившие к вылетам.


Изменения - 0.0.13
  • Повышена точность клика по юнитам.


Изменения - 0.0.12
  • Добавлены некоторые звуки для юнитов.
  • Появилась опция настройки тумана войны.


Изменения - 0.0.11
  • Добавлен туман войны.
  • Установлены границы карты при перемещениях камеры.
  • Уменьшено проседание фпс при выделении нескольких юнитов.


Изменения - 0.0.10
  • Исправлены некоторые артефакты моделей и анимации.
  • Повышена точность клика по юнитам.
  • Исправлен перевод на английский (спасибо Red Desire).


Изменения - 0.0.9
  • Временно добавлен простой ИИ. Добывает золото, дерево, строит здание для населения, нанимает один тип войск, атакует всех на карте, кто поближе находится.
  • Авто-атака, если юнит ничего не делает и рядом есть кто-то из других команд. Нейтральные юниты не отбиваются, потому что на картах, где больше трех человек они рядом с базой наставлены.
  • Появилось описание способностей юнита. Что б прочитать его, нужно коснуться и не отпускать нужную способность.
  • В авто-поиске ресурсов добавлены каталоги для проверки.


Изменения - 0.0.8
  • На мини-карте отображаются юниты и постройки. На картах с разными сторонами все еще могут быть ошибки (фон сдвинут в сторону).

Изменения - 0.0.7
  • Ландшафт раскрашен в свои цвета. Пока без дополнительных деталей, нету утесов, вода подкрашена цветом земли.
  • Исправлены вылеты при постройке здания и добыче дерева.


Изменения - 0.0.6
  • Добавилась анимация юнитов и зданий. Реализовано не все, но основа уже есть.
  • Карты загружаются заметно дольше из-за конвертирования, и оперативной памяти уходит тоже больше.
  • Во время игры могут долго догружаться ресурсы, в углу экрана будет на месте фпс “Loading…”.
  • Включен HDR, должно помочь исправить артефакты.


Изменения - 0.0.5
  • При постройке зданий и тренировке юнитов тратятся ресурсы и население.
  • Можно добывать ресурсы, у всех рас золото сейчас добывается как дерево. Дерево и золото все берут по десять единиц за одну секунду.
  • Юниты при передвижении телепортируются через преграды, если не могут пройти.
  • Можно атаковать юнитов другой команды. Характеристики урона отличаются от оригинала, у некоторых что-то с жизнями (их очень много). У героев получился урон ниже, чем у остальных.
  • Юниты и здания строятся не мгновенно, а за их реальное время. У нежити тоже нужно строить здание послушником. Здание нельзя использовать пока оно не достроено, внешне видно, что оно не достроено по жизням и по тому что в них нету нужных действий.


Изменения - 0.0.4
  • Над юнитами появилась информация: цвет игрока, жизни и мана. Пока что случайные значения.
  • Добавился инвентарь героев.
  • Добавилась поддержка загрузки не стандартных объектов (юниты, декораций, способности…).
  • Начали выполнятся встроенные скрипты. Из API функций пока только реализовано создание юнитов.
  • Должно читать ресурсы с карты памяти у кого не работало, на андроид 4.4 и выше.


Изменения - 0.0.3
  • Добавилась проверка на столкновение при передвижениях юнитов. Часто выбирают не оптимальный путь и останавливаются перед препятствиями.
  • Можно нанимать войска и строить здания.




Когда будет следующая версия?
Считаю, что успешно завершен первый этап разработки. Уже готов минимальный вариант, который будет хорошей основой для дальнейшего развития. Так как старался быстро охватить много различных частей будущей игры, пришлось пожертвовать качеством. Сознательно допустил утечки памяти, не безопасную работу с многопоточностью, которая приводит к частым вылетам, а также отсутствует модульность, которая уже тормозит разработку. Думаю, пришло время сменить стиль разработки и начать уделять время качеству. Хочу сделать все, что есть с нуля, но уже с учетом полученного опыта. Почему с нуля? Потому что планирую доводить каждую часть до завершенного состояния и не хочу, что б черновой вариант влиял на нормальный, в местах стыковки.
Много времени новый вариант будет разбит на мелкие части и будет представлять из себя несколько отдельных программок, из которых будет собрана новая версия. Публиковать сборки не планирую пока они будут уступать текущей в функционале, может будет какое-то видео, если будет что-то интересное, но в целом ожидаю что следующая версия должна быть с лучшим фпс и меньшим количеством ошибок.
Учитывая объем работ, думаю, следующая версия будет под конец года, не раньше.

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

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



Файлы:
Прикрепленный файлHerofolends v0.0.16.apk ( 7.29 МБ )

war3.mpq, War3x.mpq, War3Patch.mpq
Прошлые версии


Сообщение отредактировал sadorofix - 30.11.19, 12:04
Причина редактирования: FAQ



Реп: (0)
Неплохо всё работает, управление довольно удобное. Стабильно 60фпс. А отображение анимаций, будет в самом конце сделано?



Реп: (74)
Driversick @ 21.08.17, 14:08 *
А отображение анимаций, будет в самом конце сделано?

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



Реп: (225)
* sadorofix, не находит у меня ни единой карты. Скачал файлы с шапки, создал папку Warcraft3 и закинул туда файл игры, но не видит при нажатии кнопки "play" карты. Как быть или что я не правильно сделал?

Добавлено 21.08.2017, 14:45:

вот скрин
Прикрепленное изображение

Пы.Сы. в директории путь указал



Реп: (74)
Shadowoolf @ 21.08.17, 14:42 *
не находит у меня ни единой карты.

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



Реп: (225)
* sadorofix, хм... А это возможно решить рут правами?



Реп: (74)
Shadowoolf @ 21.08.17, 14:54 *
хм... А это возможно решить рут правами?

думаю нет, это исправляется без него, сделаю в следующей версий, по другому пока не как



Реп: (225)
* sadorofix, не плмогло

Добавлено 21.08.2017, 15:05:

Все равно то же самое.



Реп: (74)
* Shadowoolf, кнопка авто поиск находит ресурсы?



Реп: (225)
* sadorofix, не пробовал. Но я ему носом тыкаю в файл



Реп: (225)
Автопоиск работает как? Я нажимаю на кнопку, она светится, и все.



Реп: (74)
* Shadowoolf, пока других идей нет, наверно туда нужно добавить проверок. Как вариант остались еще мысли что файл не до конца скопирован. На пк бывало что при ошибке портило ресурсы, и они не работали пока не зайду в оригинальный варкарафт, я бы попробовал скопировать файл снова, если он с шапки скачан и не открывался больше ни чем

Добавлено 21.08.2017, 15:40:

sadorofix @ 21.08.17, 15:35 *
Автопоиск работает как? Я нажимаю на кнопку, она светится, и все.

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



Реп: (225)
* sadorofix, все качал с шапки. При нажатии автопоиска ничего, кроме самой кнопки не реагирует(она подсвечивается, но ничего вообще больше не меняется)

Добавлено 21.08.2017, 15:48:

Присмотрелся, таки пишет, что ищет, но пишет меньше секунды, и сбрасывает на папку Download. Там лежит файл (я с него копии брал), но все равно карты не находит



Реп: (0)
Пару скриншотов, как отображаются все герои. Если за Ночных эльфов создавать катапульту, игра вылетет, тоже самое и за Орков.
Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение



Реп: (74)
Shadowoolf @ 21.08.17, 15:45 *
сбрасывает на папку Download

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



Реп: (74)
Driversick @ 21.08.17, 15:49 *
Если за Ночных эльфов создавать катапульту, игра вылетет, тоже самое и за Орков.

спасибо, посмотрю что там, у меня их создает вылетает при выделений
Driversick @ 21.08.17, 15:49 *
как отображаются все герои.

у меня так само, пока так и останется:(



Реп: (225)
* sadorofix, переместил в корень. Находит, все верно, но карты все равно не видит. При нажатии кнопки play пишет сверху поиск карт секунд 5-6, а затем снова выдает ио, что показано на моем скрине



Реп: (74)
* Shadowoolf, ну придется подождать новую версию или если есть рут то переместить ресурсы в папку программы, в "/dada/data/not.have.page.herofolends/". Других идей пока нет.



Реп: (74)
sadorofix @ 21.08.17, 16:39 *
ереместить ресурсы в папку программы, в "/dada/data/not.have.page.herofolends/"

* Shadowoolf, не обманул, так не выйдет, там не видит ничего(



Реп: (74)
опять поторопился, видит, но если прописать путь вручную а не в выбрать диалоге и владельца на файл и католог к файлу нужно заменить, сложновато получается
я менял через тотал командер, рут на herofolends

Прикрепленные изображения
Прикрепленное изображение
Прикрепленное изображение



Реп: (225)
* sadorofix, да ничего сложного для меня


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.03.24, 22:04