情報表現入門 成果物紹介
1年前期の情報表現入門に関する記事です
2024/08/09
1年前期が終わりましたね、お疲れ様でした!
情報表現入門という講義について、少し振り返ってみたいと思います
CSK2 地球再生計画
「リアルタイムのオンライン対戦 + スキル強化 + インフレ」をテーマにゲームを作りました
登壇して発表し、優秀賞をいただきました
マルチプレイ用の公開サーバーに Render の Free プランを使用しています
しばらくアクセスがない場合、サーバーがスピンアウトし、再接続に1分ほどかかります
マルチプレイ能力バトルインフレ系ブロック崩しです
公開サーバーと接続して他のプレイヤーと対戦したり、サーバー機能を無効にして地道にゲームをインフレさせたりできます
/dist/ - プロダクト
/game/
*.pde - ゲームのソースコード
.src/
.fonts/ - フォント
.images/ - ゲーム内で使用した画像
./node-launcher/ - /dist 内にビルドしてある `launcher.exe` のソースコード
./sounds/ - ゲーム内のBGM, SE
config.json - ユーザーデータの保存
skills.csv - スキルの調整、テキストの変更ができます
/node-proxy/ - `launcher.exe` と同じ機能を持つnode.jsサーバー
- Githubリポジトリ の Releases の 最新版 または WebDAV から、をダウンロードし、任意の場所で展開します
CSK2-prod-windows-x64.zip
- 内の
./dist
を起動してくださいlauncher.exe
- サーバーとの接続が開始されます
- 接続に成功すると Processing のゲームをエクスポートした が起動します
game.exe
- パブリックアクセスへの許可が必要と表示された場合は、同意していただける場合は同意してください
(のソースコードを確認したい方はlauncher.exe
をご覧ください)./src/node-launcher/
- node.js / Java は同梱されています
プロキシサーバーの起動には node.js が必要です
ダウンロード: https://nodejs.org/en/download/prebuilt-installer
- 内でコマンドプロンプトを開き、
./node-proxy/
を実行しますnpm install
(お好きなパッケージマネージャーを使用していただいてかまいません) - 内で
./node-proxy/
を実行しますnpm run start
- サーバーが開始され、 と表示されたことを確認してください
ゲームを起動できます!✨️
- を Processing IDE で実行してください
./game.pde
公開サーバーの仕様上、他のプレイヤーがしばらくアクセスしていなかった場合、接続に 1 分程度かかる場合があります
game.pde
NET_isNetworkEnable
true
サーバーに接続できない場合は
NET_isNetworkEnable
false
公開サーバーの詳細情報
ホスト: wss://proc.uiro.dev
利用技術: Render / node.js / pnpm / express / websocket
プロキシ - 公開サーバー間の通信は SSL に対応しています
プロキシサーバーでは、ポート
を利用しています、変更する場合は8081
とgame.pde
の上部にあるポート設定を変更してくださいserver.cjs
- マルチプレイ能力バトルインフレ系ブロック崩しです
- プレイ時間を考慮して、すぐにエンディングに到達できる程度のパラメーターにしています
- 公開サーバーに接続してオンラインでマルチプレイが可能です
- サーバー機能を無効にして1人で遊ぶこともできます
- エネルギーを大量に(1潤以上)集めると地球が再生されます
- スキル一覧はゲーム内、プロパティの設定は で管理されています (ゲームバランスが崩れるため変更しないでください)
./src/skills.csv
- 必要のない計算、再描画が極力減るように意識しています
update(draw)と boot(setup)を分けるなど
※Processing の draw と setup から区別するためにあえて別の名前を使っています - コメントは vscode 拡張機能 で分類されています
Better Comments
グローバル変数/関数は
[プレフィックス]_camelCase
ローカル変数は
_camelCase
プレフィックス
- なし → 全体で共有するロジック
- S* → シーンロジック
- V* → ブロック崩しの依存ロジック
効果音ラボ
かずち | ビーボルト
かずち | Flutter
かずち | 流幻
かずち | 日没廃校
https://www.khaimmusic.com | New Morning
Ucchii0-うっちーぜろ- | たったそれだけの物語
もじワク研究 | 廻想体 ネクスト ユーピー(B)
瀞ノグリッチ黒体
JetBrainsMono
funget
未来大生が使いたいツールを合わせたアプリを作りました
登壇して発表し、最優秀賞をいただきました
ありがとうございます
- インターネットに接続されていない状態で API を呼び出すと、ぬるぽ(NullPointerException)を吐きます
仕様なのでおそらくどうにもできません、気をつけてください - API キーは暗号化されていますが、おそらくがんばれば復号できます。
このアプリ以外で API キーを利用したり、API キーを復号しようとしたりしないでください。 - API のレスポンスはキャッシュ(2 分間)されているので、何度もページを切り替えても、API に制限がかかることはありません
ただし、バスの取得と IP アドレスの判定については、リアルタイム性を優先してキャッシュを保存していません
バックエンドに負荷がかかるので、理由なくリロードを繰り返さないでください
- アプリ名の funget = fun で役立つ + widget(ウィジェット) という意味
winget 風味でもある - コメントは、vscode 拡張機能「Better Comments」に最適化されています
動作できる環境をお持ちの方は、より分かりやすく色付けされたコメントを確認できます - このアプリでは、IP アドレスの organization から接続先を検出し、モードに適用しています
free-wifi がフレッツ光回線であるため、ご家庭のフレッツ光でも未来大モードとして検出されます
フレッツ光をお使いの方は、free-wifi を未来大モードから除外するスイッチを ON にしてください
- Google Apps Script (funbus, fitbit)
- Google Spreadsheet
- Fitbit API
- Open Weather Map API
- ipinfo.io API
- freepik https://www.flaticon.com/authors/freepik
- みんちりえ https://min-chi.material.jp
- ぱくたそ https://www.pakutaso.com
- Google Fonts
- Google Material Symbols
このページの情報は以上です