RSSAmplifier

Blog

The Room

Do I dare disturb the universe?

chris.prather.orgRSS feed ↗10 posts

Latest posts

Who P-P-P-Plugged Perl?

The movie Who Framed Roger Rabbit is based on a deeply weird novel by Gary K. Wolf in which Roger Rabbit actually is a murderer (there are several) and is killed halfway through the book—which doesn’t stop him, he is a toon after all. Reading What Killed Perl? kind of reminds me of that. There are a bunch of stories people believe are true, but looking into what actually happened, those stories…

Birds that Flock Together

So I’ve been prepping for my class on Game Development and one of the things I want to introduce to people is the concept of an ECS (Entity Component System). I mentioned last time about how I needed to build a new set of bindings for a graphics library, and as part of that I wanted to port a little script I’d done implementing the boids algorithm. Let’s walk through the code and see how it works.…

Surviving in the Wasteland with Raylib and a Platypus

Where the world ends is where you must begin. I’ve had a class accepted at the Perl and Raku Conference in Las Vegas this year. I’m going to be talking about how to build video games in Perl with a focus on Roguelikes and RPGs. While preparing for this class I started looking into the previous libraries for Game Development in Perl. SDL hasn’t been touched in years, and the SDL2 bindings wouldn’t…

A Roguelike in Perl Part 6 - Doing (and taking) some damage

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in part 5 . If you don’t remember what the code looked like you can refresh yourself with the listing here . Refactoring When we ended last time we noted that we probably would need to refactor the action.…

A Roguelike in Perl Part 5 - Knowing where your enemies are, and how to kick them

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in part 4 . If you don’t remember what the code looked like you can refresh yourself with the listing here . We have a darkened dungeon you can explore and while that can be exciting, it lacks a certain…

A Roguelike in Perl Part 4 - Field of View

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in part-3 . If you don’t remember what the code looked like go back and refresh yourself. We have a dungeon that we can walk around in but it’s not really exploring if we can just see everything from the get…

A Roguelike in Perl Part 3 - Mastering the Generative Dungeon

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in part-2 . If you don’t remember what the code looked like, go back and refresh yourself. When last we left our intrepid characters, they were in a nearly empty room with a tiny wall in the middle. This is…

A Roguelike in Perl Part 2 - Entities and Obstacles

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in Part 1 . If you don’t remember what the code looked like, go back and refresh yourself. From now on the listing is gonna get a little large for us to copy it every time. We’re going to making our game…

A Roguelike in Perl Part 1 - Orchestrating Movement in the Dark

Introduction This post is part of a series of blog posts following the roguelike tutorial to demonstrate the new class feature in Perl 5.38.0. In this post we’re gonna start where we left off in Part 0 . If you remember, the Engine class looked like this: class Engine { field $height :param; field $width :param; field $app = Games::ROT->new( screen_width => $width, screen_height => $height, );…

A Roguelike in Perl Part 0 - The Setup

Introductions Perl 5.38.0 just dropped, and with it comes (in my opinion) one of the most exciting experiments in Perl, a new built-in object system. If Moose was the postmodern object system for Perl then feature 'class' is post-postmodern, it’s a meta-modern object system. The last couple of years I’ve not been paid to write Perl, so I’ve had to learn a few other languages. I’ve discovered the…