Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 440новых вакансий за сутки·54 706вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 625
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 397 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 748
  • Облачные технологии6 616
  • QA вакансии2 169
  • Android1 320
  • Инженер данных872
  • Продакт-менеджер302

Разработка

  • iOS1 232
  • Backend вакансии1 204
  • AI вакансии543
  • Fullstack вакансии497
  • Frontend вакансии417
  • Mobile вакансии28

По стеку

  • Go5 212
  • Java3 116
  • Kotlin1 090
  • Node.js995
  • Rust845
  • .NET661
  • PHP320
  • C++271
  • C#208

DevOps и инфраструктура

  • Kubernetes3 913
  • Linux-инфраструктура2 852
  • DevOps вакансии2 678
  • Terraform / IaC2 167
  • Мониторинг и Observability1 066
  • CI/CD923
  • SRE301
  • Кибербезопасность26

Аналитика и данные

  • Аналитик данных533
  • Data Scientist436
  • Бизнес-аналитик400
  • Системный аналитик68

Другие направления

  • Проджект-менеджер90
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США26 186
  • Вакансии в Европе10 369
  • Работа в России3 628
  • Вакансии в Канаде2 306

По формату

  • Удалённые вакансии43 484
  • Релокация в США26 186
  • Гибридная работа5 597
  • Офисная работа4 383

По уровню

  • Senior вакансии22 724
  • Middle вакансии11 726
  • Junior вакансии3 874

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab135 вакансий
  • Celonis45 вакансий
  • Spotify37 вакансий
  • Infobip28 вакансий
  • Adyen26 вакансий
  • Monzo19 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Unreal EngineВсе вопросы
Unreal EngineJuniorТеория

Что такое класс GameMode и какова его ответственность?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

GameMode — singleton-класс сервера, определяющий правила игры: какие классы использовать для Pawn, PlayerController, HUD, GameState, PlayerState; существует только на сервере и не реплицируется клиентам.

Пример кастомного GameMode

// MyGameMode.h
#pragma once
#include "GameFramework/GameModeBase.h"
#include "MyGameMode.generated.h"

UCLASS()
class MYGAME_API AMyGameMode : public AGameModeBase
{
    GENERATED_BODY()
public:
    AMyGameMode();

    virtual void PostLogin(APlayerController* NewPlayer) override;
    virtual AActor* ChoosePlayerStart_Implementation(
        AController* Player) override;
};

// MyGameMode.cpp
#include "MyGameMode.h"
#include "MyPlayerController.h"
#include "MyCharacter.h"
#include "MyHUD.h"

AMyGameMode::AMyGameMode()
{
    DefaultPawnClass      = AMyCharacter::StaticClass();
    PlayerControllerClass = AMyPlayerController::StaticClass();
    HUDClass              = AMyHUD::StaticClass();
    // GameStateClass и PlayerStateClass тоже задаются здесь
}

void AMyGameMode::PostLogin(APlayerController* NewPlayer)
{
    Super::PostLogin(NewPlayer);
    UE_LOG(LogTemp, Log, TEXT("Player joined: %s"),
        *NewPlayer->GetName());
}

Что такое GameMode

AGameModeBase / AGameMode — это класс-«арбитр» игровой сессии. Он создаётся один раз при старте уровня и существует только на сервере (включая выделенный сервер и listen-сервер). Клиенты экземпляр GameMode не получают — для передачи данных клиентам используется AGameState.

Ответственности GameMode

  • Регистрация классов: задаёт, какие классы UE должна создавать для Pawn, PlayerController, HUD, GameState, PlayerState, SpectatorPawn.
  • Правила спавна игроков: GetDefaultPawnClassForController(), ChoosePlayerStart(), RestartPlayer().
  • Логика начала/конца матча: StartPlay(), ReadyToStartMatch(), EndMatch() (только в AGameMode, не в Base).
  • Авторизация входа: PreLogin(), Login(), PostLogin(), Logout().
  • Определение победителя, счёта, правил победы.

AGameModeBase vs AGameMode

  • AGameModeBase — минималистичная база без матчевого стейт-машины (Waiting → InProgress → End). Используйте для простых игр.
  • AGameMode добавляет MatchState (FName), события HandleMatchIsWaitingToStart, HandleMatchHasStarted, HandleMatchHasEnded, поддержку bDelayedStart.

Назначение GameMode уровню

В настройках уровня (World Settings → GameMode Override) или в DefaultEngine.ini:

[/Script/EngineSettings.GameMapsSettings]
GlobalDefaultGameMode=/Script/MyGame.MyGameMode

Подводные камни

  • GameMode на клиенте: GetWorld()->GetAuthGameMode() возвращает nullptr на клиенте — обращение к нему вызовет краш.
  • Смешение GameMode и GameState: данные, которые нужны клиентам (счёт, оставшееся время), должны жить в GameState с репликацией, а не в GameMode.
  • Изменение DefaultPawnClass во время игры: смена класса не влияет на уже заспавненных пешек; нужно вручную удалить и заново заспавнить.
  • Override уровня перебивает проектные настройки: GameMode Override в World Settings имеет приоритет над DefaultEngine.ini — легко забыть при добавлении нового уровня.
  • Вызов матч-методов на AGameModeBase: методы SetMatchState, RestartGame есть только в AGameMode; попытка привести Base к Game без проверки — краш.

Частые вопросы на собеседовании

  • В каких проектах Unreal Engine оправдан, а где он становится источником лишней сложности?
  • Что такое макросы UPROPERTY и UFUNCTION и какие параметры они поддерживают?
  • Что такое сборщик мусора (garbage collector) в Unreal Engine и как предотвратить уничтожение объектов?
  • В чём разница между GameMode, GameState, PlayerController и PlayerState?

Типичные ошибки

  • Объяснять GameMode только по синтаксису, без жизненного цикла и стоимости.
  • Игнорировать ошибки, null/empty состояния, порядок инициализации или режим сборки.
  • Давать пример, который работает в демо, но ломается при изменении владельца ресурса.
  • Использовать макросы или specifier-и наугад и забывать про UObject GC.

Что проверяет интервьюер

  • Кандидат формулирует точную модель для GameMode, а не только определение.
  • Пример компилируем, безопасен по lifetime и соответствует версии технологии.
  • Названы trade-off, ограничения и диагностируемые симптомы ошибки.
  • Понимает границу между C++ кодом, runtime/framework metadata и editor/UI слоем.

Как вы знаете этот вопрос?

Проверить себя по теме Unreal Engine →

Источники

  • https://dev.epicgames.com/documentation/en-us/unreal-engine/game-mode-and-game-state-in-unreal-engine
←Предыдущий вопросЧто такое delegates в Unreal Engine и чем они отличаются от стандартных delegates в C++?Следующий вопрос→В чём разница между `UObject`, `AActor` и `UActorComponent`?

Связанные темы

Unreal Engineasset-pipelinegameplay-architectureperformance-debugging