2005-01-01から1年間の記事一覧

カプセル化

http://d.hatena.ne.jp/hogeratta/20051217#1134823538 「座標情報」をカプセル化するかどうかについての話題があったので、 私なりの考えを書いておきます。 個人開発ということを考えると、public変数であって全然問題ないと思います。 というのは、privat…

ゲーム開発のためのオブジェクト指向〜Mediatorによる衝突判定の分離

実は、kenmoが今作っているゲームのソースコードが結構大変なことになっちゃっていたりします。 というのは、ゲームのメインとなるシーンのクラス(SceneMain)に、 たくさんのTask(オブジェクト)がぶら下がっているからです。 …えーと、こんな感じ(´д`…

カットイン加速度算出のソースコード

http://d.hatena.ne.jp/kenmo/20051211のソースコードの例をPythonで。 #!/usr/bin/env python # -*- coding: utf-8 -*- class Vec2D: """ 2次元ベクトル """ def __init__(self, x=0, y=0): """ コンストラクタ """ self.x = x self.y = y def __sub__(sel…

Mediatorを使った衝突判定処理の分離

とりあえず、Pythonのソースコードだけ。 解説は後日にて…。 class Task: """ タスク """ def __init__(self, name, x=0, dx=0): """ コンストラクタ """ self.name = name self.x = x self.dx = dx def update(self): """ 更新 """ self.x += self.dx if(se…

カットインの座標の算出方法

ゲームには、よく使う演出として、 オブジェクトが「ぎゅいーん」とカットインしてきて、 少しずつ減速しながら、ある位置にピタっと止まる演出がよくあります。 今回はそういった動きを実装する方法を解説します。 加速度を算出する方法 方法の1つとして、…

ゲームバランスの調整手法

逆引きゲームプログラミング (GAME DEVELOPER BOOKS)にのっていたのを自分なりにまとめてみました。 代表的なゲームバランスの調整手法 名称 内容 プログラム 例 ランク法 EASY/NORMAL/HARDなど、難易度を段階別にする 易しい 家庭用ゲームならほとんど レベ…

Pythonで字句解析&構文解析

Pythonで字句解析&構文解析に挑戦。 #!/usr/bin/env python # -*- coding: utf-8 -*- import re # テキスト読み込みクラス class LexerReader: def __init__(self, f): self.f = f self.unget = False self.c = '' # 1文字読み込み def read(self): if sel…

基本が大切

前々から気になっていた本を買いました。逆引きゲームプログラミング (GAME DEVELOPER BOOKS)作者: 万里ゆうじ出版社/メーカー: 秀和システム発売日: 2005/10/31メディア: 単行本購入: 4人 クリック: 136回この商品を含むブログ (16件) を見る「これは簡単す…

ゲームシステムと設定

ツクールで面白ゲームを量産している、 ABC男さんの新作ゲーム「徳さんの逆走狂想曲!」(Flash)が公開されてました。 http://www.hp.abc-o.com/top.html ゲームそのものは、 「迫ってくる対向車をタイミング良く避ける」 というよくあるゲームなのですが、…

flexとbisonで電卓を作るのメモ

「自力で字句解析や構文解析作るよりも、flexとbison使ったほうが保守性が高くなるよ」 というアドバイスを受けて、ためしに使ってみました。 環境構築 環境構築として、以下のツールをインストール CYGWIN(入れないとbisonが使えないらしい) http://www.c…

言語解析(書きかけ)

アドベンチャー用のスクリプトを構文解析した結果、 たぶんこんなコードに変換するだろう、という予想のメモ書き。 if文 ○解析前 if(式){ }○解析後 if, ifブロックの終端アドレス, 式(, ... , 終端文字) goto文 ○解析前 goto *ラベル○解析後 goto, ジャン…

言語解析

言語解析の流れ 言語解析は、大まかに以下の流れになります。 字句解析 構文解析 意味解析 コード生成 コード解析実行 字句解析 字句解析は、プログラムやスクリプトを「意味のある最小単位の文字列」に分解することです。 この最小単位をトークンといいます…

エスプガルーダ2をやってみた

kenmoの会社は11:00出勤なので、kenmoはゲーセンに行ってから出社するわけですが、 そこでエスプガルーダ2のロケテやってたので、 ちょっとやってみました。 一回やっただけなので、陳腐な感想ですが(´∀`; 気になったのは、 弾幕が虫姫さまっぽい(弾が…

SDL始めました

C++

試しに自作のフレームワークを公開してみる。 まだ全然作りかけですが…(´Д`; なにが凄いかというと(まあ、フレームワークとしては当たり前ですが) CSDLManager::Run()を呼ぶと、勝手にゲームループがぐるぐる回ってくれるので、 ISceneを継承して、各シ…

ゲームにおける乱数

少し前に、 探索をして素材を見つけて薬を調合する、 というゲームをやっていました。 そのゲームをやってて気になったのが、 素材の取得方法が完全に乱数任せ になっていたことでした。 そのため、ある薬を調合したいのに、 元となる素材が全然手に入らず、…

なんとなくメモ

久々の更新のわりに、良くわかんないタイトルでゴメンナサイo(. .)o 今、ちょこちょことアクションゲームなんぞを作っているわけですが、 その過程で気づいたことをメモ書きです。 リソースの多さがゲームの面白さ ゲームを構成する要素は、たいてい次のよう…

主線と影

慣れないドット絵を、絵の上手い友達に見てもらいました。 そうしたら、 「とりあえず、主線と影を付けると見栄えが良くなるよ」 というアドバイスとサンプルを頂いたので、それを元に修正しました。 元の絵はこんな感じです。 原色バリバリです(´∀`; こ…

おばけ

はじめに 今回はドット絵のアニメーションでよく使われる 「おばけ」について説明します。 もともと「おばけ」というのは、 少ない予算・短い納期のTVアニメなどで 「動きのあるアニメーションを少ないコマ数で実現するには?」 という問題を解決するために…

ドット絵アニメーション

ドット絵プロフェッショナルテクニック ドット打ちからアニメーションまで (Game developer books)作者: 高野隼人出版社/メーカー: 秀和システム発売日: 2005/02/24メディア: 単行本購入: 13人 クリック: 191回この商品を含むブログ (31件) を見る他のドット…

ワイヤーアクションリンク

単なるメモ書きです。 ヒットラーの復活や海腹川背のリンクなどを。 がらくた玩具。 - ヒットラーの復活 http://gameplay.jp/~ext/iroiro/ts/h_basic.html http://gameplay.jp/~ext/iroiro/ts/h_item.html http://www8.ocn.ne.jp/~umikawa/umi_faq.html#kawa…

ゲーム業界就職情報リンク

色々と情報を検索してみました。 http://home.att.ne.jp/gold/myr/game_programmer_FAQ.htm ここにある「未採用者が一番簡単に技術を身につけられると思う方法」がいいかも。 たしかに学校じゃ学べない重要な知識ってたくさんあるような気がします。 まぐま…

パックマンのゲーム学入門購入

パックマンのゲーム学入門作者: 岩谷徹出版社/メーカー: エンターブレイン発売日: 2005/09/17メディア: 単行本購入: 7人 クリック: 127回この商品を含むブログ (45件) を見るなかなかいい本です。 岩谷さんは、ヒット作を数多く手がけておられるので、 文章…

曲線

はじめに 今回は曲線の作り方を解説します。 「?…なぜ曲線?」 と思われるかもしれませんが、 曲線を作れるようになると、美しい軌道をする敵を簡単に作れるようになります。 実際、市販のシューティングゲームの開発現場では、 曲線を使って、動きのスクリ…

有限状態機械(Finite State Machine)

はじめに 有限状態機械とは、 「複数の『状態』を持ち、その『状態』により『振る舞い』が決定される抽象的な機械」 のことです。 具体的な例を挙げると、パックマンのモンスターがそれに該当します。 モンスターは、 移動 追跡 逃避 3つの「状態」を持ちま…

効果音自作のススメ2

今回はMIDIを使った効果音の作成方法を解説します。 MIDIでの効果音作成方法は、 音色の選び方 和音を使う ということがポイントとなります。 音色の選び方 効果音として使うことを想定すると、以下の音色は、効果音に不向きです。 アタック感の弱い音(出だ…

Pythonのデバッグ

http://lowlife.jp/nobonobo/zine/5/8.html おおお、素晴しい…。 このおかげで、デバッグ速度が3倍(当社比)アップしました…!

RPGにおけるスクリプト2

この前のスクリプトは、 条件分岐がない ラベルがない ということで、ゲームを作るのに、 使えないスクリプトであることが判明しました…!(´∀`; というのは例えば、 階段を降りますか? Yes→降りる No→降りない ということもできません(´Д`; というこ…

効果音自作のススメ

ゲームを作る際に、効果音を 無料で素材を配布しているところから拾ってきたり、 お金を出して効果音集を買うのもいいのですが、 せっかくゲームを作るのでしたら 効果音は自作した方が、絶対面白いです。 そこでkenmoが独自にあみだした(?)効果音の自作…

対話型AIの作り方

はじめに 今回は、一対一で対話を行うAIの作成方法を解説します。 (参考:恋するプログラム―Rubyでつくる人工無脳) 概要 まず、対話型AIを大きな枠組みで考えてみます。プレイヤーは「言葉」を入力すると、 AIが「言葉」を返してくれるのが、対話型AIの仕…

戦術SLGのゲームバランス

はじめに 今回は、タクティクスオウガのような戦術SLGの、 ゲームバランスについて考えてみます。 基本は「ジャンケン」 こういったゲームにおいて、基本となる考え方は、 ユニット同士の相性に「ジャンケン」のような関係を持たせることです。 例えば、「歩…