Программа для портирования игр с пк на андроид

Обновлено: 01.07.2024

Любой геймер не может отказаться от того, чтобы поиграть в свою любимую игру не только на компьютерном мониторе, но и иметь доступ к ней в любое время. Из таких побуждений юзеры придумали вариант, как можно портировать игру с ПК на любой телефон с системой Андроид.

Как портировать игру с ПК на Андроид

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

Существует известная техника форк, которую часто путают с портированием. На самом деле, это две разные вещи. Отличие заключается в том, что форк – это взятие основы, а портирование – это полный перенос игры.

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

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

Сам процесс переноса очень прост и интуитивен:

  1. Пользователь должен сначала опробовать игру на более мощном девайсе – на самом ПК. Это нужно для того, чтобы убедиться в хорошем качестве игры, в отсутствии определенных багов и т.д.;
  2. На компьютере устанавливается специализированное приложение для переноса – «ExaGear Strategies»;
  3. Открываем приложение и авторизуемся в нем;
  4. Подключаем мобильное устройство с помощью кабеля к компьютеру;
  5. Переносим все файлы об игре в одну папку и нажимаем на неё правой кнопкой мышки;
  6. Открывается окно, в котором выбираем «перенести на … с помощью…»;
  7. В предложенном списке выбираем нужную нам программу и ждем окончание переноса.

Стоит отметить, что данная программа не может дать 100% гарантии на то, что игра перенесется идеально. Все-таки разработчики если придумывали игру на ПК, то они не подразумевали её перенос на другие устройства. Осуществлять перекидывание объекта с одного устройства на другое пользователь может только на свой страх и риск.

Лучшие порты игр с ПК на Андроид

Любители игр должны знать ТОП-10 игр, которые отлично проходят процесс портирования и запуск на менее мощном устройстве, как Андроид-система. Разработчики проделали большую работу, когда решили адаптировать свои игры под менее подходящую систему телефона. У некоторых это вышло очень даже хорошо, поэтому ниже представлен список из 10 самых лучших порт-игр для Андроида.

10. Alien Shooter

image

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

Постоянные секреты, неожиданности и мистические сюжеты ждут пользователя на телефоне, если тот решится скачать и портировать её с ПК. Кровожадные монстры, многочисленные враги не дадут юзеру отдохнуть во время игрового процесса.

Создание игры процесс захватывающий и познавательный. Особенно это заметно, когда ремейк «классики» делаешь сам, руководствуясь идеями оригинала и десятками часов, потраченных на прохождение кампании. У меня не было сколь-нибудь значимого опыта разработки для Android'a, поэтому создание работающего «как надо» приложения для планшета поначалу выглядело довольно туманно, но от этого не менее притягательно. При наличии времени и возможностей, можно стряхнуть пыль со старых игр, подмазать и подклеить, добавив поддержку «больших» разрешений и окажется, что они выглядят не хуже современных продуктов, выложенных на маркете, даже с палитрой RGB565 без альфа-канала. Я предполагал, что будут подводные камни и заботливо спрятанные грабли, которые лежат тихонько во время разработки, но больно лупят по голове, стоит запустить игру на реальном железе. Чего сильно не хватало, так это отладчика, а возникающие проблемы лишь укрепили желание достичь поставленной цели. Под катом будет рассказ о том, как это все заработало.

image



Стоит сразу предупредить, что это возможно будет рассказ о велосипедах, я не придумал ничего такого, что не гуглится на просторах «интернетов». Также Читатель вряд ли увидит новые решения или мега технологии, но найдет опробованные инструкции по сборке приложения, использующего SDL1/2, для Android.

Здравствуйте!
Ремейк игры Caesar III© начинался совсем не как отдельный проект, а скорее набор фиксов для количества жителей, поддержки «больших» разрешений и исследования декомпилированного кода оригинальной игры в поисках пасхалок и недокументированных режимов работы. А когда количество восстановленного кода перевалило за половину от общего, стало понятно, что можно попытаться восстановить игру. В качестве библиотеки отрисовки была выбрана SDL1.2, которая хорошо зарекомендовала себя в других проектах, а ещё проста в освоении и использовании. Ремейк поначалу был Linux-only, в начале этого года перебрался на другие платформы (Mac, Windows и Haiku), а потом у меня завелся вот такой планшет, а голове периодически возникали мысли «работает на одном линуксе, должно работать и на другом».

Попытка номер раз, удачная
У SDL версии 1.2 «из коробки» нет возможности работы под андроидом, зато есть замечательный проект libsdl-android, который позволяет, используя свое окружение и скрипты собирать код, использующий эту библиотеку в приложении для андроида. Собранное приложение может загрузить ресурсы как из интернета, так и распаковать из установщика. Сам libsdl-android содержит большое количество библиотек, которые могут вам понадобиться, начиная от bzip2 и разных кодеков, до самой SDL и его окружения SDL_image, SDL_mixer, ttf и другие. Если у игры нет платформозависимого кода, то портирование занимает несколько шагов:

;
unzip -o -qq $$ARCHIVE;
echo «Configure paths. »;
echo «export ANDROID_SDK=

/.bashrc;
echo «export ANDROID_NDK=

/.bashrc;
echo «export NDK_ROOT=\$$ANDROID_NDK» >>

/.bashrc;
echo «export PATH=\$$PATH:\$$ANDROID_NDK:\$$ANDROID_SDK/tools:\$$ANDROID_SDK/platform-tools» >>

2. копирование исходников приложения в папку проектов libsdl-android 3. создание файла конфигурации для сборки игры через libsdl-andlroid 4. настройка пути для компиляции нужного приложения
$rm project/jni/application/src
$ln -s caeasaria project/jni/application/src

$./changeAppSettings.sh -a
$android update project -p project
$./build.sh
6. подписывание и установка приложения на андроид

Если все удачно скомпилилось, то в папке commandergenius/project/bin появится файла MainActivity-[release|debug]-unsigned.apk, который нужно подписать и установить на устройство.

$ keytool -genkey -v -keystore rs.keystore -alias caesaria -keyalg RSA -keysize 2048 -validity 10000
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore rs.keystore

/projects/commandergenius/project/bin/MainActivity-release-unsigned.apk caesaria
$ mv

/projects/caesaria.apk
$ adb uninstall net.dalerank.caesaria
$ adb install

Подводные камни
0. Определение окружения: для начала надо определиться в каком окружении будет работать Windows, Linux или Linux Android.
Решение: Проверяем наличие дефайнов ANDROID/__ANDROID__.

2. Использование OpenGL: если кому понадобится OpenGL, то на мобильных плафтормах обитает его близкий родственник GLES.
Решение: подключаем вместо стандартных заголовояных файлов <GLES/gl.h> и <GLES/glext.h>, есть небольшие отличия в использовани текстур и отрисовке, но в основном код(простой код, который я использовал) работает практически без изменений.

3. Обработка событий: пропадает событие SDL_MOUSEBUTTONUP при движении пальцем по экрану, это могла быть недоработка в самой библиотеке libsdl-android или я где-то его терял. Проявлялось иногда в отсутствии реакции элементов интерфейса на действия пользоватся, например после движения остановились на кнопкой, которая по идее должна перейти в состояние если над ней находится курсор мыши.
Решение: Специфично для моего приложения — при сборке под андроид было добавлено принудительное обновление состояния элементов под курсором при движении последнего.

4. Мелкий интерфейс: разрешение экрана современных мобильных устройств сопоставимо или превышает разрешение монитора, используемого 10-15 лет назад, но физические размеры заметно меньше, оттого и сам элементы пользовательского интерфейса выглядят мелко и пользоваться ими будет не всегда удобно.
Решение: Переделка интерфейса, что достаточно хлопотное занятие и не всегда удается сохранить первоначальный вид.

Один переезд равен двум пожарам(народная мудрость)
Все началось с того, что один из коммитеров прислал ссылку на ветку разработки, где успешно запустил игру с использованием относительно свежей библиотеки SDL2, а до этого использовалась версия SDL1.2 — 2008 года выпуска. Надо сказать, что я и сам рассматривал возможность перехода на новую версию, особенно после просмотра списка изменений, который сулил нормальную поддержку Mac и Android, что называется «из коробки». А тут еще и миниотпуск на работе получился, взяв кувалду побольше гайд потолще и большую чашку кофе, я начал переводить ремейк на новый «движок».
Не хочу утомлять читателя техническими подбробностями переезда, просто у самой библиотеки с приходом аппаратной поддержки изменилась идеология работы, что поначалу доставляло определенные трудности, пока я к ней не привык. Переезд растянулся на неделю вечеров и под конец представлял собой исправление оставшихся недочетов и графических артефактов. Переделки были закончены и подготовлены сборки для «больших» ОС, и опять появилась необходимость повторного чтения мануалов по сборке приложения под Андроид, потому как libsdl-android нормально адаптирован для работы с SDL1.2, а поддержка SDL2 похоже заброшена (о чем сами авторы и пишут в ридми)

Осознал я правдивость этого текста, когда было потрачено несколько часов в попытке запустить порт в старой конфигурации через libsdl-android. Ну что ж, отрицательный опыт — тоже опыт: буду использовать доступные инструмены.

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

Для чего все эти копирования сделаны. чтобы проще было считать относительные пути для библиотек. В папке android/libs будет лежать SDL и компания, в папке android/data — будет иконка приложения.

В папке android/android-project/jni создаем символьные ссылки на компоненты приложения

$ln -s ../../libs/SDL SDL
$ln -s ../../libs/SDL_mixer SDL_mixer
$ln -s ../../libs/SDL_net SDL_net
$ln -s ../../src/dep/aes aes
$ln -s ../../src/source application
$ln -s ../../src/dep/bzip2 bzip2
$ln -s ../../src/dep/freetype freetype
$ln -s ../../src/dep/libpng libpng
$ln -s ../../src/dep/lzma lzma
$ln -s ../../src/dep/smk smk
$ln -s ../../src/dep/src src
$ln -s ../../src/dep/ttf ttf
$ln -s ../../src/dep/zlib zlib

Немного о том, что же я тут написал:
zlib нужен для сборки freetype, который в свою очередь нужен для SDL_ttf и будет отвечать за рендеринг шрифтов.
Библиотека smk нужна для воспроизведения видео в формате smack, в этом формате выполнены ролики оригинальной игры.
Bzip, lzma и aes нужны для работы с zip-архивами.
libpng требуется для загрузки текстур для игры.
SDL, SDL_mixer, SDL_net отвечают соответсвенно за рисования, работы со звуком и сетью.
application содержит исходники самой игры, которые будут собраны в библиотеку libapplication.so
в папке src располагаются исходники библиотеки libmain.so, а вот для неё уже написано кружево java-вызовов над с-кодом, которое позволит нам успешно стартовать и порадовать пользователя яркой картинкой.
Настройки проекта и конфиги для ndk уже любезно предоставлены авторами SDL2

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

Чтобы система сборки увидела, какие нам необходимы библиотеки для работы и собрала их, нужно написать для них конфиги, наподобие Makеfile. С большой вероятностью Android.mk уже будет присутствовать в репозитории библиотеки, или их можно найти на просторах интернета. Мне пришлось дописать конфиги сборки для для игры и библиотеки libsmk.

LOCAL_MODULE := smk
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,, \
$(wildcard $(LOCAL_PATH)/*.c))

Конфиг содержит указание скомпилировать все файлы с расширением .с, найденные в текущей папке (для libsmk это будет jni/smk)

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

SDL_PATH := ../../libs/SDL
SDL_MIXER_PATH := ../../libs/SDL_mixer
SDL_NET_PATH := ../../libs/SDL_net
GAME_PATH := $(LOCAL_PATH)
DEP_PATH := ../dep

LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/$(SDL_PATH)/include \
$(LOCAL_PATH)/$(SDL_MIXER_PATH) \
$(LOCAL_PATH)/$(SDL_NET_PATH)/include \
$(LOCAL_PATH)/$(FREETYPE_PATH)/include \
$(LOCAL_PATH)/$(GAME_PATH) \
$(LOCAL_PATH)/$(DEP_PATH) \
$(LOCAL_PATH)/$(DEP_PATH)/libpng

LOCAL_SHARED_LIBRARIES := SDL2 SDL2_mixer SDL2_net sdl_ttf pnggo lzma bzip2 aes smk
LOCAL_CPP_FEATURES += exceptions
LOCAL_CPP_FEATURES += rtti
LOCAL_LDLIBS := -lGLESv1_CM -llog

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

флаги rtti, exceptions отвечают за использование RTTI и исключений.

$cd android-project
$android update project -p. -t android-15
$ndk-build V=1
$ant [release|debug]
$ant install[r|d]


Теоретически, после выполнения описанных шагов на подключенном девайсе или эмуляторе вы увидите установленное приложение.

Грабли
1. Где искать ресурсы.
Место размещения ресурсов зависит от конкретной реализации ОС, но в большинстве случаев приложению будет доступна папка /sdcard/Android/data/имя_пакета/files, при использовании непосредственно пути может быть ошибка доступа или ошибка поиска файла.
Получить полный путь к директории приложения можно через функцию SDL_AndroidGetExternalStoragePath(), определенную в файле SDL_system.h
2. Использование флагов создания окна.
Комбинация SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS работает не на всех девайсах, убираем SDL_WINDOW_OPENGL или SDL_WINDOW_BORDERLESS и смотрим какой из флагов крашит программу. Не могу объяснить с чем связано такое поведение. С флагом SDL_WINDOW_SHOWN запукается по логам один в один, как и со всеми флагами, но при этом вероятность вылета намного меньше.
3. Слишком много звуковых каналов.
Наблюдаются вылеты при вызове функции SDL_mixer::Mix_AllocateChannels(N>16) c ошибкой, что невозможно иниализировать звук. Обходится снижением запрошенного числа каналов, насколько корректно решать эту проблему таким способом я не знаю.
4. stlport vs gnustl
Вылет при использовании stlport, нарвался на этот баг при обходе вектора с использованием итераторов на эмуляторе Nexus 7 (Android 4.0.3). Опять же не могу объяснить факт сей ошибки, решилось использованием gnustl при сборке приложения.
5. Мое кунгфу сильнее твоего.
Использование библиотеки с именем, похожим на имя той, что уже есть в системе приводит к загрузке чужой библиотеки, в которой возможно нет необходимых функций. Ошибка появилась из-за того, что я собираю свою версию libpng.so, решение было найдено на stackoverflow, исправилось заменой имени библиотеки libpng.so на libpnggo.so

В заключении.
Работает! Почти не отличается от ББ! Доволен ли я? Не очень!

Дело в том, что толи я криворукий, толи лыжи не едут, но на планшете приложение получилось крайне медленным (10-12 fps для крайне простой картинки результат унылый), думаю, вина тут в руках и незнании матчасти. SDL — отличная библиотека в обеих реинкарнациях, и много действительно хороших игр использует её, а также портировано на андроид.

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

Эмуляция игр

За последние 10 лет технологии сделали большой шаг вперёд, увеличив производительность устройств в несколько раз. Смартфон в кармане человека на данный момент опережает по вычислительной мощности большинство старых компьютеров. Поэтому возникает резонный вопрос, как запустить ПК игры на Андроид?

Мобильные приложения

Возможно ли запустить пк-игры на Android?

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

Эмуляторы пк игр на андроид

Операционная система Android написана на базе модифицированной версии Linux. Поэтому игры с Windows не запустятся из-за разных операционных движков. Исполнительный файл также отличается, если на Андроид программы устанавливаются через APK, то на настольной системе от Microsoft с помощью EXE файла.

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

Эмуляция не работает для iOS, так как это закрытая система без возможности свободной загрузки файлов. Доступны только портированные проекты.

Способы запуска пк-игр на Android (+ эмуляторы)

Многие задаются вопросом, как запустить компьютерные игры на своём Андроид устройстве. Рассмотрим доступные способы более подробно, разделив их на 3 разновидности:

Рекомендуем: Как сделать Хард Ресет на Андроид через компьютер

ExaGear

Это эмулятор, с помощью которого можно запустить «бессмертную игровую классику: Герои 3, Postal, 1 и 2 Fallout и даже Civilization. Она распространяется бесплатно в двух вариациях, отличающихся удобством управления:

  • Strategy – интерфейс адаптирован под управление в пошаговых стратегиях и RTS.
  • RPG – меньшее количество кнопок специализированное под проекты с видом от третьего лица.

Fallout 2 на ExaGear

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

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

ExaGear не доступно Play маркет, что установить это приложение нужно скачать apk файл в сети.

KinoConsole

Этот способ подойдёт для абсолютно любой игры, установленной на компьютере. Программа делает захват экрана и передаёт в прямой трансляции на смартфон. Понадобится стабильное интернет-соединение со скоростью более 30 мегабит в одной Wi-Fi сети. Единственное ограничение – это мощность «железа», установленного на компьютере.

Для управления используются эмуляция геймпада от Xbox. Поэтому настройка клавиш происходит в виде джойстика. Преимущества этой программ в том, что она работает на всех ОС: iOS, Android и Windows Phone.

Стриминг игры

Steam Link

Steam Link

Приложение схоже по принципу работы с KinoConsole, но с несколькими условностями. Для стриминга используются видеоигры, купленные в цифровом магазине Steam. При передаче видеопотока используются сервера и продвинутые алгоритмы площадки. Это уменьшает задержку отклика при управлении.

Google Stadia

Недавно анонсированная технология от компании Google позволяет стримить видеоигру на смартфон без необходимости запуска на персональном компьютере. Приложение будет запускаться на серверах со стороны разработчиков. Для работы понадобится хорошее интернет-соединение, более 30 мегабит в секунду.

Google Stadia

В отличие от аналогов, сервис по слухам будет монетизируется с помощью подписочной модели. То есть понадобиться платить определённую сумму ежемесячно, чтобы использовать функционал. На данный момент не объявлена точная стоимость, а выход Stadia намечен на осень 2019.

Какие пк-игры можно запустить на Android (список возможных игр)

Рассмотрим несколько проектов, которые были портированы разработчиками для iOS и Android:

Counter Strike Go

Эмулятор Play Station для андроид устройств от Henrik Rydgård.

ePSXe for Android

Отличный эмулятор PlayStation теперь и на андроид. Запустит любые игры которые были выпущены для данной конслои (приставки).

FPse for Android

Эмулятор для любителей игры в Sony PlayStation теперь и на андроид утройствах.

My Boy! - GBA Emulator

Простой, качественный и быстродействующий эмулятор GameBoy Advance.

DraStic DS Emulator

Быстрый эмулятор на андроид, с многочисленными функциями.

GameKeyboard +

Простое и удобное приложение для эмуляции джойстика.

ExaGear Strategies

Играйте в стратегии с помощью простого и удобного эмулятора.

Happy Chick

Эмулятор различных игровых платформ с огромной базой игр.

ExaGear RPG

Запускайте свои любимые RPG с помощью простого эмулятора.

Sixaxis Controller

Используйте свои Sixaxis и Dual Shock 3 / 4 джойстики во многих играх и приложениях.

DamonPS2

Эмулятор игр PS2 на Андроид.

DriveDroid (Paid)

Загрузите ПК с .iso или .img образом с помощью вашего смартфона.

N64 Emulator

Запускайте великолепные игры для приставки Nintendo у себя на андроид устройстве!

Как перенести игру с андроида на компьютер

Иногда игра на большом экране захватывает все ваше внимание. Но прелесть нашего времени в том, что есть смартфоны, которые позволяют играть в игры в любом месте. И хочется, наконец, перенести ее на свой телефон, чтобы игра всегда была под рукой. Лучшим вариантом будет найти и скачать аналогичную игру в Play Market. Но там можно найти не все игры, в которые вы уже играете на компьютерной ОС. Для того, чтобы перенести игру с ПК на Андроид, существует несколько решений. Мы рассмотрим основные:

  1. перенос с помощью USB-провода;
  2. скачивание игр с кэшэм;
  3. удаленная команда;
  4. с помощью почты.

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

Как скинуть игру с компьютера на Андроид с USB​

Одним из больших плюсов работы с USB-кабелем является подключение через шнур без использования сети Wi-Fi, Bluetooth или мобильному интернету. Для передачи и корректного функционирования файла вам потребуется:

Установить игру на Android с кэшэм

Чтобы установить игру в виде архива, вам понадобится примерно та же схема, что и выше, но с небольшим дополнением. После скачивания zip-архива вам будет нужна программа для распаковки на подобии WinRAR или любая другая. Это можно сделать как на компьютере, скинув на смартфон уже распакованные файлы либо разархивировать игру уже на телефоне при помощи аналогичной программы из Play Market.

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

Удаленная установка

Удаленная обстановка пригодится, если вы нашли подборку игр с компьютера, но у вас нет желания искать их в Плэй Маркете с телефона. Для того, чтобы установить программу в удаленном режиме, зайдите в аккаунт Play Market, который привязан к смартфону. Там вы можете с удобством выбрать на большом экране игры и установить.

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

Как скачать игру с помощью почты

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

Читайте также: