diff options
Diffstat (limited to 'blog/yuydev.md')
| -rw-r--r-- | blog/yuydev.md | 66 |
1 files changed, 56 insertions, 10 deletions
diff --git a/blog/yuydev.md b/blog/yuydev.md index c7584fc..a3e95fb 100644 --- a/blog/yuydev.md +++ b/blog/yuydev.md @@ -3,9 +3,9 @@ ## Что делать - - - -Найти в глобальном поиске groups.google.com нашу группу yuydev@googlegroups.com -и подать в неё заявку на вступление. После этого в гугл диске появится -директория Yuydev в которой можно создавать и сохранять основные +Найти в глобальном поиске <https://groups.google.com> нашу группу +yuydev@googlegroups.com и подать в неё заявку на вступление. После этого в гугл +диске появится директория Yuydev в которой можно создавать и сохранять основные документы/ассеты связанные с игрой. ## Про архитектуру движка @@ -25,6 +25,11 @@ состояние объектов, у которых есть компоненты `Transform` и `Player`, а система `moveEnemy` --- `Transform` и `Enemy`. +Идейные вдохновители: + +- Unity 3D +- <https://github.com/saintruler/brandNewEngine> + ## Стек технологий - - - @@ -36,6 +41,8 @@ лицензию за несколько минут. Иначе, можно использовать студак во вкладке Official Document, но тогда придётся подождать несколько дней. +Почитать инфу по C++ можно [тут](cpp.html). + Для работы с графикой, со звуком и остальными мультимедийными вещами будет использоваться библиотека [SFML](https://www.sfml-dev.org/). Для её изучения можно почитать [туториалы](https://www.sfml-dev.org/tutorials/2.5/) на @@ -115,13 +122,27 @@ someFunctionName(int param1, int param2) - Комментарии на русском языке. Также можно заметить, что в комментариях есть конструкции `TODO(имя)` и -`NOTE(имя)`. Комментарии такого вида обычно распознаются в IDE и, например, -по TODO-комментария можно искать части проекта, в которых следовало бы -добавить какие-то вещи, которые могут быть не обязательны для сборки и работы -проекта в данный момент, но могут привести к неожиданным ошибкам. Например, -обработку ошибок/исключений можно отложить на потом, но чтобы не забыть о -том, что такая необходимость существует, надо добавить комментарий `TODO(имя)` -и через двоеточие указать чего именно не хватает. +`NOTE(имя)`. Имя указывает только на автора комментария, а не на того, кто +это будет чинить. Нужно это для того, чтобы можно было найти автора этого +комментария, если не совсем понятна проблема или что-то ещё. Комментарии такого +вида обычно распознаются в IDE и, например, по TODO-комментария можно искать +части проекта, в которых следовало бы добавить какие-то вещи, которые могут быть +не обязательны для сборки и работы проекта в данный момент, но могут привести +к неожиданным ошибкам. Например, обработку ошибок/исключений можно отложить +на потом, но чтобы не забыть о том, что такая необходимость существует, надо +добавить комментарий `TODO(имя)` и через двоеточие указать чего именно не +хватает. + +### Особенности работы с C++ в этом проекте + +Очень желательно везде использовать [Plain Old +Data](https://ru.wikipedia.org/wiki/Простая_структура_данных), то есть обычные +`struct`. Использование наследования и рефлексии запрещено (до тех пор, пока не +найдётся место, где это **действительно** понадобится). Макросы не запрещены, +но их количество следует минимизировать. Если какой-то сложный тип данных +встречается достаточно часто есть возможность рассмотреть вынесение его в +отдельный `typedef`. Глобальных переменных следует избегать, а нужные данные +хранить непосредственно в компонентах. ### Работа с git @@ -155,3 +176,28 @@ someFunctionName(int param1, int param2) Основные команды и процесс работы с нашим репозиторием можно прочитать [тут](git.html). +## Какие есть задачи +- - - + +- Сборка проекта под разные архитектуры + - Debug и Release сборки +- Система логгирования +- Чтение конфигов в каком-то языке разметки + - Выбрать этот язык (кандидаты: toml, yaml, json, ini) +- Движок + - Система компонентов + - Подсистема рендеринга + - Подсистема ввода + - Подсистема сцен + - Подсистема сохранений + - Сериализация/десериализация объектов + - Работа с незапакованными ассетами (Debug build) + - Звуковая подсистема + - Подсистема событий + - Фреймворк для разработки графического интерфейса (а также работа со шрифтами) + - Запаковка ассетов и загрузка этих архивов в собранном проекте (Release build) +- Графический интерфейс для создания сцен +- Игровые механики (придумывание идей и реализация) +- Сюжет +- Графика +- Музыка |