Skip to content

GeekNekoS/Waste_lands

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 

2.5D игра

WASTE LANDS

Идея игры: "Заброшенные земли"

Описание игры:

Игрок оказывается в открытом мире, наполненном таинственными событиями и ужасами. Цель игры - исследовать просторы местности, раскрывать тайны и побеждать ужасы, что поджидают в каждом уголке

Функционал:

  1. Геймплей:

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

  1. Управление:

Игрок будет управлять персонажем с помощью клавиатуры или геймпада, перемещая его по открытой местности и взаимодействуя с объектами

  1. Алгоритмы:

Легкий алгоритм:

Реализация алгоритма перемещения персонажа по местности и взаимодействия с объектами

Средний алгоритм:

Реализация алгоритма управления поведением ужасных существ или явлений (например, случайное появление или преследование игрока)

  1. Архитектура проекта:

Использование архитектурного паттерна MVC (Model-View-Controller) для разделения логики игры, ее отображения и управления пользовательским интерфейсом. Реализация модели для хранения данных о состоянии персонажа, объектов местности и текущих заданиях. Использование ViewModel для управления взаимодействием между моделью и представлением (визуализацией на экране) и обработки пользовательских действий

  1. Креативность:

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

Навигация

Настройка готового проекта

  • Версия Python: 3.11.8
  • После скачивания проекта к себе на компьютер не забудьте установить необходимые зависимости, прописав к консоли команду: pip install -r requirements.txt

Управление и меню

Главное меню

При запуске игры (python main.py) открывается главное меню:

  • Single Player - одиночная игра
  • Host Game - создать сервер и начать игру (другие могут подключиться)
  • Join Game - подключиться к существующему серверу
  • Exit - выход из игры

Навигация в меню:

  • / - перемещение по пунктам меню
  • Enter - выбор пункта
  • ESC - выход

Управление в игре

  • W / A / S / D или стрелки - перемещение персонажа
  • E - подобрать предмет (когда рядом с ним)
  • ESC - пауза (открывает меню паузы)
  • Клик мышью по слоту инвентаря - выбрать активный слот

Меню паузы (ESC во время игры)

  • Resume - продолжить игру
  • Main Menu - вернуться в главное меню
  • Exit - выход из игры

🌐 Сетевая игра (Multiplayer)

Как играть вдвоем на одном компьютере:

  1. Игрок 1: выбирает Host Game
  2. Игрок 2: запускает игру отдельно и выбирает Join Game
  3. Оба игрока видят друг друга и могут играть вместе

Как играть по сети (разные компьютеры):

  1. Узнайте IP адрес компьютера-хоста:
    • Windows: ipconfig в командной строке
    • Linux/Mac: ifconfig или ip addr
  2. Хост выбирает Host Game
  3. Другой игрок выбирает Join Game и подключается к IP хоста
  4. Порт по умолчанию: 5555

Технические детали:

  • Используется Client-Server архитектура
  • Протокол: TCP (надежная доставка)
  • Частота обновлений: 20 Hz (20 раз в секунду)
  • Синхронизируются: позиции игроков, направления взгляда

Полезные команды

  • Сохранить список зависимостей в файл requirements.txt: pip freeze > requirements.txt
  • Отобразить зависимости в консоль: pip list
  • Удалить файл из контроля версий: git rm --cache [путь до файла]
  • Удалить все зависимости: pip uninstall -y -r requirements.txt
  • Установить зависимости: pip install -r requirements.txt

Полезные ссылки

Звуки игры, звуковые эффекты

Структура проекта

Waste_lands
├── assets/
│   ├── sounds
│   └── sprites
├── data_for_readme/
├── mvc
│   ├── controller/
│   │   ├── a_star.py
│   │   └── utils.py
│   ├── model/
│   │   ├── enemy.py
│   │   ├── inventory.py
│   │   ├── items.py
│   │   ├── perling_noise.py
│   │   ├── player.py
│   │   └── world.py
│   └── view/
│       └── menu.py
├── tests
│   └── sprites_load.py
│
├── config.py
├── main.py
├── README.md
├── requirements.txt
└── settings.py



Требования к проекту

  • Игра должна быть написана на PyGame

Технические - 45:

  1. Соответствие разобранным принципам программирования (за весь первый курс, включая то, что было на парах): SOLID, DRY, KISS, и другим, ООП/ФП: 10 баллов

  2. Сложность алгоритмов: 15 баллов

    Алгоритма нет: 0%.

    [✓] Легкие алгоритмы. Примеры: алгоритм давался на парах, AABB (Axis-Aligned Bounding Box): 20%

    [ ] Средние алгоритмы. Примеры: оптимизация алгоритма с пар (улучшенный BFS/DFS, A* и т.д.): 40%

    [ ] Все, что сложнее и комплекснее (QuadTree, дерево решений, Perlin noise и т.д.): 60+%

    Надо понимать, что выполнив 2 алгоритма с пар вы не получите 40*2%, но немного доп.баллов при хорошей реализации и защите получите.

    Примеры дают ориентировочный уровень сложности алгоритма.

    Все остальное зависит от сложности алгоритма, его реализации, вашего понимания.

  3. Корректная, обоснованная реализация архитектуры проекта: MV*/ECS/EC/альтернативы: 15 баллов.

  4. Полноценность проекта: работоспособность, удобство, производительность, целостность (внешняя и внутренняя) и прочее: 5 баллов Нетехнические - 5:

  5. Красивости и прочее креативное: 5 баллов

  • Безосновательное использование библиотек/списывание и т.д. - минус баллы. Пример безосновательного использования библиотек: ничего/почти ничего не реализовано в проекте самостоятельно, все на основе библиотек.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages