Izu@ゲームプログラマが語る
11.9K posts

Izu@ゲームプログラマが語る
@pastel_orbit
某大手ゲーム会社プログラママネージャー 趣味はインディーズゲーム制作 ビジネスパートナーではなく、共同制作でもなく、それぞれが緩く繋がるゲーム制作仲間を募っています。皆それぞれ・だけれども時々皆で技術共有など #水の星と魔女 #リリース予定 https://t.co/MtWs1Ydr3k
都内某所 Katılım Ağustos 2010
1.5K Takip Edilen4.9K Takipçiler
Sabitlenmiş Tweet

更に余談ですが、Windows等で動くNEOGEOエミュレーターが盛んになってきた頃
自分の作った物が勝手にエミュレーションされる事に、恐らく世界中の僕らと同じ様な開発者が胸を痛めていた頃
ある海外の匿名エンジニアからメールが届きました。PULSTAR/BLAZING STARのリードエンジニアが僕である事の証拠に近いものが添付されており、少し怖かったですが、あまり実害の無い物なのでそれは無視しました
(個人情報グダグダ時代です)
論点はそこでは無く
上記、僕の実装したNEOGEO全画面3Dアニメーションがどうしてもエミュレーション出来ないと言うのです
既にROMを抜かれつつ僕も見て見ましたが、ガックガクでまったく再現できていません
NEOGEOというハードウェアの「限界」というと語弊がありますが「特性」を正しく付いた発見的な実装を、おそらく当時世界でも僕くらいしか見つけていなかった実装でしたので、それを再現出来ていなかったんです
そんなにたいした技術ではないのですが、NEOGEOというハードで最高の表現をしたい!という情熱があったからこそ辿り着いた表現であり、その蓄積をトンビの様にさらっていこうとするエミュ技術者が理解出来なかった事は自然で在りましょう
彼等とは何度もやりとりしましたが、ハッカー集団と話す事は無いので、情報はなにも与えませんでした
これも、すこし鼻の高いエピソードですね
日本語

そしてまあBLAZING STARの映像表現といえばこれなのですが、全画面3Dレンダリングアニメーションとでも言いましょうか
これは、PULSTAR時代に実装済みの技術でありましたが、BLAZING STARでは更に機能強化し、デザイナー陣が更に使いこなし昇華しました
NEOGEOというMC68000ベースの、スプライトBGリッチでありながらも、当時コンソールでも購入出来るハードウェアでこのフル3D表現が出来る事は、すこし特別でした
正直、この時代のNEOGEOでは世界一の表現でしょう。クローズドカンファレンスへデモ出展した際にも「なにこれ……どうやってんの???」と会場中から囁かれ鼻高々でした
多分、あの瞬間で言えば、世界一NEOGEOを使いこなしていたのは僕でしょうw
それは冗談ですが、この技術はかなりややこしいので、改めてNOTEにでも書き記します
youtu.be/I5qDNi3m2VM?si…

YouTube
日本語

自己書き換えプログラムによる最適化の話
BLAZING STARとPULSTARをリードエンジニアとして担当致しました
PULSTARはそもそもVIEW POINTからの系譜であり、そちらへもテクニカルアドバイザーとして参戦しておりましたが
晴れて自分の作品としてPULSTARを実装し、BLAZING STARへ昇華していきました
BLAZING STARもとても好評を頂き大変有り難かった
が、NEO GEOという全く同じハードウェアでPULSTARを超える為に、何百もの工夫をしました
当時のゲームプログラム業界は血で血を洗う最適化と表現の群雄跋扈時代
一サイクルでも多く稼ぐ、芸術的な、それこそ思考競技と言える様な切磋琢磨時代でした
そんな中一つ、現代では馴染みのないテクニックを
プログラムコードは通常RAMへ展開されますが、という事は、自分自身を書き換えるプログラムもあり得ます
これはその一つである弾幕を扱うループ処理
言語は勿論MC68000アセンブラ
数十~数百を彩る弾幕を、現代で言えばそれこそECSの様にキャッシュを意識したコーディングが出来れば良いのですが、なにせ当時です
最適化の肝はCPUクロックの削減徹底
for 弾 in 弾幕群
update 弾
こんな言語はありませんが、全員判ってくれますね
これが無駄なんです
あの頃のアセンブラ界隈では、ループ処理すら無駄。無駄無駄無駄
CPUクロックが足り無くて仕方がありません
そこで僕はこんな事を
: 前提
弾 update
弾 update
弾 update
弾 update
↓
以下管理RAMが許すまで同じ処理を書いておく
: フレームの頭
このフレームでは「弾」が100個ある。じゃあ、100個目に「rts(ループを抜ける)」命令を上書きする
: この、手作りの料理みたいなRAMの上で実際にCPUを走らせる
: rtsに書き換えた部分を「弾 update」へ書き戻す
:毎フレームこれを行う
馬鹿馬鹿しいほどのストイックさです
これにより、ループにまつわる「変数iはn以上か?そうでなければループ」という処理すらを省いています
実効値で2倍以上の効率化です
いつの時代も、コーディングにおける最適化は芸術だと思います
なにより、楽しい
Pixel Cherry Ninja@PixelCNinja
I'm coming to the conclusion that Blazing Star is the best horizontal Shmup ever made. Can you name a better one?
日本語


ゲームプログラマも、ドッグフードを食べよう。の話
Claude Codeの開発にClaude Codeを積極的に使っている
そんな記事をよく見かけますね。
実際にどうであれ、至極まっとうな進化でありましょう
ところで久しぶりに思い出したエピソードですが
Windows NTをご存じですか?
「闘うプログラマー」を何十回も読了した方以外には伝わらない話かもしれませんが、「ドッグフードを食べる」と言えばWindowsNTですし、超伝説のプログラマー「デヴィッド・カトラー」氏の、「ドッグフードを食え」は有名なエピソードでありましょう
書籍へのリンク等展開するのは簡単ですが、この神聖な人類最高のプロジェクトをPRに利用したくはありませんので、各自どうぞ是非是非検索して下さいませ
さて
自分の「書いている」コードを、自分の「書いた」コードに品評させるとでも言いましょうか
元ネタは、上記の通り
WindowsNTという、これまでのWindows95系とは根本から異なるOSを、ゼロから興したデヴィッド・カトラー氏の凄まじい功績です
新規のOSをゼロから興しながら、彼はある時、チームへ宣言しました
「今日から、汎用OSの利用は禁ずる。今まで作ってきたこの未完成のWindowsNTの上で、WindowsNTを作れ」
何を言っているのかと思うでしょう。が、これこそが進化の歴史です
ゲームエンジニアにも転用出来る話でありましょう
僕は現役時代、とある格闘ゲームおいて専用スクリプト言語をコンパイラレベルから一人で開発し提供していました
このエンジンの実装と、格闘ゲームとして例えばキャラクターの必殺技仕様実装をどちらも僕が行っておりました
自分で作ったエンジンの上で、テストも、新規実装も量産もする。
自分の作ったスクリプトエンジンとビューアーを育てる為に、使って貰いながら自分も死ぬほど使う
まさにドッグフードですね
自分が食べるのは当たり前ですが、メンバーへ食べさせられるほどの確固たる自信に基づいた設計と、そして実装が、全てのチームを運営します
Claude Codeはまさにこの話で
自分の作った物が、自分を押し上げる
美しい世界線だと感動しています
貴方は、「ドッグフード」食べていますか?
日本語
Izu@ゲームプログラマが語る retweetledi

【速報】
Claude Codeの生みの親Boris Chernyが
社内でClaude Codeをどう使っているかの「28分マスタークラス」を出してた😳
x.com/rohit4verse/st…
マジで海外で話題になってるのでオススメ🔥
これは見る価値あり。
作った本人が語る
「Claude Codeの本当の使い方」は
公式ドキュメントでは読めない実務知見の塊。
開発者は週末に28分だけ
時間を作って見ることをオススメします👀
日本語











