静的型付けゲームスクリプト言語におけるヘテロジニアスデータの処理

2025-09-21

静的型付けゲームスクリプト言語を開発中に、著者はヘテロジニアスデータの処理に課題に直面しました。この記事では、null、バリアント型、タグなしユニオン、サム型、サブタイピングなど、様々なプログラミング言語で用いられる解決策を探求しています。最終的に、著者はPascalのバリアントレコードに似たアプローチを選択し、簡潔な構文と実行時型チェックのバランスを取っています。これにより、フロータイピングの複雑さを回避し、より理解しやすく使いやすい言語となっています。これは、静的型付けの安全性と使いやすさを両立させた巧妙な設計であり、ゲーム開発にとってより便利なスクリプト言語ソリューションを提供します。

続きを読む
開発

プログラマーの意外な趣味:編み物の魅力

2025-06-04

プログラマーが、画面を見つめることから編み物の触覚的な体験へと移行した過程を語っています。この記事では、編み物を緩やかな学習曲線と無限の可能性を持つオープンワールドゲームに例えています。著者は、編み物から得られる肉体的および精神的なメリット、形のあるものを創造する満足感について共有し、他のプログラマーにもこの活動を試すことを推奨しています。仕事と生活のバランスを取り、大切な人への意味のある贈り物を作る方法として。

続きを読む
その他

優雅な戦い:スクリプト言語における公開/非公開メンバのデザイン

2025-05-26

ファンタジーコンソールプロジェクトを構築している開発者が、スクリプト言語にモジュールシステムを追加することに苦戦しています。公開と非公開の宣言を区別するための様々なアプローチを検討しています。修飾子キーワード(Javaの`public`と`private`など)、修飾子セクション(C++など)、識別子内の記号(Pythonの下線など)、エクスポートマニフェスト(Schemeなど)、宣言における記号(Oberonの`*`など)などです。最終的に、宣言キーワードにアンダースコアを付けるという斬新な解決策に傾いています(例:`rec_`は非公開レコード、`def_`は非公開関数)。これは型破りですが、簡潔で、使用箇所に記号を繰り返す必要がないというメリットがあります。

続きを読む