PHPackages                             andach/php-doom-wad-analysis - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. andach/php-doom-wad-analysis

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

andach/php-doom-wad-analysis
============================

A set of PHP classes to analyse and parse DOOM wads.

v0.0.2(1y ago)013MITPHP

Since May 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/andach-andreas/php-doom-wad-analysis)[ Packagist](https://packagist.org/packages/andach/php-doom-wad-analysis)[ RSS](/packages/andach-php-doom-wad-analysis/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

PHP Doom Wad Analysis
=====================

[](#php-doom-wad-analysis)

This is a PHP class to analyse DOOM wads. It is currently in development.

Installation
------------

[](#installation)

```
composer install andach/php-doom-wad-analysis

```

Usage
-----

[](#usage)

```
use Andach\DoomWadAnalysis\WadAnalyser;

$settings = [
    'colormap' => true,
    'playpal'  => true,
    'maps' => [
        'images'   => true,
        'counts'   => true,
        'things'   => true,
        'linedefs' => true,
        'sidedefs' => true,
        'vertexes' => true,
        'textures' => true,
    ],
];

$analyser = new WadAnalyser($settings);
$result = $analyser->analyse('/path/to/file.wad');

```

Testing
-------

[](#testing)

```
.\vendor\bin\phpunit.bat --coverage-html coverage

```

Output
------

[](#output)

Calling `$analyser->analyse()` returns a deeply structured array that breaks down the contents of the WAD file. This output is intended for developers or tools that need to introspect, validate, visualize, or modify DOOM WAD data.

### Top-Level Structure

[](#top-level-structure)

```
[
    'type' => 'PWAD' | 'IWAD',
    'complevel'    => 21
    'has_playpal'  => true | false,
    'has_colormap' => true | false,
    'playpal'      => [...],    // Present only if has_playpal is true
    'colormap'     => [...],   // Present only if has_colormap is true
    'counts'   => [
        'maps'     => 32,
        'things'   => 1234,
        'linedefs' => 1234,
        'sidedefs' => 1234,
        'vertexes' => 1234,
        'sectors'  => 1234,
    ],
    'maps' => [
        'MAP01' => [
            'things'   => [...],
            'linedefs' => [...],
            'sidedefs' => [...],
            'vertexes' => [...],
            'sectors'  => [...],
            'counts'   => [
                'things'   => 1234,
                'linedefs' => 1234,
                'sidedefs' => 1234,
                'vertexes' => 1234,
                'sectors'  => 1234,
            ],
        ],
        ...
    ]
]
```

### Maps Structure

[](#maps-structure)

#### Things

[](#things)

Entities such as players, monsters, items, decorations, etc.

```
[
    [
        'x' => 128,
        'y' => 512,
        'angle' => 0,
        'type' => 1,
        'flags' => 7,
    ],
    ...
]
```

#### Linedefs

[](#linedefs)

Defines the walls and logic lines between points.

```
[
    [
        'start_vertex' => 0,
        'end_vertex' => 1,
        'flags' => 1,
        'special' => 0,
        'sector_tag' => 0,
        'right_sidedef' => 0,
        'left_sidedef' => -1,
    ],
    ...
]
```

#### Sidedefs

[](#sidedefs)

Texture information for each side of a wall (linedef).

```
[
    [
        'x_offset' => 0,
        'y_offset' => 0,
        'upper_texture' => 'BRICK1',
        'lower_texture' => 'BRICK2',
        'middle_texture' => 'BRICK3',
        'sector' => 1,
    ],
    ...
]
```

#### Vertexes

[](#vertexes)

2D points used by linedefs to form geometry.

```
[
    [ 'x' => 128, 'y' => 64 ],
    ...
]
```

#### Sectors

[](#sectors)

Defines vertical space areas with floor/ceiling properties and lighting.

```
[
    [
        'floor_height' => 0,
        'ceiling_height' => 128,
        'floor_texture' => 'FLAT1',
        'ceiling_texture' => 'CEIL1',
        'light_level' => 160,
        'special' => 0,
        'tag' => 0,
    ],
    ...
]
```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance44

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity29

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

445d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/14134660effc2fe199c32c19c6749473faf24b3944bd15dcf34dd9e088f8f095?d=identicon)[andach-andreas](/maintainers/andach-andreas)

---

Top Contributors

[![andach-andreas](https://avatars.githubusercontent.com/u/140014241?v=4)](https://github.com/andach-andreas "andach-andreas (19 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/andach-php-doom-wad-analysis/health.svg)

```
[![Health](https://phpackages.com/badges/andach-php-doom-wad-analysis/health.svg)](https://phpackages.com/packages/andach-php-doom-wad-analysis)
```

###  Alternatives

[mwgg/airports

A JSON collection of ~29k entries with basic information about nearly every airport and landing strip in the world

7683.4k](/packages/mwgg-airports)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9845.4k](/packages/sauladam-shipment-tracker)[glauberportella/cnab-layouts-parser

Parser de arquivos de configuração CNAB gerados no projeto https://github.com/glauberportella/cnab-layouts

2154.5k](/packages/glauberportella-cnab-layouts-parser)[tcds-io/php-jackson

A lightweight, flexible object serializer for PHP, inspired by FasterXML/jackson

113.4k10](/packages/tcds-io-php-jackson)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
