ぱいもん

https://github.com/K-Kizuku/omikuji-hackathon-2025

Next.js

Go

AWS

DynamoDB

GraphQL

Python Monster縮めて「ぱいもん」を育成するゲーム

Kizuku

いっせい

やまと

推しアイデア

「ぱいもん」を育てるとレベルが上がります。 レベルは2.9.0や3.10.0のようにPythonのバージョンに紐付いています レベルが上がるごとに「ぱいもん」は新しいスキルを覚えますが、スキルには使用可能バージョンがあり.......あとは察しの通りです

作った背景

今年はヘビ年、すなわちPython年なのでPythonを育てる育成ゲームという新年に相応しいプロダクトを作りました

推し技術

CQRS + ES GraphQL

プロジェクト詳細

取り扱い説明書

ストーリー概要

Python Monster、縮めて「ぱいもん」 この星の、不思議な不思議な生き物、VimにEmacsにVS Codeに、その種類は、100、200、300、いや、それ以上かもしれない。 君だけの「ぱいもん」を育て「ぱいもんマスター」を目指せ!!

ゲーム概要

このゲームは「ぱいもん」を育成し「ぱいもんマスター」を目指すゲームです。 「ぱいもん」はあなたのgithubのリポジトリから誕生し、Pythonのコードを書くたびに成長していきます。 たくさんPythonを書いて君だけの「ぱいもん」を育て上げましょう!

遊び方

経験値

ログインボーナス

「ぱいもん」に紐づけられたリポジトリでPythonを書くとその差分を検出し1日1回ログインボーナスとして経験値がもらえます

トレーニング

1日3回「ぱいもん」をトレーニングすることもできます トレーニングをすると経験値がもらえます

レベル

レベルアップ

決められた経験値を集めると「ぱいもん」はレベルアップします。 レベルの上がり方はPythonのバージョンのバージョンの上がり方と同じです 1.0.0から頑張ってレベルを上げていきましょう!

スキル

レベルアップするとランダムでスキルを覚えることができます スキルには最小使用可能レベルと最大使用可能レベルがあります。 スキルには後方互換性がないものが数多くあります。 スキルを覚えてもレベルが足りず使えなかったり、レベルが高すぎて使えなくなるものもあるので注意しましょう! スキルは最大4つまで覚えることができます(ポケモン方式)

ステータスポイント(SP)

1つレベルが上がると5SPもらえます。 「ぱいもん」にはHP、攻撃、防御、スピードの4つのパラメータがあり、SPを割り振ると各ステータスが上昇します。(ドラクエ方式) 育成したい「ぱいもん」の型に合わせてSPを割り振りましょう

技術構成

技術構成図

image

サーバーサイド

サーバーサイドは CQRS + ES の構成です。 DBはEventStoreはDynamoDB、ReadModelはTiDBを採用しています。 使用言語はCommandもQueryもGoで、認証はFirebase Authenticationを用いています DynamoDBからTiDBへの同期はDynamoDB Streamsを用いて変更を検出しlambdaで処理してTiDBに反映させています クライアントとのinterfaceはGraphQLを採用しています

クライアントサイド

クライアントサイドはWebで Next.jsを用いた構成です。

イベントストーミング

Figjamを用いてイベントストーミングを行いイベントスキーマの設計を行いました Figjam イベントストーミング

Kizuku

@Kizuku