トップ画像
Unityでクソデカリバーシを作った日記なのにリバーシ要素があまりにも薄すぎる なんでやねん

執筆者: 終に鮭

最終更新: 8/22/2021

2021年おもしろ記事:3位

初めてUnityを使いまして、習作としてリバーシを作りました。その名も「大は小を兼ねる クソデカリバーシ」です。
Unityroomで公開しています。https://unityroom.com/games/scalable-reversi

さて、日記形式で開発記録を掘り返していきます。Gitのlogから記憶を呼び起こしているので捏造等あるかもしれません。
Unity未経験のプログラミング経験者目線での進捗なので、「はーこういう進め方もあるのかー」と参考にしてみてください。だからって一番最初にShaderに取り掛かるやついないと思うぞ

1週目

7/31(土)

Affine変換(Wikipedia)を用いて一気に大量のコマを動かすことのできるリバーシを作ろうとUnityを触り始める(テスト前に何やってんだ)
ちなみにこの頃はZ/8Zが体をなさない(乗法逆元を持たない元が存在する→複数のコマの座標を変換したとき同じ座標に移動することがある→409 Conflict)ことをどうしようか悩んでいた

8/1(日)

適当なサイトに書いてあるのをパクってShader Graphでグリッドを作った

8/2(月)

Input#GetKeyDown(KeyCode)とかTransform#positionとかSpriteRenderer#colorとかを使ってカーソルの移動を実装
この時点でキー操作はできるようになってて割とモチベが湧いた

8/3(火)

Prefabの概念を知る
コマをPrefabをInstantiateすることで配置できるようになる

8/4・5(水・木)

開発おやすみ
多分水曜は英語の期末課題を片付けて、木曜は試験がなくなったので部室でシャニマスしてた

8/6(金)

なぜか急にリバーシが完成した はやい ちゃんと1weekじゃん
もしかしたらcommitせずためてただけで木曜も開発してたのかも
あとはスコアをリアルタイムに表示するUIを作成

2週目

8/7(土)

おやすみ

8/8(日)

Cg/HLSL言語を使ってフラグメントシェーダを書く
これによって盤面サイズが可変になった(ということは、Affine変換のアイデアはもう捨てている)
ちなみにShader Graphでも変数使えるのであんまり書く意味なかったみたいですよ

8/9(月)

おやすみ

8/10(火)

ゲームプログラム側を可変サイズに対応させるのとタイトル画面の作成とSingletonパターンを覚えるのとSEの追加
TextMesh Proの存在を知る

8/11(水)

Sliderを動かすとリアルタイムに値が表示されるようにするなど

8/12(木)

TextMesh Proの導入によってGitHubの言語統計が滅茶苦茶になったのでgithub-linguistについて調べて除外する

8/13(金)

グリッド全体のサイズを調節して常にグリッドが正規直交正方形になるように これせんと斜めがめっちゃ見ずらいんですわ
盤面リセットとかも実装
Unityゲーム開発者ギルド(通称UGDG)に入る
ワクチンの副反応で9時に寝る

3週目

8/14(土)

Unityのコルーチンについてなんとなーく知る
あとMaterialPropertyBlockを使うことでMaterialを直接編集しないように

8/15(日)

ちっさいリファクタリング

8/16(月)

おやすみ

8/17(火)

ツイートリンクを実装

8/18(水)

スクリーンショットの保存を実装(WebGL版はJavaScriptのblobを活用するなどしている(ソースコード))
C#の拡張メソッドの作り方を知る

8/19・20・21(木・金・土)

完全乱択のクソザコAIを実装(完成!
ちなみに3日かかったのは変数名を変えたときに1つ残してしまったせいでパス周りの実装がバグってたから

感想

本当は1,2週間で完成させるつもりだったのがだいぶ長引いてしまったけど、色々と身についたので悪くはない
来月のunity1weekに向けて頑張ります

取得に失敗しました

2020年度 入部

Twitter GitHub YouTube