2 pontos por GN⁺ 2024-09-09 | 1 comentários | Compartilhar no WhatsApp
  • O que é coreCore

    • coreCore é uma forma experimental de criar videogames no formato de uma ferramenta e engine de criação de jogos Action-RPG, com editor de propriedades
    • Usa um sistema simples de componentes, e os componentes são vetores Clojure no formato [keyword value]
    • As várias entidades são compostas por mapas Clojure
    • Os efeitos colaterais dentro do jogo são tratados como componentes como [:tx/foo param], em uma estrutura semelhante à do Datomic
    • Todo o estado do jogo é armazenado em um único atom chamado app/state, e as entidades também existem como atoms dentro do atom principal
    • Todo o conteúdo da aplicação é armazenado em resources/properties.edn, validado com malli-schemas e pode ser editado por GUI
  • Capturas de tela

  • Como começar o desenvolvimento

    • Digite o seguinte comando:
      • lein dev
    • A aplicação será iniciada e também fará o seguinte:
      • Inicia o servidor NREPL
      • Ao encerrar a aplicação (ESC no menu principal), clojure.tools.namespace recarrega os arquivos alterados e reinicia o app
      • Se ocorrer um erro, basta corrigir o erro e chamar dev-loop/restart! sem precisar reiniciar a JVM
      • No VIM, é possível usar vinculando o comando a seguir à tecla F5: nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
  • Licença do código

    • Fornecido sob a licença MIT
  • Licença dos assets

Resumo do GN⁺

  • coreCore é uma ferramenta para criar jogos Action-RPG com facilidade, usando um sistema simples de componentes para gerenciar o estado do jogo
  • Todo o estado do jogo é armazenado em um único atom, e as propriedades podem ser editadas por GUI, o que é útil para desenvolvedores
  • É fornecido sob a licença MIT, mas os assets usados são proprietários
  • Ferramentas com funcionalidades semelhantes incluem RPG Maker e Unity

1 comentários

 
GN⁺ 2024-09-09
Comentários no Hacker News
  • É interessante ver diferentes abordagens de desenvolvimento de jogos

    • Bevy (motor ECS em Rust): no começo parece bom, mas tem muitos problemas de implementação e pode ficar complexo
    • Unity: o sistema de objetos de jogo e componentes modulares é prático
    • Godot: a hierarquia OOP e a linguagem embutida pareceram insatisfatórias
    • Pygame: é adequado para projetos pequenos e é procedural, mas permite criar camadas OOP ou funcionais
    • Clojure: a implementação funcional é interessante
  • Este projeto no GitHub parece ridículo para desenvolvedores de jogos

    • A abordagem acadêmica parece exagerada
    • As capturas de tela são feias
  • Afirma que pode simplificar o desenvolvimento de jogos, mas usa muita terminologia

    • vetores de Clojure, Datomics, átomos, transações, schema Malli etc.
  • Este projeto parece ter fracassado

    • Estrutura excessivamente planejada e falta de uma organização clara
    • O código foi escrito sem uma direção clara por não haver uma história de jogo
  • Este repositório, quase sem documentação, gerou muita conversa

    • O código parece mais um projeto do que um motor de jogo
    • O editor de propriedades é interessante
    • Parece ter recebido upvotes por causa do título
  • Já vi muitos casos em que a ideia de "quero fazer um jogo" acaba virando a criação de um motor de jogo

    • A pessoa cai na ideia de que, se escrever primeiro o código do motor, o resto do processo de criação do jogo ficará mais fácil
    • Criar um motor pode ser mais divertido do que fazer um jogo
    • Otimizar o motor pode dar recompensas mais rápidas
    • Tentaram usar o motor Phaser js para colocar algo interativo na tela rapidamente
  • Gosto de Clojure, mas fico em dúvida se uma linguagem funcional com estruturas de dados imutáveis é adequada para desenvolvimento de jogos

  • O estado do jogo é armazenado em um único átomo, e as entidades dentro dele são armazenadas novamente como átomos

    • Fico em dúvida se esse uso de "átomo" é comum em Clojure
  • Seria interessante analisar dados sobre "tempo/complexidade gastos no motor de jogo" vs. "complexidade/interesse do jogo produzido"

    • A expectativa é que a variedade de jogos feitos com sistemas simples de template/motor diminua
  • Já existe um Core, plataforma comercial para criação de jogos movida pela Unreal Engine 4