Визуальная новелла + сайт
Введение
Архитектура
Инженерные решения
Prepared Statements
Хэширование пароля
Fetch API
Сессии
Защита от XSS
Polling в чате
Переключение разделов
Валидация данных
Переходы, отображение контента
Заключение
428.50K
Category: internetinternet

Презентация Microsoft PowerPoint

1. Визуальная новелла + сайт

It’s not a police matter
Преподаватель:
Кузьмин
Алексей
Дмитриевич
Студент: Кашин
Дмитрий
Сергеевич
Заказчик: Сергей
Мишуров – mishurov37 (telegram)
Академия ITtop 2026

2. Введение

В игровой индустрии
нет ни одной ААА или
инди игры про
закулисье (backrooms) с
сюжетом и какой либо
драммой. Пора это
исправить!

3. Архитектура

Код разделён на три независимых
слоя. API-файлы принимают запросы
и возвращают JSON, но сами с базой
не работают. Модуль авторизации
управляет только сессиями.

4. Инженерные решения

PHP — серверная логика,
генерация HTML, работа с базой
данных
SQL — хранение данных
(пользователи, комментарии,
сообщения чата)
JavaScript (Vanilla, без фреймворков) —
динамика на клиенте:
переключение вкладок,
отправка форм, обновление
чата
HTML — распространённый язык
разметки
CSS — стилизация, адаптивная
вёрстка

5.

База данных

6. Prepared Statements

Данные пользователя передаются
в запрос отдельно от SQL-команды
через ?, поэтому злоумышленник не
может сломать или подменить
запрос к базе данных.

7. Хэширование пароля

В базе данных хранится не сам пароль, а
его необратимый bcrypt-хэш. Даже если база
утечёт — восстановить пароли из хэшей
невозможно.

8. Fetch API

JavaScript отправляет данные на
сервер и получает ответ в фоне —
страница при этом не
перезагружается, пользователь
остаётся на месте.

9. Сессии

После входа данные
пользователя сохраняются в
$_SESSION и доступны на всех
страницах без повторных
запросов к базе. При выходе —
удаляются.

10. Защита от XSS

Если пользователь напишет в
комментарии <script>alert('взлом')</script
> — браузер не выполнит это как
код, а отобразит как обычный
текст. Требуется
экранирование

11. Polling в чате

Чат должен показывать новые
сообщения в реальном времени.
Для этого используется polling —
каждые три секунды JavaScript
автоматически запрашивает у
сервера новые сообщения через
setInterval.

12. Переключение разделов

Весь сайт — это одна страница. Все
разделы загружены в браузер сразу и
просто скрыты через CSS. При клике на
вкладку одна скрывается, другая
показывается — без обращения к серверу.

13. Валидация данных

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

14. Переходы, отображение контента

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

15. Заключение

Тема закулисья —
неизведанная ниша, а
движок RenPy — простой
инструмент для
воплощения фантазий в
геймдев. Minecraft может
оказаться не просто
игрой в умелых руках.
Помните, что если вы будете недостаточно аккуратны, то попадёте
туда, и выбраться во 2й раз врят ли получится…
English     Русский Rules