Завершен основной этап разработки новой версии панели управления. Основной упор в разработке этой версии делался на стабильность работы и производительность, большинство изменений внешне не видны. Были переписаны многие функции и классы, удален ненужный код, убрано лишнее. Добавлена поддержка новых игр.
А теперь обо всем более подробно.
Ограничение на использование ресурсов
Для серверов под управлением Linux появилась возможность ограничить потребляемые ресурсы. Данная функция работает по желанию пользователя, при значениях отличных от нуля, а также при наличии Linux пакетов cpulimit, trickle и ulimit. При использовании этого функционала не стоит забывать, что они также используют ресурсы системы и в некоторых случаях могут увеличить задержку.
WebFTP
Написан простой WebFTP интерфейс, позволяющий редактировать файлы, загружать собственные файлы, удалять их. WebFTP может работать через FTP, SFTP, локально и GDaemon (собственный протокол, более подробно о нем будет написано дальше). WebFTP пришел на замену двух контроллеров — редактирование конфигурационных файлов и просмотр логов.
Теперь нет необходимости заранее определять конфигурационные файлы и директории с логами в настройках игр, это облегчит работу администратору панели, но усложнит работу с файлами для малоопытных пользователей, которые будут управлять своим сервером.
Написан собственный протокол GameAP Daemon (GDaemon)
Написан собственный демон (сервис), который позволяет управлять машиной, это альтернатива SSH и Telnet, также GDaemon позволяет управлять файлами.
Протокол в первую очередь написан с целью заменить Telnet, скорость работы с Telnet очень низкая, также иногда с панелью возникало много проблем, они исправлялись, но появлялись новые и так бесконечно. Это очень критично, при использовании нескольких десятков машин под управлением Windows.
Данные в GDaemon шифруются при помощи алгоритма AES, работает он гораздо быстрее Telnet, но немного медленнее SSH, поэтому при использовании Linux систем лучше остановиться на SSH. В настройках протокола можно указать белые IP и GDaemon будет обрабатывать запросы лишь с них.
GameAP Daemon написан на C++, работает на машинах под управлением Windows 2003-2012, Linux (работа проверена на Ubuntu, Debian, CentOS и Gentoo).
Улучшен пользовательский интерфейс
Была проведена небольшая работа по увеличению удобства при настройке параметров в панели. Добавлены элементы JQuery, где они необходимы.
Функциональность модулей
Добавлен функционал, позволяющий модулям более тесно работать с основной частью панели. Исправлены баги при сохранении данных модулей в базу, когда один модуль мог удалить данные другого модуля.
Модули могут сохранять уведомления для пользователей, которые будут отображаться на всех страницах панели. В уведомлениях от модулей может быть как обычный текст, так и html код.
CRON
CRON модуль полностью переписан. Увеличена его производительность на панелях с большим числом машин и игровых серверов.
Значения по умолчанию для алиасов
Для алиасов появилась возможность задать значения по умолчанию. Теперь при создании нового сервера не нужно дожидаться пока он установится и вписывать в настройки дефолтные значения, панель это сделает автоматически.
Подгрузка шаблона по умолчанию
Теперь пользовательские шаблоны могут иметь отсутствующие файлы и это никак не повлияет на работу панели, никаких ошибок не будет. Если в каком-то шаблоне будет отсутствовать файл, то он будет загружен из стандартного шаблона.
Это также позволяет потратить гораздо меньшее время на создание шаблона, когда нужно изменить основные файлы для изменения внешнего вида, а самую рутину оставить дефолтной.
Переписаны исполняемые файлы
Полностью переписаны исполняемые файлы для Windows и Linux (server.exe и server.sh). Для Windows исполняемый файл написан на C++, ранее он был на PHP. Для Linux исполняемый файл написан также на Bash.
Улучшена стабильность работы
Добавлено больше проверок на корректность переменных, наличие необходимых драйверов по работе с Query и RCON. Исправлено множество багов, найденных в предыдущих версиях.
Итог
Работа над версией 1.0 еще продолжается, многое еще нужно отшлифовать, добавить фраз в языковые файлы. Еще нужно протестировать работу некоторых компонентов. Необходимо обновить данные, которые будут записаны в БД при установке. Также нужно обновить документацию, т.к. некоторые сведения о панели устарели.
Дата релиза GameAP 1.0 — 28 февраля 2015 года. Версию GameAP 1.0-dev, которая находится в разработке, можно скачать с GitHub (https://github.com/ET-NiK/GameAP).