diff --git a/book/SUMMARY.md b/book/SUMMARY.md index 107e10e..7edd6e1 100644 --- a/book/SUMMARY.md +++ b/book/SUMMARY.md @@ -95,5 +95,6 @@ * [毎日プレイ](project/03_ep.md) * [自由と不自由](project/04_ep.md) * [ロードマップ](project/05_ep.md) + * [個人開発の真髄](project/06_ep.md) * [youtube](project/01_youtube.md) * [end](end/README.md) diff --git a/book/gasp/13_chatgpt.md b/book/gasp/13_chatgpt.md index 242ee42..ae0fb91 100644 --- a/book/gasp/13_chatgpt.md +++ b/book/gasp/13_chatgpt.md @@ -47,7 +47,7 @@ chatgptやelevenlabsは使用制限、あるいは課金が必要になります したがって、このような仕組みは本番のゲームに実装すべきか難しいところです。 -メリットとしては会話がプレイヤーごとに変わってくること。開発者がテキストを用意しなくても良いところが挙げられます。デメリットしては制御できないところです。 +メリットとしては会話がプレイヤーごとに変わってくること。開発者がテキストを用意しなくても良いところが挙げられます。デメリットは制御できないところです。 これをlocalで動かすllmを使用することで多少の危険は避けられます。 diff --git a/book/gasp/README.md b/book/gasp/README.md index b1a4775..6d69654 100644 --- a/book/gasp/README.md +++ b/book/gasp/README.md @@ -29,8 +29,6 @@ 特にボタンが重要です。tipsを確認しましょう。 -- https://www.youtube.com/watch?v=IqHrhcA7Rsk - `/Content/Levels/DefaultLevel`を右クリックして`参照ビューア`を選択してみます。どのファイルを参照しているかわかります。 ## BP diff --git a/book/project/06_ep.md b/book/project/06_ep.md new file mode 100644 index 0000000..e7129fe --- /dev/null +++ b/book/project/06_ep.md @@ -0,0 +1,53 @@ +# 個人開発の真髄 + +個人で開発するゲームの要所、真髄はどこにあるのだろう。 + +その答えが見えた気がしたので、今回はそのことについて。 + +それはアイテムボックスだと思う。 + +といっても、普通のアイテムボックスではない。現実の個人と結びついたアイテムボックスだ。通常のゲームでは、特にソシャゲなんかはこれが普通にできている。 + +でも、個人開発のゲームでそれをやっている人は見たことがない。そもそもアイテムボックスまで実装している人はおそらく非常に少ない。 + +「アクションゲームならアクションゲーム。アクションができるだけ」と振り切っているものが多いように思う。 + +それはそれで個人開発としては正しい。シンプルかつやることが明白で完成させやすいからだ。 + +個人開発で最も重要なのはゲームを完成させること。それだけだ。個人開発において、色々なものを詰め込むべきではない。 + +ただし、アイテムボックスはとても重要だ。ゲームをアイテムボックスそのものにしてもいいくらい重要だ。 + +それ故、これだけはしっかりと簡易なものでもいいので実装すべきだと思う。 + +例えば、マインクラフトの真髄もアイテムボックスにあるのではないか。アイテムボックスとアカウントシステムがマインクラフトだと思う。 + +実は前にアイテムボックスを実装したことがある。カードボックスをそのまま表示するだけのものだったが、とても面倒だった。今はもうない。プロジェクトは何度か壊れ、作り直しているうちに、いつの間にか、アイテムボックスを再び実装する気力が消えていて、アイテムボックスの存在を忘れていた。 + +アイテムボックスがあって、ゲームで獲得したものやsnsで獲得したものがそこにあるだけで、それはプレイヤーにとってかけがえのないものだと思う。 + +もちろん、私自身も「アイテムボックスがあるぞ、感動だ」なんて普段全く思わない。そんなことは気にしたこともない。他のプレイヤーもそうだろう。 + +でも、気づいていないだけで、それはとても大きいものだった。プレイヤーも、開発者さえも、普段あまり意識していない部分だと思う。 + +だからそこ個人開発でアイテムボックスまで実装している人は少ない。そして、実装してでさえ「ほんとにこんなもんいるのかね。このゲームの真髄はアクションであり冒険だ。キャラの動きを見てほしい」とそんな事を考えてしまう。私もどちらかというとそうだった。 + +開発者はプレイヤーが本当に望んでいるものを実装せず、いらないものばかり実装しがちで、プレイヤーも自分が本当に望んでいることに気づかない。要望に送るのはゲームを面白くする案ではなく、現ゲームへの不満になってしまう。それを解消したとしても大してゲームは変わらない。そういうものだ。 + +だけど、本当に大切なのは、そんな難しいことではなく、もっと根本的で基本的なことに隠れているのではないのかな。そう思う。 + +とりあえず、ゲームの方向性が見えてきた気がする。 + +アイテムボックスだ。 + +しかし、ただのアイテムボックスではない。アイテムボックスは確かにただのアイテムボックスなのだが...。しかし、アイテムボックスを実装することで、演出が可能になる。 + +そして、この演出こそ、本作ゲームの真髄だ。 + +例えば、自分が獲得したアイテムが部屋に飾られていたら、嬉しいと思う。snsで獲得したアイテムが自身が装備する剣に反映され、マテリアルとステータスが変化したら面白い。そういった部分、そういったことをアイテムボックスのシステムを作ると実装できる。 + +そして、これは、誰がやっても同じではなく、プレイヤーの固有性、唯一性が現れなければならない。 + +このことも難しく考えていたが、実は簡単な方法で実装できる。数字を使うのだ。例えば、どこかにいってカードを獲得したとしよう。そのカードにはランダムの数字がついている。部屋のテーブルに置かれるとき、その数字も描写される。 + +同じカードを獲得した人は多いかもしれない。しかし、同じ数字まで獲得した人は少ないはずだ。それが一致する時、これは自分の部屋だと認識できる。こういった演出こそ、本作ゲームの真髄にしていこう。そう思った。 diff --git a/book/pwsh/05_aibot.md b/book/pwsh/05_aibot.md index 593307c..722b3f8 100644 --- a/book/pwsh/05_aibot.md +++ b/book/pwsh/05_aibot.md @@ -11,57 +11,4 @@ |os|ai/os| |ai|ai/ai| -ゲームはatprotoのアカウントを使用するので、testでは[ai.syu.is](https://web.syu.is/profile/ai.syu.is)などを使います。 -```sh -$ winget install ollama.ollama -$ ollama server -$ ollama run llama3.2 - -$ winget install --id Python.Python.3.11 -e -$ python --version -$ python -m venv webui -$ cd webui -$ .\Scripts\activate -$ pip install open-webui -$ open-webui serve - -http://localhost:8080 -``` - -## LoRA - -finetuning - -```sh -$ conda create -n finetuning python=3.11 -$ conda activate finetuning -$ pip install mlx-lm #apple silicon -$ ollama run llama3.2 -$ echo "{ \"model\": \"https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct\", \"data\": \"https://github.com/ml-explore/mlx-examples/tree/main/lora/data\" }"|jq . -$ model=meta-llama/Llama-3.2-3B-Instruct -$ data=ml-explore/mlx-examples/lora/data -$ mlx_lm.lora --train --model $model --data $data --batch-size 3 - -$ ls adapters -$ vim Modelfile -FROM llama3.2:3b -ADAPTER ./adapters - -$ ollama create ai -f ./Modelfile -``` - -## unsloth - -```sh -$ pip install unsloth -``` - -```py -from unsloth import FastLanguageModel - -model, tokenizer = FastLanguageModel.from_pretrained( - model_name="Qwen2.5-1.5B", - grpo=True -) -``` diff --git a/book/pwsh/README.md b/book/pwsh/README.md index b605c81..db48337 100644 --- a/book/pwsh/README.md +++ b/book/pwsh/README.md @@ -29,7 +29,7 @@ $ winget install git.git |lazygit|https://github.com/jesseduffield/lazygit|jesseduffield.lazygit| |node|https://github.com/nodejs/node|openjs.nodejs| |nvm|https://github.com/nvm-sh/nvm|coreybutler.nvmforwindows| -|python|https://github.com/python|python.python.3.11| +|python|https://github.com/python|python.python.3.12| |conda|https://github.com/anaconda|anaconda.miniconda3| ## その他