プログラム初心者がCocos2d xで ゲームを作った話

25
プログラム初心者が cocos2d-xで ゲームを作った話 音屋から始めるプログラミング

Transcript of プログラム初心者がCocos2d xで ゲームを作った話

Page 1: プログラム初心者がCocos2d xで ゲームを作った話

プログラム初心者がcocos2d-xでゲームを作った話

音屋から始めるプログラミング

Page 2: プログラム初心者がCocos2d xで ゲームを作った話

Tetu(@Tetu_fs)

職業:フリーのコンポーザで専門学校非常勤講師

札幌ゲーム制作者コミュニティKawaz所属

プログラム歴はまだ5か月くらい。

曲や効果音作ったり、落書きしたり3D静止画つくったりします。

現在はUnityとC#も勉強中…

Page 3: プログラム初心者がCocos2d xで ゲームを作った話

作品紹介

ゲームは主にKawaz作品多数

オクスクロニクル:https://itunes.apple.com/jp/app/voxchronicle-okusukuronikuru/id631105533

サウンド・サウンドディレクション

みるみら:http://tetu-fs.sakura.ne.jp/mirumirror/

サウンド・ディレクション

音楽活動についての詳細はこちら

http://tetu-fs.sakura.ne.jp/

Page 4: プログラム初心者がCocos2d xで ゲームを作った話

実際の製作物紹介

Page 5: プログラム初心者がCocos2d xで ゲームを作った話

数あて・オセロゲーム

数あて(コンソール)

● 初めて作ったゲーム● 半角数字以外の対応が大変だった

オセロ(コンソール)

● 2つ目に作ったゲーム

● ひどい挙動のCPUがいる

Page 6: プログラム初心者がCocos2d xで ゲームを作った話

せんめつ!ゲロ~かんたい!

ごり押しディフェンスシューティング

http://www.kawaz.org/products/senmetsu_kantai

● 10体倒すと敵の出現数が段階的に増加

● 緑の大きい敵を倒すと100点

● 黄色のちいさいレア敵が500点かつ得点5倍

● そのかわり、出現率は2%と低い

● 終盤は出現回数が増えるので結構出る

グラフィック、サウンドもすべて自作。

初めて でつくった作品

Page 7: プログラム初心者がCocos2d xで ゲームを作った話

みるみらミニ

ミラーアクションパズル「みるみら」のセルフディメイク( )

http://www.freem.ne.jp/win/game/10482

製作期間 か月半

反射ブロックを「反射」して移動

それを足場にしてゴールする

反射=座標を反転

反射はプレイヤーを軸に

基本デザインは原作を踏襲

ドット絵が描きたかった

Page 8: プログラム初心者がCocos2d xで ゲームを作った話

興味ある方は

ソース上がってるので覗いてみてください

シューティング

みるみらミニ

Page 9: プログラム初心者がCocos2d xで ゲームを作った話

プログラムを書いてみて

Page 10: プログラム初心者がCocos2d xで ゲームを作った話

勉強中に思った事

プログラムは必然的に文字列が大量に並ぶことになるので、

説明やソースコードを読み飛ばしてしまう自分との戦い

コピペではなく実際に自分で書いてみないと、身につかないし覚えることもできない

教わったコードや調べて出てきたサンプルコードを改変して動かしても

中身が理解できていないので、直したいときにまったく修正ができない

Page 11: プログラム初心者がCocos2d xで ゲームを作った話

勉強中に思った事

プログラムの知識だけではプログラムは書けず、

それをどう使って仕組みを作るかを考えられるのが重要

人に聞ける、調べたら答えがそのまま出てくる、というのはありがたい反面

それらで対処できなくなった時に解決できず、結果的に人をダメにする可能性がある

ある程度、自己解決力を高めていくことも重要

Page 12: プログラム初心者がCocos2d xで ゲームを作った話

印象に残ったつまづき ~オセロ編~

主に探索が 今でも改めてちゃんと書ける自信はないです

他の思い出深い物は

端や角のコマが取れる

他の環境で盤面が無限ループで生成される

まだ置けるのにゲームが突如終了する

左上から探索し一番最初におけるところに置く

などなど

バグについては大体盤面の外を探索していたために起きていた。

Page 13: プログラム初心者がCocos2d xで ゲームを作った話

印象に残ったつまづき ~シューティング編~

初めての の使い方、ゲームの仕組み、弾の発射、消滅の処理など

ポインタが当時は全く理解できず、弾の実体を配列に突っ込んでいたり、

プレイヤーではなくステージが弾を持っている等、ゲームの仕組みを全く考えられず

製作期間 か月のうち 週間ほどが弾の処理でつぶれた

勉強になったポイント

は便利だけど簡単ではない

こだわりだすと便利機能を使わず泥臭いコードを書くほうが逆に楽

Page 14: プログラム初心者がCocos2d xで ゲームを作った話

印象に残ったつまづき ~みるみらミニ編~

ポインタと配列、物理エンジンの良さと良くなさ

ポインタで保持するとゲームが進行しても、

常に現在の値を取得できたり!

ポインタで持たないとその時の情報しか保持できないので、使い分けが重要

ということを初めて理解できた

ポインタ超便利

Page 15: プログラム初心者がCocos2d xで ゲームを作った話

印象に残ったつまづき ~みるみらミニ編~

物理エンジンについて

最高によかったのは重力とジャンプが割と簡単に作れたところ他は正直ピクセル単位の精度が必要な場合はあまりお勧めできない剛体同士の接触判定があまり精密でなく、最大 以上の判定ずれが発生タイルが x のドット絵のゲームなどでは割と致命的たぶんもっと大きい解像度のゲームなら問題にならなさそう横移動で壁にめり込んだりする

みるみらミニにはあまり適しておらず、当たり判定はすべて自分で書き直し

物理エンジンは使えそうな重力とジャンプだけそのまま利用した。

Page 16: プログラム初心者がCocos2d xで ゲームを作った話

について

勉強会なのにまったく触れないのもどうかと思ったのでソフトタッチ

の絵本という本とともに聞いたりググりながら勉強した

多くは 言語に触れたことがある前提で書かれていることが多かった

とか とか便利だけど最初はあまり使わないで明示的に書こう

ファイル書き出しや読み込みなどちょっと発展しようとすると難易度が跳ね上がった

必要知識量や考えることの多さにプログラマーってすげー!ってなった

オブジェクト指向はたい焼きで覚える らしい

お世話になってる のプログラマーの皆様に感謝

Page 17: プログラム初心者がCocos2d xで ゲームを作った話

の光と闇 だけ ?

Page 18: プログラム初心者がCocos2d xで ゲームを作った話

そもそも って?

公式:

日本:

オープンソースなマルチプラットフォーム対応のゲームエンジン 最新版は

商業での利用実績もいっぱい!

無料で使える!すごそう!

使った理由

サンプルゲームのサウンド提供という形でかかわった さんの著書

「 ではじめるスマートフォンゲーム開発」が手元にある!

Page 19: プログラム初心者がCocos2d xで ゲームを作った話

使ってみて(使用バージョン: x )

プログラム初心者にはやさしくない!

コマンドからプロジェクトを作らないといけない(普段 しか使ってないとつらい)

初回ビルドに超時間がかかり、 プロジェクトで くらい持っていかれる

がある程度かけないとほぼ何もできない

マルチプラットフォーム=一つのソースでプラットフォーム向けにビルドできる

の で作ったところで で動く は吐き出せない

だとライブラリからランタイムが 種類要求される

なんと 用のゲームパッド未対応

ゲー向けに使うゲームエンジンじゃなかった ?

Page 20: プログラム初心者がCocos2d xで ゲームを作った話

まとめると

こんな人にはお勧め

がある程度以上かける

日本語の情報があまりなくてもへこたれない

ドキュメントに用例がなくても説明だけ読めばどう使えばいいかわかる

スマートフォン向けに使う予定で 向けゲームでは使わない

初心者目線での感想

色々書いたけどおよそ か月弱、 と でプログラムを勉強した結果

と を触っても割とすんなり入っていけたので、後悔は全くしていない。

は触っておいたほうが良かったかもしれない。

Page 21: プログラム初心者がCocos2d xで ゲームを作った話

まとめ

教えてくれる人がいる環境は超ありがたい

なるべく自己解決するため調べたり試行錯誤する姿勢は大事

プログラムの習得を目標にするよりは○○を作る!という目標のほうが良い

間違いなく英語は読めたほうがいい

実際に手を動かしてみるのが超大事

上手くいかなくて嫌になったらさっと止めた方が長続きする

ちゃんと動くととても楽しい

Page 22: プログラム初心者がCocos2d xで ゲームを作った話

おまけ

Page 23: プログラム初心者がCocos2d xで ゲームを作った話

音量が変えられるだけの エフェクト作ってみた

という のフレームワークを使用

に上がっていたチュートリアルに倣って作成

まだ勉強始めたばかりなので、よくわかっていない

とりあえず で作った物の中で一番新しい作品ということで

音屋感出していきたい

自作したかった

Page 24: プログラム初心者がCocos2d xで ゲームを作った話

プログラム未経験な音屋でもやる気と環境次第でゲームは作れる

Page 25: プログラム初心者がCocos2d xで ゲームを作った話

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