新刊
同人誌・42ページ・30部頒布・紙/電子・1,000円レトロゲーム風RPGの全コードを掲載して解説した本です。HTML5+JavaScriptで、ライブラリを使わずにゼロから開発しています。サンプルとして『OheyaQuest』という、マップ自動生成タイプのRPGが付属します。
実際に遊べるRPGを試しながら、その中身を確認できる技術書です。シンプルなコードなので理解しやすいです。
サンプルゲーム『OheyaQuest』の紹介もします。広いマップを自由に旅して、街を回ってアイテムや呪文を集めます。最後は城に行き、闇の王を倒すとクリアです。10分ほどで遊べます。
本書を通して、ゲーム開発の勘所をつかんでいただければと思います。
新刊
同人誌・20ページ・30部頒布・紙/電子iモードの新規申し込み受付が2019年に終わった。そのニュースを見た時、胸に込み上げてくるものがあった。
2003年、著者はiモード向けのiアプリに参入して、シミュレーションRPGの開発を始めた。
縦120ドット、横120ドットという狭小の画面。実行ファイル30KB、データ100KBという極小の容量。そうした厳しい条件の中で、初めての商業開発に挑み、ゲームを作っていく。
これは、苦闘と苦難の歴史である。そして、滅び行く携帯電話ゲーム文化の足跡をしるす記録である。
目次
第1章 家庭用ゲーム機、パソコン、携帯電話
第2章 2003年3月
第3章 2003年4月
第4章 2003年5-7月
第5章 2003年8月
第6章 iアプリ開発に奔走した数年間
第7章 iアプリ開発をやめた理由
第8章 iアプリの経験と現在
※ 本書は技術系エッセイ(回顧録)です。
新潮文庫nexより刊行。レトロゲームの移植会社を舞台にした、お仕事&ミステリ小説。著者は、現役プログラマでゲーム開発者。ファミコンの仕様にまで踏み込んだ、ガチの小説になっています。
商業出版物もOKということなので、持ち込む予定です。
- あらすじ -
――過去を愛しちゃ悪いかよ。
レトロゲームの移植を専門におこなう会社「レトロゲームファクトリー」。その社長「灰江田直樹」と、プログラマー「白野高義」の元に、大口の依頼が舞い込んだ。伝説的ファミコンゲーム「UGOコレクション」10本の復活プロジェクトだ。
だが開発者は最後の作品の権利を買い取り、失踪していた。一体何故か。開発者はどこか。横取りを狙う大手企業を抑え、封印ゲームを復活させよ!
本書は、二次元ゲームのワールドマップを自動生成するための本です。
小マップ、中マップ、大マップの3種類のサンプルを元に、ワールドマップを自動生成する方法を、勘所とともに解説していきます。
地形の生成、畳み込みによる町候補地の算出、領地のエリア分け、町間のネットワーク形成、地形を考慮した街道の生成を、コード付きで解説します。
- 目次 -
第1章 マップ自動生成の基礎知識
1-1 ゲームの目的に合わせたマップ生成
1-2 擬似乱数と再現性
1-3 マップの解像度と生成方針
第2章 コードについて
2-1 js/game.core.js
2-2 js/ui.js
2-3 index.html
第3章 解像度「低」のマップ
3-1 比率表による生成
3-2 全体のコード
第4章 解像度「中」のマップ
4-1 全体のコード
4-2 高低差の生成
4-3 比率表による生成
4-4 町の生成
4-5 エリア分け
第5章 解像度「高」のマップ
5-1 全体のコード
5-2 町候補地の生成
5-3 町間の接続の生成
5-4 道路の生成
第6章 おわりに
HTMLレンダリングエンジンのWebkitに、JavaScriptの実行環境node.jsが合体した『Electron』。
『Atom』や『Visual Studio Code』など、多くのソフトウェアで採用されているこの開発環境を利用すれば、HTML5の知識を利用してGUIアプリケーションを作成できます。
サンプルとしてシンプルな「マークダウンエディタ」を作りながら、『Electron』でGUIアプリケーションを作成する勘所を解説していきます。
- 目次 -
第1章 環境構築
1-1 nodistを利用したNode.jsの環境構築
1-2 Electronの環境構築
1-3 はじめの一歩
第2章 Electron特有の知識
2-1 Node.jsとElectronの機能
2-2 メインとレンダラー 2つのプロセス
2-3 IPC - プロセス間通信
2-4 メニューとショートカット
第3章 配布用パッケージの作成
3-1 ファイル構成
3-2 release.js - electron-packagerの利用
3-3 electron_pack - 配布用アプリの作成
3-4 作成される実行ファイルの注意
3-5 開発用の実行
第4章 メイン プロセス側のコード
4-1 ファイル構成
4-2 main.js
4-3 my_modules/browser.js
4-4 my_modules/menu.js
第5章 レンダラー プロセス側のコード
5-1 ファイル構成
5-2 index.html
5-3 js-my/app.main.js
5-4 js-my/app.dAndD.js
5-5 js-my/app.editor.js
5-6 js-my/app.file.js
5-7 js-my/app.fileDlg.js
5-8 js-my/app.localLoader.js
5-9 js-my/app.menu.js
第6章 おわりに
サブタイトルは「JavaScriptのコードで学ぶRTSの処理」。
拙作8bit風RTS『TinyWar high-speed』のアルゴリズムを、コード付きで解説した本です(RTS=リアルタイムストラテジー)。
「マップの自動生成」「ユニットの自動移動」「敵の建物自動配置」の処理を掲載しています。
- 目次 -
第1章 ゲームのルール
1-1 大まかなルール
1-2 必要なアルゴリズム
第2章 データ構造
2-1 マップ
2-2 ユニット
2-3 建物
第3章 マップの生成
3-1 生成の種類
3-2 土地の生成
3-3 街の生成
3-4 エリア分け
第4章 ユニットの移動
4-1 移動の概要
4-2 移動コスト表の作成
4-3 移動経路の作成
第5章 敵の建物配置
5-1 AIの思考方法とパラメータ
5-2 渦巻き状の処理
5-3 各マスの処理
サブタイトルは「JavaScriptのコードで学ぶSRPGの処理」。
拙作SRPG『TinySRPG』で使用されているアルゴリズム部分のコードを、そのまま掲載している本です。
私は、過去のiモード時代に、iアプリとしてSRPGを多く出していました。その頃の知見も交えて、本書を執筆しています。SRPGを作る際の参考にしてください。
- 目次 -
第1章 計算編
第2章 マップ描画編
第3章 マップ操作編
第4章 戦闘編
第5章 思考編
第6章 マップ作成のTIPS
第7章 レベル機能のTIPS
実行してみないと発生しない「実行時エラー」は、プログラムを書いた時点では発見できない、厄介なエラーです。
本書では、100以上の手法で、実行時エラーを起こしていきます。普通にプログラムを書いていたら見ることのできない、様々なエラーメッセージに出会うことができます。
実行時エラーを発生させる1行コードとともに、実際に出力されるエラーメッセージを掲載しています。
- 目次 -
第1章 基本
第2章 eval
第3章 パースやエンコード
第4章 toString
第5章 正規表現
第6章 Object
第7章 DOM操作
第8章 XMLHttpRequest
第9章 Canvas
「CodeIQ」というサイトで、禁止文字つきコードゴルフを1年以上出題して、その解答ノウハウをまとめた本です(コードゴルフ:コードを短く書くゲーム。ショートコーディングとも)。
同問題では、レベルが上がるごとに、「+ - * /」などの演算子、「if」や「eval」などの予約語、「Math」などの組み込みオブジェクトが禁止されていきました。その制約の中で、短いコードを書かなければなりませんでした。
そうした特殊な環境下でのコードの書き方をまとめた本です。
- 目次 -
JavaScript コードゴルフの基本
値を得る
各種演算
文字列処理
その他
おまけコード
2018年1月7日から準備を始めて、2018年2月22日にSteamでゲームをリリースした時の経験をマニュアル的にまとめた本です。
Steamworksへの登録準備から初めて、ストアの公開やアプリの登録、発売前後の広報や販促活動について一通り書いています。
販売したゲームは、8bit風RTS『TinyWar high-speed』になります。
- 目次 -
第1章 はじめに
第2章 Steamworksへの登録
第3章 アプリ登録前の基礎知識
第4章 ストアの作成
第5章 アプリの準備
第6章 リリースまでの広報販促
第7章 リリース後の広報販促
第8章 おわりに
HTMLレンダリングエンジンのWebkitに、JavaScriptの実行環境node.jsが合体した『NW.js』では、Webの技術でローカルアプリを作ることができます。
NW.jsの環境には、色々と癖があり、それをあらかじめ知っておけば、面倒な試行錯誤をしなくても、ゲームを作ることができます。
各種バッチファイルや、リソース読み込みの関数などは、全てソースコード付きです。
- 目次 -
第1章 NW.jsについて
・NW.jsとは
・ドキュメント
・開発環境を作る
第2章 アプリの構成とファイル
・ディレクトリ構成
・package.jsonの作成
・プログラムの実行
第3章 配布用実行ファイル
・exeの仕組み
・exeの作成
第4章 WebとNW.jsの処理の分岐
・環境判定用コード
第5章 カレントディレクトリ
・開発環境と本番環境の違い
・違いを吸収する処理
・パスの解決
第6章 ファイル操作
・テキスト読み込み 同期
・テキスト書き込み 同期
・ファイル削除 同期
・実行 同期
第7章 リソースの読み込みと利用
・全体の構成
・画像
・Webフォント
・サウンド
2011年の春ごろに、Javaで「NyARToolKit」互換のARマーカー認識プログラムを、フルスクラッチで書いた時のレポートです。
入力画像からマーカーを検出して、3D上に配置するまでのアルゴリズムを解説しています。
- 目次 -
● はじめに
AR マーカー
ARToolKit
独自ARマーカー認識プログラム開発の経緯
独自ARマーカー
● アルゴリズムの大枠
はじめに
処理の流れ
用語解説
● プログラムを書く前に
GC対策
オブジェクトの参照
ループの判定内で計算を行わない
キャストを避ける
配列のコピーには、System.arraycopyを使う
その他細かな無駄を省く
● 画像の加工
ガウス・フィルタ
2値化
ラベリング
ラベルの排除
ラベルに付随して記録する値
通常のARマーカーを認識する方法
● パターン認識
ラベルのソート
パターン形成
4×4の行列を符号化
● 空間認識
はじめに
モデル・ビューのX軸、Y軸、Z軸を計算
Z方向の移動量を計算
X、Y方向の移動量を計算
モデル・ビューの行列を生成
● 終わりに
本書で扱うのは、JavaScriptから手軽に扱える形態素解析器『kuromoji.js』です。
私は2016年に『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』で小説家デビューをしました。プログラマということで、小説もプログラマ的なアプローチで書いたり校正したりしています。
そうした、「小説をプログラミングで見る」際に役立つのが「形態素解析」です。「形態素解析器」(形態素解析を行えるツールやライブラ)を使えば、日本語の文章を品詞レベルで分解して、プログラムで詳しく見ていくことができます。
- 目次 -
第1章 序章
1 kuromoji.js について
第2章 環境構築編
1 nodistを利用した開発環境の構築
2 package.jsonの作成
3 index.jsの作成と実行
4 実行用バッチファイルの作成
5 使用モジュール
第3章 プログラム 基礎編
1 基本部分
2 引数の取得
3 パスの初期化
4 ファイルの読み込み
5 形態素解析の実行
第4章 プログラム 応用編
1 形態素解析の結果そのまま
2 区切り位置で分割
3 読み方取得
4 単語集計
5 マルコフ連鎖
第5章 おわりに
『Google Chrome』のユーザーデータは、気付くとすぐに肥大化して、1GBを平気で超えるサイズになります。
本書は『node.js』を使い、『Google Chrome』のユーザーデータを、自動処理でメンテナンスするための知識をまとめたものです。
- 目次 -
第1章 序章
1-1 はじめに
1-2 環境
1-3 ユーザーデータの引っ越し
第2章 環境構築編
2-1 nodistを利用した開発環境の構築
2-2 package.jsonの作成
2-3 index.jsの作成と実行
2-4 実行用バッチファイルの作成
2-5 使用モジュール
2-6 メンテナンスの概要
第3章 プログラム編
3-1 ファイル構成
3-2 mod_report.js
3-3 mod_del.js
3-4 mod_clean.js
3-5 mod_db.js
3-6 index.js
第4章 終章
4-1 メンテナンスの実例
4-2 実行後
4-3 おわりに
自動生成されるワールドを攻略していくローグライクSRPGです。
Electronを使い、JavaScriptとWeb技術で開発しています。Windows向け。
● オープンワールド
主人公はワールドマップを自由に歩き回り、敵に発見されると戦闘が始まります。ワールドマップにちらばる仲間を集めて、全ての街を攻め落とせば、そのワールドはクリアです。
● 自動生成ワールドマップ
ワールドマップは、アルゴリズムで自動生成されます。地形・街・道の配置、敵・仲間のレイアウトなどが、自動で生み出されます。
● 継続成長
主人公は、異世界(異なるワールドマップ)を次々と攻略していきます。その度に、仲間を集め直します。一度でも得た仲間は、次の世界でも経験を残しています。より強い主人公たちを操り、より強大な敵に挑めます。
Windows向け、8bit風のRTS(リアルタイムストラテジー)。1ステージ数分で攻略でき、サクサクと進められます。どんどんクリアして、特殊能力をゲットして、戦いを有利に進めて下さい。
Electronを使い、JavaScriptとWeb技術で開発しています。Windows向け。
以下、特徴です。
・8bit風(ファミコンで使用可能な色だけでドット絵を描いている)
・短時間で1ステージ遊べる、とても展開の速いRTS。
・ステージをクリアすると、使える建物や特殊能力が増える。
・自動でマップが生成されるので、何度でも遊べる。
以下、ルールです。
・生産系建物を生成すると、自動でユニットが作られ、敵の街を攻撃開始する。
・防御系建物を生成すると、自動でユニットを迎撃する。
・歩兵は街を占領可能。全ての街を占領すると、ステージクリア。
大人の社会科見学歴10年を超える著者が、過去に訪れた数々の社会科見学先の体験を執筆しています。工場を中心に、官公庁なども訪問しています。著者は横浜在住のために、訪問先は関東です。
1巻となるこの本では、以下の場所の訪問記を掲載しています。
● アサヒビール 神奈川工場
● サッポロビール 千葉工場
● 警視庁本部
● 富士総合火力演習
● 伊豆大島 高田製油所
● 防衛省 市ケ谷地区
● TEPIA
● 首都圏外郭放水路
● キリンビール 横浜工場
大人の社会科見学歴10年を超える著者が、過去に訪れた数々の社会科見学先の体験を執筆しています。工場を中心に、官公庁なども訪問しています。著者は横浜在住のために、訪問先は関東です。
2巻となるこの本では、以下の場所の訪問記を掲載しています。
● 本所防災館
● サントリー 武蔵野ビール工場
● 日本古武道演舞大会
● 日本銀行
● 全日空(ANA)機体工場
● 陸上自衛隊広報センター
● 自衛隊体育学校
● 造幣局
● 築地市場
大人の社会科見学歴10年を超える著者が、過去に訪れた数々の社会科見学先の体験を執筆しています。工場を中心に、官公庁なども訪問しています。著者は横浜在住のために、訪問先は関東です。
3巻となるこの本では、以下の場所の訪問記を掲載しています。
● 宮内庁参観
● 東京証券取引所
● 横浜市資源循環局 都筑工場
● かなまら祭り
● 東京都港湾局 視察船 新東京丸
● オリエント工業 ショールーム
● 金田油店
● コカ・コーラ 多摩工場
● 国立天文台 三鷹キャンパス
大人の社会科見学歴10年を超える著者が、過去に訪れた数々の社会科見学先の体験を執筆しています。工場を中心に、官公庁なども訪問しています。著者は横浜在住のために、訪問先は関東です。
4巻となるこの本では、以下の場所の訪問記を掲載しています。
● スバル 群馬製作所 矢島工場
● 所沢航空発祥記念館
● 芝浦水再生センター
● 国立国会図書館 地下書庫
● 横浜市 水道局 西谷浄水場
● サイバーダイン
● 森永製菓 鶴見工場
● 読売新聞 東京北工場
● 大田市場