Не боги горшки обжигали!

Виктор Рябов Viktor123123

Рейтинг: 142
не верифицирован
Всего отзывов: 0
  • Работ в портфолио: 3
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Стаж работы: 21 год
  • Зарегистрирован: 16.09.2025
Был на сайте:

Лаунчер для MMORPG

Описание

Создать автономный, самодостаточный лаунчер для игры который:

Проверяет целостность игровых файлов по удалённому списку (file_list.txt);
Автоматически скачивает недостающие или устаревшие файлы;
Удаляет лишние или помеченные на удаление файлы (включая папки);
Создаёт ярлык на рабочем столе;
Запускает игру с нужными параметрами (включая обход официального лаунчера);
Имеет современный графический интерфейс с фоновым изображением и перетаскиванием окна;
Обеспечивает пользовательскую навигацию (сайт, форум, регистрация, аккаунт);
Работает как в виде .py, так и после упаковки в .exe (PyInstaller).
Особое внимание уделялось безопасности, отказоустойчивости и удобству пользователя — даже при ошибках соединения или повреждении файлов лаунчер не "падает", а информирует пользователя через логи и GUI.

Решение

Архитектура и ключевые компоненты
Файловая синхронизация:
Сравнение локальных файлов с серверным индексом по размеру и времени модификации.
Поддержка команд DEL для удаления устаревших файлов/папок.
Многоуровневая проверка: сначала удаление, потом загрузка, потом очистка лишнего.
Графический интерфейс (GUI):
Кастомное безрамочное окно с фоновым изображением (vin.jpg).
Реализация перетаскивания окна мышью.
Анимированный статус-бар для отображения текущего действия.
Кнопки управления (свёртывание, закрытие) в стиле Windows 10/11.
Безопасность и совместимость:
Автоматический запрос прав администратора через ShellExecuteW.
Логирование всех операций в файл launcher.log.
Обработка исключений на каждом уровне — от загрузки до запуска.
Управление процессами:
Запуск игры через subprocess.Popen с флагами DETACHED_PROCESS для независимости от лаунчера.
Приоритетный поиск VindictusRU_Login.exe — обход официального лаунчера.
Дополнительные функции:
Создание ярлыка на рабочем столе через COM-объекты Windows (WScript.Shell).
Открытие внешних ссылок (сайт, форум, аккаунт) через системный браузер.
Поддержка работы из .exe (PyInstaller) — корректное определение путей.
💡 Особенности реализации
Индексы файлов: Для ускорения повторных проверок лаунчер создаёт и обновляет локальный индекс local_file_list.txt, что снижает нагрузку на диск и сеть.
Потоки: Все длительные операции (проверка, загрузка) выполняются в фоновых потоках, чтобы не блокировать интерфейс.
Кэширование: Удалённый список файлов кэшируется в памяти во время сессии, чтобы избежать повторных запросов.
Локализация: Поддержка русского языка через словарь TEXTS_RU — легко расширяемо.
Адаптивность: Лаунчер корректно работает как при первом запуске (создаёт индекс), так и при наличии частично загруженной игры.

Результат

Полностью функциональный, надёжный и удобный лаунчер, который:

Упрощает установку и обновление игры для конечного пользователя.
Исключает необходимость ручного управления файлами.
Интегрируется с экосистемой игры (форум, сайт, аккаунт).
Может распространяться как standalone-приложение (.exe).
Проект демонстрирует глубокое понимание:

Работы с файловой системой и сетевыми запросами;
Многопоточности в GUI-приложениях;
Взаимодействия с ОС Windows (COM, Shell, права доступа);
Обработки ошибок и создания отказоустойчивых систем.
🧩 Навыки, продемонстрированные в проекте
Python (продвинутый уровень)
Разработка desktop-приложений
Многопоточность и асинхронные операции
Работа с API и HTTP-запросами
Интеграция с Windows API (ctypes, win32com)
Обработка исключений и логирование
UI/UX для desktop-приложений (tkinter + PIL)
Упаковка приложений (PyInstaller)
Работа с файловой системой и процессами
Этот лаунчер — не просто утилита, а законченный продукт, решающий реальную задачу сообщества игроков. Он может служить образцом для разработки подобных систем доставки контента (CDN клиентов, патчеров, игровых лаунчеров).

Презентация проекта

Без имени-2.png

Оценили проект:

0