Рефакторинг игрового движка OpenGothic
OpenGothic
Reimplementation of Gothic 2 Notr (Night of the raven)
Как собирать
git clone --recursive https://github.com/Try/OpenGothic.git
переключение на стабильную версию 0.52 (6 Nov 2021) - c9c807936e95292b47e1667964be2243439d25c3 (опционально)
cd OpenGothic && git checkout c9c807936e95292b47e1667964be2243439d25c3 cd OpenGothic && mkdir build && cd build
Какие поддерживает ОС:
- Android
- Linux
- Windows
- Архитектуру Эльбрус
Что нужно сделать:
Сделать рефакторинг игрового движка
Цель рефакторинга: эффективная работа на всех платформах. Это поможет отладить движок для лёгкого рефакторинга на платформе Эльбрус
Использовать виртуальную машину qemu с пробросом вашей видеокарты.
Под Windows, Linux, Android
- Вместо if, Else, go to - предикатные вычисления. Никаких условных переходов.
- улучшенный много поток. От 4 до 16 ядер. Должен анализировать количество ядер ЦПУ и загружать их.
- Никаких длинных цепочек в коде. Разделение на более мелкие, но эффективные
ВНИМАНИЕ: КОД ДОЛЖЕН БЫТЬ ХОРОШО ЗАКОММЕНТИРОВАН С ПОЯСНЕНИЕМ
Задача рефакторинга под Эльбрус
Требования к рефакторингу (как минимум):
- Замена if / else, go to на предикатное вычисление (без условных переходов)
- прямая векторизация v2sf / v4sf.
- применить выравнивание данных
- применить Array Prefetch Buffer
- устранение узких мест
Сделайте компиляцию со следующими флагами: O3/-O4, -fwhole, -march/-mtune, PGO
Что нужно сделать после рефакторинга:
- проверку качества кода
- проверку на наличие узких мест в коде
- исправить узкие места в коде (если имеются)
Для ещё больших оптимизаций Внимательно смотрите методичку в PDF
| Гарантия на работу | 1 год |
| Средний балл | 4.53 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |