情報表現入門 成果物紹介

1年前期の情報表現入門に関する記事です

2024/08/09

1年前期が終わりましたね、お疲れ様でした!

情報表現入門という講義について、少し振り返ってみたいと思います

 
CSK2 地球再生計画

famisics/Processing-Game

「リアルタイムのオンライン対戦 + スキル強化 + インフレ」をテーマにゲームを作りました

登壇して発表し、優秀賞をいただきました

image

マルチプレイ用の公開サーバーに Render の Free プランを使用しています
しばらくアクセスがない場合、サーバーがスピンアウトし、再接続に1分ほどかかります

マルチプレイ能力バトルインフレ系ブロック崩しです

公開サーバーと接続して他のプレイヤーと対戦したり、サーバー機能を無効にして地道にゲームをインフレさせたりできます

markdown
/dist/ - プロダクト
/game/
  *.pde - ゲームのソースコード
  .src/
    .fonts/ - フォント
    .images/ - ゲーム内で使用した画像
    ./node-launcher/ - /dist 内にビルドしてある `launcher.exe` のソースコード
    ./sounds/ - ゲーム内のBGM, SE
    config.json - ユーザーデータの保存
    skills.csv - スキルの調整、テキストの変更ができます
/node-proxy/ - `launcher.exe` と同じ機能を持つnode.jsサーバー

  1. Githubリポジトリ の Releases の 最新版 または WebDAV から、
    CSK2-prod-windows-x64.zip
    をダウンロードし、任意の場所で展開します
  2. ./dist
    内の
    launcher.exe
    を起動してください
  • サーバーとの接続が開始されます
  • 接続に成功すると Processing のゲームをエクスポートした
    game.exe
    が起動します
  • パブリックアクセスへの許可が必要と表示された場合は、同意していただける場合は同意してください
    (
    launcher.exe
    のソースコードを確認したい方は
    ./src/node-launcher/
    をご覧ください)
  • node.js / Java は同梱されています

プロキシサーバーの起動には node.js が必要です
ダウンロード: https://nodejs.org/en/download/prebuilt-installer

  1. ./node-proxy/
    内でコマンドプロンプトを開き、
    npm install
    を実行します
    (お好きなパッケージマネージャーを使用していただいてかまいません)
  2. ./node-proxy/
    内で
    npm run start
    を実行します
  3. サーバーが開始され、
    ゲームを起動できます!✨️
    と表示されたことを確認してください
  4. ./game.pde
    を Processing IDE で実行してください

公開サーバーの仕様上、他のプレイヤーがしばらくアクセスしていなかった場合、接続に 1 分程度かかる場合があります

game.pde
内の
NET_isNetworkEnable
true
の場合、ゲームの起動前に node サーバーをスタートさせてください

サーバーに接続できない場合は

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

famisics/Processing-App

未来大生が使いたいツールを合わせたアプリを作りました

登壇して発表し、最優秀賞をいただきました
ありがとうございます

image

image

image

  1. インターネットに接続されていない状態で API を呼び出すと、ぬるぽ(NullPointerException)を吐きます
    仕様なのでおそらくどうにもできません、気をつけてください
  2. API キーは暗号化されていますが、おそらくがんばれば復号できます。
    このアプリ以外で API キーを利用したり、API キーを復号しようとしたりしないでください。
  3. API のレスポンスはキャッシュ(2 分間)されているので、何度もページを切り替えても、API に制限がかかることはありません
    ただし、バスの取得と IP アドレスの判定については、リアルタイム性を優先してキャッシュを保存していません
    バックエンドに負荷がかかるので、理由なくリロードを繰り返さないでください

  1. アプリ名の funget = fun で役立つ + widget(ウィジェット) という意味
    winget 風味でもある
  2. コメントは、vscode 拡張機能「Better Comments」に最適化されています
    動作できる環境をお持ちの方は、より分かりやすく色付けされたコメントを確認できます
  3. このアプリでは、IP アドレスの organization から接続先を検出し、モードに適用しています
    free-wifi がフレッツ光回線であるため、ご家庭のフレッツ光でも未来大モードとして検出されます
    フレッツ光をお使いの方は、free-wifi を未来大モードから除外するスイッチを ON にしてください

  • Google Apps Script (funbus, fitbit)
    • Google Spreadsheet
  • Fitbit API
  • Open Weather Map API
  • ipinfo.io API

このページの情報は以上です