grid push

small-nav
chimchooree 2 years ago
parent 1dbd733ff5
commit 7db62ebedf

@ -0,0 +1,7 @@
FROM python
RUN pip install bottle
WORKDIR /app
COPY src/ .
EXPOSE 9001
ENTRYPOINT python3 index.py

@ -0,0 +1,24 @@
new entry every 2 weeks on thursdays
new summary every month (doesn't count as one of the entries)
everything's coming together: a new website - new website announcement, plans for the future
gator swimsuit - full design process from concept to sewing
skills aren't a manor; they're the DMV - skill system redesign
the achievement system is the central nervous system of my game (part 1) - defining achievements in Blessfrey
designing an achievement system (part 2) - diagramming the achievement system
no-legs the cat - demo announcement
animal parade - collection announcement
church girls - collection announcement
divine divinity - game journal, assess as a gamedev
arcanum - game journal, assess as a gamedev
YIIK - game journal, assess as a gamedev
FlightRising - game journal, assess as a gamedev
Verpets - game journal, assess as a gamedev
oblivion - game journal, assess as a gamedev
Goddess of Atvatabar - reading journal, assess for themes, etc
Jeremiah - some takeaways from Bible reading
july diary - no daily. just short summary of generalized activities. IRL stuff is okay but nothing too detailed or off-topic

@ -4,6 +4,7 @@ july 28, 2022<br>
#webdev <br>
<br>
<p>Everything's coming together. I've been learning a lot and think I'm finally ready to start sharing my work. <br></p>
<img src="/static/img/ent/everythingscomingtogether_home.png" alt="(screenshot: Blessfrey homepage)"><br>
<br>
<h2>up and up </h2>
<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>
@ -28,5 +29,5 @@ Maybe best practice is to stay laser-focused on a content niche, but I'm not an
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 21, 2022 <br>
Last updated July 28, 2022 <br>
<br>

@ -0,0 +1,42 @@
<!--210218,210107-->
<h1>the achievement system is the central nervous system of my game (part 1) </h1>
april 2, 2021<br>
#gamedev #gamedesign #achievements #world-progression #character-progression <br>
<br>
<p>What's the difference between winning a trophy or earning a quest reward for killing 10 rats? Probably nothing. <br></p>
<img src="/static/img/ent/rpgachievement_samepicture.png" alt="(meme: &#8220;Corporate needs you to find the differences between this picture and this picture&#8221; for Dragon's Dogma achievements like &#8220;Defeated an evil eye&#8221; and &#8220;Defeated 3,000 enemies&#8221; vs. quest journal entries like &#8220;Slay 25 crows.&#8221;)"> <br>
<p>In this series, I'll discuss how to design an achievement system. Mine is for an RPG, but it should work for a variety of achievements and game genres. I won't discuss integrating with <a href="https://partner.steamgames.com/doc/features/achievements/ach_guide">Steam</a> or other platforms, but they have their own documentation. <br></p>
<br>
<h2>platform achievements, quest rewards: there's no difference </h2>
<p><b>Achievement</b> is a rather nebulous term for gamers, but it's usually defined as an objective that creates a metagame. Devs offer them as a nudge to explore the full depth of games and seek out hidden secrets. For example, Portal's <a href="https://steamcommunity.com/sharedfiles/filedetails/?id=2008271826">Transmission Received achievement</a> turns the physics puzzle game into a game of hot or cold using radios you may not have even known were there. Most games' achievements look more like an extension of the quest journal than a metagame, though. Those Dragon's Dogma achievements in the image above are indistinguishable from notice board quests. They are practically unavoidable within a couple of hours of standard play. <br></p>
<br>
<p>Whether your achievements are meta or not, they can be earned through almost any in-game mechanic or system. (Unless they're so meta, they're completely external to the gameplay like <a href="https://steamcommunity.com/stats/221910/achievements">The Stanley Parable's Go Outside achievement</a>: <i>don't play for five years</i>.) <br></p>
<br>
<p>Unlocking an achievement usually awards a trophy or gamer points. In a way, increasing an in-game score is not unlike triggering a "quest complete" popup. An "event" occurs, and a "reward" is given. Some games offer something more tangible alongside their achievements, like a new game mode or item. The hat merchant in Stardew Valley will sell new hats for each achievement earned. <br></p>
<br>
<p>So not only does a robust achievement system need to be listening to the other game systems, it needs to be able to be able to interact with them. A system with that kind of power can do a lot more than notify you of achievements and add new hat merchandise - that's central nervous system material. It could progress the state of the game world depending on player actions. <br></p>
<br>
<h2>blessfrey's achievement system doubles as the character/world progression system </h2>
<p>Blessfrey feeds <i>every</i> in-game event through its achievement system, and its reward delivery is flexible enough not only to give a trophy but to cause <i>anything</i> to happen in response. Beyond achievement management, it is the system responsible for all forms of character and world progression. This is how Blessfrey can be a dynamic and responsive game. After all, if a system can dish out a trophy for killing 10 rats, it isn't too much of a stretch to say it could trigger a quest completion, unlock a codex entry, or teach the player a new skill. And if it can do that, why not something more dramatic? Killing the last 10 rats could be a turning point in the game world, putting the player on the post-rat timeline and changing all maps, NPCs, and quests to reflect the newly rat-free society. <br></p>
<br>
<p>I don't even think that last one is too silly. Games are all about making choices, so ideally, the world should always be responding. The only issue is scope, both in terms of developer workload and maintaining a coherent game vision. Thankfully, creating a system capable of anything is no problem, though. I'd prefer to be my only limitation, not my progression system. <br></p>
<br>
<h2>what is it going to look like? </h2>
<p>So realistically, how do I plan to use this system? <br></p>
<br>
<p>Obviously, the completion of a quest will be technically identical to an earned achievement, as will codex entries and level up rewards. They just won't be visible to the player or cause any trophy popups. <br></p>
<br>
<p>More abstract things will count as achievements, too, like skill acquisition. Blessfrey revolves around skills, so it would be cool if skills were unlocked in a meaningful way through the achievement system. I plan to have them learned through gameplay via a variety of different methods, so skillhunting feels more like exploring than grinding. Maybe the Fire Resistance skill could be learned by standing in lava for 2 minutes, by eating crème brûlée flambé (without blowing it out), or by taking fire damage in combat. Your time spent aflame will be the event needed to unlock the Fire Resistance skill achievement. Then whenever you check your Skill Library, it knows which skills you've unlocked by checking your achievements. <br></p>
<br>
<p>World progression will also be tied to this system. Spending $1000 at the mall could trigger a new store to open. Selling too many dungeon items to a merchant could cause him to become suspicious of where you come across them, changing your dialogue options or starting a quest. Even the UI could be tied to this system. Maybe the UI displays increasingly more detailed information when you hover your mouse over a slime as you hit different thresholds of slime kills. <br></p>
<br>
<p>I'm not kidding when I say <i>everything</i> is an achievement, though. When a skill is used, each stage of skill progression is doled out by the achievement system. It will prepare the skill for action, exact any skill costs, listen for required conditions to be met, and apply skill effects on behalf of the skill. Basically, skill use and the completion of each phase is an event, and triggering the next phase of skill progression is the achievement. The skill itself barely does anything besides provide information to the achievement system. <br></p>
<br>
<p>The more systems mediated by the achievement system, the better, I say! Letting systems run amok and modify each other directly causes unexpected problems all the time, and bringing in a middleman is such a reliable solution. <br></p>
<br>
<h2>stay tuned </h2><br>
<p>So a working definition of an achievement is something awarded in response to a player action or game event. Those actions or events could be related to any game mechanic or game system, be it combat, exploration, trading, racing, etc, so the achievement system needs to be linked to all of them. How can you possibly design a system that is distinct from yet deeply intricated in every other system? In part 2, we'll do just that! Keep reading. <br></p>
<br>
<br>
Last updated July 28, 2022 <br>
<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>

@ -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>

@ -4,6 +4,7 @@ july 28, 2022<br>
#webdev <br>
<br>
<p>Everything's coming together. I've been learning a lot and think I'm finally ready to start sharing my work. <br></p>
<img src="/static/img/ent/everythingscomingtogether_home.png" alt="(screenshot: Blessfrey homepage)"><br>
<br>
<h2>up and up </h2>
<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>
@ -28,5 +29,5 @@ Maybe best practice is to stay laser-focused on a content niche, but I'm not an
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 21, 2022 <br>
Last updated July 28, 2022 <br>
<br>

@ -1,33 +1,52 @@
<!--220825,220728-->
<h1>no-legs the cat </h1>
august 11, 2022<br>
#game #no-legs-the-cat #godotengine #release<br>
<!--220728,220811-->
<h1>artfight 2022: team bloom </h1>
august 25, 2022<br>
#personal #artfight #art <br>
<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>
<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 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>
<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>
<p>Have fun! More games coming soon. <br></p>
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>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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<h3>when are godot devs going to stop making everything out of the godot head? </h3>
<p>Probably never. <br></p>
<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>
Last updated July 21, 2022 <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,52 +1,33 @@
<!--220728,220811-->
<h1>artfight 2022: team bloom </h1>
august 25, 2022<br>
#personal #artfight #art <br>
<!--220825,220728-->
<h1>no-legs the cat </h1>
august 11, 2022<br>
#game #no-legs-the-cat #godotengine #release<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>
<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>
<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>
<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 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>
<p>Have fun! More games coming soon. <br></p>
<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>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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>when are godot devs going to stop making everything out of the godot head? </h3>
<p>Probably never. <br></p>
<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>
Last updated July 21, 2022 <br>
<br>

@ -0,0 +1,42 @@
<!--210218,210107-->
<h1>the achievement system is the central nervous system of my game (part 1) </h1>
april 2, 2021<br>
#gamedev #gamedesign #achievements #world-progression #character-progression <br>
<br>
<p>What's the difference between winning a trophy or earning a quest reward for killing 10 rats? Probably nothing. <br></p>
<img src="/static/img/ent/rpgachievement_samepicture.png" alt="(meme: &#8220;Corporate needs you to find the differences between this picture and this picture&#8221; for Dragon's Dogma achievements like &#8220;Defeated an evil eye&#8221; and &#8220;Defeated 3,000 enemies&#8221; vs. quest journal entries like &#8220;Slay 25 crows.&#8221;)"> <br>
<p>In this series, I'll discuss how to design an achievement system. Mine is for an RPG, but it should work for a variety of achievements and game genres. I won't discuss integrating with <a href="https://partner.steamgames.com/doc/features/achievements/ach_guide">Steam</a> or other platforms, but they have their own documentation. <br></p>
<br>
<h2>platform achievements, quest rewards: there's no difference </h2>
<p><b>Achievement</b> is a rather nebulous term for gamers, but it's usually defined as an objective that creates a metagame. Devs offer them as a nudge to explore the full depth of games and seek out hidden secrets. For example, Portal's <a href="https://steamcommunity.com/sharedfiles/filedetails/?id=2008271826">Transmission Received achievement</a> turns the physics puzzle game into a game of hot or cold using radios you may not have even known were there. Most games' achievements look more like an extension of the quest journal than a metagame, though. Those Dragon's Dogma achievements in the image above are indistinguishable from notice board quests. They are practically unavoidable within a couple of hours of standard play. <br></p>
<br>
<p>Whether your achievements are meta or not, they can be earned through almost any in-game mechanic or system. (Unless they're so meta, they're completely external to the gameplay like <a href="https://steamcommunity.com/stats/221910/achievements">The Stanley Parable's Go Outside achievement</a>: <i>don't play for five years</i>.) <br></p>
<br>
<p>Unlocking an achievement usually awards a trophy or gamer points. In a way, increasing an in-game score is not unlike triggering a "quest complete" popup. An "event" occurs, and a "reward" is given. Some games offer something more tangible alongside their achievements, like a new game mode or item. The hat merchant in Stardew Valley will sell new hats for each achievement earned. <br></p>
<br>
<p>So not only does a robust achievement system need to be listening to the other game systems, it needs to be able to be able to interact with them. A system with that kind of power can do a lot more than notify you of achievements and add new hat merchandise - that's central nervous system material. It could progress the state of the game world depending on player actions. <br></p>
<br>
<h2>blessfrey's achievement system doubles as the character/world progression system </h2>
<p>Blessfrey feeds <i>every</i> in-game event through its achievement system, and its reward delivery is flexible enough not only to give a trophy but to cause <i>anything</i> to happen in response. Beyond achievement management, it is the system responsible for all forms of character and world progression. This is how Blessfrey can be a dynamic and responsive game. After all, if a system can dish out a trophy for killing 10 rats, it isn't too much of a stretch to say it could trigger a quest completion, unlock a codex entry, or teach the player a new skill. And if it can do that, why not something more dramatic? Killing the last 10 rats could be a turning point in the game world, putting the player on the post-rat timeline and changing all maps, NPCs, and quests to reflect the newly rat-free society. <br></p>
<br>
<p>I don't even think that last one is too silly. Games are all about making choices, so ideally, the world should always be responding. The only issue is scope, both in terms of developer workload and maintaining a coherent game vision. Thankfully, creating a system capable of anything is no problem, though. I'd prefer to be my only limitation, not my progression system. <br></p>
<br>
<h2>what is it going to look like? </h2>
<p>So realistically, how do I plan to use this system? <br></p>
<br>
<p>Obviously, the completion of a quest will be technically identical to an earned achievement, as will codex entries and level up rewards. They just won't be visible to the player or cause any trophy popups. <br></p>
<br>
<p>More abstract things will count as achievements, too, like skill acquisition. Blessfrey revolves around skills, so it would be cool if skills were unlocked in a meaningful way through the achievement system. I plan to have them learned through gameplay via a variety of different methods, so skillhunting feels more like exploring than grinding. Maybe the Fire Resistance skill could be learned by standing in lava for 2 minutes, by eating crème brûlée flambé (without blowing it out), or by taking fire damage in combat. Your time spent aflame will be the event needed to unlock the Fire Resistance skill achievement. Then whenever you check your Skill Library, it knows which skills you've unlocked by checking your achievements. <br></p>
<br>
<p>World progression will also be tied to this system. Spending $1000 at the mall could trigger a new store to open. Selling too many dungeon items to a merchant could cause him to become suspicious of where you come across them, changing your dialogue options or starting a quest. Even the UI could be tied to this system. Maybe the UI displays increasingly more detailed information when you hover your mouse over a slime as you hit different thresholds of slime kills. <br></p>
<br>
<p>I'm not kidding when I say <i>everything</i> is an achievement, though. When a skill is used, each stage of skill progression is doled out by the achievement system. It will prepare the skill for action, exact any skill costs, listen for required conditions to be met, and apply skill effects on behalf of the skill. Basically, skill use and the completion of each phase is an event, and triggering the next phase of skill progression is the achievement. The skill itself barely does anything besides provide information to the achievement system. <br></p>
<br>
<p>The more systems mediated by the achievement system, the better, I say! Letting systems run amok and modify each other directly causes unexpected problems all the time, and bringing in a middleman is such a reliable solution. <br></p>
<br>
<h2>stay tuned </h2><br>
<p>So a working definition of an achievement is something awarded in response to a player action or game event. Those actions or events could be related to any game mechanic or game system, be it combat, exploration, trading, racing, etc, so the achievement system needs to be linked to all of them. How can you possibly design a system that is distinct from yet deeply intricated in every other system? In part 2, we'll do just that! Keep reading. <br></p>
<br>
<br>
Last updated July 28, 2022 <br>
<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>

@ -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>

@ -419,4 +419,4 @@ def tag(tagin, page):
## Main ##
if __name__ == '__main__':
run(host='127.0.0.1', port=9001)
run(host='0.0.0.0', port=9001)

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -3,7 +3,7 @@
<div class="sidebar">
<div class="diary-box about-box">
<h2>about</h2>
<b>Blessfrey</b> is a 2D action RPG developed for PC in Godot Engine. <br>
<b>Blessfrey</b> is a 2D action RPG developed for PC in Godot Engine by Chimchooree. <br>
<br>
Edit your skillbar from hundreds of skills to fight enemies, solve puzzles, + explore. <br>
<br>
@ -12,9 +12,9 @@
<div class="diary-box twitter-box">
<h2>chat</h2>
Twitter: <a href="https://twitter.com/lilchimchooree">@lilchimchooree</a><br>
discord: <a href="https://discord.com/">CustomsOfficer#3449</a><br>
twitter: <a href="https://twitter.com/lilchimchooree">@lilchimchooree</a>
<br>
<a href="/contact" rel="nofollow">contact me</a><br>
</div>
<div class="diary-box latest">
@ -45,6 +45,6 @@
<br>
Blessfrey.me is not collecting personal information + has no cookies. <br>
<br>
Thank you for following the development of Blessfrey. <br>
Thank you for following my projects. <br>
</div>
</div>

@ -16,10 +16,10 @@
</div>
<div class="process">
<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 Japanese 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>
<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. I iterated over the concept in sketches a little. <br></p>
<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>
@ -101,7 +101,7 @@
<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 old 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>
<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>
</div>
<div class="garment">
<h2>outcome</h2>

Loading…
Cancel
Save