Matthew Dupree

@4onen

Entries

What’s this?

This blog is a description of some of the design decisions and interfaces in Ren’Py underlying many of my AwSW mods. Here, I’m trying to explain the ideas that led to the code in the final package, as well as help preserve and describe the Ren’Py 6.99 interfaces necessary to mod Angels with Scaly Wings.

It’s targeted at people who know the basics of modding the game, but who want to dig deeper to create more advanced functionality, as visible in the mods by EvilChaosKnight, 4onen, Linda, and the AwSW modtools themselves.

Why make this?

I’ve noticed recently that the Historic Ren’Py Wiki is slowly being replaced on Google Search results by the new Ren’Py documentation. While it’s wonderful that the Ren’Py project is finally reaching a new level of documentation standards, this older wiki is critical to understanding and modifying the game Angels with Scaly Wings (and other similarly old Ren’Py titles.) As such, I’m hoping to preserve some of the most useful code (at least among the pieces I’ve used) to help future modders come back to older titles and at least have a foothold into these wonderful games’ engines.

F.A.Q.

First, the title of this section is a lie. This page was written before this blog project was released, so these questions are what I assume might be asked.

How regularly will these come out?

No idea! Whenever each is done, and going until I get bored, I guess?

What content are you planning to cover?

I don’t have a clear plan going forward, but some topics I’d like to hit are: * The image interfaces used to make my Side Images mod (most critically im.Composite, which is used in almost all my mods to break displayed images into layered pieces and vastly decrease mod file sizes.) * The image recoloration tricks used in Teetotaller and 4onen’s Aesthetic Tweaks to match player colors. * The Ren’Py Abstract Syntax Tree (AST) which represents the story in the loaded game (and how mods “hook” into it) * The Ren’Py call stack, which can be used to vastly reduce code duplication in mods. * The basics of the Ren’Py Screen Language 2, as used in Magmalink Mod Settings menus * The Ren’Py Animation Transformation Language (ATL) used by most of my mods to slide sprites around better than the base game does.

What skill level is necessary to understand this?

I’m assuming some understanding of Python, as I’m targeting this series at future modders interested in digging into more complex functionality rather than true beginners. Again, if you’re interested in modding AwSW but don’t have any idea where to start, see Linda’s excellent Magmalink-centered tutorials.