Indie · UE5 · Serious Game · DIGITOPIA 2025 — 2nd Place

Keys to Egypt

Keys to Egypt

An educational serious game built for DIGITOPIA 2025 — Egypt's first nationwide digital innovation competition organised by the Ministry of Communications & Information Technology. Out of 25,000+ applicants nationwide, our six-person team placed 2nd overall. The game was built from scratch in 11 days (plus 2 days of polish) with no AI tooling, then showcased at ITI and Egypt Game Jam.

The concept: An IT employee is called in to repair a museum in Egypt 2030 — five hours before opening — after a cyberattack knocks all systems offline. Players journey through four wings (Pharaonic, Coptic, Islamic, Modern), solving culturally-rooted puzzles to restore each exhibit while learning both Egyptian history and digital-safety fundamentals.

Unreal Engine 5 C++ Blueprints Serious Game Git 11-Day Jam
What I Built
  • Team lead & UE5 architect — directed a six-person cross-discipline team (design, art, programming) across the full 13-day sprint; established the UE5 project structure, asset pipeline, and Git branching strategy from day one.
  • Adaptive trivia system — designed and implemented a question-and-answer engine with per-era question banks, multiple choice / dialogue variants, and dynamic difficulty scaling based on player performance.
  • Multi-room puzzle framework — architected a generalised puzzle manager covering six distinct puzzle types (mirror reflectors, moving tiles, ringing-bills matching, sequence unlock, phishing-detection mini-game, and painting-location match) with a shared completion/state interface to drive room transitions.
  • Cybersecurity education layer — implemented the phishing-detection game (spot fake messages), digital-password hint system, and spam-deletion challenges; all mechanics designed to teach real digital-safety habits through play.
  • AI assistant integration — built the in-game AI guide that delivers contextual hints, tracks movement via a step counter, and drops collectible health tips and cultural artefact cards at key waypoints.
  • Scope & risk control — made daily cut/keep decisions to keep the build shippable within 11 days, prioritising core loop fidelity over feature breadth.

In-Game Screenshots
Museum Room 1 — Pharaonic Wing Museum Room 2 — Islamic Wing
Museum Room 7 — Modern Wing
TriviaComponent.cpp — EvaluateAnswer()
void UTriviaComponent::EvaluateAnswer(int32 SelectedIndex)
{
    const FTriviaQuestion& Q = Questions[CurrentIndex];

    if (SelectedIndex == Q.CorrectIndex)
    {
        CorrectStreak++;
        Score += BasePts * GetDifficultyMultiplier();

        if (CorrectStreak >= 3)
            RaiseDifficulty();
    }
    else
    {
        CorrectStreak = 0;
        LowerDifficulty();
        SpawnHintCollectible(Q.HintActorClass);
    }

    AdvanceQuestion();
}

float UTriviaComponent::GetDifficultyMultiplier() const
{
    // Easy=1.0, Medium=1.5, Hard=2.0
    return 1.0f + (static_cast<float>(DifficultyLevel) * 0.5f);
}
PuzzleManager.cpp — OnPuzzleSolved()
void APuzzleManager::OnPuzzleSolved(UPuzzleBase* Puzzle)
{
    SolvedCount++;
    PlayCompletionFX(Puzzle->GetActorLocation());

    if (SolvedCount >= RequiredToUnlock)
    {
        // All puzzles in this era cleared — unlock the exhibit door
        BroadcastRoomCleared(CurrentEra);
        TransitionToNextEra();
    }
    else
    {
        int32 Remaining = RequiredToUnlock - SolvedCount;
        UpdateHUD_PuzzlesLeft(Remaining);
    }
}
PhishingPuzzle.cpp — ClassifyMessage()
EPhishingResult UPhishingPuzzle::ClassifyMessage(
    const FPhishingEntry& Entry, bool bPlayerSaidPhishing)
{
    const bool bCorrect = (Entry.bIsPhishing == bPlayerSaidPhishing);

    if (bCorrect)
    {
        Score += Entry.PointValue;
        ShowFeedback(Entry.EducationTip, /*bPositive=*/true);
        return EPhishingResult::Correct;
    }

    ShowFeedback(Entry.EducationTip, /*bPositive=*/false);
    return EPhishingResult::Wrong;
}
Competition DIGITOPIA 2025 Organiser Ministry of Communications & IT, Egypt Result 🥈 2nd Place / 25,000+ Applicants Build Time 11 Days (+ 2 Days Polish) Engine Unreal Engine 5 Language C++ Category Serious Game · Educational Showcased At ITI · Egypt Game Jam (EGJ) Team Khaled Zakaria, Sarah Alaa, Nesma Mahmoud, Nada Mahmoud, Mohamed Arafa, Maria Magdi
Connect