the sartrean knight

publicado

Categories iOS
Stack SwiftUI, Combine

visão geral

The Sartrean Knight é uma curta história interativa que mistura fantasia medieval com filosofia existencialista. Inspirado na escrita de Sartre sobre liberdade radical e má-fé, o jogo pergunta se alguma escolha é de fato livre — e deixa o cavaleiro responder por si.

Você joga como um cavaleiro cansado diante de um guardião misterioso. Através de diálogos e memórias, você determinará seu próprio caminho e conclusão, com múltiplos finais únicos e suporte completo para português e inglês.

Eu desenvolvi o The Sartrean Knight em uma semana, durante a fase inicial da minha experiência na Apple Developer Academy. O projeto foi uma oportunidade de explorar narrativa interativa e design de escolhas significativas.

Pude aprender bastante sobre o uso de JSON para construir a estrutura narrativa de um jogo, além de aprimorar minhas habilidades em SwiftUI e Combine. Foi também uma forma rudimentar de implementar a localização para um aplicativo, que abriu caminho para aprender posteriormente sobre o uso de catálogos de strings.

trechos de código

Para garantir transições instantâneas entre as cenas, mapeio o JSON da história em um dicionário logo no início. Isso troca buscas lineares lentas por lookups O(1), mantendo o jogo fluido mesmo com um roteiro longo.

private func loadStory() {
    guard let url = Bundle.main.url(forResource: "story", withExtension: "json"),
          let data = try? Data(contentsOf: url) else { return }
    do {
        let decoded = try JSONDecoder().decode(StoryData.self, from: data)
        for page in decoded.screens {
            pages[page.id] = page
        }
        orderedPages = decoded.screens
        currentPageID = decoded.screens.first?.id
    } catch {
        print("Failed to decode story.json: \(error)")
    }
}

escolhas de design

cores

névoa #F1F1F1
tinta #000000
papel #FFFFFF

tipografia

MedievalSharp / antiguidade e autenticidade
Zebras jogam xadrez com o velho faquir
Jacquard 24 / toque decorativo gótico
Zebras jogam xadrez com o velho faquir

fundamentação

O design do The Sartrean Knight foi inspirado na estética dos manuscritos medievais, refletindo o tema filosófico e histórico da narrativa. MedievalSharp e Jacquard 24 lembram letras de manuscrito — combinadas com texturas de papel antigo e uma paleta discreta, fazem o jogo parecer lido num livro, não jogado numa tela.

A cada etapa da narrativa, incluí uma imagem para oferecer contexto visual e aprofundar a imersão no cenário medieval. Cada imagem foi escolhida pelo peso emocional da sua cena, não só pelo cenário visual. A moldura das imagens lembra ilustrações de livros antigos. Embora as imagens não sigam um estilo único, elas têm uma tendência gótica que captura os personagens e o cenário.

créditos

pessoas

design · desenvolvimento
pedro wiezel

fontes

MedievalSharp
Wojciech Kalinowski
Jacquard 24
Sarah Cadigan-Fried

recursos

texturas
@joou e @samueladekunle (Comunidade Figma)
backgrounds