diff --git a/src/diary/entries/210204 b/src/diary/entries/210204
index 2539db8..c0f0a3d 100644
--- a/src/diary/entries/210204
+++ b/src/diary/entries/210204
@@ -3,27 +3,27 @@
february 4, 2021
#offtopic
-Most of 2020 passed without significant progress towards shipping Blessfrey and perfecting my website. 2021 likely won't be a return to normal, but I will try to be more productive regardless. I know one thing for sure, though. From now on, when I pray, "Father, thank you for this day," I'll try not to take a normal, healthy day for granted. This year, I'll try to make the most of what I've been given.
+2020 passed without significant progress towards shipping Blessfrey and perfecting my website. 2021 won't be a return to normal, but I will try to be more productive regardless. I know one thing for sure, though. From now on, when I pray, "Father, thank you for this day," I won't take a normal, healthy day for granted. This year, I want to make the most of what I've been given.
-Being separated from people for a year is draining. I might be a quiet person, but I get my energy from being around people. Even being near crowds of strangers cheers me up when I'm feeling down.
+I began severely limiting my outdoor activities during January, before social distancing was officially mandated. Being separated from people for a year is draining. I might be a quiet person, but I get my energy from being around people. Even without losing a family member and experiencing a global pandemic, staying at home so long is depressing.
-I began severely limiting my outdoor activities during the second week of January, about two months before social distancing was officially mandated. After a full indoor year, going out has become such a fantasy. Simple grocery trips are an event to celebrate with cute clothes and makeup.
+After over a year of sheltering in place, going out has become such a fantasy. I wore makeup sparingly outside of work hours before, but now every outing feels worthy of celebrating with my cutest outfits and makeup, even when it's a simple grocery run.
-For inspiration, I started watching lots of small beauty youtubers for new tutorials. It turns out nobody makes tutorials anymore, but the closest equivalents incorporate a surprising amount of self-reflection about makeup, particularly the wastefulness of large collections. It's cheesy, but I felt a connection to the wastefulness of my 2020.
+For inspiration, I started watching lots of small beauty youtubers like Lauren Mae Beauty, Hannah Louise Poston, and Abby Williamson for new tutorials. It turns out nobody makes tutorials anymore, but GRWMs and other modern equivalents incorporate self-reflection about makeup, particularly the wastefulness of large collections. (Seriously, this is a pocket of Youtube where girls act like it's normal to have a storeroom full of PR makeup and still buy makeup on a monthly basis. Then they constantly preach down at viewers for our consumerism, all while sharing affiliate links and hyping new releases lol.) It's bizarre what happened to makeup Youtube, but the new "minimalism" wave resonated with the wastefulness of my time and resources during 2020.
-
panning makeup
-Online beauty communities value panning. For a community based around consumerism, it's aspirational to be content with what you already have and actually use it regularly. (As someone with a lot of HumbleBundle games, I kind of get it. As if I'm going to 100% every single game that came bundled with the few I wanted.) To promote making the most out of makeup, the term panning was coined for reaching the bottom packaging of a product. #Projectpan and #panporn are full of photos of well-loved makeup, like this Instagram girl's blushes.
+
panning
+Minimalist makeup youtubers value panning and product empties. When they continuously collect new releases, either through PR or compulsive shopping, they barely ever use a product more than once. #Projectpan and #panporn challenge this behavior and are full of well-loved makeup, like this Instagram girl's blushes.
-Panning is obviously encouraging you to buy less and all that, but the message that stands out to me is to use the things you love. Products get discontinued all the time, so there's a natural tendency to save your favorites. That's wasteful, since makeup is more likely to expire than empty. If it's your favorite, you should use it every single day!
+Panning obviously encourages you to buy less and all that, but the message that stands out to me is to use the things you love. Makeup gets discontinued all the time, so there's a natural tendency to save your favorites. That's wasteful, since makeup is more likely to expire than empty. If it's your favorite, you should use it every single day!
panning other areas of life
-I guess the concept is obvious, but I find wisdom in panning. It can be applied anywhere - unfinished projects, videogame backlogs, unread book collections, skipped Bible readings, stocked up baking ingredients, unused art supplies, ignored MOOCs, forgotten exercise equipment, and hoarded assets + libraries...For each item in those areas, I could have been developing skills, gaining new perspectives, and having fun. Otherwise, it's just junk taking up space in my apartment and hard drive.
+I guess the concept is obvious, but panning spoke to me. The wisdom can be applied anywhere - unfinished projects, videogame backlogs, unread book collections, skipped Bible readings, stocked up baking ingredients, unused art supplies, ignored MOOCs, forgotten exercise equipment, and hoarded assets and libraries...For each item in those areas, I could have been developing skills, gaining new perspectives, and having fun. Otherwise, it's just junk taking up space and expiring.
-In 2021, even if I have to do it all cooped up at home, I'm going to be more intentional about enjoying my hobbies. I've already finished 2 books, made freezer cookie logs, and actually completed a playthrough of Planescape: Torment. The pandemic disrupted my life, but stifling myself isn't healthy.
+In 2021, I'm going to be more intentional about enjoying my time at home. I've already finished 2 books, made freezer cookie logs, and finally completed a playthrough of Planescape: Torment. The pandemic may have disrupted my life, but stifling myself isn't healthy.
Happy (belated) New Year. Enjoy 2021 to the fullest. :)
diff --git a/src/diary/entries/210624 b/src/diary/entries/210624
index 1213f3c..38dff6b 100644
--- a/src/diary/entries/210624
+++ b/src/diary/entries/210624
@@ -3,51 +3,49 @@
june 24, 2021
#offtopic
-I've spent more time pattern-making than programming, so let's take a fashion break on the blog this week!
+I've spent more time pattern-making than programming, so let's take a fashion break this week!
my life story told through clothes
-Hand-me-downs from older girls at school and church have been a staple in my wardrobe for the majority of my life. Anything that was too big, I kept around to grow into later. I did enjoy the clothes because they weren't anything like what my peers were wearing at the time. My boxy denim dress with white embroidery received comments that I looked like I was from a different fashion era - maybe an insult, but it's a really curious way to be described. Also, sometimes they were old enough to swing back around to the cusp of fashion, like the story of my wide leg jeans.
+Hand-me-downs from older girls at school and church have been a staple in my wardrobe for the majority of my life. Anything that was too big, I kept around to grow into later. I loved them because they weren't like anything my peers were wearing. My cousin's old boxy denim dress with white embroidery received comments that I looked like I was from a different fashion era - maybe an insult, but it's a really curious way to be described. Also, sometimes they were old enough to swing back around to the cusp of fashion, like the story of my wide leg jeans.
-When I grew up, I thought I could finally invest in a few nice work and event clothes for my adult wardrobe, since everyone said I was finished growing. Then I suddenly get a freakish growth in my early 20s. My doctor wasn't concerned, but almost everything was suddenly too short and couldn't fit around my shoulders anymore. Everything but old hand-me-downs from a boss's daughter. Since I was moving, I welcomed the opportunity to avoid the costly and demotivating search for clothing in my size. And with the initial pressure of having no clothes resolved, I never really tried to replace my wardrobe. I was even on trend, since thrifting exploded in popularity.
+When I grew up, I thought I could finally invest in a few nice work and event clothes for my adult wardrobe, since everyone said I was finished growing. Then I get a freakish growth spurt in my early 20s. My doctor wasn't concerned, but nothing fit around my shoulders anymore...everything but old hand-me-downs from a boss's daughter. I welcomed the opportunity to once again lean into hand-me-downs and avoid the costly and demotivating search for clothing in my size. And with the initial pressure of having no clothes resolved, I never really tried to replace my wardrobe. I'm even on trend, since thrifting has exploded in popularity.
-The clothes I did buy or make myself tended to be fussy by preference, rife with layering and delicate chiffons. It's feminine, but when the pandemic hit, I craved ease and comfort over anything else. For about a solid year, I wore nothing but comfy old cotton hand-me-downs and my husband's t-shirts.
-
-Now, coming out of the pandemic, I crave normalcy and looking cute again. I still don't really have anything in my style, though, just a few loose-fitted chiffon blouses and skirts that survived the growth spurt. If the pandemic did any good, it finally pushed me to do something about it. I'm at a more stable point, so it's a good time for it.
+After months of pandemic-era shelter-in-place orders, I crave normalcy and looking cute again. I still don't really have anything in my style, though, just other people's clothes. I'm at a more stable and independent point in my life anyway, so I should dress like it.
capsule wardrobe concept
-You need a thesis before you jump into anything. If a higher-level concept is guiding you, it'll give you consistent answers for the little details. In general, a design-oriented approach encourages you to solve any potential problems ahead of time. Creating a style guide and debugging are a big part of both programming and fashion, and that common ground is what draws me to both.
+I do nothing without a thesis. With a higher-level concept to guide me, everything down to the little details can stay consistent. Obviously taking a design-oriented approach applies to gamedev, too. It's kind of like a style guide for sewing.
-My functional goal is to fill out my wardrobe with some solid core pieces that are easy to mix and match. I'll worry about more fashion-oriented or niche pieces later. My more abstract concept stems from my story above - my attachment to my old hand-me-downs, my desire to have an individualized style, and some lingering pandemic preference for natural fibers. I'll play with the sizing of clothes and update old styles in my closet.
+My functional goal is to fill out my wardrobe with some solid core pieces that are easy to mix and match. I'll worry about more fashion-oriented or niche pieces later. My more abstract concept stems from my story above - my attachment to my old hand-me-downs, my desire to have an individualized style, and a lingering pandemic preference for comfy, unfussy natural fibers. Technically, this translates to playing with the sizing of clothes and mixing of decades and cultural inspirations.
sketches
-I'll make 3 mock turtlenecks, a button-down shirt, a bodice, a pair of pants, two shorts, a light bomber jacket, a kimono, two pajama sets, and 2 pajama sets.
+I'll make 3 mock turtlenecks, a button-down shirt, a bodice, a pair of pants, two shorts, a light bomber jacket, a kimono, two pajama sets, a swimsuit, and a few hair accessories.
-Bomber: I've had a favorite light rayon bomber jacket for 10 years, but it's finally wearing out and has some weird bleach stains. This is basically a knockoff of a BB Dakota design, and I may end up making a few variations. This one is a shiny pink polyester (a beautiful exception to my natural fiber rule) with multicolored lace trim, a metal zipper, and a beige drawstring.
+Bomber: I've had a favorite light rayon bomber jacket for 10 years, but it's wearing out and has some weird bleach stains. This is basically a knockoff of a BB Dakota design, and I may end up making a few variations. This one is a shiny pink polyester (a beautiful exception to my natural fiber rule) with multicolored lace trim, a metal zipper, and a beige drawstring. I think I can keep the old BBD jacket, too, but it needs embroidery or appliques over the stains.
-Instead of chiffon, I'm going to include more batiste and poplin. They're all lightweight, layer-friendly fabrics. Chiffon is usually polyester, though, while the others are usually from natural fibers like bamboo or cotton. Like the other tops, it's designed for layering. I will have ruffles at the shoulders and long straps from the waist, so they can be wrapped around and tied in a bow.
+Bodice: This is a light layering top made from batiste. It will have ruffles at the shoulders and long straps from the waist to wrap around and tie in a bow.
-Kimono: I have a favorite purple floral chiffon kimono that has a seam that is still coming undone after three repairs, so it needs a break. This design is similar, but there's not really a lot you can do with a simple long, kimono-sleeved sheer kimono. This one is rayon batiste, though, with a dark inky print.
+Kimono: I have a favorite purple floral chiffon kimono that has a fraying seam. After three repairs, it needs a semi-retirement. This design but with rayon batiste and a dark inky print...if Mood ever restocks the Penitentiary Block print!
-泣き虫 (Cry Bug): An oversized poplin button-down with short sleeves and an oversized beetle print. It has black piping along seams, a pocket, and black glass shank buttons. The fit is meant to fit like your dad's shirt where the short sleeves come down too far, the armholes are too deep, and the pocket is too big like they're from a menswear shirt, but the collar and length are appropriately proportioned for me. It's white with an oversized print that visually plays up the unusually large proportions of the shirt. The piping and glass shank buttons remain the corrent proportions, though.
+泣き虫 (Cry Bug): An oversized poplin button-down with short sleeves and an oversized beetle print. It has black piping along seams, a pocket, and black glass shank buttons. The fit is meant to resemble your dad's shirt where the short sleeves come down too far, the armholes are too deep, and the pocket is too big, but the collar and length will be appropriately proportioned for me. It's white with an oversized print that visually plays up the unusually large proportions of the shirt. The piping and glass shank buttons remain the correct proportions, though.
-Mock Turtle: Then there's three mock turtlenecks since I really like light turtlenecks but don't have any anymore. One is a foil knit with thumbholes, one is a striped knit, and one is a 4x2 rib knit.
+Mock Turtle: There's three light mock turtlenecks. These are my favorite staple, but I lost mine 2 moves ago. (RIP) One is a foil knit with thumbholes, one is a striped knit, and one is a 4x2 rib knit.
-Pants: Straight-legged plaid linen pants with a fly-front closure, belt loops, side pockets, and blind hems.
+Pants: Straight-legged plaid linen pants with a fly-front closure, belt loops, side pockets, and blind hems. Linen feels great in the summer and lends itself to a well-tailored staple.
Shorts: Two pairs of linen shorts, one with stripes and striped fringe ribbon trim and the other with a dragon fruit print and cuffs and a bow belt.
-Swimsuit: The one piece swimsuit is made out of pastel green and pink neoprene with pops of yellow in an abstract swampy design. I actually lived around wetlands for most of my life, but I mostly just like the print. It has long sleeves, a mock turtleneck, and an invisible zipper at the center back. The focus is the obi belt made from the same material. There are three panel-and-tier ruffles covering the shorts to give some illusion of volume against the closely-fitted belt and top without adding more unnecessary bulk. I'm not 100% on materials yet and may need to bring in a thinner swimwear tricot for the layers.
+Swimsuit: The one piece swimsuit is made out of pastel seafoam and pink neoprene with pops of sulfurous yellow in an abstract swampy design. I actually lived around wetlands for most of my life, so it's cool to see a wetlands design instead of another tropical beach or flowering meadow print. It has long sleeves, a mock turtleneck, and an invisible zipper at the center back. The focus is the obi belt made from a contrasting black neoprene. There are three panel-and-tier ruffles over the bottom to give some illusion of volume against the closely-fitted belt and top without adding more unnecessary bulk. I'm not 100% on materials yet and may need to bring in a thinner swimwear tricot for the layers.
-Pajama sets: The pajamas are not my design. They are basically knock-offs from Yahoo! Japan shopping, since I don't feel like importing pajamas. (The originals are Japanese-style yukata-style long sleeve pajama set for spring and fall from OPEN-CLOTHES and summer pajama set for ladies in their 20s with flared collar and cute short sleeves from kittyshop. Products names are translated from Japanese to English.) They're only included in this collection because I have no pajama sets that fit besides the never-seasonally-appropriate heavy sets I occasionally get for my winter birthday. I'm using jacquard fabric I've had around but never used, and instead of the ruffles on second set, I'm going to use oversized rick rack.
+Pajama sets: The pajamas are not my design. They are basically knock-offs from Yahoo! Japan shopping, since I don't feel like importing mall-tier pajamas. (The originals are Japanese-style yukata-style long sleeve pajama set for spring and fall from OPEN-CLOTHES and summer pajama set for ladies in their 20s with flared collar and cute short sleeves from kittyshop.) The only real design change is using oversized rick rack instead of ruffles on that second set. Pajamas are the most pressing sartorial area in my life in which I need a self-assertion. People like to gift me pajamas, but they always ask me my size then buy a size or two down. Why won't anyone believe I'm not an XS! The one time I got something that fit, it was unwearably heavy fleece for my yearround hot climate. I don't want to be ungrateful or wasteful, though, so I've either crammed myself into tiny pajamas or sweated since I was little. That's so silly, especially now that I'm an adult. There's beautiful but unused jacquard fabric hanging in my closet. There's nothing stopping me from turning it into cute Japanese jacquard pajamas that actually fit.
pattern-making and sewing so far
@@ -64,9 +62,9 @@ I'm in the middle of sewing the button-down. The sleeves are cuffed and reinforc
-After the button-down is finished, I really want to tackle a swimsuit next. I was prioritizing everyday clothes, but I've been thinking it would more fun to have a swimsuit as soon as possible. Since I was planning to take my time with it, the obi swimsuit is not only made from the most challenging fabric, but it also has the most elaborate design. I might design a simple swimsuit to use for now, since it's reasonable to have more than one swimsuit.
+After the button-down is finished, I really want to tackle a swimsuit next. I was prioritizing everyday clothes, but I've been thinking it would more fun to have a swimsuit as soon as possible. Since I was planning to take my time with it, the obi swimsuit is not only made from the most challenging fabric, but it also has the most elaborate design.
-Maybe I'll update again when I've completed some garments, but thanks for reading an off-topic post.
+Anyway, thanks for reading an off-topic post.
-Last Updated June 27, 2021
+Last Updated October 17, 2021
diff --git a/src/diary/entries/210708 b/src/diary/entries/210708
index 1611930..e0cb7e0 100644
--- a/src/diary/entries/210708
+++ b/src/diary/entries/210708
@@ -3,7 +3,7 @@
july 8, 2021
#ai #character #combat #design #movement
-Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop.
The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
-
-
the loop explained
-Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
-
-The AI receives these signals. If the target was out of range, it sets up to follow attack target.
-
-Every AI tick, it prompts the character to pathfind to the target then sets the character's velocity to the current_dot (the first node the character is trying to reach in path) minus the character's global_position.
-
-Every frame, the character's _process(delta) method calls move_and_collide with velocity * speed * delta. If the character's velocity isn't 0,0, the "moved" event is published to the Knowledge Base's MessageBus.
-
-The movement handlers are subscribed to "moved," and will emit signals if the character reached either the next waypoint (the target or the chosen goal point at the end of the path) or the current dot (the first point along the pathfinding between the character and the goal point).
-
-The AI receives these signals. If the next waypoint is reached, it's removed from the list of waypoints, the "arrived_at_attack_target" signal is emitted, and movement is cleared.
-
-Then the AI receives the "arrived_at_attack_target" signal and prompts the character to begin the attack all over again.
-
-
in-game
-It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
-
-Too fast:
-
-
-I'll work it out sooner or later, dependent on how hectic moving turns out to be.
-
-(By the way, that's my first gif recorded and edited entirely in ffmpeg. It's not pretty, but at least I could write my bash script without relying on copypasta code from forums this time. I was trying to follow the documentation website before, but it's unreadable. The man page is so much easier to understand and search through.)
-
-
-Last Updated July 10, 2021
-
diff --git a/src/diary/entries/210801 b/src/diary/entries/210801
index c9b1cb1..e8bb008 100644
--- a/src/diary/entries/210801
+++ b/src/diary/entries/210801
@@ -1,5 +1,5 @@
-
july 2020: mostly moving
+
july 2021: mostly moving
august 1, 2021
#diary
@@ -10,7 +10,7 @@ august 1, 2021
friday, july 8
I ordered some rayon rib knit for a mock turtleneck, but customer service emailed me yet again saying that it's out of stock. There were over 100 yards in stock when I placed my order...all I want is 2 yards. I thought the housing market was unreasonable, but the basic black fabric market is brutal.
-
Urban Decay announced their new Vice Hydrating Lipstick for Summer 2021. It's official. My all-time favorite lipstick line is discontinued, and they're replacing it with a bland color range with (going off their recent releases) inconsistent quality. "35 Los Angeles-inspired shades from sheer pink and everyday nude to bold." Good-bye gunmetals, blacks, and purples. They don't even have my MLBB mauve anymore. I can't believe the "Does Pink Make You Puke?" brand that designed their lipsticks after bullets is trying to act like a cookie-cutter LA influencer now...It's the way of the world.
+
Urban Decay announced their new Vice Hydrating Lipstick for Summer 2021. It's official. My all-time favorite lipstick line is discontinued, and they're replacing it with a bland color range. "35 Los Angeles-inspired shades from sheer pink and everyday nude to bold." Good-bye gunmetals, blacks, and purples. They don't even have my MLBB mauve anymore. I can't believe the "Does Pink Make You Puke?" brand is chasing cookie-cutter LA influencers now.
friday, july 9
@@ -25,9 +25,9 @@ august 1, 2021
sunday, july 11
-
A while back, I found a used bookstore run by an old lady that almost exclusively sells Harlequin novels (we're talking 3 or 4 solid aisles). Did you know that's a publishing house, not a genre? And it's not just something old ladies talk about - it's this entire world with ridiculously distinctive branding. That crazy red branding unlocked a memory of when I found a free manga on Google Books, but it was co-authored by some Western woman. The artstyle was kinda like that meme where the guys have tiny heads, and it was about an architect lady in an office or something. The characters felt really Western (read as "boring" lol). I looked it up and, turns out, that was a Harlequin manga. Apparently Harlequin's a Canadian company, but they have a Japanese branch that converts the stories into manga for the Japanese audience. Who knew the influence of those books reached across cultural divides?
+
A while back, I found a used bookstore run by an old lady that almost exclusively sells Harlequin novels (we're talking 3 or 4 solid aisles). Did you know that's a publishing house, not a genre? And it's not just something old ladies talk about - it's this entire world with ridiculously distinctive branding. That crazy red branding unlocked a memory of when I found a free manga on Google Books, but it was co-authored by some Western woman. The artstyle was kinda like that meme where the guys have tiny heads, and it was about an architect lady in an office or something. The whole thing felt really Western (read as "boring" lol). I looked it up and, turns out, that was a Harlequin manga. Apparently Harlequin's a Canadian company, but they have a Japanese branch that converts the stories into manga for the Japanese audience. Who knew the influence of those books reaches across cultural divides?
Romance novels in general are items of pure marketing, so they're fun to observe in the wild like that. If you haven't watched Chris Zukowski's GDC talk about genre marketing tropes, I recommend it. Starting at 28:15, he compares effective romance novel covers to effective game covers of various genres, and the sophistication of the visual language was pretty eye-opening.
-
Anyway, I bought something while I was there to be polite: Marion Zimmer Bradley's The Heirs of Hammerfell (not the one from The Elder Scrolls). I started reading it today. Cool 80s-90s fantasy book. It's book 8, so I may have to hunt down earlier entries.
+
Anyway, I bought something while I was there to be polite: Marion Zimmer Bradley's The Heirs of Hammerfell (unrelated to The Elder Scrolls). I started reading it today. It's an okay 80s-90s fantasy book.
Made tags into links that show all diary entries that share that tag
Added a word cloud, ordered by frequency. I love blogs with word clouds so much and finally have one of my own.
-july 8, 2021
-#ai #character #combat #design #movement
-
-Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
-
-The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-
-The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
-
-
the loop explained
-Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
-
-The AI receives these signals. If the target was out of range, it sets up to follow attack target.
-
-Every AI tick, it prompts the character to pathfind to the target then sets the character's velocity to the current_dot (the first node the character is trying to reach in path) minus the character's global_position.
-
-Every frame, the character's _process(delta) method calls move_and_collide with velocity * speed * delta. If the character's velocity isn't 0,0, the "moved" event is published to the Knowledge Base's MessageBus.
-
-The movement handlers are subscribed to "moved," and will emit signals if the character reached either the next waypoint (the target or the chosen goal point at the end of the path) or the current dot (the first point along the pathfinding between the character and the goal point).
-
-The AI receives these signals. If the next waypoint is reached, it's removed from the list of waypoints, the "arrived_at_attack_target" signal is emitted, and movement is cleared.
-
-Then the AI receives the "arrived_at_attack_target" signal and prompts the character to begin the attack all over again.
-
-
in-game
-It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
-
-Too fast:
-
-
-I'll work it out sooner or later, dependent on how hectic moving turns out to be.
-
-(By the way, that's my first gif recorded and edited entirely in ffmpeg. It's not pretty, but at least I could write my bash script without relying on copypasta code from forums this time. I was trying to follow the documentation website before, but it's unreadable. The man page is so much easier to understand and search through.)
-
-
-Last Updated July 10, 2021
-
diff --git a/src/diary/entries/210819 b/src/diary/entries/210819
deleted file mode 100644
index 1611930..0000000
--- a/src/diary/entries/210819
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
how to attack a moving target
-july 8, 2021
-#ai #character #combat #design #movement
-
-Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
-
-The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-
-The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
-
-
the loop explained
-Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
-
-The AI receives these signals. If the target was out of range, it sets up to follow attack target.
-
-Every AI tick, it prompts the character to pathfind to the target then sets the character's velocity to the current_dot (the first node the character is trying to reach in path) minus the character's global_position.
-
-Every frame, the character's _process(delta) method calls move_and_collide with velocity * speed * delta. If the character's velocity isn't 0,0, the "moved" event is published to the Knowledge Base's MessageBus.
-
-The movement handlers are subscribed to "moved," and will emit signals if the character reached either the next waypoint (the target or the chosen goal point at the end of the path) or the current dot (the first point along the pathfinding between the character and the goal point).
-
-The AI receives these signals. If the next waypoint is reached, it's removed from the list of waypoints, the "arrived_at_attack_target" signal is emitted, and movement is cleared.
-
-Then the AI receives the "arrived_at_attack_target" signal and prompts the character to begin the attack all over again.
-
-
in-game
-It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
-
-Too fast:
-
-
-I'll work it out sooner or later, dependent on how hectic moving turns out to be.
-
-(By the way, that's my first gif recorded and edited entirely in ffmpeg. It's not pretty, but at least I could write my bash script without relying on copypasta code from forums this time. I was trying to follow the documentation website before, but it's unreadable. The man page is so much easier to understand and search through.)
-
-
-Last Updated July 10, 2021
-
diff --git a/src/diary/entries/210901 b/src/diary/entries/210901
index 5f6e8e3..0e6cbc0 100644
--- a/src/diary/entries/210901
+++ b/src/diary/entries/210901
@@ -1,16 +1,15 @@
-
august 2020: moving
+
august 2021: moving
september 1, 2021
#diary
summary
-August was all about the new house. So many appointments! At least the bulk of planned appointments ended this week. Once the final checklist for moving out of the old apartment is 100% complete (and that deadline is closing in), I'll be back on my time. Moving is exhausting.
+August was all about the new house. So many appointments! At least the bulk of planned appointments ended this week. Once the final checklist for moving out of the old apartment is 100% complete (and that deadline is closing in), I'll switch to cleaning and unpacking the house. Moving is exhausting.
-To entertain myself for the long stretches of time without internet access, I grabbed the first Japanese language visual novel I saw without sexual content. (I'm kind of a prude lol.) It's so risky to have a random VN as your only game for a whole month. I didn't even read the VNDB's synopsis, but I guess it wouldn't have tipped me off to how strange and uncomfortable 月華繚乱ROMANCE is anyway. Gekka Ryouran is basically a reverse harem game set in a prestigious school, full of incest vibes, Hunter Biden vibes, and lots of scary moments.
+To entertain myself for the long stretches of time without internet access, I grabbed the first Japanese language visual novel I saw without sexual content. (I'm kind of a prude lol.) It's so risky to have a random VN as your only game for a whole month. I didn't even read the VNDB's synopsis, but I guess it wouldn't have tipped me off to how strange and uncomfortable 月華繚乱ROMANCE is anyway. Gekka Ryouran is basically a reverse harem game set in a prestigious school, full of incest vibes and obsessive stalkers.
-Honestly, the writing was so good, though, I enjoyed being stuck with it. The vocabulary level is higher than anything I've read so far, barring technical or political news reports. I'm getting to the point with Japanese that I don't need a dictionary for most manga, so needing a dictionary multiple times per sentence made me feel like a beginner again and eager to learn. (Though the contrast does highlight the ironically low vocabulary level of other series featuring honor students, bookworms, etc - I suppose they aren't as smart as they claim!) Also, the poetic and psychological atmosphere was engrossing, despite the constant dictionary flipping and moving-related interruptions.
+Honestly, the writing is pretty good, even if it was scary. The vocabulary level is higher than anything I've read so far, barring technical or political news reports. I'm getting to the point with Japanese that I don't need a dictionary for most manga, so needing a dictionary multiple times per sentence made me feel like a beginner again. The contrast does highlight the ironically low vocabulary level of other series featuring honor students, bookworms, etc, though. I suppose they aren't as smart as they claim!
-If you can read Japanese and don't mind obsession, thrilling moments, and constant weird vibes from almost every character, it's a quality otome. (I prefer more light-hearted VNs like Real Rode, though.) The best boy is the unromanceable Renge Kazuya.
-Last Updated September 2, 2021
+Last Updated October 17, 2021
-july 8, 2021
-#ai #character #combat #design #movement
-
-Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
-
-The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-
-The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
-
-
the loop explained
-Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
-
-The AI receives these signals. If the target was out of range, it sets up to follow attack target.
-
-Every AI tick, it prompts the character to pathfind to the target then sets the character's velocity to the current_dot (the first node the character is trying to reach in path) minus the character's global_position.
-
-Every frame, the character's _process(delta) method calls move_and_collide with velocity * speed * delta. If the character's velocity isn't 0,0, the "moved" event is published to the Knowledge Base's MessageBus.
-
-The movement handlers are subscribed to "moved," and will emit signals if the character reached either the next waypoint (the target or the chosen goal point at the end of the path) or the current dot (the first point along the pathfinding between the character and the goal point).
-
-The AI receives these signals. If the next waypoint is reached, it's removed from the list of waypoints, the "arrived_at_attack_target" signal is emitted, and movement is cleared.
-
-Then the AI receives the "arrived_at_attack_target" signal and prompts the character to begin the attack all over again.
-
-
in-game
-It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
-
-Too fast:
-
-
-I'll work it out sooner or later, dependent on how hectic moving turns out to be.
-
-(By the way, that's my first gif recorded and edited entirely in ffmpeg. It's not pretty, but at least I could write my bash script without relying on copypasta code from forums this time. I was trying to follow the documentation website before, but it's unreadable. The man page is so much easier to understand and search through.)
-
-
-Last Updated July 10, 2021
-
diff --git a/src/diary/entries/210916 b/src/diary/entries/210916
deleted file mode 100644
index 1611930..0000000
--- a/src/diary/entries/210916
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
how to attack a moving target
-july 8, 2021
-#ai #character #combat #design #movement
-
-Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the attack-movement loop. Hopefully now that an offer was accepted, I'll find some time to iron out the design before packing and moving begins.
-
-The attack-movement loop needs to allow the character maintain attack range while attacking. The flow is complicated to follow, but this is how it works for now:
-
-The code is color-coded by object. Warm gray is input, orange is the character's action module, yellow is the character, yellow-green is the character's equipment module, blue-green is the attack handler, blue is the AI's attack module, purple is the AI's movement module, pink is the AI, brown is the KnowledgeBase's MessageBus, and cool gray is the character's kinematic body.
-
-
the loop explained
-Upon attack input, the character sets up for attacking and creates an attack timer. On timeout, the character's weapon swings. If the character is out of range, the "out_of_range" signal is emitted. Otherwise, the weapon successfully swings, either emitting "target_dead" or "hit."
-
-The AI receives these signals. If the target was out of range, it sets up to follow attack target.
-
-Every AI tick, it prompts the character to pathfind to the target then sets the character's velocity to the current_dot (the first node the character is trying to reach in path) minus the character's global_position.
-
-Every frame, the character's _process(delta) method calls move_and_collide with velocity * speed * delta. If the character's velocity isn't 0,0, the "moved" event is published to the Knowledge Base's MessageBus.
-
-The movement handlers are subscribed to "moved," and will emit signals if the character reached either the next waypoint (the target or the chosen goal point at the end of the path) or the current dot (the first point along the pathfinding between the character and the goal point).
-
-The AI receives these signals. If the next waypoint is reached, it's removed from the list of waypoints, the "arrived_at_attack_target" signal is emitted, and movement is cleared.
-
-Then the AI receives the "arrived_at_attack_target" signal and prompts the character to begin the attack all over again.
-
-
in-game
-It works in-game, too, but it's pretty janky, especially without animations. If the slime is slow enough, the player character attacks until it gets too far away, moves back in range, and continues attacking. If it's too fast, though, she never gets to attack and jitters constantly after the slime.
-
-Too fast:
-
-
-I'll work it out sooner or later, dependent on how hectic moving turns out to be.
-
-(By the way, that's my first gif recorded and edited entirely in ffmpeg. It's not pretty, but at least I could write my bash script without relying on copypasta code from forums this time. I was trying to follow the documentation website before, but it's unreadable. The man page is so much easier to understand and search through.)
-
-
-Last Updated July 10, 2021
-
diff --git a/src/diary/entries/211001 b/src/diary/entries/211001
new file mode 100644
index 0000000..1d87664
--- /dev/null
+++ b/src/diary/entries/211001
@@ -0,0 +1,11 @@
+
+
+Mostly catching up to deadlines, giving extra play-time to kitty, and making new friends. Also, sewing a few more garments is a stronger priority than gamedev lately. My old pants and pajamas were too threadbare and holey, so having cute new clothes is such a good feeling. It's also just fun to sew. It's a shame I let mass-producing face masks for the hospital give me such bad burnout.
+
+I'm still designing and redesigning systems instead of adding content, but now it's to make sure all the systems work together smoothly. I really want to be able to sit down for a few hours and implement a full event, start to finish, complete with dialog and a multiphase boss fight and rewards.
+
+Anyway, I can't believe I've been titling my monthly diary entries as "2020" all year. Finally fixed that. Also...why is the whole website on such an old version? Have I not been pushing anything to live? I thought I had a word frequency cloud and a working diary page navigation pane. Weird.
+
+
+Last Updated October 17, 2021
+
diff --git a/src/static/xml/blessfrey.xml b/src/static/xml/blessfrey.xml
index 45ed7ba..71e0cfa 100644
--- a/src/static/xml/blessfrey.xml
+++ b/src/static/xml/blessfrey.xml
@@ -7,6 +7,55 @@
en-uschimchooree@mail.com (chimchooree)
+september 2021: moving in
+https://www.blessfrey.me/diary/entries/211001
+summary Another moving-oriented month. Last Updated October 17, 2021 ...
+Fri, 01 Oct 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/211001
+
+
+how to attack a moving target
+https://www.blessfrey.me/diary/entries/210902
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the ...
+Thu, 02 Sep 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210902
+
+
+august 2021: moving
+https://www.blessfrey.me/diary/entries/210901
+summary August was all about the new house. So many appointments! At least the bulk of planned ...
+Wed, 01 Sep 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210901
+
+
+how to attack a moving target
+https://www.blessfrey.me/diary/entries/210819
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the ...
+Thu, 19 Aug 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210819
+
+
+how to attack a moving target
+https://www.blessfrey.me/diary/entries/210805
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the ...
+Thu, 05 Aug 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210805
+
+
+july 2021: mostly moving
+https://www.blessfrey.me/diary/entries/210801
+sunday, july 4 - Independence Day My favorite holiday! I celebrate every year by making a ...
+Sun, 01 Aug 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210801
+
+
+how to attack a moving target
+https://www.blessfrey.me/diary/entries/210722
+Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the ...
+Thu, 22 Jul 2021 05:00:05 GMT
+https://www.blessfrey.me/diary/entries/210722
+
+how to attack a moving target
https://www.blessfrey.me/diary/entries/210708
Househunting has been unexpectedly time-consuming, but I'll share the tentative design for the ...
@@ -23,7 +72,7 @@
sewing my own clothes
https://www.blessfrey.me/diary/entries/210624
-I've spent more time pattern-making than programming, so let's take a fashion break on the blog ...
+I've spent more time pattern-making than programming, so let's take a fashion break this week! my ... Thu, 24 Jun 2021 05:00:05 GMThttps://www.blessfrey.me/diary/entries/210624
@@ -35,7 +84,7 @@
https://www.blessfrey.me/diary/entries/210610
-may 2020: mostly GDD and CSS
+may 2021: mostly GDD and CSS
https://www.blessfrey.me/diary/entries/210601
wednesday, may 5 Still trying to find a nice way to organize my GDD (game design document). ... Tue, 01 Jun 2021 05:00:05 GMT
@@ -56,60 +105,11 @@
https://www.blessfrey.me/diary/entries/210513
-april 2020: will patrols ever work?
+april 2021: will patrols ever work?
https://www.blessfrey.me/diary/entries/210501
thursday, april 1 - April Fool's Day I got gnomed by my group leader, and FlightRising's ... Sat, 01 May 2021 05:00:05 GMThttps://www.blessfrey.me/diary/entries/210501
-
-an enemy patrol in godot
-https://www.blessfrey.me/diary/entries/210429
-My patrol routes look like a series of waypoints (Position2Ds) which are the children of a patrol ...
-Thu, 29 Apr 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210429
-
-
-how to make a plugin for godot engine
-https://www.blessfrey.me/diary/entries/210415
-If Godot Engine doesn't have the functionality you need, you can extend it with your own plugins. ...
-Thu, 15 Apr 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210415
-
-
-a look into an RPG achievement system
-https://www.blessfrey.me/diary/entries/210402
-Designing an achievement system without any octopus tangles. what does blessfrey consider an ...
-Fri, 02 Apr 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210402
-
-
-march 2020: AI
-https://www.blessfrey.me/diary/entries/210401
-week 1, february 28 - march 6 #ai #webdev monday, march 1 I went on a walk for 3 hours. ...
-Thu, 01 Apr 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210401
-
-
-generating an RSS feed with python bottle
-https://www.blessfrey.me/diary/entries/210318
-After a few months of quietly running my blog as practice, I want to start sharing my articles with ...
-Thu, 18 Mar 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210318
-
-
-python writes my skills for me
-https://www.blessfrey.me/diary/entries/210304
-Similar to Magic: The Gathering cards, the functionality of my skills is composed of keywords. For ...
-Thu, 04 Mar 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210304
-
-
-february 2020: AI
-https://www.blessfrey.me/diary/entries/210301
-I just feel like rambling about games. week 1, february 1-6 #design #localization #writing tuesday, ...
-Mon, 01 Mar 2021 05:00:05 GMT
-https://www.blessfrey.me/diary/entries/210301
-