リフスロー コードレビュー リフスローチーム 和泉 真 西村 和晃.

Slides:



Advertisements
Similar presentations
地図の重ね合わせに伴う 位相関係の矛盾訂正手法 萬上 裕 † 阿部光敏* 高倉弘喜 † 上林彌彦 ‡ 京都大学工学研究科 † 京都大学工学部 * 京都大学情報学研究科 ‡
Advertisements

位置情報と私 木村岳文 / 位置情報と私 / はじめに GPS 付き携帯、ハンディ GPS などを使っ て、お手軽に自分が地球上のどこにいる かを調べられるようになってきました。 このデータをつかって何かおもしろいこ とができそうな予感。 具体的にどうしたらおもしろいかはよく.
わんくま同盟 東京勉強会 #26 - LT 大集合 !! 派生開発プロセス XDDP のすすめ 2008/11/15( 土 ) fnya.
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作 第4回 マルチスレッドとネットワーク. 今日の内容 マルチスレッド – ローディングの進捗表示とか – 処理高速化も見込めます ネットワーク通信 – 必然的にマルチスレッドを扱います.
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
プログラマのレベルアップ.
イメージCMを作ろう! 選択情報 課題⑦.
Webアプリケーション開発の 基本的なポイント
東京工科大学 コンピュータサイエンス 亀田弘之
技術トピックス 2014/10.
HSPでのミニゲーム作成 早稲田実業学校PC班 Y氏.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
ブロック運びゲーム.
第6回 Flashによるゲームの作成 04A2029           古賀慎也.
基礎プログラミングおよび演習 第9回
WagbyR6.5 Update 12 PPT版 更新情報
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
RAD Studio 14/09/27 TEffectを使った綺麗なForm
プロジェクト演習Ⅱ インタラクティブゲーム制作
HTTPプロトコルとJSP (1) データベース論 第3回.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
変数のスコープの設計判断能力 を育成するプログラミング教育
情報 第2回:状態遷移 その2.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
プログラミング演習3 第2回 GUIの復習.
2016年度秋期 成果発表会 2016年11月25日 大阪開発センター 技術一部 畑中 龍樹.
Handel-Cを用いた ちょっとレトロ な 「よけゲー」 の設計
2003年度 データベース論 安藤 友晴.
迷宮師 コードレビュー チームカテキン.
C言語を用いたシューティング ゲームの作成
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Microsoft PowerPoint IT講習会 /5 (Wed) テックサポーター  佐藤 諒.
DirectX 勉強会 第4回.
3D散歩ゲーム 08A2043 谷口盛海 種田研究室.
図書館職員のための アプリケーション開発講習会
WPF、MVVMパターン構成.
マルチスレッド処理 マルチプロセス処理について
はぐれたメルでプログラムを 担当した一人の仁藤が 授業開始前の2時間くらいで作成
第10章 これはかなり大変な事項!! ~ポインタ~
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
プログラミング演習3 第2回 GUIの復習.
画像ファイルの形式とデータサイズ.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
お仕事にまったく役にたたない内容のコードレビューやりたいと思います。
ゲーム開発モデルの基礎.
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
データモデリング モデルの基本作法.
プロジェクト演習Ⅱ インタラクティブゲーム制作
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
基礎プログラミング演習 第12回.
TDD ってどんな感じ? FizzBuzz を作ってみる 2010/01/22 biac 1.
超短期トレードで生き残るためのテクニックと考え方
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
手書き文字の自動認識アプリケーション 15K1013 坂本 倖輝
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
某有名落ちものゲーム っぽいものを作ってみる
某有名落ちものゲーム っぽいものを作ってみる
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
第5回 プログラミングⅡ 第5回
Googleマップを活用した 生物調査データベースの構築
モグラたたき.
クラウド・地域人材利用型プログラミング教育実施モデル実証事業 公益財団法人 学習ソフトウェア情報研究センター
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
C言語を用いたゲームの作成 種田研究室 05A2055 松井和幸.
3.1 シューティングゲームの当たり判定 当たったら死亡.
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
Presentation transcript:

リフスロー コードレビュー リフスローチーム 和泉 真 西村 和晃

お題目 計画的なお話 技術的なお話 改めてプロトタイプについて リフスローでどうなったのか 気をつけるべきこと リフスローの良かった点の解説 リフスローの悪かった点の解説

担当:和泉真 前半  ~計画的なお話~

改めてプロトタイプについて ゲームの動きを見るためのもの プロトタイプ ≠ メイン 使い捨て

リフスローでどうなったのか ゲームの動きを見るためのもの プロトタイプ ≠ メイン 再利用するかの判断、実際に移動 成功 移行時期で大失敗 プロトタイプ ≠ メイン 移行時期で大失敗 再利用するかの判断、実際に移動 同上の理由で大失敗

気をつけるべきこと プロトタイプであるという意識 メインへの移行計画を具体的に そのクラスは他で利用できるのか? チーム内での仕様を徹底して把握 ちなみに メインで利用しないプログラムでも、 取っておいた方が良いです

担当:西村和晃 後半  ~技術的なお話~

ここからの流れ 良かった点 入力判定の統一化 データベースの使用 ステージエディタの作成 悪かった点 時間配分 ベース関数説明・リファレンス

リフスローPGの大まかな流れ 初期化処理 ・入力デバイスから入力を受け取る ・モデルや画像を動かす ・データベースの内容を更新する ・ステージ処理からの要望で、新しいステージを作る ・ステージ処理からの要望で、ゲームを終了する ・モデルや画像を動かす ・モデルや画像を描画する ・音を鳴らす ・新しいステージを作るようベース処理に要望する ・ゲームを終了するようベース処理に要望する ベース処理 ステージ処理 終了処理

入力判定の統一化 リフスローの入力仕様 これらをどう処理するか? キーボード・ゲームパッド両方に対応 キーコンフィグに対応 結局実装できなかったけど… これらをどう処理するか? (キーコンフィグ設定をこれからの入力判定に反映させる); if(キーボード判定||ゲームパッド判定){ … }

入力判定の統一化 リフスローでは 入力処理を受け取るための専用クラスを 設計(CInputクラス) キーボードからの入力を受け取って保存 ゲームパッドからの入力を受け取って保存 キーコンフィグの設定を受け取って保存 テーブル処理で、必要な時に設定を参照 1フレーム前の入力情報も保存 「今押したか」「前から押されてるか」の判定が可能

入力判定の統一化 そしてどうなった if文一つで完全な入力判定が可能に 入力デバイスによって判定回数を増やす 必要がない! キーコンフィグはどんな設定になっているか? キーボードはどのキーの入力を調べるか? ゲームパッドはどのボタンの(ry キーボードの方ではキーは押されているか? ゲームパッドの方ではボタンは(ry 今押した?前から押されている? 入力デバイスによって判定回数を増やす 必要がない!

入力判定の統一化 こんな感じ BTN1が今押された BTN2が押されてる Bボタンが押されてる ゲームパッド 入力クラス メイン処理 押されたよ! Zキーが今押された キーボード キーコンフィグ Type Key Pad BTN1 Z A BTN2 X B UP ↑ RIGHT →

入力判定の統一化 入力判定はゲームの根幹 入力の仕様はとても重要です 入力が受け取れないゲームなんて無い まともな操作もできないゲームは論外 つまり・・・ 入力の仕様はとても重要です できれば最初に実装しておきたい箇所 必要であればキーコンフィグも実装 あとで仕様変更の無いように! ※ここの内容は、キーコンフィグ以外FKUTにも実装されています

データベースの使用 1つのモデルには複数の変数が必要 ゲーム全体で反映される値もある 管理がめんどくさい! fk_Shape fk_Model fk_Material CMotionCharactor ゲーム全体で反映される値もある 音量設定 管理がめんどくさい!

データベースの使用 リフスローでは 「データベース」(以下DB)を作成 用途に応じた複数のDBが存在する modelDB(モデルを扱う) graphDB(2D画像を扱う) effectDB(エフェクトを扱う) soundDB(BGMやSEを扱う) configDB(各種設定を扱う) systemDB(システム系操作を扱う) rankingDB(ランキングデータを扱う)

データベースの使用 modelDB 大半のモデルはmodelDBに登録 モデルをいじる時は モデルの後片付けも全部お任せ! 用意された関数を使う モデルのポインタをもらう ホントはよくないけど… モデルの後片付けも全部お任せ! DBの中ではこいつが一番活躍しました

データベースの使用 graphDB effectDB 2D画像の処理に特化したDB エフェクト(3D画像)処理に特化したDB まあfkut_SpriteModelがあれば十分だけどね… effectDB エフェクト(3D画像)処理に特化したDB カメラ「こっち向いて~」 関数1つでカメラの方へ!面倒な計算不要!

データベースの使用 soundDB configDB BGMとSEを扱うDB 音量を一律で変更 オプションで設定した内容を持つDB 音量設定 フルスクリーン設定

データベースの使用 systemDB rankingDB 細かな処理を担当するDB ランキングデータを持つDB フェードアウト・フェードイン カメラモデルのポインタを渡す fk_Sceneのポインタを渡す rankingDB ランキングデータを持つDB 実装には至りませんでした

データベースの使用 変数の管理はしっかりと! むやみな変数の宣言は混乱のもと ややこしい変数や関数は全部クラス化 変数を管理する専門の人を作るのも良い

ステージエディタの作成 ステージを作るには コードに数値をガチ打ち とりあえず txt or csv ステージエディタ やめてください まあ多少は楽だけど… ステージエディタ こっちの方が楽だよね

ステージエディタの作成 リフスローでは フィールドを3次元のマス目で表現 ブロックが存在するマス目を保存 読み込み時マス目から実際の座標へ変換 7 6 5 4 3 2 1

ステージエディタの作成 管理しやすい保存ルールを! 特に大量のステージを作る時に有効 1行目にはエディタのver.を 2行目にはプレイヤーの初期座標を 3行目以降にはブロックの座標を 特に大量のステージを作る時に有効 プレイヤーにステージを創作してもらう 時は必須

悪かった点 時間配分 ベースを作るのが遅かった ベースは早めに作ろう! 一通り作り終えたのが7月中旬ごろ しかもバグが多発 プロトタイプから移行する時の障害の一因に ベースは早めに作ろう! ベースを作る人のペースがその後の作業全体に影響します

悪かった点 ベース関数説明・リファレンス 何もかも説明不足だった 他人のコード程分かりにくいものは無い 「この関数はどうやって使うの?」が数百回 用意した関数が活躍できなかった 他人のコード程分かりにくいものは無い 詳細な説明が必要です コメントだけでなく、実際に使っているサンプルプログラムなどがあるとすごく良い

最後に プログラムの腕はほぼ経験で決まる 泣いても笑っても、ゴールは来年9月 どれだけゲームを作ったか? どんなゲームを作ったか? どんなライブラリを使ったか? どんな人たちと一緒に作ったか? 失敗も成功も全てが経験! 泣いても笑っても、ゴールは来年9月 悔いの無いゲーム制作を!

ご清聴 ありがとうございました