Для веб-сайтов LibGDX использует Google Web Toolkit, который применяет технологию AJAX (Asynchronous Javascript and XML), благодаря чему не требуется JVM и появляется возможность использовать веб-приложение на любом устройстве, имеющем выход в интернет.
Однако в этом есть 2 крохотных минуса. Во-первых, для тестирования нужен работающий сервер (AJAX всё-таки клиент-серверная технология). А во-вторых, при трансляции код проходит обфускацию и внести какие-то существенные изменения в игру крайне затруднительно. Однако оба минуса меркнут в сравнении со временем и ресурсоёмкостью трансляции из Java в AJAX – простенькая игрушка из пары классов может занимать несколько минут и кушать пару гигов оперативки.
Из Java в AJAX
Есть 2 способа скомпилировать игру:
Установить GWT (плагин для Eclipse) и в контекстном меню html подпроекта выбрать Google - GWT Compile. Вас попросят указать war папку, она находится в html-подпроекте.
После компиляции готовая игра будет располагаться в этой папке:
html/war
Либо, поскольку LibGDX использует Gradle структуру, открыть командную строку, зайти в проект игры и прописать
E:\workspace\GeometryX>gradlew html:dist
В этом случае игра будет создана здесь:
html/build/dist/
Проверка
Если у Вас есть доступ к серверу (а иначе зачем вам веб-версия игры), то можете залить папку туда. Если же у Вас нет никакого сервера, или нет интернета, или вам лень, или ещё какая причина, то придется поднимать сервер на своей машине. Вариантов – уйма. Лично я использую Питон 2.+. Нужно в командной строке зайти в папку со скомпилированной игрой и прописать «python -m SimpleHTTPServer».
E:\workspace\Geometry-X\html\build\dist>python -m SimpleHTTPServer
Для ускорения компиляции можно кое-что отключить (спс Praytic), но помните, что в релизной версии надо вернуть всё на свои места.
Содержимое HTML версии
index.html – собственно, веб-страница с игрой.
<div align="center" id="embed-html"></div>
<script type="text/javascript" src="html/html.nocache.js"></script>
styles.css – таблица стилей для этой веб-страницы.
Папка assets – аналогичная папка с игровыми ресурсами.
Папка html – содержит AJAX код.
Папка WEB-INF – содержит скомпилированные Java исходники, для работы игры не требуются.
Папка assets – аналогичная папка с игровыми ресурсами.
Папка html – содержит AJAX код.
Папка WEB-INF – содержит скомпилированные Java исходники, для работы игры не требуются.
Совместимость Java и AJAX
К сожалению, из-за особенностей веб-технологий GWT не может полностью симулировать JVM. Поэтому часть стандартных классов нельзя использовать для HTML-игры, а часть заменяется костылями. Например, нет многопоточности, а восьмибитный long заменяется двумя integer.
На сайте GWT можно найти список поддерживаемых стандартных классов и особенности трансляции вообще.