anchors on demo...but wanna change the grid again

small-nav
chimchooree 2 years ago
parent aaf925a076
commit 3fac134469

@ -1 +1 @@
,grid,grid-X570-I-AORUS-PRO-WIFI,29.07.2022 15:05,file:///home/grid/.config/libreoffice/4;
,grid,grid-X570-I-AORUS-PRO-WIFI,30.07.2022 15:54,file:///home/grid/.config/libreoffice/4;

@ -0,0 +1,75 @@
<div class="center"><h2>what about blessfrey?</h2>
<img src="/static/img/prom/BlessFREY_logo.png" alt="(link: BLESSFREY" class="logo">
<a href="#demo">demo</a> • <a href="#controls">controls</a> • <a href="#system">system</a> • <a href="#story">story</a> • <a href="#characters">characters</a> • <a href="#info">info</a><br>
<br>
<p>No-legs the Cat is just a demonstration that I can export and embed games here at all. Soon, I'll have real release demos for Blessfrey! <br></p>
<br>
<p>Blessfrey is a 2D dungeoncrawling action rpg for PC developed by me (chimchooree) in Godot Engine inspired by Guild Wars 1 and Magic: The Gathering. I'll share any release demos on this page. <br></p>
<div class="system" id="system">
<div class="center"><h2>system</h2>
<p>Blessfrey is a 2D action rpg with a dual-job system which will determine the skill pool from which you will build your skillbar. Your AI companions will have skillbars of their own to edit, so think in terms of teams in order to defeat bosses and solve puzzles. Barely any class progression decisions are permanent, so you can experiment and express your playstyle. <br></p>
<br>
<h3>jobs </h2>
<p>Blessfrey jobs are equivalent to RPG classes. Your first job is a permanent decision which you will make early in gameplay. You will be able to unlock the rest and more during gameplay as side gigs. You can only have one side gig at a time, but you can always swap it outside of combat areas. <br></p>
<br>
<p>Each job has its own skill pool. Each skill is assigned to a job trait (similar to an RPG attribute). Each character has a set number of trait points they can use to raise job traits and the effectiveness of their associated skills. You gain more trait points through leveling up, but traits can be raised or lowered at will. Experiment to find your specialization! <br></p>
<br>
<p>Your first job offers an exclusive trait called a job perk. It is not only tied to the effectiveness of related skills but also provides a constant buff. You can use the skills of your side gig's perk-related skills, but you cannot raise their effectiveness nor gain the buff. Perks are what distinguish characters from each other. <br></p>
<br>
<h3>skills</h2>
<p>Skills are individual powers that modify entities in the world of Blessfrey. They can launch fireballs, protect against incoming damage, spawn items or minions, teleport characters, reveal more UI details, and more. Your skillbar only has 8 skill slots and can only be edited in safe areas. The challenge comes from discovering effective strategies and synergies. Many of the same skills will be available to the player and enemy characters alike, so you must learn how to both use and counter each skill. <br></p>
<br>
<p>Skills are inspired by Magic: The Gathering keywords. There are a limited number of keywords that are quick to learn, but I will combine them with interesting conditions to create a wide arsenal of options. <br></p>
<br>
<p>Skills are gained during exploration. As you find new areas, encounter enemies, and interact with your surroundings, you will internalize those experiences as new skills. There are multiple paths to learning, so you are free to focus on your favorite parts of the game. <br></p>
<br>
<h3>team</h2>
<p>You will meet new friends and allies in the world, and they will join your team as customizable AI companions. Edit their skillbars to complement yours and keep their gear up-to-date. They will remember your responses and actions, so stay attentive to the flow of your relationship. There may be consequences - sweet or treacherous. <br></p></div>
</div>
<div class="story" id="story">
<div class="center"><h2>story</h2>
<p>You play as Helia, a foreign transfer student living with her estranged uncle in a rural southern American town. You'll find an inexplicable amount of amenities, but none of them hold a candle to the haunted dungeon beneath the city. It's off-limits, but a dare's a dare. <br></p>
<br>
<p>There's a whole other world down there with multiple fantastical races. Once you've been down there once, it's hard to avoid getting tangled in its mysteries. <br></p>
<br>
<p>The town is strange in its own right. Lucrest flourished under it's remarkably young mayor and became an economic oasis in an expanse of farmlands and mining communities, drawing people from out-of-state to enjoy its attractions. Mayor Dia claims to have a magic wand that controls economy, and people aren't inclined to disagree. <br></p></div>
</div>
<div class="characters" id="characters">
<div class="center"><h2>characters</h2>
<p><b><a href="/char/Helia">Helia</a></b> (?/?) - The player character! Almost every job is available to her. Where she comes from, combat training is unheard of, so she's a blank slate. Her reasons for suddenly moving countries by herself at the end of a schoolyear are filled with holes, so rumors spread ahead of her arrival. Barely anyone moves to Lucrest, though, so most people are excited to meet the new girl. <br></p>
<br>
<p><b><a href="/char/Angel">Angel</a></b> (Weaponmaster/Hacker) - Her real name's Miriam, but it sounds too frumpy, so please call her Angel. She is a naturally gifted with heavy blades and participates in a competitive swordsman league, but she usually comes across as friendly if not a little absent-minded. Computers interest her deeply, so she always has tinkering away with some new gadget or software. <br></p>
<br>
<p><b><a href="/char/Tessa">Tessa</a></b> (Tamer/Streetfighter) - She actually has a foreign background, too. Her mom and late father moved with her from France when she was really little. She loves the outdoors, animals, and fashion and is always sticking her nose in everyone's business. She's all fun all the time, so she doesn't always know where the boundary is between playful teasing and outright bullying. <br></p>
<br>
<p><b><a href="/char/Chloe">Chloe</a></b> (Disciple/Weaponmaster) - She's an orphan girl who was taken in by the church, and she spends a lot of her time serving there. She's reticent and deeply introverted but very sweet to those who get to know her. <br></p>
<br>
<p><b><a href="/char/Aries">Aries</a></b> (Weaponsmaster/Tamer) - Angel's twin brother, though he's her opposite in many ways. He's more attentive, but his frankness and disregard for etiquette makes him seem boorish. He also takes things with more gravity, fully committing himself to his studies and training. He prefers light weapons, light armor, and practical survival skills. <br></p>
<br>
<p><b><a href="/char/Night">Night</a></b> (Chemist/Weaponsmaster) - Despite not being much older than the other teens, he's completed a few years of apprenticeships at the leading research hospitals in the capital. The deterioration and death of his grandparents forced his return to close the final paperwork and figure out how to support his baby brother in the meantime. He runs a local pharmacy for now. <br></p>
<br>
<p><b><a href="/char/Rune">Rune</a></b> (?/?) - A startlingly tall and listless horned boy discovered in the local dungeon, surrounded by dinosaurs and other abyssal beasts. He doesn't trust people from the surface at first. <br></p></div>
</div>
<div class="info" id="info">
<div class="center"><h2>info</h2>
<p>Blessfrey is a singleplayer action RPG game that will be playable in at least Windows, Linux, and HTML5. I'm going to sell it on Steam and wherever else lets me list it. It's being developed by me (chimchooree) in Godot Engine with original writing and art, though I'll need help with music and SFX eventually. My husband also helps sometimes, especially with writing plug-ins for the engine.♡ The full credits are available on the <a href="/credits">credits page</a>.<br></p>
<br>
<h2>timeline</h2>
<p>Legless the Cat is the first demo. It has nothing to do with the game, but it's an important exercise for exporting and embedding an HTML5 game. I'd hate to make a sophisticated game over multiple years and be too inexperienced to actually share it with anyone. It also lets my kitty be in his own videogame! So cute. <br></p>
<br>
<p>As for the first real demo, I am currently creating a vertical slice of the game, focusing on a robust presentation of the skill system. This demo will be more of a tech demo than a game. It will feature 3 demo areas, and you will receive a bingo card directing you to try a smattering of what the full game will have to offer. <br></p>
<br>
<p>The next demo will demonstrate the game's faction system and AI, presenting more as a cutscene with unpredictable outcomes. A couple of different AI groups will wander around a map, intersect, then attack or aid according to affiliation. The faction system is rather complex, so I need to isolate it for testing purposes. <br></p>
<br>
<p>I think at this point, I will be able to put out a real demo. Demo #3 is going to be a level from the full game, introducing Rune and his multiphase boss fight. <br></p>
<br>
<p>If I can do that, I'll definitely be ready to make chunks of the game until the entire thing is complete. <br></p>
<br>
<p>No hard timeline on this, though! I've been working for years and finally am about ready to have something to show for it. Gamedev has been a deep learning experience, and I'm looking forward to sharing my results with you. <br></p></div>
</div>

Binary file not shown.

@ -1,3 +1,23 @@
fashion is...
problem-solving, just like any design field. I approach it as a blend of personal and social desires with technical and mathematical challenges. I iterate over original designs according to the specific needs of a piece, source appropriate materials, make the pattern, plan the tech pack, cut and sew, and perform any value addition. Though I enjoy the full process of apparel construction, pattern-making has been my favorite step since high school. It has the most opportunity for real design work. It is the pattern-maker who numbers the strands on a mohair garment and plans zipper placement within an eighth of an inch.
The impact of fashion is another problem to solve. The apparel industry is one of the largest water polluters, dumping 20% of the world's waste water, and many textiles do not degrade, filling 5% of landfills with textiles that take over 500 years to decompose. Donating old clothes has its own associated problems, competing with fledgling domestic industries overseas. The apparel industry also doesn't necessarily pay a living wage or ensure its factories are maintained. Valuing a low price tag over a manufacturing country of origin with proper labor protection has a human cost, most famously in the Dhaka, Bangladesh garment factory collapse.
These are macro problems that can't be solved at the micro level. We can be good stewards over our little plot of Earth, though. To me, the best approach is to buy fewer but more practical things, get as many uses as possible out of what we have, and source the materials for new things from salvage. I'm not perfect, though. Sometimes, brand new polyester fabric really is what a design needs, and sometimes I get dazzled by the coolest buttons and forget to check their country of origin. Then I'm sure there's other severe issues completely unknown to me. Minizing my impact is the best I can do, honestly.
I make individual or small batches of my designs. I'd like to be able to digitize patterns and sell them, but for now, read about my collections on the fashion page.
<p>problem-solving, just like any design field. I approach it as a blend of personal and social desires with technical and mathematical challenges. I iterate over original designs according to the specific needs of a piece, source appropriate materials, make the pattern, plan the tech pack, cut and sew, and perform any value addition. Though I enjoy the full process of apparel construction, pattern-making has been my favorite step since high school. It has the most opportunity for real design work. It is the pattern-maker who numbers the strands on a mohair garment and plans zipper placement within an eighth of an inch. <br></p>
<br>
<p>The impact of fashion is another problem to solve. The apparel industry is one of the largest water polluters, dumping 20% of the world's waste water, and many textiles do not degrade, filling 5% of landfills with textiles that take over 500 years to decompose. Donating old clothes has its own associated problems, competing with fledgling domestic industries overseas. The apparel industry also doesn't necessarily pay a living wage or ensure its factories are maintained. Valuing a low price tag over a manufacturing country of origin with proper labor protection has a human cost, most famously in the Dhaka, Bangladesh garment factory collapse. <br></p>
<br>
<p>These are macro problems that can't be solved at the micro level. We can be good stewards over our little plot of Earth, though. To me, the best approach is to buy fewer but more practical things, get as many uses as possible out of what we have, and source the materials for new things from salvage. I'm not perfect, though. Sometimes, brand new polyester fabric really is what a design needs, and sometimes I get dazzled by the coolest buttons and forget to check their country of origin. Then I'm sure there's other severe issues completely unknown to me. Minizing my impact is the best I can do, honestly. <br></p>
<br>
<p>I make individual or small batches of my designs. I'd like to be able to digitize patterns and sell them, but for now, read about my collections on the <a href="/fashion">fashion page</a>. <br></p>
% rebase('frame.tpl')
<div class="content-grid">
<div class="banner">

@ -13,7 +13,7 @@ july 28, 2022<br>
<br>
<p>Of course, I'm not saying Blessfrey.me is <i>great</i>, I'm saying I'm not <i>ashamed</i> anymore. People with a harsh inner critic understand what a hurdle that is. <br></p>
<br>
<p>I'm going to take this somewhat professionally (I mean, I'm no business suit avatar "no offers under 100k" person), so I have a release schedule and content mix and everything. I'll get back on social media, too. All that pandemic news was hard to look at, but I miss seeing other people's projects and meeting fellow devs. My Twitter is @lilchimchooree, and I'll get on Mastodon, too. Twitter is big, but it has so many problems. <br></p>
<p>I'm going to take this somewhat professionally (I mean, I'm no business suit avatar "no offers under 100k" person), so I have a release schedule and content mix and everything. I'll get back on social media, too. All that pandemic news was hard to look at, but I miss seeing other people's projects and meeting fellow devs. My Twitter is @lilchimchooree, and I'll get on Mastodon, too, because we all know Twitter has so many issues. <br></p>
<br>
<p>So please bookmark and visit every other Thursday (US time) for new articles! Also, message me on social media. I don't mind chatting. <br></p>
<br>
@ -24,27 +24,27 @@ july 28, 2022<br>
<br>
<p>First, I'm going to have embedded HTML5 applications. I'm not waiting for Blessfrey's first demo to do that, either. I'm making gamejam projects, prototypes, anything interesting, and slapping them right on the website. After all, a gamedev website should have games! <br></p>
<br>
<p>Second, I'm going to share programming <i>and</i> fashion projects. I used to have a separate fashion portfolio and a few blogs, but I was always struggling to match the guidelines for online content. It's more freeing to give myself a blank section of my general portfolio and a tenth of the blog to fill however I want. Some fashion designers like <a href="https://www.kennethdking.com/">Kenneth D. King</a> don't even organize their ideas into seasonal collections. The industry as a whole is reconsidering rigid expectations, experimenting with replacing in-person runway shows with alternatives like direct meetings with the press, lookbooks of fashion photography, and short art films. Why shouldn't a fashion blogger re-evaluate her portfolio, too? <br></p>
<p>Second, I'm going to share programming <i>and</i> fashion projects. I used to have a separate fashion portfolio and a few blogs, but I was always struggling to match the guidelines for online content. It's more freeing to give myself a blank section of my general portfolio and a tenth of the blog to fill however I want. Some fashion designers like <a href="https://www.kennethdking.com/">Kenneth D. King</a> don't even organize their ideas into seasonal collections. The industry as a whole is reconsidering rigid expectations, replacing in-person runway shows with alternatives like direct meetings with the press, lookbooks of fashion photography, and short art films. Why shouldn't a fashion blogger re-evaluate her portfolio? <br></p>
<br>
<p>
<p>Best practice says to be an SEO zombie laser-focused on a niche, but that conflicts with my own needs. I develop websites, games, programming projects, fashion projects, interior design projects, pixelart, writing, and more, and people in my life ask to see them. I want to work for actual people, not an algorithm. <br></p>
<br>
<h2>technical journey </h2>
<p>Blessfrey.me's needs are fairly simple - some static pages and a blog page. Blogging platforms are overkill for my purposes, and all those unused features would bog down the website at best and contribute to security vulnerabilities at worst. So I write and maintain this site from scratch. <br></p>
<p>Blessfrey.me's needs are fairly simple - some static pages and a blog page. Blogging platforms are overkill for my purposes, and all those unused features would bog down the website at best and contribute to security vulnerabilities at worst. Also, they tend to collect private user information, and I don't want to be responsible for that right now. So I write and maintain this site from scratch. <br></p>
<br>
<p>It's plain fun to write my own platform. Besides, it just makes sense for my programming portfolio to be something I programmed. <br></p>
<br>
<p>I always thought PHP developers were so cool as a kid, so Blessfrey.me was originally written in PHP. That didn't last long. I could compare pros and cons, but PHP was unenjoyable to maintain. <a href="https://www.php.net/manual/en/">Its documentation</a> is crazy, though. Each page has a comment section with 19-year-old posts criticising the language. So bizarrely negative and <i>old</i>! <br></p>
<p>I always thought PHP developers were so cool as a kid, so Blessfrey.me was originally written in PHP. That didn't last long. I could compare pros and cons, but PHP was too unenjoyable to maintain. <a href="https://www.php.net/manual/en/">Its documentation</a> is crazy, though. Each page has a comment section with 19-year-old posts criticising the language. So bizarrely negative and <i>old</i>! <br></p>
<br>
<p>Now I use <a href="https://bottlepy.org/docs/dev/">Bottle</a>, a Python micro web-framework, its built-in template engine <a href="https://bottlepy.org/docs/dev/stpl.html">SimpleTemplate</a>, and raw HTML and CSS. It's deployed using <a href="https://docs.docker.com/language/java/deploy/">Docker</a>. Anything's more fun if I get to use Python. <br></p>
<br>
<h2>plans for the future </h2>
<p>The website has plenty of room for improvement. It looks pretty wonky on mobile and tablets, and I've only been testing in Firefox and Chrome-based browsers. It's functional and has a decent amount of content, though, so I'd say it's a-okay to take out of maintenance mode for now. <br></p>
<br>
<p>Next I'm going to work with every resolution I can get my hands on and iron out the code. Each page is wordy and unstructured, but I'll rein them in soon. I'll also properly implement my character database, so I don't have to use clunky Toyhouse anymore. <br></p>
<p>Next I'm going to work with every resolution I can get my hands on and iron out the code. Each page is wordy and unstructured, but I'll rein them in soon. I'll also properly implement my character database, so I don't have to use clunky <a href="https://toyhou.se/abbey">Toyhouse</a> anymore. <br></p>
<br>
<h2>let's appreciate what we have! </h2>
Don't go through the motions. If you have anything super cool like a website, don't just use it how you're "supposed" to use it. Put your stuff to work and have fun! <br></p>
<p>Don't go through the motions. If you have anything super cool like a website, don't just use it how you're "supposed" to use it. Put your possessions to work and have fun with them! <br></p>
<br>
<br>
Last updated July 28, 2022 <br>

@ -0,0 +1,117 @@
<!--221006,220825-->
<h1>church girls + animal parade: a collection in two parts </h1>
july 28, 2022<br>
#fashion #capsule-wardrobe #collection <br>
<br>
<p>The pandemic drags everything out, so these two collections run together. <br></p>
<img src="/static/img/ent/everythingscomingtogether_home.png" alt="(screenshot: Blessfrey homepage)"><br>
<br>
<h2>two in one </h2>
<p>I need new clothes for myself.
he two themes belong together. Meditating over the introspective and the expressive, hiding away and being open, the old and the new. They come bundled with transformational passages of Scripture.
he two themes belong together. Meditating over the introspective and the expressive, hiding away and being open, the old and the new. They come bundled with transformational passages of Scripture.
The pandemic drags everything out, so these two run together. <br></p>
<br>
<h2>church girls </h2>
<p><p><b>Church girls</b> comes from my personal apparel history. Growing up, most of my clothes were the older girls from church's castaways. I retained a majority hand-me-down wardrobe through my post-graduation internship. I never felt embarrassed about it. Actually, I enjoyed looking unique, wearing nothing you could buy in a store. One lady told me I looked like I was from a different era. (Insult maybe, but I loved that.) Other hand-me-downs became so old they were once again on the cusp of a trend. <br></p>
<br>
<p>Many of my hand-me-downs were banished to the back of the closet as I got to buy my own clothes and participate in street fashion for the first time on a college campus. My outfits got very dainty with sheer and uncomfortable fabrics, complex layering, and a general lack of practicality. The pandemic knocked that out of me quickly, and I retreated back into my old, floppy, cotton hand-me-downs and stolen t-shirts from my husband. This time with the clothes, I was older and more aware of things. They became a symbol of neglect and pity. None of them were chosen by me or my parents, and many were from people I barely knew. I was well-dressed for the depressive, disassociative state of the world. <br></p>
<br>
<p>When the town began to open back up, I had a reason to dress up again but saw nothing both exciting and comfortable. Most of the clothes I made had been given away or broken down into scraps. I hadn't sewn for myself in ages anyway. My last set of hand-me-downs were starting to deteriorate beyond repair. Left with some chiffon blouses and rayon skirts, it was finally time to sew and dress for me again. <br></p>
<br>
<p>Church girls's theme is finding appreciation again for the anachronistic, cultural melting pot of my old hand-me-down wardrobe. There are clothes from the 00s, 90s, and proper vintage eras; from American families but also Mexican and Panaman families; and from mass retail, luxury, and home seamstresses. Also, they aren't just stuff that looked good in a store - they are care items that were set aside for me by people in my community. <br></p>
<br>
For the capsule collection, I immortalized my favorite old clothes as reverse-engineered patterns. With the original garments, I am creating clothes that are finally <i>me</i> but flavoring them with discordant sources of inspiration and sentimentality. I take each design's name from scattered memories. <br></p>
<br>
<h2>animal parade </h2>
<img src="/static/img/fash/churchgirls+animalparade/hikari.png" alt="(screenshot: Hikari)">
<div class="caption">(Hikari from Harvest Moon: Animal Parade, snapped from a <a href="https://www.youtube.com/watch?v=bNi5A047aoo&list=PLqNTe2pSF5Fr3JdFjksSbq0p4KtbcL9Fz">NaViナビ YouTube video</a>)</div>
<p>I wasn't prepared to unlock a 00s fashion time capsule when I found a copy of <b>Animal Parade</b>. It's not like Hikari epitomizes the era and I never liked that style back then, but her cami layered over a basic tee and bulky cargo pockets has a hold over me. It's a mix of fresh and nostalgic. It brought to mind some of the silly and hyper-girly outfits Hillary Duff wore. She wore layers and comfy cottons all the time, too. Maybe people would cringe at her old outfits, but they were undeniably fun. <br></p>
<br>
<p>Pre-AP, I wore camis and biker shorts for modesty under fussy chiffons. My foundation was decidedly neutral. There's something expressive and carefree about wearing these purely functional elements on top and in cute colors. Even these 'boring' garments can be special. It was a line I needed to be led across in my life. This speaks to me in several different directions. Rejoice always. It's okay to be playful. Whatever you do, work heartily, as for the Lord. Even drudgery is an area for personal growth and exploration. I was sad for a long time, but seamstress's block has finally lifted.<br></p>
<br>
<p>The animal parade capsule collection is what Hikari is to me: individualism in each layer, joy in adding details, and amiable natural fibers. I name each design after significant animals in my life. <br></p>
<h2>let's appreciate what we have! </h2>
<p>Don't go through the motions. If you have anything super cool like a website, don't just use it how you're "supposed" to use it. Put your stuff to work and have fun! <br></p>
<br>
<br>
Last updated July 28, 2022 <br>
<br>
<br>
<hr>
<hr>
<p>The two themes belong together. Meditating over the introspective and the expressive, hiding away and being open, the old and the new. They come bundled with transformational passages of Scripture. <br></p>
<br>
<div class="verse">I will extol you, O Lord, for you have drawn me up
and have not let my foes rejoice over me.
O Lord my God, I cried to you for help,
and you have healed me.
O Lord, you have brought up my soul from Sheol;
you restored me to life from among those who go down to the pit.
Sing praises to the Lord, O you his saints,
and give thanks to his holy name.
For his anger is but for a moment,
and his favor is for a lifetime.
Weeping may tarry for the night,
but joy comes with the morning. <br></div>
<i>(Psalm 30:1-5)</i> <br>
<br>
<div class="verse">My beloved speaks and says to me: "Arise, my love, my beautiful one, and come away, for behold, the winter is past; the rain is over and gone. The flowers appear on the earth, the time of singing has come, and the voice of the turtledove is heard in our land. <br></div>
<i>(Song of Solomon 2:10-12)</i> <br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches2.png" alt="(image: a bomber jacket with a luminous light pink polyester and a gray, beige, and light brown lace, a bodice with a white bamboo viscose with pink cherry blossoms and blue birds, a kimono with black inky block batiste, a button-down short sleeve shirt with shank buttons, black piping, and a beetle print, and a mock turtleneck with thumbholes and a metallic foil knit)">>
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches2.png" alt="(image: a bomber jacket with a luminous light pink polyester and a gray, beige, and light brown lace, a bodice with a white bamboo viscose with pink cherry blossoms and blue birds, a kimono with black inky block batiste, a button-down short sleeve shirt with shank buttons, black piping, and a beetle print, and a mock turtleneck with thumbholes and a metallic foil knit)">
</a><br>
<b>Bomber</b>: 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 <a href="https://www.ebay.com/itm/124967194636?hash=item1d18a0100c:g:1K8AAOSw7PdhctB3">BB Dakota design</a>. This one is a shiny pink polyester (a lustrous 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. <br>
<br>
<b>Bodice</b>: 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. <br>
<br>
<b>Kimono</b>: 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! <br>
<br>
<b>泣き虫 (Cry Bug)</b>: 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. <br>
<br>
<b>Mock Turtle</b>: There's three light mock turtlenecks. This is my favorite staple, but I lost my charcoal gray one 2 moves ago. (RIP) One will be a foil knit with thumbholes, one is a striped knit, and one is a 4x2 rib knit. <br>
<br><br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches1.png">
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches1.png" alt="(image: A mock turtleneck with gray and white horizontal striped tissue knit, a mock turtleneck with 4x2 black rib knit, pants with seagrass green, brown, and tan plaid linen, a pair of shorts with natural linen with white, lime, and orange stripes and a multicolor fringe ribbon in mint, baby pink, brown, neon coral, baby blue, and straw, and a pair of cuffed shorts with a bow belt in dragon fruit printed linen.)" width="500">
</a><br>
<b>Pants</b>: 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. <br>
<br>
<b>Shorts</b>: 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. <br>
<br><br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches3.png">
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_sketches3.png" alt="(image: a one piece long sleeve swimsuit with a mock turtleneck, an obi belt, three ruffles over the hips, and shorts, a yukata-style pajama set with bishop sleeves and berry red piping and dawn blue jacquard, and a pajama set with gathered sleeves, a gathered empire-waisted top, and gathered shorts with a sailor color and oversized rick rack trim and dark blue jacquard fabric with white bow print. )" width="500">
</a><br>
<b>Swimsuit</b>: 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. <br>
<br>
<b>Pajama sets</b>: 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 <a href="https://store.shopping.yahoo.co.jp/open-clothes/xkunken-aihyx401.html?sc_i=shp_pc_search_itemlist_shsrg_img">Japanese-style yukata-style long sleeve pajama set for spring and fall</a> from <a href="https://store.shopping.yahoo.co.jp/open-clothes/">OPEN-CLOTHES</a> and <a href="https://store.shopping.yahoo.co.jp/kittyshop/lh20051312.html">summer pajama set for ladies in their 20s with flared collar and cute short sleeves</a> from <a href="https://shopping.geocities.jp/kittyshop/">kittyshop</a>.) 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 year-round 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. <br>
<br>
<h2>pattern-making and sewing so far</h2>
I'm working on the 泣き虫 button-down shirt first, but while waiting for the buttons to arrive, I went ahead and got one version of the mock turtleneck pattern done. <br>
<br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_nakimushi_pattern.png">
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_nakimushi_pattern.png" alt="(image: pattern pieces for the button-down shirt and a ruler and curve tool. )" width="500">
</a><br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_mockturtle_pattern.png">
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_mockturtle_pattern.png" alt="(image: pattern pieces for the button-down shirt and a ruler and curve tool. )" width="500">
</a><br>
I'm in the middle of sewing the button-down. The sleeves are cuffed and reinforced with interfacing (finally available again after the early pandemic mask-making frenzy) and decorated with the piping. Next, I'll set the sleeves in and work on the button placard. <br>
<br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/capsulewardrobe_nakimushi.png">
<img src="/static/img/fash/churchgirls+animalparade/capsulewardrobe_nakimushi.png" alt="(image: incomplete button-down shirt with disconnected sleeves. )" width="500">
</a><br>
<h2>designer</h2>
<p>I'm chimchooree! I love the full process of apparel construction, but pattern-making has always been my favorite. Like any designer, I view fashion in terms of defining the problem and solving it. The creative side of my designs are led by meaningful themes, selecting for having relevance to both the temporal and metaphoric season I'm in, diverse concepts to draw from, and a consistent core to tie everything together. <br></p>
<br>
<h3>design statement</h3>
<p>The best clothes might very well be the ones you already own. We are called to be good stewards of the earth, so I encourage you to have your clothes repaired, altered, or customized whenever possible. <br></p>
<br>
<p>But if I'm going to make new clothes, I'm going to design them to be irreplaceable. They will be thoughtfully designed and made with professionalism, personality, comfort, and durability in mind. I shoot for daywear that handles being thrown in a washing machine no problem, and try to keep my designs easy to alter. <br></p>

@ -0,0 +1,25 @@
<!--221006,220825-->
<h1>gaming journal: Oblivion </h1>
july 28, 2022<br>
#gaming <br>
<br>
<p>One of my most-played games by far <br></p>
<img src="/static/img/ent/everythingscomingtogether_home.png" alt="(screenshot: Blessfrey homepage)"><br>
<br>
<h2>Gallery </h2>
<div class="gallery">
<img src="/static/img/ent/oblivion_akavir.png" alt="(screenshot: my dunmer girl wearing a kimono and the Madstone in Akavir)"><br>
<img src="/static/img/ent/oblivion_cathedral.png" alt="(screenshot: cathedral lights at night)"><br>
<img src="/static/img/ent/oblivion_inn.png" alt="(screenshot: Martin and my breton girl watching the rain from their room at the inn)"><br>
<img src="/static/img/ent/oblivion_jeanne.png" alt="(screenshot: my breton girl and Jeanne in their favorite dresses)"><br>
<img src="/static/img/ent/oblivion_martin.png" alt="(screenshot: Martin spending time with the Blades)"><br>
<img src="/static/img/ent/oblivion_unicorn.png" alt="(screenshot: my breton girl riding a unicorn through the woods)"><br>
</div>
<p>Some advice I've heard for gamedevs is to actively journal while playing games. The goal is to try to see from gamedev and player eyes simultaneously and learn from risks taken, get inspired, and generally gain exposure to the medium. <br></p>
<br>
<h2>let's appreciate what we have! </h2>
Don't go through the motions. If you have anything super cool like a website, don't just use it how you're "supposed" to use it. Put your stuff to work and have fun! <br></p>
<br>
<br>
Last updated July 28, 2022 <br>
<br>

@ -0,0 +1,52 @@
<!--220728,220811-->
<h1>artfight 2022: team bloom </h1>
august 25, 2022<br>
#personal #artfight #art <br>
<br>
<h2>what's artfight? </h2>
<b>Artfight</b> is an online art game every July. You post profiles for your original characters then go off browsing to find someone else's character to draw. Everyone's sorted into teams and each "attack" or drawing is valued for a certain number of points, so one side wins at the end of the event. You don't get anything for winning, and people game the system so bad that it's hard to even care about the competitive side of the site. <br></p>
<br>
<p>It's more fun to approach the game with your own personal challenge. I know a lot of people try a new style or technique during this month, like my friend trying single-layer digital paintings. My personal approach this year is thematic. I'm drawing cute couples! I don't usually draw boys, so it's a good compromise if his girlfriend will be in the frame, too. Also, more characters per attack = more points! <br></p>
<br>
It's a huge community, so at least a few people are bound to draw your characters, which is such a fun surprise when it happens. Some people like to make art in return for people who attack them, too, as thanks. Their discord is probably the best place to get attention, but it's intimidatingly fast for me. <br>
<br>
<h2>my attacks </h2>
<p>These are the characters I drew. <br></p>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess.png" alt="(pixelart: Sano Amaterasu in a lupine field, playing her harp.)"><br>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess_big.png" alt="(pixelart: same but larger size)"><br>
My pixelart of Lune_Archon's Sano Amaterasu, a horned goddess with her harp. (75x75px, 45 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf.png" alt="(pixelart: Aisu, a blue winged man in a sweater standing behind his seated blonde wife with a pink shirt.)"><br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of Skye_0723's Aisu and Luna Starleaf, a winged warrior and his druid wife who can turn into a pink unicorn. (163x157px, 79 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char.png" alt="(pixelart: Brody, a scruffy fisherman sitting on a bench with his anthro shark girlfriend Char.)"><br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of EmmArrGus's fisherman Brody and his shark girlfriend Char. (150x123px, 54 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl.png" alt="(pixelart: a fluffy pink dragon girl named Lilac.)"><br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of BlackReshiram's Lilac, a fluffy pink dragon girl. (51 colors) <br>
<br>
<h2>my defenses </h2>
<p>These are my characters, drawn by other people. <br></p>
<img src="/static/img/ent/AF22_CawfeeCakes_Abbey_Rune_sadlittleguy.png" alt="(image: a bust of a sad Rune in a dark hoodie)"><br>
CawfeeCakes's bust of Rune. He's so sad, he's droopy! <br>
<br>
<img src="/static/img/ent/AF22_Lune_Archon_Abbey_TessaSkyeStMartin.jpeg" alt="(image: Tessa with a vampy lip!)"><br>
Lune_Archon's bust of Tessa with a vampy lip! <br>
<br>
<img src="/static/img/ent/AF22_BlackReshiram_Abbey_floofdrago.png" alt="(image: Abbey in an adorable style!)"><br>
BlackReshiram's illustration of Abbey in an adorable style! <br>
<br>
<br>
<h2>do you recommend this game? </h2>
<p>It's one of the more fun art communities these days. A lot of communities have turned completely business-minded or are littered with off-topic content. Artfight, however, is necessarily interactive and collaborative, more like how art communities felt in the 10s. I try to play every year to motivate myself to draw more, especially things outside my comfort zone of cute girls. <br></p>
<br>
<p>This community has a lot of overlap with Toyhouse and Tumblr, though, so don't be surprised if you keep running into massive text walls of character permissions and "original character donut steal" warnings. There's also a wide range of ability. I see everything from grainy photos of lined paper to Tearzah copycat artists to university illustration students. It feels like old DeviantART in that respect. <br></p>
<br>
<p>You should know that the servers reliably crash during the first week of July every year, so if you do want to play, prepare during June. Upload a few characters and their reference pictures, find targets you'd like to draw, and save their usernames and reference pictures. Even if the servers crash, you've got everything you need for a few days. <br></p>
<br>
<br>
Last updated June 4, 2022 <br>
<br>

@ -1,39 +0,0 @@
<!--221006,220825-->
<h1>everything's coming together: a new website </h1>
july 28, 2022<br>
#webdev <br>
<br>
<p>Everything's coming together. I've been learning a lot, and I'm finally ready to share my work. <br></p>
<img src="/static/img/ent/everythingscomingtogether_home.png" alt="(screenshot: Blessfrey homepage)"><br>
<br>
<h2>new website, new me </h2>
<p>Blessfrey.me is my online portfolio and design blog. I've been using it privately (or at least as privately as anything can be online) to practice webdev and biweekly blogging. <br></p>
<br>
<p>The last time I did any webdev was back when every website had custom HTML+CSS profiles, so I'm kind of stunned by how far the technology has come along, both in terms of capability and ease of implementation. Man, I wish I could have used the CSS grid to lay out my old petsite pages! I feel up to speed now, though. My confidence in maintaining and upgrading my website is solid. Same for writing articles. They're at a good length, level of organization, and readability. <br></p>
<br>
<p>Of course, I'm not saying Blessfrey.me is <i>perfect</i>, I'm saying I'm not <i>ashamed</i> anymore. <br></p>
<p>I've had a mostly solid horizontal slice of Blessfrey ready for a while, and this cycle of system revamps is finally able to support the sophistication of content I want. When I finish this iteration of skill systems and AI, I will be ready to make a real demo release of Blessfrey! <br></p>
<br>
<p>I don't know why it never occurred to me that I don't have to hold back my website waiting on that demo, though. Releasing and publishing is an important skill in itself. I threw together No-Legs the Cat in a few hours, exported it, hosted it on <a href="https://chimchooree.itch.io/legless-the-cat">itch.io</a>, and embedded what is currently the crown jewels of my website. Finally! I have a gamedev website with a playable game on it. <br></p>
<img src="/static/img/ent/everythingscomingtogether_no-legsthecat.png" alt="(No-Legs the Cat screenshot: Poltics Cat finds a bowl of breakfast in the maze)"><br>
<p>All this time, my website maintenance skills have been getting stronger. I have a years' worth of content as a buffer. My artist's block has dissipated for the first time in years, and I actually <i>enjoy</i> drawing concept art and character designs again. I've also spent a year trying different languages and frameworks and improving across the board. The website's already a night and day difference from old versions, and I finally feel comfortable with where it's at. <br>
<br>
<h2>changes </h2>
<p>This is <i>my</i> website, so I might as well use it however I want. If I have a website, I shouldn't have to rely on anyone else for image hosting or digital content presentation. There's no reason for me to have to pull up my phone all the time to show people what I'm working on. Blessfrey.me can take care of all of that for me. <br></p>
<br>
<p>From now on, I'll post fashion content here. I used to have a separate online portfolio for it and tried a separate blog from that once, but I was always struggling to fit into standard formats. Giving myself a blank section of my general portfolio to structure however I want is freeing. Some fashion designers like <a href="https://www.kennethdking.com/">Kenneth D. King</a> don't even organize their ideas into seasonal collections. The industry as a whole is moving away from the rigid structure of in-person runway shows in lieu of directly meeting with the press, releasing lookbooks of fashion photography, and shooting short art films. Why shouldn't a fashion blogger re-evaluate her portfolio, too? Maybe I'll add a section for general art here, too, someday. Who knows? <br></p>
<br>
Maybe best practice is to stay laser-focused on a content niche, but I'm not an SEO zombie. I develop websites, games, programming projects, fashion projects, interior design projects, pixelart, writing, and more, and they all deserve some web real estate. Maybe later, I can work with clients through here, too, but that is a dream for the future. For now, I'm keeping everything Web 1.0. The security is <i>so</i> much easier that way. <br></p>
<br>
<h2>plans for the future </h2>
<p>That isn't to say the website's perfect as it! It looks pretty wonky on mobile and tablets, and I've only been testing in Firefox and Chrome-based browsers. It's functional and has a decent amount of content, though, so I'd say it's a-okay to take out of maintenance mode for now. <br></p>
<br>
<p>Next I'm going to work with every resolution I can get my hands on and refactor my code a little. Also, I have a different vision for the formatting of most pages. The demo and fashion pages could definitely be broken into pieces. There should probably ultimately be a separate, permanent page for each HTML5 application. I also like having not just my Blessfrey characters but all my ocs here. It's like Toyhouse, but the price of custom CSS is already included in server costs. If nothing else, it'll be nice for when Artfight's sputtering. <br></p>
<br>
<h2>let's appreciate what we have! </h2>
Don't go through the motions. If you have anything super cool like a website, don't just use it how you're "supposed" to use it. Put your stuff to work and have fun! <br></p>
<br>
<br>
Last updated July 28, 2022 <br>
<br>

@ -1,52 +1,73 @@
<!--220728,220811-->
<h1>artfight 2022: team bloom </h1>
august 25, 2022<br>
#personal #artfight #art <br>
<!--201001,201112-->
<h1>coroutines in godot engine </h1>
september 17, 2020<br>
#coroutines #godot #programming<br>
<br>
<h2>what's artfight? </h2>
<b>Artfight</b> is an online art game every July. You post profiles for your original characters then go off browsing to find someone else's character to draw. Everyone's sorted into teams and each "attack" or drawing is valued for a certain number of points, so one side wins at the end of the event. You don't get anything for winning, and people game the system so bad that it's hard to even care about the competitive side of the site. <br></p>
<b>Coroutines</b> are functions that, instead of running to completion, can yield until certain criteria are met. Godot Engine supports coroutines through <a href="https://docs.godotengine.org/en/stable/classes/class_@gdscript.html#class-gdscript-method-yield"><b>yield</b> ( Object object=null, String signal="")</a>, <a href="https://docs.godotengine.org/en/stable/classes/class_gdscriptfunctionstate.html#class-gdscriptfunctionstate-method-resume"><b>resume</b></a>, and the <a href="https://docs.godotengine.org/en/stable/classes/class_gdscriptfunctionstate.html"><b>GDScriptFunctionState</b></a> object.<br>
<br>
<p>It's more fun to approach the game with your own personal challenge. I know a lot of people try a new style or technique during this month, like my friend trying single-layer digital paintings. My personal approach this year is thematic. I'm drawing cute couples! I don't usually draw boys, so it's a good compromise if his girlfriend will be in the frame, too. Also, more characters per attack = more points! <br></p>
<h2>why use a coroutine? </h2>
<br>
It's a huge community, so at least a few people are bound to draw your characters, which is such a fun surprise when it happens. Some people like to make art in return for people who attack them, too, as thanks. Their discord is probably the best place to get attention, but it's intimidatingly fast for me. <br>
Coroutines allow for scripted game scenarios that respond dynamically to the player and the changing game world. They let you bounce between functions, step-by-step, and respond to interruptions. This means functions can be automatically called at the completion of other functions, animations, player actions, in-game events, or timers. Add in interruptions and conditionals, and you have a tool for building a responsive game world. <br>
<br>
<h2>my attacks </h2>
<p>These are the characters I drew. <br></p>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess.png" alt="(pixelart: Sano Amaterasu in a lupine field, playing her harp.)"><br>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess_big.png" alt="(pixelart: same but larger size)"><br>
My pixelart of Lune_Archon's Sano Amaterasu, a horned goddess with her harp. (75x75px, 45 colors) <br>
<h2>stoplight example </h2>
<br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf.png" alt="(pixelart: Aisu, a blue winged man in a sweater standing behind his seated blonde wife with a pink shirt.)"><br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of Skye_0723's Aisu and Luna Starleaf, a winged warrior and his druid wife who can turn into a pink unicorn. (163x157px, 79 colors) <br>
As a basic example of coroutines in Godot Engine, I made a stoplight. Follow along with my code on <a href="https://gitlab.com/chimchooree/stoplight">GitLab</a>. <br>
<br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char.png" alt="(pixelart: Brody, a scruffy fisherman sitting on a bench with his anthro shark girlfriend Char.)"><br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of EmmArrGus's fisherman Brody and his shark girlfriend Char. (150x123px, 54 colors) <br>
In my example, the light changes every few seconds, going from green, yellow, then finally red. The light changes immediately if the Walk Button is pressed. This project demonstrates methods that can wait, resume, and be affected through player action. <br>
<br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl.png" alt="(pixelart: a fluffy pink dragon girl named Lilac.)"><br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of BlackReshiram's Lilac, a fluffy pink dragon girl. (51 colors) <br>
<center>
<a target="_blank" href="/static/img/ent/stoplight_demonstration.gif">
<img src="/static/img/ent/stoplight_demonstration.gif" alt="(gif: demonstration)" width="500" height="281.67">
</a><br>
</center>
<br>
<h2>my defenses </h2>
<p>These are my characters, drawn by other people. <br></p>
<img src="/static/img/ent/AF22_CawfeeCakes_Abbey_Rune_sadlittleguy.png" alt="(image: a bust of a sad Rune in a dark hoodie)"><br>
CawfeeCakes's bust of Rune. He's so sad, he's droopy! <br>
<h2>how does it work? </h2>
<br>
<img src="/static/img/ent/AF22_Lune_Archon_Abbey_TessaSkyeStMartin.jpeg" alt="(image: Tessa with a vampy lip!)"><br>
Lune_Archon's bust of Tessa with a vampy lip! <br>
<h3>node hierarchy </h3>
<br><center>
<img src="/static/img/ent/stoplight_nodehierarchy.png" alt="(image: node hierarchy - Root is a node named Main. It's children are TextureRect BG, AnimatedSprite Stoplight, Sprite WalkButton, and a Label. Stoplight's child is a Sprite. WalkButton's child is a TextureButton.)"><br>
</center>
<br>
<img src="/static/img/ent/AF22_BlackReshiram_Abbey_floofdrago.png" alt="(image: Abbey in an adorable style!)"><br>
BlackReshiram's illustration of Abbey in an adorable style! <br>
I have a TextureRect background, an AnimatedSprite stoplight, a Sprite walk button with a TextureButton, and a label for displaying a timer. Since this is a simple example, most of the code is attached to the root. It's better to have code closer to where it's being used and to watch your separation of concerns in real projects, though. <br>
<br>
<h3>animation</h3>
<br>
<h2>do you recommend this game? </h2>
<p>It's one of the more fun art communities these days. A lot of communities have turned completely business-minded or are littered with off-topic content. Artfight, however, is necessarily interactive and collaborative, more like how art communities felt in the 10s. I try to play every year to motivate myself to draw more, especially things outside my comfort zone of cute girls. <br></p>
<center>
<img src="/static/img/ent/stoplight_animationframes.png" alt="(image: the AnimatedSprite Stoplight has 4 animations - default (which is no light), green, red, and yellow.)"><br>
</center><br>
The light is changed by setting its animation to one of these options. Each is one-frame - just the stoplight with the one or none of the lights colored in. <br>
<h3>the code </h3>
<br>
<p>This community has a lot of overlap with Toyhouse and Tumblr, though, so don't be surprised if you keep running into massive text walls of character permissions and "original character donut steal" warnings. There's also a wide range of ability. I see everything from grainy photos of lined paper to Tearzah copycat artists to university illustration students. It feels like old DeviantART in that respect. <br></p>
This project has two scripts: Main.gd, which is attached to the root node, and Label.gd, which is attached to the Label. <br>
<br>
<p>You should know that the servers reliably crash during the first week of July every year, so if you do want to play, prepare during June. Upload a few characters and their reference pictures, find targets you'd like to draw, and save their usernames and reference pictures. Even if the servers crash, you've got everything you need for a few days. <br></p>
<b>Main.gd</b> - code available on <a href="https://gitlab.com/chimchooree/stoplight/-/blob/master/Main.gd">GitLab</a><br>
<center>
<img src="/static/img/ent/stoplight_main.png" alt="(image: Main script.)"><br>
</center>
<br>
<b>Label.gd</b> - code available on <a href="https://gitlab.com/chimchooree/stoplight/-/blob/master/Label.gd">GitLab</a><br>
<center>
<img src="/static/img/ent/stoplight_label.png" alt="(image: Label script.)"><br>
</center>
<br>
Last updated June 4, 2022 <br>
<h3>how the code works </h3>
<br>
At <code>_ready()</code>, <code>wait()</code> is assigned to the GDScriptFunctionState <code>result</code> and is called for the first color, green. <code>_ready()</code> yields until the given function <code>wait()</code> is completed. <br>
<br>
The wait method yields for the given amount of seconds then sets the stoplight to the given color. <br>
<br>
At <code>wait()</code>'s completion, <code>_ready()</code> calls <code>wait()</code> for yellow, then red. Each is called one at a time, waiting for the color to complete before moving on. <br>
<br>
<h3>interrupting the stoplight </h3>
<br>
The Wait Button interrupts the wait times between colors. Before <code>_ready()</code> yields, it connects the <code>'pressed'</code> signal on the Wait Button. <br>
If the Wait Button is clicked during <code>wait()</code>'s yield, the GDScriptFunctionState <code>result</code> resumes immediately, ignoring <code>wait()</code>'s yield timer. This time, <code>result</code> has a string arg <code>'interrupted on green'</code>, so it will print the result, change the stoplight's color, then print <code>'done: green'</code>. The <code>wait</code> method is complete, so <code>_ready()</code> resumes and calls <code>wait()</code> for the next color. <br>
<br>
<h2>applications </h2>
<br>
The outcomes in this example can be swapped out with anything. I use coroutines in Blessfrey's skills to manage the flow of phases from activation, different phases of effects, cooldown, and interactions with any counters. I also use it in the basic weapon attack so the character continuously swings at the rate of his attack speed until he cancels, uses a skill, or moves. It could also be used for something like cars that stop and honk when the player walks in front of them then drive off once the path is clear. <br>
<br>
Coroutines enable lots of practical ways to improve the flow and interactivity of your game, so just keep experimenting. <br>
<br>
Last updated June 8, 2021 <br>
<br>

@ -1,54 +1,40 @@
<!--210218,210107-->
<h1>designing an achievement system (part 2) </h1>
april 2, 2021<br>
#gamedev #gamedesign #achievements <br>
<br>
<p>Designing an achievement system without any octopus tangles. <br></p>
<img src="/static/img/ent/rpgachievement_octopus.png" alt="(illustration: an octopus tangling up UI, Dialog, and other game systems.)"> <br>
<h2>a trusty mailman </h2>
<p>Octopus-tangling is a major design concern for a system that is so interconnected with every other system. I could scatter achievement code through every other system, but that would be a problem if I ever need to make a fundamental change to the achievement system. Also, tacking achievement code everywhere will make the other systems cluttered. <br></p>
<br>
<p>Instead, Blessfrey's achievement system is broken into three main, self-contained pieces: event handlers, the Knowledge Base, and the MessageBus. <br></p>
<br>
<p>Let's define the terms: <br></p>
<br>
<ul>
<li><b>knowledge:</b> each granular action or world event that contributes to earning an achievement </li>
<li><b>key:</b> an id number that identifies a piece of knowledge </li>
<li><b>topic:</b> just arrays of keys; used to categorize knowledge into groups </li>
<li><b>event handlers:</b> they subscribe to topics, waiting for news that a specific piece of knowledge has been encountered </li>
<li><b>Knowledge Base:</b> a singleton that stores all knowledge and facilitates the learning and forgetting of pieces of knowledge. <li><b>MessageBus:</b> a singleton that acts as a mailman; receives information about encountered knowledge and passes it off to all event handlers subscribed to that topic. </li>
<!--200917,201112-->
<h1>inventory as a system diagram </h1>
january 7, 2021<br>
#design #systemdiagram #gamemechanics<br>
<br>
<b>System diagrams</b> illustrate how components interact within a system. It saves so much headache to step back and plan with a system diagram before jumping into code. <br>
<br>
<br>
<h2>stop + plan before coding </h2><br>
I want to move blessfrey's inventory into an app on the player character's smartphone. Before, it was displayed in a random pop-up window. It was poorly planned, so the programmatic inventory and the UI were too tightly coupled to easily pop into the phone screen. Instead of wrestling, it's easier to start over and actually plan before I code this time. <br>
<br>
<br>
<h2>list out your nouns </h2><br>
A simple way to start thinking about a system is to list out its nouns + verbs. Jot down the entities that interact with your system. <br>
<br>
<center><img src="/static/img/ent/systemdiagram_inventory.jpeg" alt="(image: system diagram for inventory)" width="500" height="250"></center> <br>
<br>
For blessfrey's inventory, that's the inventory (programmatic), the player character, the inventory app (UI), and base items. The inventory app is related to the smartphone and inventory items. Items are related to floor items, which are related to rooms. <br>
<br>
(blessfrey has three different kinds of items. <br>
<br><ul>
<li><b>Base Item</b>: holds all the data regardless of how the item is currently expressed </li>
<li><b>Floor Item</b>: sits on the ground and gets picked up by characters. </li>
<li><b>Inventory Item</b>: displayed in inventories, store windows, containers, etc </li>
</ul><br>
<p>Essentially, there is a database that stores all the achievements in the game, alongside a boolean value for locked or unlocked and some contextual information such as when they were unlocked. There are event handlers that wait for events to happen to unlock achievements and event handlers that wait for unlocked achievements to pay out rewards. Every event is filtered through the MessageBus and sent out to the relevant entities. This way, the only achievement code scattered everywhere are single MessageBus.subscribe("topic") lines. <br></p>
<br>
<h2>an example</h2>
<p>Let's say you get an achievement for finding the Nurse's Office. The moment the player loads into the Nurse's Office, data will zip back and forth between the MessageBus and the nurse's office object, different event handlers and the Knowledge Base. <br></p>
<a target="_blank" href="/static/img/ent/rpgachievement_KnowledgeBaseDiagram.png">
<img src="/static/img/ent/rpgachievement_KnowledgeBaseDiagram.png" alt="(diagram: a zigzagging depiction of the list below.)">
</a><br>
<ol>
<li>(Event Handler) At ready, event handlers call the MessageBus and subscribe to topics. </li>
<li>(Nurse's Office) The player enters the Nurse's Office. The room object sends itself to the MessageBus. </li>
<li>(MessageBus) Receives room object + sends it to all event handlers subscribed to the "place_entered" topic. </li>
<li>(Event Handler) NursesOfficeEntered receives room object. If the room is the Nurse's Office, send its corresponding knowledge key to the MessageBus. It can also verify pre-requisites and gather additional data for the Knowledge Base. This way, the system supports anything I'd like to track about when or how knowledge was learned. </li>
<li>(MessageBus) Receives the knowledge key + sends it to the Knowledge Base. </li>
<li>(Knowledge Base) Finds the knowledge identified by the incoming key. "Learns" by setting that knowledge to true and filling in additional fields if extra data was sent. Sends the knowledge key to the MessageBus. </li>
<li>(MessageBus) Receives the knowledge key + sends it to all "learned" event handlers. </li>
<li>(Event Handler) KnowledgeLearned receives the knowledge key + calls code for any changes resulting from learning this knowledge. Maybe you'll get a Steam achievement, but if the Knowledge Base was being to facilitate game progression, a quest could update, the dialog system could unlock the option to ask about the Nurse's Office, or you could gain a Codex entry about the new location. The changes can be conditional, too, so the handler can track whether all necessary keys have been received before enacting the change. </li>
</ol><br>
<br>
<p>To use the achievement system for cyclical world events, you could trigger knowledge to be "forgotten" or ultimately set back to false in the Knowledge Base. This way, the phases of an event could begin anew. <br></p>
<br>
<br>
<h2>summary</h2>
<p>Achievements can come from any combination of in-game actions, so an achievement system should be designed separately from the rest of the game. I achieve this through a couple of separate objects. <br></p>
<br>
<ul>
<li>Event Handlers: The tracking, verifying, and reward payout should be contained within event handlers, which can be generated and freed as needed. They subscribe to general topics and wait for their specific event to occur. </li>
<li>The Knowledge Base tracks the status of all knowledge in the game and can be used to understand how far the player and world have progressed. </li>
<li>The MessageBus is very light and only allows event handlers to subscribe to topics and for incoming message to be transmitted through that topic. It has absolutely no unique checks or code to execute, impartially delivering mail to the address on the envelope. </li>
<li>Another set of event handlers is concerned about the outcome of encountering and learning knowledge and can prompt changes or directly impact other systems, depending on pre-requisites met. </li>
<br>
<br>
Last updated July 28, 2022 <br>
Floor + Inventory Items hold a base item inside them that gets popped out and traded around as the item gets expressed in different forms.) </br>
<br>
<h2>connect your nouns with verbs </h2><br>
I wrote the entities in pink and moved them around until the placement was decently readable. Then I connected the concepts with arrows. These arrows represent the verbs, which I explicitly labeled in yellow. <br>
<br>
The flow of these arrows can be very important. If you are modeling AI, for instance, no matter what path the program takes, there shouldn't be dead-ends. Seeing mistakes like that is easier with a diagram than lines of code. Otherwise, the flow is always generally useful for figuring out which methods are needed for each class and how they connect. <br>
<br>
<br>
<h2>write the code </h2><br>
At this point, coding is a bit easier now that it's in some ways a transcription of the diagram. The entities are data (classes or objects), and the arrows are logic (methods). <br>
<br>
<br>
<h2>conclusion </h2><br>
Your diagram doesn't have to be fancy or formal to get the point across to yourself, and it just takes a minute to save all the headache later. Don't skip this step or you'll have to rewrite the inventory system just to display it in a different window. <br>
<br>

@ -1,55 +1,33 @@
<!--210610,200429-->
<h1>skills aren't a manor; they're the DMV </h1>
april 7, 2022<br>
#gamedev #gamedesign #skill <br>
<!--220825,220728-->
<h1>no-legs the cat </h1>
august 11, 2022<br>
#game #no-legs-the-cat #godotengine #release<br>
<br>
<h2>designing on autopilot </h2><br>
Phases are necessary for skills to be reactive. For instance, take Blessed Purity: <i>Cure 2 poisons from target. Heal for 35 per poison removed</i>. So the Cure keyword comes first, and Heal cannot activate until the Cure phase resolves. To lay out these phases, I partially copied Guild War's skill effects without much thought: <a href="https://wiki.guildwars.com/wiki/Initial_effect">initial effect</a> -> main function (not sure if there's even a name for this) -> <a href="https://wiki.guildwars.com/wiki/End_effect">end effect</a>. Most keywords are thrown into the main phase, anything that needs to happen immediately goes in initial, and anything that happens at the end goes in the end. <br>
<p><b>No-Legs the Cat</b> is a 2D maze game featuring Poltics Cat! Help him find his legs! He can't move by himself, so scoot him around with the arrow keys. Don't forget to feed him all three breakfasts or he'll starve!! Go play it <a href="http://127.0.0.1:9001/demo">here</a> or on <a href="https://chimchooree.itch.io/legless-the-cat">itch.io</a>. <br></p>
<img src="/static/img/ent/everythingscomingtogether_no-legsthecat.png" alt="(No-Legs the Cat screenshot: Poltics Cat finds a bowl of breakfast in the maze)"><br>
<br>
Naturally, I had a lot of problems with flow. Some keywords (like Bleeding) can last up to half a minute, while others (like Attack) are executed instantly. When I let the skill run without breaks, the end effect executed long before earlier keywords finished up. When I forced keywords to execute one at a time, I had projectiles that awkwardly stuck around until an unrelated keyword timed out. <br>
<p>It's not much - just a demonstration to myself that I can export a game and embed HTML5 applications here. It runs pretty well locally, so we'll see how well it runs on the live server in my playtesters' browsers. I'm getting close to releasing the first minor demo for Blessfrey, so I'd really rather iron out all the kinks with a short and simple project first, you know? Dreading the day I have to handle serialization in the browser. <br></p>
<br>
It's time to actually turn my brain on and design with diagrams. <br>
<p>Have fun! More games coming soon. <br></p>
<br>
<h2>faq</h2>
<h3>who is poltics cat? </h3>
<img src="/static/img/ent/nolegsthecat_polticscat.png" alt="(photo: My pet orange kitty with an empty look on his face and legs tucked entirely under his body. He looks like a loaf of bread.)"><br>
<p>My kitty! <br></p>
<br>
<h2>building the skill like a manor</h2>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillManor.png">
<img src="/static/img/ent/skillsarentamanor_SkillManor.png" alt="(diagram: Imagine the entire skill is a manor. The main phase is the main building, while the initial and end phases are additional wings. Within each section are rooms (or keywords). The entry and exit point of the keyword room are conditional statements. The space between wings represents the arbitrary entry and exit points of phases.)">
</a><br>
If a skill was a manor, phases would be wings, keywords would be rooms, and doors would represent conditional statements. There are three main sections to stand in for the beginning, middle, and end. It makes sense if you don't really think about it. After all, the flow looks so clean and linear. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillManorFlow1200.png">
<img src="/static/img/ent/skillsarentamanor_SkillManorFlow1200.png" alt="(diagram: All initial keywords activate in order, the initial phase is complete, all main keywords activate, phase complete, same for end keywords and effect.)"></a> <br>
<p>It's just an inside joke. There was a guy who kept interrupting the political discussion channel by posting his pet, so I tried to imitate him with my own politics cat. Only I made a typo, and it stuck. <br></p>
<br>
<h2>criticism </h2>
The concept of a phase brings nothing to skills. In Blessfrey and even Guild Wars, "initial effect" and "end effect" are used more like conditions than integral structure. The majority of skills don't operate in phases anyway. <br>
<h3>where'd his legs go? </h3>
<p>Aren't cats cute when they sit like that? It's called "loafing." Kitty's so fluffy that his legs become totally hidden when he does that, and he just stares helplessly at us when we start heckling him. <br></p>
<br>
Worse, my careless implementation runs every keyword sequentially, undermining any distinction phases had. There's zero difference between putting Cure in initial or in the first line of main. <br>
<p>It looks like his legs are missing for real this time, though. He couldn't have gotten far without them, so they have to be somewhere in the maze. <br></p>
<br>
Some keywords need to know what skill they belong to, what skill other keywords belong to, and who their user and target are. The poorly understood flow of skills sometimes causes this information to be freed with the skill before it's needed. <br>
<h3>isn't one breakfast enough? </h3>
<p>I dunno, my cat is weird. He wants us to give him breakfast first thing in the morning, then again when we eat our own breakfast. It's still so early, it's like he eats two breakfasts. He doesn't care about food for the rest of the day. It's like the concept of lunch and dinner are completely foreign to him. He's a dishonest little guy, though, so he'll come to both my husband and me separately to beg for "second" breakfast. We're usually too smart for him, but I'd be lying if he hasn't bamboozled us into <i>three</i> whole breakfasts before. <br></p>
<br>
<h3>when are godot devs going to stop making everything out of the godot head? </h3>
<p>Probably never. <br></p>
<br>
It makes me wonder what a phase even is. I can't label the boundaries of the phase in the diagram because it's so arbitrary. Do skills need phases at all? <br>
<br>
Keywords already have all the structure they need built into them. Keywords lock their effect behind an entry condition (like curing a poison) and guard the exit with another condition (like a duration of 30 seconds). It would make more sense if end effect keywords instead listened for the resolution of given keywords, while all other keywords are free to fire off simultaneously. <br>
<br>
<br>
<h2>skills should feel like going to the DMV</h2>
DMVs in my life have been all-day affairs of standing in lines that stretch around the building through the bad part of town, attended by only one service desk. Honestly, that's not too far off from my original skill design. I'm not referring to <i>those</i> DMVs, though. The new DMV in town is much more efficient, lets you sit as you wait, and (novel concept) has multiple service windows. That's a much better model for my skills. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillDMV.png">
<img src="/static/img/ent/skillsarentamanor_SkillDMV.png" alt="(diagram: The skill's DMV has an entry point that leads to the welcome kiosk where each keyword must register its trigger and exit cue. All keywords wait in the same waiting room. Whenever the DMV calls a trigger (like health below 33%), that keyword will be actively served by a clerk until satisfied.)"> </a><br>
<br>
Since my "DMV" will be a separate entity from the skill (basically an <a href="https://www.blessfrey.me/diary/entries/210402">event handler</a>), it can preserve its data as long as needed, even after the main skill script dies. Flow is also more controlled, since the skill cannot progress its own current state. <br>
<br>
As for flow, obviously, skills without triggers can fire off immediately. The DMV will connect to the <a href="https://www.blessfrey.me/diary/entries/210402">KnowledgeBase</a> and begin listening for any event topics that would trigger the keywords. Once a keyword's conditions are met, it will become active and be applied to the target. The DMV also sets up a timer for its duration or listens for exit cues to know when to remove the keyword. Some keywords will never activate, but they will be freed once they had their chance. If Blessed Purity cures 0 poisons, heal will receive a sad "0" and die quietly. <br>
<br>
Under the DMV model, the skill's flow becomes more circular. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillDMVFlow1200.png">
<img src="/static/img/ent/skillsarentamanor_SkillDMVFlow1200.png" alt="(diagram: Each keyword registers triggers and exit cues with the DMV. The DMV subscribes to the topics and listens for triggers and exit cues. A trigger is received and conditions are met, so the keyword becomes active. The keyword is applied. The removal conditions are met, so the keyword is freed. The DMV continues to listen until all keywords had their chance to activate.)"></a> <br>
<br><br>
<h2>superior design? hopefully </h2>
Never thought I'd prefer the DMV, but you can learn design concepts from anywhere. This design is far more complex to implement, but it's the first design that allows me to build skills from conditional keywords that trigger simultaneously or in any particular order. I'll finally be able to add the skills I have in my head. It'll take a lot of time and work, but can't wait to get this up and running. <br>
<br>
Anyway, if you're doing anything on autopilot, especially designing the core mechanic of your game, stop immediately! A little foresight and I'd be leagues ahead by now. Or maybe not? Probably. <br>
<br>
<br>
Last updated April 7, 2022
Last updated July 21, 2022 <br>
<br>

@ -1,105 +1,52 @@
<!--210610,200429-->
<h1>gator swimsuit </h1>
october 20, 2022<br>
#fashion #swimwear #design-process #animalparade <br>
<br>
<h2>concept </h2>
<p>Gator is part of Animal Parade, a collection that emphasizes the individualism of clothing. Every garment should be valued and individualized, even basic undershirts, sleep masks, etc. <br></p>
<br>
<p>All the designs are named after important animals in my life. The swimsuit is named <i>Gator</i> because of the gator who lives in my subdivision. I've seen him during walks. Absolutely unnerving. <br>
<br>
<h2>design process </h2>
<p>I haven't had a swimsuit for years and never like any anyway. I browsed online catalogs in English and 日本語 and window-shopped everywhere in town, searching for both style and technical inspiration. I've never worked with active wear garments, so I studied the inside of nearly everything at Dick's Sporting Goods to understand the style elements, seams, and findings typical of swimsuits and active wear in general. I learned a lot but liked virtually nothing. <br></p>
<br>
<h3>1.5 piece </h3>
<p>The swimsuits that stood out to me were treading the line between one piece and two-piece. I can't find my old collage, but here's a quick one. Sorry for not remembering the source of the images. I iterated over the concept in sketches a little. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/collage.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/collage.png" alt="(collage: variety of swimsuits from online stores)">
</a><br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-twopiece.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-twopiece.jpg" alt="(sketch: a series of rough pencil croquis with different variations of two-pieces.)">
</a><br>
<p>Ideas: <br></p>
<ul>
<li>Connecting the top and bottom with interlocked tricot loops, criss-crossing over the belly and lower back. </li>
<li>Overlapping hanging petals of tricot over a tiered swim skirt. </li>
<li>Long-sleeve mock turtleneck shirt under a spaghetti strap wrap one piece</li>
<li>flowing panel under the bust line, worn over a tiered swim skirt</li>
<li>Ruched bodysuit worn under a structured balconette tank</li>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-chiffon.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-chiffon.jpg" alt="(sketch: realized version)">
</a><br>
<p>This is where the two-piece idea led. I like the sheer fabric in the central examples from the collage. I love texture, so all the ruching and gathers really stand out to me, too. I wonder how feasible it would be to make two "two-pieces" - one relatively basic bikini with a loop in the center front of the swim bottoms, and another sheer, pintucked overlay with a tricot panel peek-a-boo skirt that fastens onto the loop. The overlay is tiered in the back then parts around the sides until it fully exposes the midriff in the front. <br></p>
<br>
<p>I'm not sure tricot or mesh would be sturdy enough for pintucks, so I checked if chiffon swimwear is even a thing. It actually is! Plenty of chiffon sleeves and panels floating around out there. <br></p>
<br>
<p>I really like this design. The central fastener on the swim bottoms isn't like anything I've seen in stores. The suit's connected in enough places that it shouldn't become a shapeless bubble nor flap up and show too much skin underwater. I bet it'd be gorgeous to watch float and flow in the waves. <br></p>
<br>
<p>Unfortunately, pretty or not, I don't think it's practical. Chiffon is a dainty fabric, and swimming is not a dainty activity. I lean against brick and against concrete without babying my clothes. Chiffon isn't that comfortable to wear dry, and I cringe imagining soaking wet chlorine chiffon Saran-wrapped over my torso. Not to mention, I don't know how comfortable I am with a two-piece anyway? Body insecurities! <br></p>
<p>Back to the drawing board! <br></p>
<br>
<h3>made for me</h3>
<p>Instead of synthesizing the prettiest elements into one swimsuit, I should be synthesizing the most practical elements into one swimsuit. People who feel confident and comfortable in their clothes are the prettiest! <br></p>
<br>
<ul>
<li>I want less skin showing, but I want to feel the water on some part of my body. </li>
<li>I prefer the collage swimsuits with tiered swim skirts. Many "modest" swimsuits look like short bodycon dresses. I'm not insecure about my swimsuit being too short; I'm insecure about showing the world my lower abdomen! If the tiers are detached and start high, it obscures this area without looking frumpy. </li>
<li>Virtually every well-made sporting goods swimsuit (and almost every piece of male active wear for that matter) had raglan sleeves. This makes sense, since it's a sleeve that doesn't impede rotation of the shoulder, but I'm surprised it's raglan or bust for athletes. Guess I'll take note. <li>
<li>Mock turtlenecks are just the best. I have a long neck, so they look good on me. </li>
</ul>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-raglan.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-raglan.jpg" alt="(sketch: realized version)">
</a><br>
<p>I drew and drew over the same croquis, but the big idea is a long-sleeved raglan with a mock turtleneck and tiered layers around the lower body. I facilitated between full-coverage bikini bottoms and shorts. I also had an idea for a swim obi belt. Obi belts were all over the runway a few years ago. I couldn't find anything quite like it on a swimsuit, but it seems like such a cool idea. Maybe not practical, but I'd go for it if it didn't require <i>so</i> much fabric. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/ZuhairMurad_PreFall2019_00015-Zuhair-Paris-Pre-Fall-19-credit-Emmanuel-Giraud.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/ZuhairMurad_PreFall2019_00015-Zuhair-Paris-Pre-Fall-19-credit-Emmanuel-Giraud.jpg" alt="(fashion photography: two looks. One is a bodycon black dress with a Mandarin collar, plunging neckline, and fringe &#8217;sleeves&#8217;, topped with a textured black obi belt with long tassels. The other is cropped black dress pants worn with a garment at the intersection of tailored blazer and kimono, with fringe falling from the shoulders, topped with a black velvet obi belt tied with tassels. )">
</a><br>
<i>Zuhair Murad presented some of my favorite obi belt looks during the Pre-Fall 2019 show. Photo credit to Emmanuel Giraud. <br></i>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/final.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/final.jpg" alt="(sketch: realized version)">
</a><br>
<p>Anyway, this is close to what I made. I moved the zipper to the center back to avoid breaking up my beautiful fabric. I didn't care to insert piping into active wear seams. (yes, those aren't thick seams - that is piping.) I didn't make the obi belt either, but I might. I have long strips of fabric left over, and it might be enough to do something cool. <br></p>
<h2>material</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/fabricshopping.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/fabricshopping.png" alt="(screenshot: pastel seafoam, mauve, and sulfur neoprene with a swamp print)">
</a><br>
<i><a href="https://www.moodfabrics.com/mystic-swamp-digitally-printed-stretch-neoprene-scuba-knit-307451">Mood Fabric's Mystic Swamp Digitally Printed Stretch Neoprene/Scuba Knit</a></i> <br>
<p>I chose neoprene because it's luxuriously, flatteringly thick, durable, and still relatively trendy in fashion after years of being delegated to seat covers and boring functional garments. I've never sewn with it before and heard terrible things, but I'll try it. <br></p>
<br>
<p>This print in particular is so unique. In a sea of tropical island palm tree prints, this one has swamps! I grew up in swamps and live in a swamp, and I <i>never</i> see our biome fantasized into artwork like this. It's also bright and pastel without entering some generic rainbow or pastel goth palette. It even includes that incredible glowing sulfur color from <a href="https://www.pantone.com/articles/past-colors-of-the-year/color-of-the-year-2021">PANTONE's 2021 Color of the Year</a>. I <i>adore</i> this fabric. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/neoprene.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/neoprene.jpg" alt="(photo: my cut of neoprene)">
</a><br>
<p>I paired it with a seafoam invisible zipper, pastel rainbow thread, and gray thread. <br></p>
<h2>pattern-making</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/pattern.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/pattern.jpg" alt="(photo: my paper pattern pieces, hanging with the rest of my patterns)">
</a><br>
<p>This is my only picture of my pattern for now. I make them out of thick paper and hang them by piercing a full set with a safety pin then hanging them from yarn bows. <br></p>
<br>
<p>I've never made a raglan sleeve and don't even own any, so this was a real challenge. I started with a regular sloper, taped them together, cut them along the "raglan line," used that to sew a knit bodysuit, then fitted and seam-ripped and resewed until it was spot-on. <br></p>
<br>
<p>I've never designed a mock turtleneck either, even though I really ought to have by now. For some reason, I imagining it should be more tapered, but the neck is relatively tubular. The triangular muscles connecting the neck to the shoulders aren't as important, especially with my placement of the scoop "neckline." It also took several iterations before it was long enough to actually look like a turtleneck. <br></p>
<br>
<p>Sleeves are sleeves. Princess lines and tiers-and-panels are practically my specialty, so no problem there. Then I traced my comfiest pair of full-coverage underwear for the leg openings. As with most of my tiered designs, the tiers of the skirt only start an inch or so from under the previous tier. That bottom tier isn't much longer than the tier on the top. This reduces bulk and fabric consumption, which is 100x more important on a swimsuit made of pricy fabric. The length of the tiers took a lot of experimentation. They need to be balanced, fall at flattering points of my body, begin at comfortable points on my body, and work with the print.<br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/tieredpanels.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/tieredpanels.png" alt="(MS paint sketch: panels underlay the tiers. In-between each panel of the skirt, a gathered tier begins. This contrasts economically with a skirt where every tier begins at the waist.)">
</a><br>
<p>I was very conscious of the print while cutting. I used the white sky as an anchor and draped a few different placements - across the collarbone, across the bustline, and my chosen placement, atop the chest. The print has dense dark areas and light fluffy areas, and this placement emphasized femininity. The grays and trees are at my breasts, emphasizing them while still looking painterly and abstract enough to not be garish. The blacks and voids are at my waist, neck, upper arms, and crotch. Then the dense, difficult-to-read green foliage obscures my lower body. Perfect! I matched the arms, which puts the placid blue water on my forearms, so the part I see the most is my favorite part of the print. Overall, perfect sizing and placement in my eyes. <br></p>
<br>
<p>As for sewing, these are all serged seams using pastel rainbow thread. The edges are serged with gray. The tiered were basted and gathered by hand. It was very, very easy. Whoever told me neoprene doesn't hold stitches must have had a very finicky machine. <br></p>
<br>
<p>The top is supported by underwire and thin cups. I cut up an old bra and attached it to the lining by hand. It was kind of nerve-wracking doing the fittings because any markings or fittings involving stretchy material around the breasts are difficult to achieve accuracy with, but the final fit is perfect. <br></p>
<h2>outcome</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/gator.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/gator.jpg" alt="(photo: quick photo of the finished garment, hanging against my door.)">
</a><br>
<p>I've taken it to the beach and the pool and feel so special. No one has a swimsuit like this. The colors are adorable and unique. The print is so intricate compared to the rest of the market. The design is relatively modest but still youthful. I get so many compliments. <br></p>
<br>
<p>It's very comfortable to wear, too, which was my number one design goal here. The skirt isn't too bulky, so I can get away with oversized jeans as my coverup. I feel confident under the thick fabric and tiered skirt, and the long sleeves and tall neck protect me from the full blast of the sun. My thighs do show, but whatever. They're usually underwater anyway. The swimsuit maintains its shape well underwater, too. <br></p>
<br>
<p>Then when I was done, I immediately sewed four mock turtleneck undershirts based off this pattern and love them, too! <br></p>
<br>
<br>
Last updated July 28, 2022
<!--220728,220811-->
<h1>artfight 2022: team bloom </h1>
august 25, 2022<br>
#personal #artfight #art <br>
<br>
<h2>what's artfight? </h2>
<b>Artfight</b> is an online art game every July. You post profiles for your original characters then go off browsing to find someone else's character to draw. Everyone's sorted into teams and each "attack" or drawing is valued for a certain number of points, so one side wins at the end of the event. You don't get anything for winning, and people game the system so bad that it's hard to even care about the competitive side of the site. <br></p>
<br>
<p>It's more fun to approach the game with your own personal challenge. I know a lot of people try a new style or technique during this month, like my friend trying single-layer digital paintings. My personal approach this year is thematic. I'm drawing cute couples! I don't usually draw boys, so it's a good compromise if his girlfriend will be in the frame, too. Also, more characters per attack = more points! <br></p>
<br>
It's a huge community, so at least a few people are bound to draw your characters, which is such a fun surprise when it happens. Some people like to make art in return for people who attack them, too, as thanks. Their discord is probably the best place to get attention, but it's intimidatingly fast for me. <br>
<br>
<h2>my attacks </h2>
<p>These are the characters I drew. <br></p>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess.png" alt="(pixelart: Sano Amaterasu in a lupine field, playing her harp.)"><br>
<img src="/static/img/ent/AF22_Abbey_Lune_Arcon_SanoAmaterasu_goddess_big.png" alt="(pixelart: same but larger size)"><br>
My pixelart of Lune_Archon's Sano Amaterasu, a horned goddess with her harp. (75x75px, 45 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf.png" alt="(pixelart: Aisu, a blue winged man in a sweater standing behind his seated blonde wife with a pink shirt.)"><br>
<img src="/static/img/ent/AF22_Abbey_Skye_0723_Aisu+LunaStarleaf_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of Skye_0723's Aisu and Luna Starleaf, a winged warrior and his druid wife who can turn into a pink unicorn. (163x157px, 79 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char.png" alt="(pixelart: Brody, a scruffy fisherman sitting on a bench with his anthro shark girlfriend Char.)"><br>
<img src="/static/img/ent/AF22_Abbey_EmmArrGus_Brody+Char_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of EmmArrGus's fisherman Brody and his shark girlfriend Char. (150x123px, 54 colors) <br>
<br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl.png" alt="(pixelart: a fluffy pink dragon girl named Lilac.)"><br>
<img src="/static/img/ent/AF22_Abbey_BlackReshiram_Lilac_dragongirl_big.png" alt="(pixelart: same but larger size.)"><br>
My pixelart of BlackReshiram's Lilac, a fluffy pink dragon girl. (51 colors) <br>
<br>
<h2>my defenses </h2>
<p>These are my characters, drawn by other people. <br></p>
<img src="/static/img/ent/AF22_CawfeeCakes_Abbey_Rune_sadlittleguy.png" alt="(image: a bust of a sad Rune in a dark hoodie)"><br>
CawfeeCakes's bust of Rune. He's so sad, he's droopy! <br>
<br>
<img src="/static/img/ent/AF22_Lune_Archon_Abbey_TessaSkyeStMartin.jpeg" alt="(image: Tessa with a vampy lip!)"><br>
Lune_Archon's bust of Tessa with a vampy lip! <br>
<br>
<img src="/static/img/ent/AF22_BlackReshiram_Abbey_floofdrago.png" alt="(image: Abbey in an adorable style!)"><br>
BlackReshiram's illustration of Abbey in an adorable style! <br>
<br>
<br>
<h2>do you recommend this game? </h2>
<p>It's one of the more fun art communities these days. A lot of communities have turned completely business-minded or are littered with off-topic content. Artfight, however, is necessarily interactive and collaborative, more like how art communities felt in the 10s. I try to play every year to motivate myself to draw more, especially things outside my comfort zone of cute girls. <br></p>
<br>
<p>This community has a lot of overlap with Toyhouse and Tumblr, though, so don't be surprised if you keep running into massive text walls of character permissions and "original character donut steal" warnings. There's also a wide range of ability. I see everything from grainy photos of lined paper to Tearzah copycat artists to university illustration students. It feels like old DeviantART in that respect. <br></p>
<br>
<p>You should know that the servers reliably crash during the first week of July every year, so if you do want to play, prepare during June. Upload a few characters and their reference pictures, find targets you'd like to draw, and save their usernames and reference pictures. Even if the servers crash, you've got everything you need for a few days. <br></p>
<br>
<br>
Last updated June 4, 2022 <br>
<br>

@ -4,6 +4,17 @@ august 6, 2020<br>
#game <br>
<br>
<b>Blessfrey</b> is a 2D action RPG developed for PC by Chimchooree. <br>
<p>a Godot Engine action rpg inspired by Guild Wars 1's class and skill systems, which were in turn inspired by Magic: The Gathering. You will amass a large library of skills through exploration and practice, but you may only take 8 with you into combat. You will also befriend AI companions and manage the skillbars of your team. Plan synergies and team strategies to overcome each challenge. Enemies will be have skillbars of their own, so the same skillbar won't work everywhere! No decision is permanent, so experiment to your heart's content. <br></p>
<br>
<p>Okay, I lied. Blessfrey also has a dual job system. The job you pick at character creation is permanent, but you can take a second as a side gig. Change your side gig frequently to find the best combinations! <br></p>
<br>
<p>Blessfrey is a dungeoncrawler, so you will find some shops and quests in the hub town, but the local dungeon is deep and full of mysteries to uncover. I started working on it to learn a wide range of programming concepts (games are very complex software) but also to realize my dream game (because what gamer doesn't have a dream game?).<br></p>
<br>
<p>I'll put an HTML5 demo up here soon-ish. Keep checking! Learn more on the <a href="/demo">Blessfrey page</a>. <br></p>
<br>
<p><a href="/blessfrey-presskit">Presskit is available here.</a> <br></p>
<br>
<a target="_blank" href="/static/img/ent/screenshot_June292019.png">
<img src="/static/img/ent/screenshot_June292019.png" alt="(image: Lots of Angels and other characters at a shopping center)" width="500" height="278.66">

@ -0,0 +1,105 @@
<!--210610,200429-->
<h1>gator swimsuit </h1>
october 20, 2022<br>
#fashion #swimwear #design-process #animalparade <br>
<br>
<h2>concept </h2>
<p>Gator is part of Animal Parade, a collection that emphasizes the individualism of clothing. Every garment should be valued and individualized, even basic undershirts, sleep masks, etc. <br></p>
<br>
<p>All the designs are named after important animals in my life. The swimsuit is named <i>Gator</i> because of the gator who lives in my subdivision. I've seen him during walks. Absolutely unnerving. <br>
<br>
<h2>design process </h2>
<p>I haven't had a swimsuit for years and never like any anyway. I browsed online catalogs in English and 日本語 and window-shopped everywhere in town, searching for both style and technical inspiration. I've never worked with active wear garments, so I studied the inside of nearly everything at Dick's Sporting Goods to understand the style elements, seams, and findings typical of swimsuits and active wear in general. I learned a lot but liked virtually nothing. <br></p>
<br>
<h3>1.5 piece </h3>
<p>The swimsuits that stood out to me were treading the line between one piece and two-piece. I can't find my old collage, but here's a quick one. Sorry for not remembering the source of the images. I iterated over the concept in sketches a little. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/collage.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/collage.png" alt="(collage: variety of swimsuits from online stores)">
</a><br>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-twopiece.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-twopiece.jpg" alt="(sketch: a series of rough pencil croquis with different variations of two-pieces.)">
</a><br>
<p>Ideas: <br></p>
<ul>
<li>Connecting the top and bottom with interlocked tricot loops, criss-crossing over the belly and lower back. </li>
<li>Overlapping hanging petals of tricot over a tiered swim skirt. </li>
<li>Long-sleeve mock turtleneck shirt under a spaghetti strap wrap one piece</li>
<li>flowing panel under the bust line, worn over a tiered swim skirt</li>
<li>Ruched bodysuit worn under a structured balconette tank</li>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-chiffon.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-chiffon.jpg" alt="(sketch: realized version)">
</a><br>
<p>This is where the two-piece idea led. I like the sheer fabric in the central examples from the collage. I love texture, so all the ruching and gathers really stand out to me, too. I wonder how feasible it would be to make two "two-pieces" - one relatively basic bikini with a loop in the center front of the swim bottoms, and another sheer, pintucked overlay with a tricot panel peek-a-boo skirt that fastens onto the loop. The overlay is tiered in the back then parts around the sides until it fully exposes the midriff in the front. <br></p>
<br>
<p>I'm not sure tricot or mesh would be sturdy enough for pintucks, so I checked if chiffon swimwear is even a thing. It actually is! Plenty of chiffon sleeves and panels floating around out there. <br></p>
<br>
<p>I really like this design. The central fastener on the swim bottoms isn't like anything I've seen in stores. The suit's connected in enough places that it shouldn't become a shapeless bubble nor flap up and show too much skin underwater. I bet it'd be gorgeous to watch float and flow in the waves. <br></p>
<br>
<p>Unfortunately, pretty or not, I don't think it's practical. Chiffon is a dainty fabric, and swimming is not a dainty activity. I lean against brick and against concrete without babying my clothes. Chiffon isn't that comfortable to wear dry, and I cringe imagining soaking wet chlorine chiffon Saran-wrapped over my torso. Not to mention, I don't know how comfortable I am with a two-piece anyway? Body insecurities! <br></p>
<p>Back to the drawing board! <br></p>
<br>
<h3>made for me</h3>
<p>Instead of synthesizing the prettiest elements into one swimsuit, I should be synthesizing the most practical elements into one swimsuit. People who feel confident and comfortable in their clothes are the prettiest! <br></p>
<br>
<ul>
<li>I want less skin showing, but I want to feel the water on some part of my body. </li>
<li>I prefer the collage swimsuits with tiered swim skirts. Many "modest" swimsuits look like short bodycon dresses. I'm not insecure about my swimsuit being too short; I'm insecure about showing the world my lower abdomen! If the tiers are detached and start high, it obscures this area without looking frumpy. </li>
<li>Virtually every well-made sporting goods swimsuit (and almost every piece of male active wear for that matter) had raglan sleeves. This makes sense, since it's a sleeve that doesn't impede rotation of the shoulder, but I'm surprised it's raglan or bust for athletes. Guess I'll take note. <li>
<li>Mock turtlenecks are just the best. I have a long neck, so they look good on me. </li>
</ul>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/sketch-raglan.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/sketch-raglan.jpg" alt="(sketch: realized version)">
</a><br>
<p>I drew and drew over the same croquis, but the big idea is a long-sleeved raglan with a mock turtleneck and tiered layers around the lower body. I facilitated between full-coverage bikini bottoms and shorts. I also had an idea for a swim obi belt. Obi belts were all over the runway a few years ago. I couldn't find anything quite like it on a swimsuit, but it seems like such a cool idea. Maybe not practical, but I'd go for it if it didn't require <i>so</i> much fabric. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/ZuhairMurad_PreFall2019_00015-Zuhair-Paris-Pre-Fall-19-credit-Emmanuel-Giraud.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/ZuhairMurad_PreFall2019_00015-Zuhair-Paris-Pre-Fall-19-credit-Emmanuel-Giraud.jpg" alt="(fashion photography: two looks. One is a bodycon black dress with a Mandarin collar, plunging neckline, and fringe &#8217;sleeves&#8217;, topped with a textured black obi belt with long tassels. The other is cropped black dress pants worn with a garment at the intersection of tailored blazer and kimono, with fringe falling from the shoulders, topped with a black velvet obi belt tied with tassels. )">
</a><br>
<i>Zuhair Murad presented some of my favorite obi belt looks during the Pre-Fall 2019 show. Photo credit to Emmanuel Giraud. <br></i>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/final.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/final.jpg" alt="(sketch: realized version)">
</a><br>
<p>Anyway, this is close to what I made. I moved the zipper to the center back to avoid breaking up my beautiful fabric. I didn't care to insert piping into active wear seams. (yes, those aren't thick seams - that is piping.) I didn't make the obi belt either, but I might. I have long strips of fabric left over, and it might be enough to do something cool. <br></p>
<h2>material</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/fabricshopping.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/fabricshopping.png" alt="(screenshot: pastel seafoam, mauve, and sulfur neoprene with a swamp print)">
</a><br>
<i><a href="https://www.moodfabrics.com/mystic-swamp-digitally-printed-stretch-neoprene-scuba-knit-307451">Mood Fabric's Mystic Swamp Digitally Printed Stretch Neoprene/Scuba Knit</a></i> <br>
<p>I chose neoprene because it's luxuriously, flatteringly thick, durable, and still relatively trendy in fashion after years of being delegated to seat covers and boring functional garments. I've never sewn with it before and heard terrible things, but I'll try it. <br></p>
<br>
<p>This print in particular is so unique. In a sea of tropical island palm tree prints, this one has swamps! I grew up in swamps and live in a swamp, and I <i>never</i> see our biome fantasized into artwork like this. It's also bright and pastel without entering some generic rainbow or pastel goth palette. It even includes that incredible glowing sulfur color from <a href="https://www.pantone.com/articles/past-colors-of-the-year/color-of-the-year-2021">PANTONE's 2021 Color of the Year</a>. I <i>adore</i> this fabric. <br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/neoprene.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/neoprene.jpg" alt="(photo: my cut of neoprene)">
</a><br>
<p>I paired it with a seafoam invisible zipper, pastel rainbow thread, and gray thread. <br></p>
<h2>pattern-making</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/pattern.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/pattern.jpg" alt="(photo: my paper pattern pieces, hanging with the rest of my patterns)">
</a><br>
<p>This is my only picture of my pattern for now. I make them out of thick paper and hang them by piercing a full set with a safety pin then hanging them from yarn bows. <br></p>
<br>
<p>I've never made a raglan sleeve and don't even own any, so this was a real challenge. I started with a regular sloper, taped them together, cut them along the "raglan line," used that to sew a knit bodysuit, then fitted and seam-ripped and resewed until it was spot-on. <br></p>
<br>
<p>I've never designed a mock turtleneck either, even though I really ought to have by now. For some reason, I imagining it should be more tapered, but the neck is relatively tubular. The triangular muscles connecting the neck to the shoulders aren't as important, especially with my placement of the scoop "neckline." It also took several iterations before it was long enough to actually look like a turtleneck. <br></p>
<br>
<p>Sleeves are sleeves. Princess lines and tiers-and-panels are practically my specialty, so no problem there. Then I traced my comfiest pair of full-coverage underwear for the leg openings. As with most of my tiered designs, the tiers of the skirt only start an inch or so from under the previous tier. That bottom tier isn't much longer than the tier on the top. This reduces bulk and fabric consumption, which is 100x more important on a swimsuit made of pricy fabric. The length of the tiers took a lot of experimentation. They need to be balanced, fall at flattering points of my body, begin at comfortable points on my body, and work with the print.<br></p>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/tieredpanels.png">
<img src="/static/img/fash/churchgirls+animalparade/Gator/tieredpanels.png" alt="(MS paint sketch: panels underlay the tiers. In-between each panel of the skirt, a gathered tier begins. This contrasts economically with a skirt where every tier begins at the waist.)">
</a><br>
<p>I was very conscious of the print while cutting. I used the white sky as an anchor and draped a few different placements - across the collarbone, across the bustline, and my chosen placement, atop the chest. The print has dense dark areas and light fluffy areas, and this placement emphasized femininity. The grays and trees are at my breasts, emphasizing them while still looking painterly and abstract enough to not be garish. The blacks and voids are at my waist, neck, upper arms, and crotch. Then the dense, difficult-to-read green foliage obscures my lower body. Perfect! I matched the arms, which puts the placid blue water on my forearms, so the part I see the most is my favorite part of the print. Overall, perfect sizing and placement in my eyes. <br></p>
<br>
<p>As for sewing, these are all serged seams using pastel rainbow thread. The edges are serged with gray. The tiered were basted and gathered by hand. It was very, very easy. Whoever told me neoprene doesn't hold stitches must have had a very finicky machine. <br></p>
<br>
<p>The top is supported by underwire and thin cups. I cut up an old bra and attached it to the lining by hand. It was kind of nerve-wracking doing the fittings because any markings or fittings involving stretchy material around the breasts are difficult to achieve accuracy with, but the final fit is perfect. <br></p>
<h2>outcome</h2>
<a target="_blank" href="/static/img/fash/churchgirls+animalparade/Gator/gator.jpg">
<img src="/static/img/fash/churchgirls+animalparade/Gator/gator.jpg" alt="(photo: quick photo of the finished garment, hanging against my door.)">
</a><br>
<p>I've taken it to the beach and the pool and feel so special. No one has a swimsuit like this. The colors are adorable and unique. The print is so intricate compared to the rest of the market. The design is relatively modest but still youthful. I get so many compliments. <br></p>
<br>
<p>It's very comfortable to wear, too, which was my number one design goal here. The skirt isn't too bulky, so I can get away with oversized jeans as my coverup. I feel confident under the thick fabric and tiered skirt, and the long sleeves and tall neck protect me from the full blast of the sun. My thighs do show, but whatever. They're usually underwater anyway. The swimsuit maintains its shape well underwater, too. <br></p>
<br>
<p>Then when I was done, I immediately sewed four mock turtleneck undershirts based off this pattern and love them, too! <br></p>
<br>
<br>
Last updated July 28, 2022
<br>

@ -0,0 +1,54 @@
<!--210218,210107-->
<h1>designing an achievement system (part 2) </h1>
april 2, 2021<br>
#gamedev #gamedesign #achievements <br>
<br>
<p>Designing an achievement system without any octopus tangles. <br></p>
<img src="/static/img/ent/rpgachievement_octopus.png" alt="(illustration: an octopus tangling up UI, Dialog, and other game systems.)"> <br>
<h2>a trusty mailman </h2>
<p>Octopus-tangling is a major design concern for a system that is so interconnected with every other system. I could scatter achievement code through every other system, but that would be a problem if I ever need to make a fundamental change to the achievement system. Also, tacking achievement code everywhere will make the other systems cluttered. <br></p>
<br>
<p>Instead, Blessfrey's achievement system is broken into three main, self-contained pieces: event handlers, the Knowledge Base, and the MessageBus. <br></p>
<br>
<p>Let's define the terms: <br></p>
<br>
<ul>
<li><b>knowledge:</b> each granular action or world event that contributes to earning an achievement </li>
<li><b>key:</b> an id number that identifies a piece of knowledge </li>
<li><b>topic:</b> just arrays of keys; used to categorize knowledge into groups </li>
<li><b>event handlers:</b> they subscribe to topics, waiting for news that a specific piece of knowledge has been encountered </li>
<li><b>Knowledge Base:</b> a singleton that stores all knowledge and facilitates the learning and forgetting of pieces of knowledge. <li><b>MessageBus:</b> a singleton that acts as a mailman; receives information about encountered knowledge and passes it off to all event handlers subscribed to that topic. </li>
</ul><br>
<p>Essentially, there is a database that stores all the achievements in the game, alongside a boolean value for locked or unlocked and some contextual information such as when they were unlocked. There are event handlers that wait for events to happen to unlock achievements and event handlers that wait for unlocked achievements to pay out rewards. Every event is filtered through the MessageBus and sent out to the relevant entities. This way, the only achievement code scattered everywhere are single MessageBus.subscribe("topic") lines. <br></p>
<br>
<h2>an example</h2>
<p>Let's say you get an achievement for finding the Nurse's Office. The moment the player loads into the Nurse's Office, data will zip back and forth between the MessageBus and the nurse's office object, different event handlers and the Knowledge Base. <br></p>
<a target="_blank" href="/static/img/ent/rpgachievement_KnowledgeBaseDiagram.png">
<img src="/static/img/ent/rpgachievement_KnowledgeBaseDiagram.png" alt="(diagram: a zigzagging depiction of the list below.)">
</a><br>
<ol>
<li>(Event Handler) At ready, event handlers call the MessageBus and subscribe to topics. </li>
<li>(Nurse's Office) The player enters the Nurse's Office. The room object sends itself to the MessageBus. </li>
<li>(MessageBus) Receives room object + sends it to all event handlers subscribed to the "place_entered" topic. </li>
<li>(Event Handler) NursesOfficeEntered receives room object. If the room is the Nurse's Office, send its corresponding knowledge key to the MessageBus. It can also verify pre-requisites and gather additional data for the Knowledge Base. This way, the system supports anything I'd like to track about when or how knowledge was learned. </li>
<li>(MessageBus) Receives the knowledge key + sends it to the Knowledge Base. </li>
<li>(Knowledge Base) Finds the knowledge identified by the incoming key. "Learns" by setting that knowledge to true and filling in additional fields if extra data was sent. Sends the knowledge key to the MessageBus. </li>
<li>(MessageBus) Receives the knowledge key + sends it to all "learned" event handlers. </li>
<li>(Event Handler) KnowledgeLearned receives the knowledge key + calls code for any changes resulting from learning this knowledge. Maybe you'll get a Steam achievement, but if the Knowledge Base was being to facilitate game progression, a quest could update, the dialog system could unlock the option to ask about the Nurse's Office, or you could gain a Codex entry about the new location. The changes can be conditional, too, so the handler can track whether all necessary keys have been received before enacting the change. </li>
</ol><br>
<br>
<p>To use the achievement system for cyclical world events, you could trigger knowledge to be "forgotten" or ultimately set back to false in the Knowledge Base. This way, the phases of an event could begin anew. <br></p>
<br>
<br>
<h2>summary</h2>
<p>Achievements can come from any combination of in-game actions, so an achievement system should be designed separately from the rest of the game. I achieve this through a couple of separate objects. <br></p>
<br>
<ul>
<li>Event Handlers: The tracking, verifying, and reward payout should be contained within event handlers, which can be generated and freed as needed. They subscribe to general topics and wait for their specific event to occur. </li>
<li>The Knowledge Base tracks the status of all knowledge in the game and can be used to understand how far the player and world have progressed. </li>
<li>The MessageBus is very light and only allows event handlers to subscribe to topics and for incoming message to be transmitted through that topic. It has absolutely no unique checks or code to execute, impartially delivering mail to the address on the envelope. </li>
<li>Another set of event handlers is concerned about the outcome of encountering and learning knowledge and can prompt changes or directly impact other systems, depending on pre-requisites met. </li>
<br>
<br>
Last updated July 28, 2022 <br>
<br>

@ -0,0 +1,55 @@
<!--210610,200429-->
<h1>skills aren't a manor; they're the DMV </h1>
april 7, 2022<br>
#gamedev #gamedesign #skill <br>
<br>
<h2>designing on autopilot </h2><br>
Phases are necessary for skills to be reactive. For instance, take Blessed Purity: <i>Cure 2 poisons from target. Heal for 35 per poison removed</i>. So the Cure keyword comes first, and Heal cannot activate until the Cure phase resolves. To lay out these phases, I partially copied Guild War's skill effects without much thought: <a href="https://wiki.guildwars.com/wiki/Initial_effect">initial effect</a> -> main function (not sure if there's even a name for this) -> <a href="https://wiki.guildwars.com/wiki/End_effect">end effect</a>. Most keywords are thrown into the main phase, anything that needs to happen immediately goes in initial, and anything that happens at the end goes in the end. <br>
<br>
Naturally, I had a lot of problems with flow. Some keywords (like Bleeding) can last up to half a minute, while others (like Attack) are executed instantly. When I let the skill run without breaks, the end effect executed long before earlier keywords finished up. When I forced keywords to execute one at a time, I had projectiles that awkwardly stuck around until an unrelated keyword timed out. <br>
<br>
It's time to actually turn my brain on and design with diagrams. <br>
<br>
<br>
<h2>building the skill like a manor</h2>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillManor.png">
<img src="/static/img/ent/skillsarentamanor_SkillManor.png" alt="(diagram: Imagine the entire skill is a manor. The main phase is the main building, while the initial and end phases are additional wings. Within each section are rooms (or keywords). The entry and exit point of the keyword room are conditional statements. The space between wings represents the arbitrary entry and exit points of phases.)">
</a><br>
If a skill was a manor, phases would be wings, keywords would be rooms, and doors would represent conditional statements. There are three main sections to stand in for the beginning, middle, and end. It makes sense if you don't really think about it. After all, the flow looks so clean and linear. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillManorFlow1200.png">
<img src="/static/img/ent/skillsarentamanor_SkillManorFlow1200.png" alt="(diagram: All initial keywords activate in order, the initial phase is complete, all main keywords activate, phase complete, same for end keywords and effect.)"></a> <br>
<br>
<h2>criticism </h2>
The concept of a phase brings nothing to skills. In Blessfrey and even Guild Wars, "initial effect" and "end effect" are used more like conditions than integral structure. The majority of skills don't operate in phases anyway. <br>
<br>
Worse, my careless implementation runs every keyword sequentially, undermining any distinction phases had. There's zero difference between putting Cure in initial or in the first line of main. <br>
<br>
Some keywords need to know what skill they belong to, what skill other keywords belong to, and who their user and target are. The poorly understood flow of skills sometimes causes this information to be freed with the skill before it's needed. <br>
<br>
<br>
It makes me wonder what a phase even is. I can't label the boundaries of the phase in the diagram because it's so arbitrary. Do skills need phases at all? <br>
<br>
Keywords already have all the structure they need built into them. Keywords lock their effect behind an entry condition (like curing a poison) and guard the exit with another condition (like a duration of 30 seconds). It would make more sense if end effect keywords instead listened for the resolution of given keywords, while all other keywords are free to fire off simultaneously. <br>
<br>
<br>
<h2>skills should feel like going to the DMV</h2>
DMVs in my life have been all-day affairs of standing in lines that stretch around the building through the bad part of town, attended by only one service desk. Honestly, that's not too far off from my original skill design. I'm not referring to <i>those</i> DMVs, though. The new DMV in town is much more efficient, lets you sit as you wait, and (novel concept) has multiple service windows. That's a much better model for my skills. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillDMV.png">
<img src="/static/img/ent/skillsarentamanor_SkillDMV.png" alt="(diagram: The skill's DMV has an entry point that leads to the welcome kiosk where each keyword must register its trigger and exit cue. All keywords wait in the same waiting room. Whenever the DMV calls a trigger (like health below 33%), that keyword will be actively served by a clerk until satisfied.)"> </a><br>
<br>
Since my "DMV" will be a separate entity from the skill (basically an <a href="https://www.blessfrey.me/diary/entries/210402">event handler</a>), it can preserve its data as long as needed, even after the main skill script dies. Flow is also more controlled, since the skill cannot progress its own current state. <br>
<br>
As for flow, obviously, skills without triggers can fire off immediately. The DMV will connect to the <a href="https://www.blessfrey.me/diary/entries/210402">KnowledgeBase</a> and begin listening for any event topics that would trigger the keywords. Once a keyword's conditions are met, it will become active and be applied to the target. The DMV also sets up a timer for its duration or listens for exit cues to know when to remove the keyword. Some keywords will never activate, but they will be freed once they had their chance. If Blessed Purity cures 0 poisons, heal will receive a sad "0" and die quietly. <br>
<br>
Under the DMV model, the skill's flow becomes more circular. <br>
<a target="_blank" href="/static/img/ent/skillsarentamanor_SkillDMVFlow1200.png">
<img src="/static/img/ent/skillsarentamanor_SkillDMVFlow1200.png" alt="(diagram: Each keyword registers triggers and exit cues with the DMV. The DMV subscribes to the topics and listens for triggers and exit cues. A trigger is received and conditions are met, so the keyword becomes active. The keyword is applied. The removal conditions are met, so the keyword is freed. The DMV continues to listen until all keywords had their chance to activate.)"></a> <br>
<br><br>
<h2>superior design? hopefully </h2>
Never thought I'd prefer the DMV, but you can learn design concepts from anywhere. This design is far more complex to implement, but it's the first design that allows me to build skills from conditional keywords that trigger simultaneously or in any particular order. I'll finally be able to add the skills I have in my head. It'll take a lot of time and work, but can't wait to get this up and running. <br>
<br>
Anyway, if you're doing anything on autopilot, especially designing the core mechanic of your game, stop immediately! A little foresight and I'd be leagues ahead by now. Or maybe not? Probably. <br>
<br>
<br>
Last updated April 7, 2022
<br>

@ -283,7 +283,7 @@ def gather_and_sort(loc):
def is_it_time(date):
today = datetime.datetime.now()
today_string = today.strftime("%y") + today.strftime("%m") + today.strftime("%d")
return int(date) <= int(today_string)
return True#int(date) <= int(today_string)
## Static ##

@ -49,6 +49,12 @@ h1,h2,h3,img,i {
margin: auto;
color: white;
}
.code {
background-color: transparent;
}
.verse {
background-color: transparent;
}
.grid {
height: auto;

@ -2,7 +2,7 @@
grid-area: 3 / 1 / 4 / 4;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: repeat(6, auto);
grid-template-rows: auto auto auto;
grid-column-gap: 0px;
grid-row-gap: 2em;
color: white
@ -12,7 +12,7 @@
text-align: center;
margin-top: 2em;
}
.controls img { width: 10em; }
.box img { width: 10em; }
.demo-game iframe {
border: 2px solid #df85a5;
@ -25,9 +25,35 @@
padding: 10px;
margin: auto;
}
.demo { grid-area: 2 / 1 / 3 / 2; }
.controls { grid-area: 3 / 1 / 4 / 2; }
.system { grid-area: 4 / 1 / 5 / 2; }
.story { grid-area: 5 / 1 / 6 / 2; }
.characters { grid-area: 6 / 1 / 7 / 2; }
.info { grid-area: 7 / 1 / 8 / 2; }
.demo {
grid-area: 2 / 1 / 3 / 2;
}
.box {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 2.5em 42em;
grid-column-gap: 0px;
grid-row-gap: 0px;
}
.jump {
grid-area: 1 / 1 / 2 / 2;
margin: auto;
font-size: 2em;
}
.long {
grid-area: grid-area: 2 / 1 / 3 / 2;
height: 44.625em;
overflow: hidden;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: repeat(5, auto);
grid-row-gap: 50em;
}
.splash { grid-area: 1 / 1 / 2 / 2; }
.system { grid-area: 2 / 1 / 3 / 2 }
.story { grid-area: 3 / 1 / 4 / 2; }
.characters { grid-area: 4 / 1 / 5 / 2; }
.info { grid-area: 5 / 1 / 6 / 2;
height: 50em;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

@ -14,87 +14,28 @@
<hr>
</div>
<div class="controls" id="controls">
<div class="center"><h2>what about blessfrey?</h2>
<img src="/static/img/prom/BlessFREY_logo.png" alt="(link: BLESSFREY" class="logo">
jump to <a href="#demo">demo</a> • <a href="#controls">controls</a> • <a href="#system">system</a> • <a href="#story">story</a> • <a href="#characters">characters</a> • <a href="#info">info</a><br>
<br>
<p>No-legs the Cat is just a demonstration that I can export and embed games here at all. Soon, I'll have real release demos for Blessfrey! <br></p>
<br>
<p>Blessfrey is a 2D dungeoncrawling action rpg for PC developed by me (chimchooree) in Godot Engine inspired by Guild Wars 1 and Magic: The Gathering. I'll share any release demos on this page. <br></p>
<!--<h2>controls</h2>
<ul>
<li>WASD - run up, left, down, right </li>
<li>space - move to target. If attackable, attack </li>
<li>c - target nearest foe </li>
<li>shift + click, shift + c, shift + tab - target without moving </li>
</ul>--></div>
</div>
<div class="box" id="box">
<div class="jump">
<a href="#splash">blessfrey</a> • <a href="#system">system</a> • <a href="#story">story</a> • <a href="#characters">characters</a> • <a href="#info">info</a><br>
</div>
<div class="long">
<div class="splash" id="splash">
<h2>splash</h2>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Aliquet nibh praesent tristique magna. Egestas congue quisque egestas diam in arcu cursus. Sit amet venenatis urna cursus eget. Ut tellus elementum sagittis vitae et. Morbi tempus iaculis urna id volutpat lacus. Fringilla urna porttitor rhoncus dolor. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Tincidunt id aliquet risus feugiat. Bibendum neque egestas congue quisque egestas diam in arcu. Tristique nulla aliquet enim tortor at auctor urna nunc. In massa tempor nec feugiat nisl pretium fusce id. Cum sociis natoque penatibus et magnis dis. Molestie nunc non blandit massa enim nec dui nunc mattis. Orci a scelerisque purus semper eget. Nibh nisl condimentum id venenatis a. Volutpat consequat mauris nunc congue nisi vitae suscipit tellus. Pellentesque habitant morbi tristique senectus et netus et. Metus vulputate eu scelerisque felis.</div>
<div class="system" id="system">
<div class="center"><h2>system</h2>
<p>Blessfrey is a 2D action rpg with a dual-job system which will determine the skill pool from which you will build your skillbar. Your AI companions will have skillbars of their own to edit, so think in terms of teams in order to defeat bosses and solve puzzles. Barely any class progression decisions are permanent, so you can experiment and express your playstyle. <br></p>
<br>
<h3>jobs </h2>
<p>Blessfrey jobs are equivalent to RPG classes. Your first job is a permanent decision which you will make early in gameplay. You will be able to unlock the rest and more during gameplay as side gigs. You can only have one side gig at a time, but you can always swap it outside of combat areas. <br></p>
<br>
<p>Each job has its own skill pool. Each skill is assigned to a job trait (similar to an RPG attribute). Each character has a set number of trait points they can use to raise job traits and the effectiveness of their associated skills. You gain more trait points through leveling up, but traits can be raised or lowered at will. Experiment to find your specialization! <br></p>
<br>
<p>Your first job offers an exclusive trait called a job perk. It is not only tied to the effectiveness of related skills but also provides a constant buff. You can use the skills of your side gig's perk-related skills, but you cannot raise their effectiveness nor gain the buff. Perks are what distinguish characters from each other. <br></p>
<br>
<h3>skills</h2>
<p>Skills are individual powers that modify entities in the world of Blessfrey. They can launch fireballs, protect against incoming damage, spawn items or minions, teleport characters, reveal more UI details, and more. Your skillbar only has 8 skill slots and can only be edited in safe areas. The challenge comes from discovering effective strategies and synergies. Many of the same skills will be available to the player and enemy characters alike, so you must learn how to both use and counter each skill. <br></p>
<br>
<p>Skills are inspired by Magic: The Gathering keywords. There are a limited number of keywords that are quick to learn, but I will combine them with interesting conditions to create a wide arsenal of options. <br></p>
<br>
<p>Skills are gained during exploration. As you find new areas, encounter enemies, and interact with your surroundings, you will internalize those experiences as new skills. There are multiple paths to learning, so you are free to focus on your favorite parts of the game. <br></p>
<br>
<h3>team</h2>
<p>You will meet new friends and allies in the world, and they will join your team as customizable AI companions. Edit their skillbars to complement yours and keep their gear up-to-date. They will remember your responses and actions, so stay attentive to the flow of your relationship. There may be consequences - sweet or treacherous. <br></p></div>
</div>
<h2>system</h2>
Risus feugiat in ante metus dictum at tempor commodo ullamcorper. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Sodales ut eu sem integer vitae. Sed faucibus turpis in eu mi bibendum neque. In cursus turpis massa tincidunt. Magna etiam tempor orci eu lobortis. Pharetra magna ac placerat vestibulum. Vitae turpis massa sed elementum. Varius morbi enim nunc faucibus a pellentesque sit. Fermentum et sollicitudin ac orci phasellus.</div>
<div class="story" id="story">
<div class="center"><h2>story</h2>
<p>You play as Helia, a foreign transfer student living with her estranged uncle in a rural southern American town. You'll find an inexplicable amount of amenities, but none of them hold a candle to the haunted dungeon beneath the city. It's off-limits, but a dare's a dare. <br></p>
<br>
<p>There's a whole other world down there with multiple fantastical races. Once you've been down there once, it's hard to avoid getting tangled in its mysteries. <br></p>
<br>
<p>The town is strange in its own right. Lucrest flourished under it's remarkably young mayor and became an economic oasis in an expanse of farmlands and mining communities, drawing people from out-of-state to enjoy its attractions. Mayor Dia claims to have a magic wand that controls economy, and people aren't inclined to disagree. <br></p></div>
</div>
<h2>story</h2>
Ut aliquam purus sit amet luctus venenatis. Mi in nulla posuere sollicitudin aliquam ultrices sagittis orci. In fermentum posuere urna nec tincidunt. Tellus elementum sagittis vitae et leo duis ut. Sit amet commodo nulla facilisi nullam vehicula ipsum. Morbi tristique senectus et netus et malesuada fames ac turpis. Aliquam ultrices sagittis orci a scelerisque purus semper. Lacus vestibulum sed arcu non odio euismod. Et odio pellentesque diam volutpat commodo sed. In hendrerit gravida rutrum quisque non tellus. Aliquet enim tortor at auctor urna nunc. Nibh cras pulvinar mattis nunc sed blandit. Velit euismod in pellentesque massa placerat duis ultricies lacus sed. Lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue. Viverra tellus in hac habitasse platea. Sed vulputate mi sit amet mauris commodo quis imperdiet massa. Nunc id cursus metus aliquam eleifend mi in nulla posuere.</div>
<div class="characters" id="characters">
<div class="center"><h2>characters</h2>
<p><b><a href="/char/Helia">Helia</a></b> (?/?) - The player character! Almost every job is available to her. Where she comes from, combat training is unheard of, so she's a blank slate. Her reasons for suddenly moving countries by herself at the end of a schoolyear are filled with holes, so rumors spread ahead of her arrival. Barely anyone moves to Lucrest, though, so most people are excited to meet the new girl. <br></p>
<br>
<p><b><a href="/char/Angel">Angel</a></b> (Weaponmaster/Hacker) - Her real name's Miriam, but it sounds too frumpy, so please call her Angel. She is a naturally gifted with heavy blades and participates in a competitive swordsman league, but she usually comes across as friendly if not a little absent-minded. Computers interest her deeply, so she always has tinkering away with some new gadget or software. <br></p>
<br>
<p><b><a href="/char/Tessa">Tessa</a></b> (Tamer/Streetfighter) - She actually has a foreign background, too. Her mom and late father moved with her from France when she was really little. She loves the outdoors, animals, and fashion and is always sticking her nose in everyone's business. She's all fun all the time, so she doesn't always know where the boundary is between playful teasing and outright bullying. <br></p>
<br>
<p><b><a href="/char/Chloe">Chloe</a></b> (Disciple/Weaponmaster) - She's an orphan girl who was taken in by the church, and she spends a lot of her time serving there. She's reticent and deeply introverted but very sweet to those who get to know her. <br></p>
<br>
<p><b><a href="/char/Aries">Aries</a></b> (Weaponsmaster/Tamer) - Angel's twin brother, though he's her opposite in many ways. He's more attentive, but his frankness and disregard for etiquette makes him seem boorish. He also takes things with more gravity, fully committing himself to his studies and training. He prefers light weapons, light armor, and practical survival skills. <br></p>
<br>
<p><b><a href="/char/Night">Night</a></b> (Chemist/Weaponsmaster) - Despite not being much older than the other teens, he's completed a few years of apprenticeships at the leading research hospitals in the capital. The deterioration and death of his grandparents forced his return to close the final paperwork and figure out how to support his baby brother in the meantime. He runs a local pharmacy for now. <br></p>
<br>
<p><b><a href="/char/Rune">Rune</a></b> (?/?) - A startlingly tall and listless horned boy discovered in the local dungeon, surrounded by dinosaurs and other abyssal beasts. He doesn't trust people from the surface at first. <br></p></div>
<h2>characters</h2>
Nisl vel pretium lectus quam id leo. Pulvinar mattis nunc sed blandit libero. Turpis cursus in hac habitasse. Mattis nunc sed blandit libero volutpat sed cras ornare. Etiam erat velit scelerisque in dictum non. Id eu nisl nunc mi ipsum. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Proin fermentum leo vel orci porta non. Duis ultricies lacus sed turpis tincidunt id. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Aliquet enim tortor at auctor. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. Vulputate sapien nec sagittis aliquam. Sit amet consectetur adipiscing elit pellentesque habitant. Hendrerit dolor magna eget est. Habitant morbi tristique senectus et netus et. Sapien eget mi proin sed libero enim sed faucibus turpis. Elementum curabitur vitae nunc sed velit dignissim. Risus sed vulputate odio ut enim blandit volutpat. Sem integer vitae justo eget magna.</div>
<div class="info" id="info">
<h2>info</h2>
Eget sit amet tellus cras adipiscing enim eu turpis egestas. Elementum nibh tellus molestie nunc non blandit. Interdum posuere lorem ipsum dolor sit. Ullamcorper morbi tincidunt ornare massa eget egestas. Sed arcu non odio euismod lacinia at quis risus sed. In nisl nisi scelerisque eu ultrices vitae auctor. Morbi tristique senectus et netus et malesuada fames. Quis auctor elit sed vulputate mi sit. Nunc vel risus commodo viverra maecenas accumsan lacus. Tincidunt augue interdum velit euismod in pellentesque massa placerat duis. Tristique nulla aliquet enim tortor at auctor urna nunc. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed. Et ligula ullamcorper malesuada proin libero nunc consequat interdum.</div>
</div>
<div class="info" id="info">
<div class="center"><h2>info</h2>
<p>Blessfrey is a singleplayer action RPG game that will be playable in at least Windows, Linux, and HTML5. I'm going to sell it on Steam and wherever else lets me list it. It's being developed by me (chimchooree) in Godot Engine with original writing and art, though I'll need help with music and SFX eventually. My husband also helps sometimes, especially with writing plug-ins for the engine.♡ The full credits are available on the <a href="/credits">credits page</a>.<br></p>
<br>
<h2>timeline</h2>
<p>Legless the Cat is the first demo. It has nothing to do with the game, but it's an important exercise for exporting and embedding an HTML5 game. I'd hate to make a sophisticated game over multiple years and be too inexperienced to actually share it with anyone. It also lets my kitty be in his own videogame! So cute. <br></p>
<br>
<p>As for the first real demo, I am currently creating a vertical slice of the game, focusing on a robust presentation of the skill system. This demo will be more of a tech demo than a game. It will feature 3 demo areas, and you will receive a bingo card directing you to try a smattering of what the full game will have to offer. <br></p>
<br>
<p>The next demo will demonstrate the game's faction system and AI, presenting more as a cutscene with unpredictable outcomes. A couple of different AI groups will wander around a map, intersect, then attack or aid according to affiliation. The faction system is rather complex, so I need to isolate it for testing purposes. <br></p>
<br>
<p>I think at this point, I will be able to put out a real demo. Demo #3 is going to be a level from the full game, introducing Rune and his multiphase boss fight. <br></p>
<br>
<p>If I can do that, I'll definitely be ready to make chunks of the game until the entire thing is complete. <br></p>
<br>
<p>No hard timeline on this, though! I've been working for years and finally am about ready to have something to show for it. Gamedev has been a deep learning experience, and I'm looking forward to sharing my results with you. <br></p></div>
</div>
</div>

@ -23,31 +23,27 @@
<div class="rpg">
<h2>blessfrey is...</h2>
<p>a Godot Engine action rpg inspired by Guild Wars 1's class and skill systems, which were in turn inspired by Magic: The Gathering. You will amass a large library of skills through exploration and practice, but you may only take 8 with you into combat. You will also befriend AI companions and manage the skillbars of your team. Find synergies and team strategies to overcome each challenge. Enemies will be using personalized skillbars of their own, so the same skillbar won't work everywhere! No decision is permanent, so experiment to your heart's content. <br></p>
<p>a Godot Engine action rpg inspired by Guild Wars 1's class and skill systems, which were in turn inspired by Magic: The Gathering. You will amass a large library of skills through exploration and practice, but you may only take 8 with you into combat. You will also befriend AI companions and manage the skillbars of your team. Plan synergies and team strategies to overcome each challenge. Enemies will be have skillbars of their own, so the same skillbar won't work everywhere! No decision is permanent, so experiment to your heart's content. <br></p>
<br>
<p>Okay, I lied. Blessfrey also has a dual job system. The job you pick at character creation is permanent, but you can take a second as a side gig. Change your side gig frequently to find the best combinations! <br></p>
<br>
<p>Blessfrey is a dungeoncrawler, so you will find some shops and quests in the hub town, but the local dungeon is deep and full of mysteries to uncover. I started working on it to learn a wide range of programming concepts (games are very complex software) but also to realize my dream game (because what gamer doesn't have a dream game?).<br></p>
<br>
<p>I'll put an HTML5 demo up here soon-ish. Keep checking! Learn more on the <a href="/demo">Blessfrey page</a>. <br></p>
<p>I'm currently ! Learn more on the <a href="/demo">Blessfrey page</a>. <br></p>
<br>
<p><a href="/blessfrey-presskit">Presskit is available here.</a> <br></p>
</div>
<div class="fashion">
<h2>fashion is...</h2>
<p>problem-solving, just like any design field. I approach it as a blend of personal and social desires with technical and mathematical challenges. I iterate over original designs according to the specific needs of a piece, source appropriate materials, make the pattern, plan the tech pack, cut and sew, and perform any value addition. Though I enjoy the full process of apparel construction, pattern-making has been my favorite step since high school. It has the most opportunity for real design work. It is the pattern-maker who numbers the strands on a mohair garment and plans zipper placement within an eighth of an inch. <br></p>
<br>
<p>The impact of fashion is another problem to solve. The apparel industry is one of the largest water polluters, dumping 20% of the world's waste water, and many textiles do not degrade, filling 5% of landfills with textiles that take over 500 years to decompose. Donating old clothes has its own associated problems, competing with fledgling domestic industries overseas. The apparel industry also doesn't necessarily pay a living wage or ensure its factories are maintained. Valuing a low price tag over a manufacturing country of origin with proper labor protection has a human cost, most famously in the Dhaka, Bangladesh garment factory collapse. <br></p>
<br>
<p>These are macro problems that can't be solved at the micro level. We can be good stewards over our little plot of Earth, though. To me, the best approach is to buy fewer but more practical things, get as many uses as possible out of what we have, and source the materials for new things from salvage. I'm not perfect, though. Sometimes, brand new polyester fabric really is what a design needs, and sometimes I get dazzled by the coolest buttons and forget to check their country of origin. Then I'm sure there's other severe issues completely unknown to me. Minizing my impact is the best I can do, honestly. <br></p>
<p>problem-solving, just like any design field. I approach each garment as a realization of both personal and social desires and technical and mathematical challenges. <br></p>
<br>
<p>Though I enjoy the full process of apparel construction, technical design and pattern-making are my strengths. I'm creative but I'm able to engage my technical background, too, when breaking down a sketch of a 3D vision into 2D pieces that will fit a person's measurements, place design elements at flattering locations, and fall within budget and time limitations. It is the pattern-maker, after all, who numbers the yarns on a garment and prepares zipper placement within an eighth of an inch. <br></p>
<br>
<p>I make individual or small batches of my designs. I'd like to be able to digitize patterns and sell them, but for now, read about my collections on the <a href="/fashion">fashion page</a>. <br></p>
<p>I make individual or small batches of each design, but I retain patterns for future reference. I also repair and alter existing clothing to improve fit or style. Read about my collections on the <a href="/fashion">fashion page</a> or on <a href="/diary/tag/fashion">my blog</a>. <br></p>
</div>
<div class="projects">
<h2>other projects</h2>
<p>The most obvious is <b>blessfrey.me</b>, this very portfolio and blog website. It is coded in <a href="https://bottlepy.org/docs/dev/">Bottle: Python</a>, <a href="https://bottlepy.org/docs/dev/stpl.html">SimpleTemplate</a>, and HTML+CSS. Bottle advertises itself as a micro framework, so I can use Bottle to create dynamic webpages without introducing potential bulk, security flaws, or user private data collection. I'm the only person managing this website and my needs are simple, so Bottle works well for me. Also, I get to use Python (yay) instead of PHP (eugh), the language I first built the site in. <br></p>
<p>The most obvious is <b>blessfrey.me</b>, this very portfolio and blog website. It is coded in <a href="https://bottlepy.org/docs/dev/">Bottle: Python</a>, <a href="https://bottlepy.org/docs/dev/stpl.html">SimpleTemplate</a>, and HTML+CSS. Any embedded applications will probably be HTML5. <br></p>
<br>
<p>Cat Store - Java, text-based cat breeding and cat show life sim. <br></p>
<br>

Loading…
Cancel
Save