Test tasks for team recruitment
Task 1
Your task is to create a simple game for interacting with objects, with the ability to customize their appearance. You may choose the game mode (first-person view or VR) at your discretion. The main game mechanic should involve object customization, including changing colors with the ability to save settings. The game design is up to you. Creativity is encouraged.
Game Functionality Requirements
- Core Mechanic: The game should allow the player to interact with objects and change their color. It should include the ability to select colors through a custom color palette.
- Object Types: Add different types of objects and the ability to add new types.
- Bonus 1: Add the ability to customize the size of objects.
- Bonus 2: Implement customization of object rotation.
- Saving: The game should save the customization settings of the objects.
- Widget Usage: Ensure the game interface includes widgets for managing object customization.
- Class Inheritance: Use class inheritance principles to organize the code.
- Components and Interfaces: Use components and interfaces to create a modular game structure.
- Document the code and development process.
- You may use any tools and resources to develop the game.
- Feel free to use any necessary materials and assets; do not limit yourself to specific ones.
- Focus on code quality and structure when completing the task.
- Both C++ and Blueprints are allowed.
- Adding and implementing your own ideas for functionality is encouraged.
Please complete the task within 7 days. If you have any questions or need clarifications, feel free to ask. We wish you success in completing the task!
Задание 1
Ваша задача - создать простую игру для взаимодействия с объектами с возможностью кастомизации их внешнего вида. Вы можете выбрать режим игры (вид от первого лица или VR) по вашему усмотрению. Главная механика игры должна быть связана с кастомизацией объектов, включая изменение цвета с возможностью сохранения настроек. Игровой дизайн - на Ваш выбор. Креатив приветствуется.
- Основная механика: Игра должна позволять игроку взаимодействовать с объектами и изменять их цвет. Требуется возможность выбора цвета через кастомную палитру цветов.
- Типы обьектов: Добавьте разные типы обьектов и возможность добавлять новые типы.
- Бонус 1: Добавьте возможность кастомизации размера объектов.
- Бонус 2: Реализуйте кастомизацию поворота объектов.
- Сохранение: Игра должна сохранять настройки кастомизации объектов.
- Использование виджетов: Убедитесь, что интерфейс игры включает в себя виджеты для управления кастомизацией объектов.
- Унаследование классов: Используйте принципы унаследования классов для организации кода.
- Компоненты и интерфейсы: Используйте компоненты и интерфейсы для создания модульной структуры игры.
- Документируйте код и процесс разработки.
- Вы можете использовать любые средства и инструменты для разработки игры.
- Используйте любые необходимые материалы и ассеты, не ограничивайтесь только одними.
- Ориентируйтесь на качество кода и его структуру при выполнении задания.
- Разрешено использование как С++, так и Блупринтов
- Добавление и реализация собственных идей для функционала приветствуется.
Пожалуйста, выполните задание в течение 7 дней.
При возникновении вопросов или необходимости уточнений, не стесняйтесь обращаться.
Задание 2
Разработайте прототип функции оценки сложности 3D объектов. Этот инструмент будет использоваться для автоматической оценки новых ассетов перед их внедрением в проект.
- Реализуйте базовую формулу оценки сложности, учитывающую следующие факторы: Polygon Count, Texture Resolution, Material Complexity, Shader Complexity, Collision Complexity, LODs etc...
- Предоставьте документацию к вашему прототипу, описывающую алгоритм оценки сложности и способ использования функции оценивания. Опишите сложности с которыми Вы сталкиваетесь и способ Вашего мышления при оценивании обьекта.
- Реализуйте функцию оценивания, которая принимает на вход 3D объект и возвращает оценку его сложности по десятибалльной шкале.
- Реализовать прототип с учетом возможности использования как в среде редактора, так и в режиме выполнения (runtime).
- Дополнительные факторы оценки сложности.
- Вы можете использовать любые средства и инструменты для разработки игры.
- Используйте любые необходимые материалы и ассеты, не ограничивайтесь только одними.
- Ориентируйтесь на качество кода и его структуру при выполнении задания.
- Документируйте код и процесс разработки.
- Разрешено использование как С++, так и Блупринтов
- Задание достаточно не тривиальное. Собственно, как и наш проект в целом. Если сталкиваетесь с трудностями при реализации, распишите Ваш концепт и алгоритм подхода, которым бы Вы руководились для имплементации.
Пожалуйста, выполните задание в течение 7 дней.
При возникновении вопросов или необходимости уточнений, не стесняйтесь обращаться.
Задание 3
Ваша задача - разработать простую игру с функциональной инвентарной системой. Режим игры (вид от первого лица или VR) определяется разработчиком. Цель игры - выставить на уровне как можно больше объектов. Игровой дизайн - на Ваш выбор. Креатив приветствуется.
- Инвентарная система: с взаимодействием через виджет
- Механика сохранения: Добавьте механику сохранения и удаления объектов на уровне.
- Два типа объектов:
- Статические объекты, которые нельзя двигать.
- Интерактивные объекты, которые можно перемещать на сцене.
- Механика перемещения объектов по сцене.
- Оптимизация: Подумайте о способах оптимизации производительности игры при работе с большим количеством объектов на уровне.
- Использование виджетов: Убедитесь, что интерфейс игры включает в себя виджеты для управления инвентарем.
- Унаследование классов: Используйте принципы унаследования классов для организации кода.
- Компоненты и интерфейсы: Используйте компоненты и интерфейсы для создания модульной структуры игры.
- Документируйте код и процесс разработки.
- Используйте любые необходимые материалы и ассеты, не ограничивайтесь только одними.
- Разрешено использование как С++, так и Блупринтов.
- Ориентируйтесь на качество кода и его структуру при выполнении задания.
- Вы можете использовать любые средства и инструменты для разработки игры.
- Добавление и реализация собственных идей для функционала приветствуется.
Пожалуйста, выполните задание в течение 7 дней.
При возникновении вопросов или необходимости уточнений, не стесняйтесь обращаться.