Featured image of post 【目次】PerlとMooで弾幕シューティングを作ってみよう(全6回)

【目次】PerlとMooで弾幕シューティングを作ってみよう(全6回)

Flyweightパターンを学ぶ全6回のシリーズ目次。弾幕シューティングを題材に、大量オブジェクトのメモリ効率化テクニックを習得します。

1000発の弾を、たった5つのオブジェクトで管理する。

このシリーズでは、弾幕シューティングゲームを題材に、Flyweightパターンを学びます。

大量のオブジェクトを効率的に管理するためのデザインパターンを、楽しく実践的に習得しましょう!

シリーズ概要

項目内容
シリーズ名PerlとMooで弾幕シューティングを作ってみよう
全回数6回
デザインパターンFlyweight(フライウェイト)
題材弾幕シューティングゲームの弾管理
対象読者Perl入門者(Mooの基礎を習得済みの方)

前提知識

このシリーズを読む前に、以下のシリーズを読了していることを推奨します:

目次

第1回: 弾を1000発撃ちたい!メモリの限界

弾幕シューティングで大量の弾を生成すると、メモリ使用量が爆発!この問題を発見します。


第2回: 弾の種類と位置を分けて考えよう

弾の「種類」(形状・色)と「位置」を分離する。内部状態と外部状態という考え方を学びます。


第3回: BulletFactoryで弾を使い回そう

同じ種類の弾は共有する!BulletFactoryでオブジェクトプールを実装します。


第4回: 外部状態を渡して弾幕を描こう

renderメソッドに位置を渡して描画。共有オブジェクトと外部状態の連携を学びます。


第5回: 完成!弾幕シューティングエンジン

BattleFieldクラスで統合。螺旋状の弾幕パターンを実装し、エンジンを完成させます。


第6回: これがFlyweightパターンだ!

作ってきたものがFlyweightパターンだったことを明かします。Prototypeパターンとの違いも解説。


学習のポイント

このシリーズで習得できること:

技術要素内容
内部状態と外部状態オブジェクトの状態を分離してメモリ効率化
FlyweightFactoryオブジェクトプールによるキャッシュ管理
//= 演算子Perlらしい簡潔なキャッシュ実装
FlyweightパターンGoFの構造パターンの一つ

達成できること

  • 1000発の弾を5オブジェクトで管理
  • メモリ使用量を60%以上削減
  • 弾幕シューティングエンジンの完成

関連シリーズ

Flyweightパターンと対比されることの多いPrototypeパターンのシリーズもぜひ読んでみてください:


弾幕を作りながら、デザインパターンを楽しく学びましょう!

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。