#that well with the rendering but eh. practice makes progress
Explore tagged Tumblr posts
Text
(I still don't know how to render properly so here's the image before I started throwing an obscene amount of layering onto it)
#shiguang dailiren#link click#時光代理人#lu guang#qiao ling#cheng xiaoshi#aashi doodles#legend has it that aashi continues to say they will do one thing and proceeds to do another#i am so sorry bridon chill arc i did not know the mod update was coming and that it was going to have me in a chokehold 😭#also i just wanted to practice rendering amd i thought that would be easier with a solo piece instead of a comic :) idk if it came out all#that well with the rendering but eh. practice makes progress
153 notes
·
View notes
Text
forget me not.

♡ based on — "During times of war. I want to say: I only love you, And I cling you, Like the peel clings to a pomegranate, Like the tear clings to the eye, Like the knife clings to the wound." and the song nightlife by daydream masi.
♡ summary — Hyunjin's unsure of the tingle in his gut, why it's happening. But he thinks, just for a second, it feels a little like hope.
wherein, putting your heart on the line for the sake of doing favours isn’t a frequent component in your schedule. But what happens when this favour is asked for by the boy you may or may not have fancied for far too long?
You accept it.
For a very embarrassing reason, really, which is — you think Hwang Hyunjin needs you.
♡ pairing— hwang hyunjin x reader
♡ word count— 8.8k whoopsies
♡ genre and alternate universe — angst, fluff + hanahaki au.
♡ author's note— this was supposed to be a drabble and then i sort of lost my fucking mind ehe...also this is easily the worst thing i have ever written im so sorry aaa but this is a lil present from my end hahaha
♡ warnings— suggestive content, vomiting, mention of blood. allusions to depression and heartbreak.
Amongst other things, you're extremely bad at saying 'no'. You don't mean the word per se...but the underlying connotation of this very monosyllable which may come at the expense of letting another person down.
It's sort of stupid, you understand, your friends have constantly voiced their worries for your extremely complacent nature more often than you'd think actually. But it all goes over your head. See — old habits really do die hard.
When you're eight, this very defect takes you to dreadful saxophone lessons your mum spoke so highly of. When you're 15, it gets you called to the principal's office for flashing Jeongin trigonometric functions in Mister Choi's pop quiz, when you're older, things are definitely no different.
The passenger seat is occupied, Hyunjin's holding a tangled muffler to his suede jacket clad chest. At 21, he's become someone you used to know. A friend of a friend, Felix's to be very specific. But the man in question, who was supposed to be his ride, passes off this duty for kegstands and you just happen to be the designated driver for the night, shuffling Jisung beside Changbin and Chan, who claims to be 'sober' even though he's half asleep.
Hyunjin is uncharacteristically quiet.
There's a polite smile on rendered your way as your eyes meet. A small curvature along his plump bottom lip, tighter around the edges. Still this simple formality is so beautiful that you feel something inside you come alive.
When Jisung starts snoring, you flip on the radio and Pink Floyd's Wish You Were Here comes on.
Your fingers feel numb when they come to tap out a rhythm to the track. It's nice. Tingling guitar riffs swelling, David Gilmour's gruffy voice pours in from faulty speakers. The more the song progresses, the more you find yourself attempting to think about anything that will distract you from the boy beside you, in the flesh no less.
So late at night, the main road is eerily silent. Cobblestones reflecting the sound of tires thumping against its layout, streetlights blinking at you from their drooping heads. Across the street, a baker is tucking away leftover bread and buskers are packing up their beat up guitars, a man in his late 50's pulling his blanket to his nose as he rests a head full of gray hair on the cold pavement.
You glance at Hyunjin from the corner of your eye and find that his staggering smile has completely disappeared. Now there's a distant glaze in his eyes. It's like he's here, in this moment, with you, but at the same time, he's somewhere else.
Under the impression you've done something wrong, you immediately begin to panic. But the thing is, you don't actually know if you should ask. Would it constitute as crossing a line if you had anyway?
Hyunjin covers his mouth with a sleeve, muffled retching building beyond fabric.
The reasonable assumption is obvious. It's not abnormal to be nauseous when you've got one too many drinks in you. He motions for you to pull over, incoherent sentences practically melding together, words forming and dissipating between choking fits.
You scramble to dig out a bottle of mineral water you habitually deposit in the glove compartment, offering him the tissue first. Ears perking up in satisfaction when a garbled thanks escapes his parted lips. But then... something weird happens.
As your eyes flicker to unintentionally glance at the contents discarded on the pitch grey sidewalk, you freeze in your seat.
You were never a big believer of superstition, not someone who buys into myths only meant for the fiction genre. Sure, you can be gullible sometimes...but what's happening falls no way under the realistic category.
The lethal Hanahaki disease, only inherited by some unlucky descendants, every moment in your head prior to this one, was something that's obviously non existent.
Yet... there's so much blood, too much blood attesting to your blatant ignorance. The petals are of a white rose, smudging together in swirls of grotesque crimson in mimicry of a sheen of red sticking to the inner corners of his lips. It has happened before, you can tell, from just how unsurprised he looks.
Hyunjin's stare flits to commit every detail of your to memory, in what only seems a quick study of gauging your forthcoming reaction, though even before you can produce a coherent thought, he says,
"You can't tell anyone." His voice drops a few octaves as though he's afraid your snoring friends in the back might've noticed. "Please."
Hyunjin's face softens by the slightest, contrary to his firm demand, there lies a desperation you couldn't overlook.
In retrospect, what you're about to tell is ultimately a promise that'd come back to bite you in due time. However, see now, you're extremely bad at saying no. Somehow you're even worse when it comes to Hyunjin. So you blink, turn the radio off and say,
"Okay."
—
The pool is preheated. For that you're most thankful.
Frankly, you couldn't imagine what it'd be like being pushed into a chilly body of water mid winter. Not that it's pleasant otherwise, you can't swim.
Well at 15, you hadn't quite learned to. The other kids have scurried inside to hog freshly baked Snowman biscuits Seungmin's mum is renowned for.
Then and you think you'll never quite forget it, Hyunjin's wearing an orange power ranger t shirt, it's darker now that it's wet, his glasses are marked with uneven splatters. His face scrunches up at the sudden splash of wetness engulfing his body. He wasn't planning to get in the water.
"Hold on tight." He says, wounding your arms around his neck, your calves tighter to his sides to support your shivering body. Back then Hyunjin's hair was black, cropped short and swept to the side, he smells like fabric softener and skittles. A water donut is discarded in the middle of the pool.
Everybody you know and don't know, from the birth of superheroes stuck in comic books to valiant protagonists behind fuzzy television screens, has this inherent desire to be saved. From the world, from themselves. No, no, it doesn't have to be a grand gesture, swooping them off of their feet from the grasp of surly men in dark alleys, sometimes it's really just simple. Sometimes people save you in the most ordinary way there is.
The weight of your form on his bright pink water donut while he stood on his toes to merely rest his elbows so the item wouldn't flip, a small act, certified this very claim, had not the nimble touch of his cold fingers, brushing away wet hair from your face, to anxiously ask if you're okay met the purpose. He talks to you like the sound of his voice has the power to injure you.
You nod slowly. Like this, it feels like you're going to be.
Hyunjin pouts, looking perfectly unconvinced. He paddles the pair of you to steel stairs spiraling into the pool, so he can stand without just his nose peeking out of the water, he looks at you once again, a wrinkle between his dark, arched eyebrows and says solemnly, "Jisung's such an idiot sometimes, isn’t he?"
But isn't he your friend? You want to ask. Something stops you though —his tone tells you you aren't the only one to fall victim to Jisung's practical jokes. Not that they were offensive or anything. Han Jisung, the same person who twiddles his thumbs when he wants the last chicken nugget and cries every time you watch Howl's Moving Castle together, genuinely doesn't mean any harm. It's just that...when he's comfortable with people, who aren't many, he tends to do a lot of dumb things. Dumb, endearing things that Minho will kill him for someday.
"A little bit," You mumble under your breath. Heat rising to your face at the possibility of Hyunjin being concerned for you. He sounds almost angry. "Thanks by the way."
It's rather pitiful to remember. Because with time, Hyunjin's world becomes so big that your interaction stands to be too insignificant to not forget. Before you know it, he's the shooting guard of your school's basketball team, just a handsome face who dates better girls, makes better friends. It's superficial and a little sad.
No, no, a little sad is an understatement actually.
To see someone you understood intimately, a boy who always described details too much just to stray from the main story, a boy with too many emotions bubbling to an awfully animated surface; someone who was passionate, sensitive and so nauseatingly big hearted...change into a man who is indubitably untouchable...is tragic. At least.
Yet funnily enough — you can't quite imagine a world without Hwang Hyunjin. His ringing laughter rippling through loud ambiences, his distant humming of Christmas carols whilst he absently skimmed through spines of children's novels and his eyes glimmering in adoration whenever he spoke of something he loved — Without him, you imagine, there would be a massive deficiency in your world, in the world. Like if birthday cakes came with the biggest slice carved out.
Hyunjin grins, a big sort of candid grin that turns his eyes into upturned crescents. His previous temperament long forgotten. Suddenly, this utterly atrocious happening seems to not be so bad. Suddenly you don't mind that Jisung is an idiot sometimes.
"Of course."
—
Hyunjin is not perfect. Hyunjin is no prince charming.
People don't know this. They don't understand this.
He ends up paying for dinner when he's out with a big crowd even though they were supposed to split the bill, he ends up crying when he gets angry and he is an abysmal liar, in every sense of the phrase. Hardly ever succeeding to hide his emotions when he should. When he was a kid his parents reminded him that it's a good thing to be unapologetically himself, that being honest is a good thing.
But as your eyes meet from across an ocean of people quagmired by crunchy leaves, sticky remnants of rain and his ex girlfriend who he now claims to be okay with being friends with, on her toes to poke his cheek whilst Chan's arm wraps around her waist, the soft white roses ornamented on a bow she loves wearing all the time, he thinks it's far from an agreeable trait to have.
Actually whilst you balance a newspaper under your arm and bring your coffee to your lips, it's like you're looking through him, past his skin, his flesh, something secret inscribed on his bones, embedded into his soul. You know everything, you know everything, you know everything.
The thought itself... surprisingly enough, doesn't appal him.
Hyunjin raises his palm in the air, feeling the autumn prickling against his skin. He waves at you.
—
Working at a library can be taxing. But it sure has its perks.
You can just about turn the place upside down and put it all back together without getting in trouble. Albeit another reason, besides your profession could be that Minho owns the place. Frankly, he may or may not have been the only cause behind your employment. It's hard to tell now that your co-workers really do recognise you've a knack for arranging things.
But to you, your job is very personal. A precious thing which relieves you from various worldly tensions. Velvety spines under your roughened fingertips, the burst of minted pages hitting your face every time you walk in, your love for reading, for a world of stories is so immense that you think you wouldn't have traded it even if your life depended on it.
For a disease that's not very well known, it's ironic how an entire section of mythology is dedicated to it. Past closing hours, amongst many novels mounted on your desk, you fixate on the one that made most sense. There's a few things you've picked up in common from all of them though — the hanahaki disease is extremely rare, it doesn't affect all those who suffer from the qualms of unrequited love.
Possible remedy according to findings entail
growths can be surgically removed, if the patient consents to eradication of memories of their loved ones.
Clanking of keys alerts incoming and you pause your tapping pen to look up.
"Burning the midnight oil, are we?"
Minho leans against the doorframe, he's half yawning, half talking and fully concerned for you.
"Yeah, looks like I'm gonna be a while." Your monotonous tone provides that you are not paying a lot of attention. You blurt without looking up. "Are you leaving?"
"No, still haven't finished archiving for that Pfizer project...But I'm going to get a bite to eat..." His inky eyes remain on you as his tone falters, "You want anything?"
"I'm fine. Thanks."
"Wow you're like...really uh invested." He tilts his head in thought, "You seeing someone again?"
You know Minho long enough to know he has a teasing side to him, from diaper days to play dates ending in pillow fights because he kept offering you his last Pringle just to pop it into his stupid smirking mouth — but you have no idea where he's going with this.
So you look up, finally. Furrowing your brows.
"No. What does that have to do with anything?"
He shrugs, "I haven't seen you concentrate so hard since you dumped Jeongin."
Your right eye twitches. Because you know exactly what he's referring to, and simultaneously, for the sake of your well-being, you much prefer being in denial. "What?"
"C'mon. Remember how you always ended up doing his homework?" He reminds you. "It's like when you like someone, you go out of your way to do charitable stuff for them. But...this? Too much. Even for you."
You ignore Minho's comment. To the world, Hwang Hyunjin's place in your life is not significant. After all this is the most natural undulation in the vicissitudes of life — for someone who once was your friend to eventually drift apart, to become a has been. It's too hard to explain why you care. After all this time.
"I was just being nice." You narrow your eyes, unimpressed. "Clearly this concept is lost on some people."
"Sure you are, bud. If being 'nice' is synonymous with whipped." Of course, there's a smug grin gracing his pouted lips that tempts you to fling something at him. Not that you can though. Seeing as Minho breaks out into a full fledged sprint, his singsongy voice a thinning echo bouncing off of shelves and windows and doors.
Still somehow his footsteps manage to travel through walls, permeating into your office with such great amplitude that you could be bamboozled into thinking he hasn't left at all. Or maybe you've stopped paying attention, your eyes zoom in on any other helpful detail you can put to use in wrapping your head around what you have witnessed firsthand.
At the same time, you can't really ignore how hungry you're feeling just from the mention of a bite to eat. So when Minho's shadow forms again on the page you've been 'reading' for the last few seconds you sense a gigantic wave of relief washing over you.
"You know what I changed my—" slamming the book shut, you blink against scanty provision of light, with raise your head and a bleary vision, recognise him in an instant. Except...it isn't Minho. "mind..."
The only source of brightness is a small emerald lamp perched on the corner of your desk, light green catches onto one of the ornamented corners and speckles of golden caress his supple skin gently. You hadn't realised how cold it might've been outside until you see how heavily dressed Hyunjin was, a long overcoat worn over woollen sweater, a Santa hat and muffler pulled to his chin. It's no one other than your boss himself who has given him directions to your office, you know this, Hyunjin has never been inside before.
So when he marvels absently, you sense yourself feeling a little self conscious about not cleaning up. All around you, a comforter and love seat pushed against the window, cigarette butts discarded in ashtray and then...the books strewn before you tell him you practically live here.
For some reason, Hyunjin only seems to loosen up at the spectacle.
"Hi." He says finally.
"Hi..." you arrange the reading materials quickly to one side so you can rest your elbows. A small (successful) attempt made to hide your research. "Something up?" You say, but what you really mean is, what are you doing here?!
Did he suspect you were going to tell on him? Right that's it, that must be it, you tell yourself, believing, knowing, of all the years Hwang Hyunjin has known of you he has never been one to care about your whereabouts.
"I just...um," He starts, forwarding his mitten clad hands. It's the back of a crumpled coffee cup on which straight handwriting reads a bucket list...of sorts. You immediately understand that his coming is an act of impulse. Urgency of living every moment like it's slipping through it's fingers, that he just needed to tell the only person who knows, be it by accident.
Hyunjin clears his throat. "I wanna do all this before I die."
In lieu of giving an instant response, baffled, you gawp at him. Despite knowing, hearing Hyunjin say it out loud somehow makes everything...too real.
It's as though someone's reached inside your throat, pulled your heart out and crushed it with their bare hands. Hyunjin, the boy who smelled like fabric softener and skittles and wore power ranger shirts, the boy with the fantastic smile and cold fingers, is dying. You won't let him. You can't let him.
You thumb along the numbers scribbled in hasty penmanship, look up and blink rapidly, "Okay," you say, a small whisper, barely there words. "That's okay."
Even with the hat covering tips of ears, you could tell the same faint blush coating his cheeks had rushed to that particular area. His eyes drift off to the sight of pens discarded inside a wooden holder because he can feel your gaze on him. "and I...I need your help."
"Alright."
Hyunjin's eyes widen to a great degree, he sits straighter, as if he hadn't expected you to comply so quickly.
And honestly? Neither had you.
It's quiet. Awkward.
"You know it's not like I haven't thought about dying. I just figured I'd get to grow old first, settle down, have kids and all that," A wry laugh escapes his parted lips. "Everything's happening too fast."
You hesitate, thinking he's making a mistake. Frankly he shouldn't feel obligated to give you an explanation.
"You...you don't have to tell me."
"No—I mean...can I?" He gives you a sheepish look, disliking his own whimsical tone, somehow endearing still. You find yourself wondering how long he had to keep his burdens to himself, not just pertaining to his illness, but everything. His dreams, his hopes, his fears. Anything which requires a certain amount of depth. And you almost ask him, the question sitting at the tip of your tongue, yet the realisation rather simple, stops you. Maybe you've mistranslated 21 year old Hyunjin all along — moulding himself into someone who's convenient around people who only liked him for who he appeared to be, maybe even with all that popularity, parties and glamour, he's just...lonely.
You push your reading glasses into your hair, press your knuckles under your chin and hum in consent.
He shifts in his seat, "Have you ever... been in love?"
You release an amused huff. Let your eyes linger on him for a long minute.
"Once."
Hyunjin half expects you to laugh. Poke fun at him for his melodramatic backstory. That's the sole reason why he doesn't tell his friends (funny, for people he considers close, they seem to know not much about him or care to know, that is. ). But you... you look at him with something in your eyes that tells him the rubbish reasons he posited makes all the sense in the world. Hyunjin's unsure of the tingle in his gut, why it's happening. But he thinks, just for a second, it feels a little like hope.
—
Midnight rendezvous.
As someone who has lived a fairly extraordinary life, Hwang Hyunjin's bucket list is bafflingly ordinary. He's more of a finding joy in small things kind of a person, punctilious at best.
Things change. People notice. They hesitate, whisper about you and last night while you were out on last minute cheap wine run, the grocerer, a girl who looks around sixteen asks you if you're dating Hyunjin. Underneath the thinly veiled curiousity, there's something like anger dripping from her words.
You furrow your eyebrows in simple insinuation that it's weird for a stranger to take interest in your life. Maybe it was written on your face, the fact that you're a dying man's beck and call is for reasons far more complicated than it looks.
You go to his parties. Greet him as a friend would and not just for the sake of maintaining formalities. He comes to the library more times than he does, waits for you to get off work so you can check something off the list at least. People notice. People understand. Hyunjin's different around you. He's bright, talkative when he forgets to contain himself. You sense your heart swelling with pride just at the understanding that he can be himself around you.
You drive to the beach, sit in your trunk and drink straight out of the bottle.
Hyunjin laughs a little. Suspends his feet in the air. With time, he's gotten paler, exhausted. "Rough day?"
You hum.
"Very. Our children's collection is usually low in stock around the weekends."
Hyunjin crosses his arms over his chest. Curious.
"And?"
"And if I say I got yelled at by a toddler would you believe me?"
Hyunjin feigns contemplation, even with the realisation that his body is becoming less and less cooperative, he manages to remain perfectly cheerful.
"I can actually," he grins, "At that age, I was a real pain in the ass."
"Were?"
Your smile is just a slight curl against the bottle's mouth as he grumbles under his breath about your 'insensitive' remark.
You think of your life after Hyunjin, think of his absence like a gaping hole you'll never be able to fill out. It makes you sick to your stomach.
—
Bake something from scratch.
Hyunjin's face twists in apparent thought, eyebrows rising. A pink tongue poked against his cheek, whilst he chews carefully, trying really hard not to flash an accidental reaction whilst you clasp your butter and oat flour soiled hands together, some of the batter on your cheek, neck to anticipate his answer like your will to live depends on it.
You ask yourself how it got to this. Why you didn't care that you were awake so early on a Sunday morning with flour powdering every kitchen appliance in sight in spite of being awfully restrictive about who you let into your kitchen. But it doesn't matter, it doesn't matter because it's nice like this.
Hyunjin has his hair pulled away from his bare face, a mole under his eye, a small birthmark on the back of his ear.
When you first met, you thought he was a kind of handsome that couldn't be real. Something formidable about it. Only destined to exist behind fuzzy television screens and flashy magazines.
But in retrospect, you realise, that that's not true at all.
If you look close enough, if you really pay attention, there's a softness underneath, something goofy, something warm, the sharp jut of his nose circling into a soft button, his eyes are big, black and his mouth jutted out into a natural pout, he looks innocent, like he doesn't quite realise the extent of his charms.
"It's..." His soft voice pulls you out of your reverie, and you look up to find his eyes glimmering jovially. Every time it surprises you, the lack of regret in them and the abundance of nonchalance. You wonder what it means to love someone like that, to love someone to the point of martyrdom. It shouldn't be like this. "perfect,"
"This is like, the only batch we didn't burn, right?"
You snort, "Yeah." Fully turn to him, "You know what they say, fifth time's the charm."
Hyunjin's laugh, you think, is so contagious that it makes it an imperative to smile in return. In shaky compartments the sound comes, like being 8, laying wide-eyed in a paddling pool and staring up at a crayon blue sky, raindrop rippling beyond all that noiseless water. His eyes curve to upturned crescents, an unconscious hand covering up the seams of his lips whilst he shakes his head. You don't even notice when he starts speaking again.
"Huh?"
"I said you got a little...something..."
You almost lose a fraction of your sanity when his nimble fingers come to wrap around your wrist while you hold onto the spatula employed into the whole snickerdoodle batter mixing business, a liberated hand coming up to gently wipe your cheek. It means everything to you. And nothing to him.
Later, when you're alone at night, really alone, you put your palm to your chest and feel the unsteady beat of your heart. A warning, a reminder. I can't. I can't. I can't.
—
You hold Hyunjin's hair up. His hands resting on the cold toilet seat, he's whimpering and bleeding. It happens every time he sees Haseul, or something which reminds him of her. Like the song.
This time she's drunk. And it's because she impulsively rises to her toes and presses a tender kiss to Chan's lips.
Hyunjin's just a feet away, across students and solo cups and streaks of neon falling irregularly through his line of sight.
He can never confess, not to her. The last thing Hyunjin wants is for her to feel bad for him. To say she feels the same as an act of service. He tells you. You understand. Somehow... you always understand.
They met in college, Hyunjin and she. And Chan was an upperclassman who seemed to be good at...well everything. At first, he couldn't figure out why it never occured to him before, the fact they were getting together maybe before, after or during the length of their relationship.
Though the answer is simple.
Hyunjin thinks the pillar to good relationships is trust. Call him a sappy romantic or whatever but he had seen true love manifest from it through generations before him and his parents and their parents. To think a different fate was woven for him...used to be unimaginable.
How ironic is that?
Hyunjin presses his cheek against your chest because he doesn't want you to look at him when he cries.
Then for the first time....he tells you he's scared. He's scared of what will happen to him. Of what is happening to him.
He's falling apart.
You cradle him, press him closer to your body like you're trying to put him together. People can't fix each other. Not really. But sometimes... they're worth the try.
"Hey...hey...it's alright," You shush him, run your fingers through his hair. Your voice almost breaking, faltering. Still this, this you mean it with every fibre of your being. "It's okay to be scared."
—
Self bleach hair.
It's Christmas and you're late for a late night dinner he's putting together. (As reluctant as he was about getting along with Hyunjin, he seems all too eager to make invite him whenever a get together takes effect.)
His apartment smells like floor cleaner. There's a queen sized bed pushed against an electric blue wall, a Fleetwood Mac poster taped to his door, small reading desk where Canon EOS New Kiss rests, polaroids of things checked off the list littered all its wooden surface.
You pick up the only photo he hasn't labelled, it reminds you that your friendship isn't just based off a pursuit. This is natural. Pizza box discarded between you two, on your roof top. It's a little too dark, you're holding a cigarette between your fingers, you're laughing and Hyunjin looks like he's going to complain the minute he's done taking the picture. (And he does.)
You smile, pressing your fingers against it like the touch could transport you to a simpler time.
"Ready to go?"
Hyunjin rakes a tentative hand through his newly dyed hair, grey (a suitable colour he says.). You can tell he's put a lot of effort into cleaning up, his usual hoodies and sweats alternated with a red satin shirt tucked into dark dress pants and a coat of the same colour. Hyunjin is beautiful. Perhaps even more like this. In fact, the extent of this quality is so Goliath-like that it obliges dolled up attendees to marvel up in awe. While you fully agree with their unsaid ponderings, you really do, you find yourself missing a less sophisticated version of him.
"Yeah, but first..." you fish out a wrapped squarish material from the depths of your pocket. Hyunjin's eyes widen, two bunny-like teeth showing for the extent of his grin.
"You got me a present!" He all but rips it out of your hand, shaking the material eagerly. He’s a Christmas person, a supreme holiday enthusiast if you will. The sheer excitement in him projects itself in every physical aspect possible. Slight jumping on the balls of his feet. "It's a cassette...?"
You speak too much, nervous he doesn't like it. "It’s a Christmas mix. I thought...since you like carols. I know it's a little old school, I'm sorry if that’s not what you were hoping for—"
Hyunjin pulls you into a big hug, wrapping his entire body it feels like; his arms around your waist, he squeezes you tighter against him, "Thank you." He whispers into your hair, it's not just about the cassette, you can tell.
There's a small light bulb dangling from his ceiling, he hasn't fixed it since the first time you pointed it out. You can tell with your eyes closed, you've begun to know more intimately than your own home. It's safe here. A place that deludes you into thinking that he's not running out of time, that even in his absence in the world, whenever you should walk into this room, it would be an imperative to find Hyunjin lazying about in its confines. Familiarity can be quite tricky, can't it?
His gratitude is not unknown to you. It's in the guilty smile that threatens to show every now and then, it's in this and it's in that. In many ways, it is not something you're a stranger to.
And yet the words manage to tears your heart at the seams. Just a little.
—
Make a snow angel.
From above, he imagines, he may appear to look like a chunk of cookie dough in an ice cream pint.
The snow is not as comfortable as it appears, its frigid temperature seeps into Hyunjin's clothes (and what feels like his internal organs, if that's even possible). He waves his hands and legs inward, outward.
Your head tilts towards him. Face twisted in annoyance. "You're getting on my wing!" You say. "Have you no respect for personal space?!"
Hyunjin narrows his eyes jovially. And people tell him he's the one with a penchant for theatrics. He leans closer in rebuttal, waving his leg around your design with more purpose. You give up. Sit on your knees, fumble with the snow. He’s still in the same position. Smug as ever...
"This is what happens when you disrespect your elders." He fake-warns. "Oka—"
What he doesn't anticipate, however, is the snowball you launch on his stupid grinning face. Now it's your turn to laugh. You clutch your stomach and point at him whilst he glares at you having barely managed to blow the snow off of his mouth.
"Oh, you're gonna get it now!"
You let out an animalistic screech, Hyunjin’s already trapped you under his weight, his thighs wound around your waist, hamstringing your plan to escape, now you're merely squirming. His fingers come down to attack your sides, digging into the flesh so mercilessly to the point you’re not sure if you’re laughing or crying. It's like there's a wildfire inside your lungs.
For a moment you forget, you let yourself forget what's to come.
“Alright, alright I’m sorry!” you press your palms against his chest in an attempt to push him off, Hyunjin has a dumb smile on his face that seems to give the impression of a hanger stuck inside his mouth. But... there's something behind his entertainment as the sound of his laugh dies down, chest heaving with exercise. His smile drops.
You can count each lash, each freckle and line on his face. The dark in his eyes. The pink of his lips. Your sweater's ridden to your ribs. And the warmth of his fingers shifting against your bare skin hits you with an earthshattering force.
Hyunjin kisses you. For a fleeting second, you freeze. Rigid with shock. Then it passes as soon as it comes.
You let out a noise of content,indubitably grateful that your neighbours forgot to put on their porch light for the night. See it’s like this, the act of kissing is not as special as is the person himself, you muse, you can kiss anyone, you can touch and be touched by anyone. But none of that truly compares to this. Not when they aren't him.
You’d be lying if you said you never thought about it. Just like you’ve thought about a lot of things. But just the realisation that the boy you’ve harboured in your heart for more complicated reasons than you disclose, to yourself even, touches you with so, so much care...it’s tearing you apart.
It’s too good to be real.
You suddenly push him away. The tugging and pulling at your heart too much to handle. For the fact remains — Hyunjin doesn't love you. He doesn't even like you. You never expected him to. Actually, you've never felt what you feel with that condition in mind either.
See when the feeling of having everything you could ever want is cradled between your palms...it ought to be hard to let go. (Maybe he’s just doing this because he feels bad for you, the little voice in your head says. You listen.)
Hyunjin speaks up first.
“I love Haseul.” he tells you, but it sounds more like he’s telling himself. “That’s why...that’s why, all this...I love her.” Not you.
You swallow, “I know.” Your hands come up to dust your pants. Hyunjin’s still on his knees, as if the answer to his conflicts are deposited under all the snow. “It’s okay.”
“No, it’s not, it’s not okay. I shouldn’t have, I shouldn’t have done—”
Now you hear it, the hint of pity in his voice. You don’t mean to sound as bitter as you do. Seeing as you’re usually very good at keeping calm , breaking that very reputed front frustrates you even more.
“Look just forget about it, okay? We don’t have to talk about this.”
Hyunjin looks like he didn’t expect this side of you to exist. At least, you think, at least it got him to stop talking.
—
Learn to skate.
"If I fall, I'm taking you with me."
"You say it like I have a choice."
Hyunjin shoots you a warning glare even though you can't see. His choppy skidding steps supported by the vice grip he has on your arms. You haven't skated since you were in highschool. But when you're pretty good at it still, the smooth blade of your beaten skates gliding through ice with much dexterity, it's like floating, freeing, the wind hitting your faces, snow catching in your lashes. It's peaceful, you try not to think about the warmth of Hyunjin's arm circling around body, the vague rhythm of his heartbeat against your back. His laboured breaths on your neck. It's torturous. But spending so much time with him has taught you to hide your feelings better.
The park welcomes a large crowd around holiday season, children with toothless grins, tugging onto their mum's coats, small chin resting onto a parents' head, teenagers moving in together in school uniforms. It's the happiest time of the year. When you move past an elderly couple, they smile and tell you make a wonderful couple.
You're just about to make a correction. This puts you in an awkward position... doesn't it?
But then Hyunjin grins toothily and says, Thank you, like it's the most amusing thing in the world. You ignore the wrenching inside your chest.
Hyunjin leans forward, his plump lips brushing against your ear. "Where did you learn to skate so well?!" There's something like excitement in his kiddish laugh aside from admiration. It's not much of a question as it is an exclamation.
"I am pretty good, aren't I?"
He laughs, doesn't let you go. "Yes, yes...really good."
Out of breath, you slow down, move your feet steadily, careful not to lose balance.
"Oh my God! It is you!"
You raise your head, blink against flakes hindering your vision. Jeongin's voice used to be thinner before. As far as you remember. Now it has a weight to it.
You let out a nervous laugh.
"And it's you..."
Jeongin's eyes travel to the arms around your waist, to the stiffened figure behind you and you immediately liberate yourself. Moving to let Hyunjin use your arm as purchase, you don't fail to notice the pinch in his forehead, a frown on his mouth.
"This is my friend Hyunjin. Hyunjin, this is Jeongin—"
"We used to go out." Jeongin smiles, forwarding his hand, which is returned with an unenthused shake and a demure reply. Hyunjin never speaks to anyone this way, not even people he claims to hate.
The former male looks to you again, "I was, uh... wondering if you'd like to go out for a cup of coffee sometime."
Things between you and him ended amicably at the event of his departure for further studies, which deprives you of awkward tension which is expected when exes meet.
Besides, a cup of coffee never hurt anyone.
Right?
Without thinking, you nod slowly, "Yeah that sounds good,"
"Text me anytime."
"Sure."
“I'll be out of your hair then," he beams. "It was very nice meeting you too, Hyunjin."
"Right."
Hyunjin, you realise, has released your arm. He leans on barricades fencing along the skating area, smiling briefly. You know it’s wrong...yet you sense that you almost need him to be upset.
Then he tilts his head back towards you, "He seems like a really nice guy," he whispers, genuinely meaning every word. Your heart sinks. "I see the appeal." Underneath the lurid glare of fairy lights brandished overhead, Hyunjin's ash hair glints like it's threaded out of silver. You wonder what he's thinking.
—
Watch every Disney movie ever made.
You never end up texting Jeongin back. Just stalling for when you're ready, you tell yourself. Even though that's not true at all.
"This brings back so many memories. My parents used to belt out A Whole New World with me, like every time we watched Aladdin."
Hyunjin wipes his face with the back of his hand, technically you’re not very sure what he’s saying exactly because he’s mumbling into a paper napkin you've passed over for the umpteenth time. You find yourself picturing a small but happy family of three, of Hyunjin in Scooby Doo pajamas and gap between his teeth. (Contrary to your previous convictions, he hasn't changed all at much, save for the teeth bit. ) It's cute.
He looks to you expectantly. Can't be the only one telling embarrassing stories.
You shrug, "I had a thing for Simba. Let's just say my mum and dad were nice enough to indulge me."
Hyunjin reaches for the remote and pauses the ending credits of Lady and the Tramp. He turns to you fully now, gives you a judgemental stare. "Simba...?" He says, "Like the...lion?"
"What? It's normal to crush on fictional characters, okay?!"
"Okay,sure," Hyunjin snorts, putting a pillow between you and him so you can't kill him. "furry."
A part of you is tempted, obviously. But the much bigger part is more invested in how he looks happier, healthier. You want to think that means something.
—
Hyunjin invites you over for movie night. It's getting colder and you keep poking him with your cold feet. There's an extra set of blankets in his cupboard, he informs you, he isn't sharing his with you — and that's when you see it.
The deflated pink donut folded to the side, his and yours sharpie inscribed initials on one side.
"Found it yet?"
You don't even notice when he comes to stand behind you. So the question effectively makes you jump out of your skin. Hyunjin has a bowl of popcorn pressed to his chest, there's a pink hair band holding his hair away from his forehead. For the lack of a answer he takes it on himself to find the source of your silence. As if you've been caught red handed.
You think this is where he'll ask you to leave, that or he'll least scold you or something. You prepare for the worst.
Hyunjin just smiles, it's a big smile that succeeds in bringing out the small dimple indented on the side of his cheek. You've never noticed before. It's kinda weird. Because when it comes to him, your attention hardly ever falters.
"You probably don't remember. That’s from Seungmin's 15th birthday,"
You want to scoff under your breath. All this time you had told yourself that you were the only one to be affected by your estranged friendship growing up. Now...the same logic colours you every bit of ridiculous.
You blink away, swallowing. Voice solemn.
"I remember." Hyunjin's gaze is heavy on your shoulders. An emotion you can't quite put a finger on crosses his delicate features. It's something between surprise and relief... something else too. You don’t understand it.
—
It's disconcerting that he can’t remember the last time he got sick. Not the usual discomfort inside his chest, not the blood, not the thorns or petals. Hyunjin's just gotten so used to it, you know? What if he gets his hopes up for no good reason? What if it just comes back?
There's no possible explanation, he explains over a hasty 3 A.M message he had to leave on your answering machine because he's freaking out.
Then Haseul texts Hyunjin, tells him she misses him. Everything's adding up. Everything's falling into place. This is what he wanted, isn't it? She loves him, she finally loves him back. That must be it. He doesn't know what to say.
But he tells you, and when he does, it sounds a lot like an apology.
—
Kiss underneath a mistletoe.
“Chan and I broke up.” She says it like it’s something he should be happy about. So when he remains quiet, it only prompts her to speak more, fill up the big mighty silences.
“I’m sorry to hear that.”
“Look Jinnie, I know I made a mistake, but...can’t you give a second chance? Just this once?”
Hyunjin has thought about this particular moment a lot. Kissing her instead of producing a response, pulling her off of her feet and mumbling of course, of course, of course. Back then, there were little doubts in his head pertaining to her, back then he believed that she was the only one for him. The love of his life at the wrong time, in the wrong place.
Now...something doesn’t feel right.
The thing about wounds, sometimes, of the heart in particular, is when they close up, it’s hard to make head or tails of the kind of person you become in their wake. Hard to adjust. Like when he suddenly shot up 7 inches in ninth grade, a late bloomer at that, and the weight of his new sneakers felt..odd.
He glances at her and also understands what it’s like to be lonely, the constant need to compensate for it by grasping at the last straw. He used to be in her shoes too. This isn’t any different. Albeit, he isn’t exactly taken by her presence. Just that he doesn’t know if what he’s doing is right. He looks over your table a few feet away from where he’s standing. Having gone out to take a call. You notice his absence and then from your seat, do your best to locate him. (he thinks of kissing you on a bed of snow, thinks of the sizzle of your skates against ice, thinks of his list on a coffee cup and his pink water donut and it’s okay to be scared. Why did it have to be you of all people, through everything? It’s not really a work of coincidence. Not at all actually.
Maybe he just wanted it to be you.)
When your eyes do lock...seeing him with his hands in his pockets, her standing beyond the barrier as she tries to say something, you smile, even if it’s a little sad. Hyunjin thinks to the conversation some nights before. Thinks of you reminding him that there's nothing to lose at this point, that he should do what his heart tells him. That it’ll be alright, if he just takes a leap of faith. Hyunjin smiles back. Through the glassy exterior and mini water fountains running down its slanted form. The realisation is not as dramatic as he thought. It’s just late.
He tears off the false mistletoe decoration glued along the periphery of an arch.
And like always.
He takes your advice.
—
Cohorts of guests pour into the colossal hotel, heads turning in quiet admiration for bejeweled arches breaking out against buttery white architecture, the roof is impossibly naked, translucent glass baring a starlit sky to your watchful eyes. Showing little mercy to a frail chute held over your head,costumed characters wade through oceans of gossamer, twinkling silver and swaying movements to slow jazz. You prop a heeled foot up on the bar platform, which strangely resembles a pedestal, in a futile attempt to catch your breath, with clammy digits settled atop the risky surface of a marbled counter. A soft voice speaks over the ambience, uttering your name with much care. You lift your head. And there he is.
Jisung is scouring through the Spotify playlist you’ve put together for New Year’s Eve. He’s complaining about the lack of Beyoncé while your friends go around the buffet table. When he calls you, you’re sipping your drink, laughing at something Changbin is saying, his eyes brighten just at the sound of your laugh. Hyunjin isn’t surprised to see his friend taking a liking of you even though he hardly knows you. That’s just the effect you have on people.
Excusing yourself, you allow him to walk you to a less densely populated area where a stone pillar faces expensive paintings of nameless painters. With the effect of alcohol settling in and your inhibitions effectively lowered, your steps sway a little. You lean against the massive build rising from tiled floor. “So what’s up?” you murmur, the lump in your throat thickening just at the thought of him speaking the good news into existence. “I take it went well?”
Hyunjin doesn't answer. He looks distracted for a bit. Then in an instant he snaps out of his daze. “What did you mean when you said ‘once’?”
Your brows come together in inquiry.
“What?”
"When I asked you if you have ever been in love, you said ‘once’." He persists, his fingers come up to your shoulder, grazing slightly as if they’re trying to carve out words against the skin. "You weren’t talking about Jeongin.”
He knows. He’s always known. Hyunjin can’t believe he’s been so stupid.
“Took you long enough.” You let out a sardonic laugh.“Well, it doesn’t matter now, does it?”
"It matters to me..." Hyunjin sounds offended, you gather, but he manages to quell his temper for the sake of coaxing your confession. Is he purposely embarrassing you? "I don’t think...I love Haseul anymore...I didn’t realise...I haven’t for a long time."
A big chandelier beams over withering plants pushed against the ceiling, in this poor supply of light, you can tell exactly how he looks, eyes glimmering adoringly, you've spent something-teen years of your life wondering what it's supposed to mean. And it still manages to confuse you.
"Why are you telling me this?" you ask, albeit you already know. Because funnily enough, before he got his braces removed and dyed his hair a scandalous blonde, before bucket lists and heartbreak, he was just the boy who told you he liked your stupid reindeer sweater even though it had officially made you the 7th grade laughing stock. You remember being fifteen and in love with Hyunjin. And you've never actually stopped. You need to hear it to believe it.
It drives you crazy. The way Hyunjin brushes his fingers against your cheek, shifting strands away from your eyes. But you can't help it, you've always wanted this. You lean into the caress, peering up at him as his large hand cups your jaw, thumb traversing from your tilted chin to your glossy lips like he's trying to smooth out all the creases. His voice is small, a whisper.
"Because I need you to know I think I’m falling in love with you.” he says. His palm opens and there’s a plastic mistletoe nestled between his fingers. You’re smiling and sniffling whilst his forehead comes to press against yours. Hyunjin grins. “And there’s still one last item on my list.”
“Are you seriously asking me to land one on you now?”
“Oh hell yeah.”
—
"Move."
You press your fingers against the slick, sweaty skin.
In rebuttal, Hyunjin grumbles under his breath. Only half awake, half aware that he was mumbling in his sleep. His naked chest seems to be, if it’s even possible, glued to your bare front as he sprawls out like a starfish over your body, using his gangly arms to accommodate the strange position.
Though and you know he knows it too — it’s anything but uncomfortable.
See by now, you aren't exactly a stranger to Hyunjin's sleeping habits. Or really, any habits of his.
All the windows are cracked open, moonlight percolating through a thin sheet of curtains in rendering evidence that it’s still night time. You can make out the faint sound of honking in the distance, a few stray dogs here and there, probably producing strings of complaints about the blatantly unbearable heat.
The strong stench of sweat and an aftermath of what happened before is a quick reminder of where you are, what you’re doing and that your arm’s going cold for a lack of circulation under his weight. Beads of sweat collected against his skin and trickle down the side of your face, the crook of your neck, which only prompts you to apply more force to the pads of your index and pointer — albeit it did nothing to move him, "Gross." You groan. "You're sweating like a pig!"
This comment, of all the things you've tried to get him to sleep on his side, succeeds in making Hyunjin raise his head, his grey hair matted down, a few rogue strands pushed out to fall over the unamused look in his eyes.
In an unprecedented minute of absolute clarity, something inside your stomach started to churn at the shocking sight. You’re impossibly, absolutely and nauseatingly in love with Hwang Hyunjin and the funny thing is, you don’t have to think twice to know he is too.
"Gross?" Hyunjin lowers his face to brush his pouted lips along your jaw, grinning when you let out a shaky but involuntary breath and as if he is looking to make a point with his digits traversing from your bare stomach, just along the hem of your underwear, "After all that?"
"I hate you." You say — but more like, stutter. The sound of his giggles eliciting a strange sensation in you, reverberating against your chest, knocking against his ribs and your skin, like it’s trying to reach out to you, like your bodies insist on melding into one.
"I don’t think you’re being honest, baby." He laughs, squeezing your side, coming up to plant a warm palm to your butt to repeat the action, which in turn, drew a mewl from you. “Because you looove me.” Hyunjin smirks, his finger thumbing along your throat to your chin. You think this is what all those great poets meant in endless litanies of lovers torn apart by time and war woven together in a simple caress, like a longing, like a secret. Guarded from prying eyes, greedy hands, and you keep it, you keep it. For him. With him.
#kwritersworldnet#stayhavennet#hwang hyunjin fluff#hwang hyunjin imagines#hyunjin angst#hyunjin x reader#hwang hyunjin angst#hwang hyunjin x reader#stray kids fluff#stray kids imagines#stray kids angst#stray kids fanfiction#skz fluff#skz angst#skz x reader#stray kids x reader#lee know x reader#minho x reader#jeongin x reader#hyunjin smut#stray kids smut#skz smut
976 notes
·
View notes
Text
What if there was a Banana in the library in Deltarune? Part 2!
What progress have I made on this ambitious project since last time?
Well, for one, I corrupted something and had to start all over again.
But it is was far easier since I somewhat know what I’m doing now and...
(gml_Script_snd_play(snd_drumroll))...
...
Praise It.
Worship It.
For it is here.
Pretty good, mhm?
Well, there are some obvious issues. It’s big, because all objects from the Dark World are big for some reason. And you can’t pick it up. The first problem is easy to solve.
There.
But the second problem takes a bit more work, but not much. Ultimately I just copied some code and fiddled with the ordering of statements.
(You can’t hear it, but it makes a little chime.)
Now, that alone is rather uninteresting, isn’t it?
There needs to be some fun. Some excitement. Some of that Toby Fox charm except amaturishly replicated by yours truly.
What I want is dialogue.
Let me tell you: this was a nightmare.
This GIF sums up the experience:
Deltarune’s dialogue system requires you to do a bit of setup to actually use it. You have to instantiate a “dialoguer” and make sure a bunch of variables are set right. This took me hours to figure out.
Eventually, I got somewhere.
But obviously I didn’t just want Susie talking. I wanted her emoting. So I set about trying to understand the face system.
(Susie practices her numbers and ABCs. Isn’t she smart?)
Essentially, lines of dialogue look like this:
The most startling thing is that they’re full of things that aren’t actually text. They’re control codes.
The “\\EH” at the beginning of the first line line tells the dialogue system that it should set the face index to “H”. The faces are indexed by 0-9, and then A-Z. H is the eight letter of the alphabet, and 9+8 = 17, which is this face:
There are lots of other control codes. Such as “^1″ which puts a short pause in the dialogue. (It’s used everywhere in Deltarune.) As well as “\\cY” and “\\cW” which turn the text between them yellow.
Piecing these all together, I made this cute little dialogue.
But that still wasn’t enough for me. I needed MORE of that charm. And who better to bring into the scene than the banana woman herself?
For goodness’ sake why must everything in the Dark World be massive
I simply do not have the energy to delve into the text rendering system and fix this so I will simply roll with the big text.
And so I present to you, the “final” product, the Banana Mod:
30 notes
·
View notes
Photo

awake - jbj95 outfit | line distribution dance: ( 00:00 - 00:18 ); ( 00:56 - 01:05 ); ( 01:09 - 01:12 )
this was not a situation he thought he would even make it to. perhaps it was the residual lack of self confidence that still stormed its way through his mind at the most inopportune of moments that made him think this way but each week that passed where his name was not called during eliminations felt far too surreal for him to simply acknowledge his presence on the MGAs as a solidified fact. nothing was for sure in this show nor was it in this business and so he made it a point to not take his continued chance for granted. he’d have to come back stronger each time.
he was aware of his position when compared to the other contestants. or rather… his lack of position. when it came to rappers he was competing against a former idol of a group he was actually a fan of and a fan favorite that everyone seemed to love in their interviews. he’d gotten a few commendations but he was never really suited for variety and so his screen time when compared to others was lacking as well. he had what he had going for himself and he needed to make that work else he would be buried alive by the others.
this was something he was sure he had foreseen happening when the next challenge was announced. duos. pairs. a partner.
it rendered him speechless at first. who was she? oh she had been commended by the judges. so she had to be really good. what kind of music would she like? would their images match well? would they be able to keep up with each other? would they even get along? so many thoughts were running through his head and they’d not even had the proper chance to greet one another before they were directed back to their seats.
surely this was going to be a fucking disaster.
however he couldn’t have been more wrong. all of the nerves he went into their collaboration with were soon melted away after their first practice. he would have to adjust to working with others in that regard and sia definitely put him to work. her anxiety inwardly made him anxious. it was written all over her face just how nervous she was, how worried she was about everything. that instability rattled him… but he could empathize with it. he knew firsthand how crippling anxiety could be and not even for the sake of the show but simply for her own peace of mind, he did everything he could to assuage her worries and fears.
he brought food for them from work to eat and get energy for their practices. she seemed at ease when talking about her cat and so many fun stories were exchanged along with promised playdates. she grew comfortable and song suggestions began to enter the conversation and from her observations, she made brilliant suggestions that when he looked at and listened to them, he could see himself within the performance. his music was taking an upward turn. happier. able to connect with others without drawing on the negative. the lyrics of awake especially drew him as he imagined yeji and what she meant to him. the love he felt for the song was instant.
things were progressing smoothly.
they grew closer as they practiced and the more they interacted in the studio and in messages sent back and forth, the more it became easier to be comfortable as they established a natural chemistry to translate into their performance. a week was a short amount of time to fully know someone but they were at ease with each other and there was a mutual trust that their futures were in each others hands and that they were truly in this together. he was the better dancer of the two – a truly relative position to have when they were both beginners – and though they only selected short snippets of the choreography, they wanted it as perfect as possible. the moves would brighten the song – the entire atmosphere they were going for – and they wanted to make sure it remained an asset and not something detrimental.
there was an adjustment period for him that he couldn’t ignore though. to rap someone else’s lyrics as though they were his own. it was odd. having to follow someone else’s flow when his own flow switched up and changed on his own whim was something he had to find comfort in to be able to find confidence in someone else’s lyrics. he had to suspend his own creative difference from the original lyrics and instead find himself within them and when he approached it differently – as though he were looking at a script – pieces began to fall into place. yeji. this was for her.
they went shopping to agree on outfits for the stage and though his hair was such a hassle in his eyes, they were able to agree on a look that would be comfortable for them both and keep the youthfulness and playfulness of the song alive. it was different than what he was used to but when they wore their outfits in the store and stood with one another in the mirror, he could really see the picture come together. the loving atmosphere of the song. their skills. their stage presence.
this would work. he could feel it.
—–
the day had finally come.
he’d woken up that morning feeling really good and though he was nervous about performing with someone else in a genre that he was beginning to adventure into, he was glad that he was getting the chance to do it with sia. they both had a quiet kind of charisma and it seemed like it would be hard for them to burst out of their shells but when they were on stage it was an entirely different concept. what was practiced was performed with natural execution and what was improvised was received and reciprocated with comfortable chemistry. her greeting made him smile, the trademarked words of hers followed up with his own casual introduction that he’d adjusted to since joining the MGA’s. “hey, i’m vernon.” they interchanged as they spoke about the song, a smile rising to his eyes as he spoke into the microphone before they took their spots. “hopefully this gets you thinking about your first love in the best of ways.”
they circle round each other in the beginning of the choreography and each snap is achieved with practiced rhythmic accuracy. not a beat was missed. sia’s voice lifted up from behind him with their backs pressed to one another and he used the opportunity to use what his former pr agent said was one of his best assets: his face. he smiled a charming smile that colored his salted caramel hued eyes a playful happiness that when he thought of the lyrics shone just a bit brighter as he knew his own first love was right there in the room with him, the look directed back towards sia appropriately. the way the bass of the song underneath the building dance beat kept him entranced energized him and the confidence he had on stage kept him easy. he was thankful for his continued dance lessons that removed the stiffness from his moves in the little bits of choreography they’d decided to use so as the spotlight was turned over to him with a gracious smile from the lovely sia, the weighted microphone was brought to his lips to give the listeners a deep contrast to the bright lightness in sia’s voice as he had a mischievous warmth that would suck them into the bass drop.
Ay 깊은 안갯속에 난 길을 잃어가 너란 빛을 따라가 네게 닿을지 몰라 I’m falling down 끝이 없는 걸 어서 Baby 나를 깨워 줘
he kept the fun in the delivery as the entire song radiated an addictive energy, his hand coming over his cheek as though he were asleep, his eyes closing, with a light shake of his head before he opened them as though surprised, a smile beaming across his features at the cute act. not a single word was missed, his clear and audible delivery something he prided himself on with each syllable tended to in order to keep the freshness of love in each word. he gives sia the stage with an exit as though being pulled away towards her, the tug on his sleeve turning his effervescence her way with a hand naturally coming up to affectionately rest at the hair at the crown of her head as his lines begin again, bringing himself to separate away from her as he clutches his chest as though separating was driving him crazy to find his spot for the highlight of their performance.
매일 봐도 모르겠어 Baby 니가 보고 싶어 Oh crazy
as the chorus began and their voices fell into sync – a harmony they worked hard together to achieve with sia’s singing abilities coming in handy to find a tone they could fit together with his very minimal experience – they fell into the choreography that embodied the bouncy exhilaration the song was composed of, his smile sincerely one that showed his enjoyment of what he was doing. they had perfected the parts they were able to do as a craft and seamlessly transitioned the parts they were unable to do out for different moves that would instead express their overjoy. they moved together, one after the other, to form the heart they had worked into the chorus, his radiant smile tamed as the bass dropped and he sucked the audience back into his words. because every word had importance and he gave them attention to give them meaning that he could feel and that those who were feeling a really strong love could feel.
you wake me up with your mind you wake me up with your mind you wake me up with your
You wake me up with your You wake me up with your mind
I’m on your side, you’ll be my sign 조금씩 빠져들 거야 더 흐릿하던 날들은 너로 선명해져 I got you now 널 보면 Lose my mind
너의 향기로 차올라 Eh 나의 맘은 벅차올라 Eh 잡은 두 손 꼭 놓지 마 Eh
he rode the bass of his rap, his body naturally bobbing to the rhythm as the mix of english and korean dispatched from him showed his deep affinity for hip-hop in the emphasis he put on the rhymes exuding a charisma that he felt in his confidence as a rapper and that was something he never doubted. but he kept it spirited to match the lively dynamic of the song, his hand coming out before him to gesture as he looked directly towards sia as though rapping to her, his smile playfully smitten and mischievous with all the tenacity in his shining caramel brown eyes of a man 100% sure of the woman that he wanted. he dropped the mic as he looked at her, her lines taking over his eyes on her forming deep set crescents as she hit her notes as though he were proud, his eyes still set on her even as he delivered his next lines, lightly taking her hand for the second line before breaking free from her again to find his position for the chorus once more.
매일 봐도 모르겠어 Baby 니가 보고 싶어 Oh crazy
you wake me up with your mind you wake me up with your mind you wake me up with your
You wake me up with your You wake me up with your mind
their choreography for the chorus burst through refreshingly once more, his adlibs in the back filled with energy as he released a happy ‘whoo’ and ‘come on’ in the empty space between their synchronized lines until they were made to come together once again, their heads coming to rest together instead of a heart to end off the song. her finger hearts go up and his hands form a circle over his mouth that he bites into a heart, the exhilaration of the stage still very strong for him even as he bows before they take their exit.
for all of the doubts that he had going into the stage, he performed at his utmost confident state, allowing himself to really feel the song and get into it while syncing with his partner to create a fun, playful and innocent stage depicting all the wonders of a first love. the entire time all he could think about was yeji. he’d performed it with her in his heart and he hoped that she could feel it and he hoped that everybody who watched could feel their love in their hearts too.
4 notes
·
View notes
Text
What I Thought Of Every Single Game I Played In 2017
2017 was a weird year for me. In terms of my personal life, it's been something of a holding pattern; I'm a year older, but I've not accomplished nearly as much as I'd liked to. I've had a lot of good times, and I've done my best, but I probably haven't made an entirely meaningful use of my lingering youth.
But on the other hand: I got to play a whole bunch of video games! 2017 was a good year for video games. It had to be a good year for something, I suppose, and if the rest of the world was going to be getting it nasty this year, video games might as well be the thing that gets its due.
This write-up is an overview of what I thought about every single game I played this year. Only games that released this year qualified for a numbered “place”, as interpreted through my own rules. Here we go!
[2015] | [2016]

19. Fire Emblem Heroes – Android – ★★ – 2017
As a latecomer to the Fire Emblem games, this did nothing for me. I don't have a great amount of affection for the characters in the abstract, three lines of dialog and a couple cut-ins of them stabbing a guy don't even qualify as “fanservice”, and the narrative that is there is just plain bad. It's admirable that they managed to reduce their permadeath-driven tactical RPG to an experience that works on phones, but I have zero interest in throwing myself into gachapon hell in the hopes of a “dream team.” Besides, the second orb I cracked open had a five-star Camilla in it, so my experience was guaranteed to be a down-hill one.

18. Pictopix – Steam – ★★ – 2017
Pictopix is a fascinating lesson that not all Picross games are alike. It's not just a matter of creating puzzles that are secretly pixelized art: there is a flow to good nonogram design that is apparently quite hard to achieve. Where I get a lot of enjoyment from the Picross E- and Picross S- titles, I didn't care for this one, despite being on a platform well suited for a picross-a-like experience. I'm not sure I can even articulate just what rubbed me wrong about it (though the shoddy controls didn't help); the puzzles just felt clunky in a way that other takes on this style of puzzle did not.

Shantae: Half-Genie Hero – Steam – ★★ – 2016
I accidentally backed this game on Kickstarter a few years ago. I thought an artist I was a fan of was attached to this project, when they just did some contracted promotional material for the Kickstarter. It's on me for reading into that, I suppose. In any case, I backed this game, it came out last year, and I couldn't honestly be bothered to actually play it until this year.
After having finally done so: I'm not sure why people like these games? They feel like baby's first platformer; it's well-produced, but threadbare in terms of mechanical complexity. There's a vague Metroidvania-aspect to re-exploring levels you've already completed, but it lacks the simple mechanical joy that the best of those have. The characters don't really do anything for me either; I presume if you've been following these since the mid-90s you get something from their interactions, because personally I just find it kind of lame? The art is fantastic, and the game looks good in motion, but overall, it's just not for me.

17. For Honor – Steam – ★★★ – 2017
Until I started making this list, I had completely forgot that For Honor even existed. Remember this game? It's the one where you play as an assortment of medieval warriors assembled from across the globe to stab each other in 4-vs-4 3 rd person capture-the-point combat. It was OK, but the experience overall fell flat— largely because of an abundance of flaws peripheral to the core gameplay.
The basic combat and mechanics felt and worked well; the simple axis-based block-or-attack combat system enabled some truly awesome duels that really felt like you were in a melee. But while the combat worked quite well, there wasn't a whole lot going on around it to justify the overall experience. The campaign was functional, but it was clearly an afterthought, bereft of even characters. The multiplayer was fun, but severely hampered by a poor progression / unlock system, as well as bad matchmaking and server issues.
In another year, perhaps For Honor would have stood out more. If the game had received post-release support in the way Ubisoft's more Clancyesque titles, perhaps it'd have had longer legs. As is, I spent enough time with it to know that it was maybe worth coming back to once they had hammered out their online issues— something that never really happened. And then the rest of 2017 happened and put it in its proper place. Oops!

16. Picross S – Switch – ★★★ – 2017
Where Pictopix disappointed, Picross S is functional, acceptable Picross. It's far from the best Picross offering in this line (I think I had the most fun with Picross E3, and not just because of its dumb name), but it is Picross on the Nintendo Switch, which is basically all I was really wanting out of it. The loss of touch screen interactions from the 3DS release is bizarre (the Switch has a touch-screen my dudes!), but I can live with it.
15. Shovel Knight: Specter of Torment – Switch – ★★★ – 2017
It's been interesting to watch Yacht Club take the baseline premise of Shovel Knight— a retro-styled platformer shouting its Mega Man inspirations via megaphone to anyone who'll listen— and alter their execution with these different DLCs. Where the original Shovel Knight was a relatively straight-forward platformer (with Ducktales-inspired down-stab action), and Plague of Shadows was something of an odd build-your-own-shooter, Specter of Torment focuses instead on aerial combo-attacks. These changes really alter the gameplay; where the others could be a bit mindless at times (particularly Plague of Shadows, which was fairly easy given the number of projectiles you could throw across the whole screen), Specter of Torment is considerably more demanding of one's attention; you have to be more deliberate with your actions relying than relying on flow to get you through.
The design of the levels doesn't feel entirely there; while they certainly have been more redesigned than Plague of Shadows' were to fit the different style of movement, it just wasn't that fun to play through. Rooms were either too easy or too frustrating, with little in the way of a middle ground. The boss fights were trivially easy (which is dire in a game aping a series that largely relied on the quality of its emblematic show-downs). The plot was… fine? It certainly was a Shovel Knight prequel alright, that's for sure. At this point, I must imagine Yacht Club and I are both on the page on wanting see them work on something else at this point. They've proven themselves to be extremely competent developers, but it's time to put Shovel Knight to rest; they've gotten about as much blood as they can out of that particular stone.
14. Mario Kart 8 DX – Switch – ★★★★ – 2017-ish
OK, seriously Nintendo— when are you going to make a new F-Zero? Don't you give me this bullshit about “Why would you want a new F-Zero when we've already done it before!” when you keep making new Mario Karts with little different beyond the platform you put it on. All Mario Kart 8 DX did was pack-in all the DLC and add a true battle mode— which is great and all, don't get me wrong. It's just a sign that your excuses suck and you need to fund a new Captain Falcon vehicle-vehicle ASAP.

13. Player Unknown's Battlegrounds – Steam – ★★★★ –– 2017
I want to like Plunkbat more than I do, but I don't. What's there that's good is great; the open-world mix of random-luck and skill-based shooting (especially with friends!) is a real hoot, particularly when one is either taking it entirely too seriously or entirely not seriously at all.
But something about the game just feels… incomplete? Despite leaving early access, it really has a lot of work that it should be still getting. The physics is jank (the vehicles annoy me to no end), there's still absolutely 0 tutorializing for new players, and the problem with persistent hacking and aimbotting has been dire as of late. There's also something to the notion that a lot of the skill in the game comes down less to polished learning of the mechanics and their interactions and more a sort of base memorization of Plunkbat Best Practices. That's not innately a bad thing, but I personally find these sorts of experiences better when they're focused more towards tactical mastery than strategic mastery. Both are important in Plunkbat, but I prefer mastering the former over the latter. The game seems to disagree. I feel like the quality of my gear should be less important than how good I am at using what I find. That is not the case. Oh well.
I'm looking forward to putting more time into this with buds in the future, but I've fallen off the wagon as far as general enthusiasm goes. Eh!

Prison Architect – Steam – ★★★★ – 2015
Prison Architect is sort of a highly-specialized, more accessible Dwarf Fortress. Much of the appeal of Dwarf Fortress is the immersive unpredictability of managing emergent personalities trying to go about their tasks, and ultimately, it's so complex that an ASCII-based rendering is the only way to handle it all. Prison Architect constrains the variability by its very nature (the things people do in a prison are typically well-regulated, and there's not a lot of agency within those bounds), resulting in an experience that is nowhere as impenetrable as Dwarf Fortress— but also nowhere as appealing.
There's just not as much going on when you get down to it; while there's certainly variability in prisoner personality and actions, there are just so fewer variables in terms of what someone can do and interact with. Plus, given your funding regimen and in-take are totally under your control, the actual form your prison takes doesn't need to vary; you're not incentivized to innovate beyond a desire to keep things interesting. You can just your layouts entirely towards efficiency and nothing else, and even then, there's no real end-game to it beyond making numbers get bigger.
Mini Metro – Android – ★★★★– 2015
Mini Metro is a slight mobile puzzle experience, but it is quite engrossing while it lasts. The pairing of simple mechanics and style works very well on the phone. You make subway lines connecting points. It looks like a subway map. It's pretty good.

Total War: Warhammer – Steam – ★★★★ – 2016
I've always been vaguely interested in the Total War games— just never enough to go out of my way to actually, y'know, play them. Warhammer Fantasy has never been my thing, but I like fantasy things in general, and the idea of applying battle tactics to lines of zombies was appealing enough for me to give this a look. Overall, it turns out I enjoy the tactical depth of Total War!
I'm not sure how I feel about the strategic-layer in the few factions I played—it's a bit micromanage-y, and any faction managing to sneak its way to the back-end of your empire becomes a real chore-- but the tactical level is very good. The interplay of artillery, cavalry, and troops-of-the-line is realistic enough to where you can apply real-world know-how and be rewarded for it. The types of troops are massively varied, both inside and outside of the factions. I was mostly drawn to this game by the monster-y factions, so those were the ones I played most.
I'm looking forward to checking out Total War: Warhammer II... eventually?

12. Sonic Mania – Switch – ★★★★ – 2017
Sonic is bad. If you add up the total of what Sonic has been over the last two decades and average it out over the amount of games he has had the misfortune to appear in, the average Sonic is hardly deserving of the fawning devotion he receives. Those first few mainline Sonics were good, no question—but that was over two decades ago. SEGA has never succeeded in recreating the feel of those games—even when they have ostensibly tried.
Thankfully for them (and us), there are those that can succeed. Sonic Mania, created by long-time Sonic fans and hackers, perfectly captures the feel of those first three games almost too well. It's basically Sonic 1-3+K+CD, warts and all. The Sonic CD-based stages in particular carry on Sonic CD's design of being too long and really fucking annoying, which is rather indicative of the ethos of Whitehead towards recreating the feel of the older titles. I'm very curious to see if they'll be given permission to do a Sonic Mania II, where they'll perhaps have a chance to innovate more and burn off those warts. I'm not sure if they would, but I certainly hope they do. Sonic deserves better than, well, Sonic.

Stellaris: Utopia & Stellaris: Synthetic Dawn – Steam – ★★★★– 2017
This is technically a 2017 release, but it's so miniscule an addition to the existing Stellaris that it's not worthy of a numbered ranking. Stellaris in 2017 is a lot like Stellaris in 2016, but better. The addition of end-game specializations, new government-types, and the ability to play as both hive minds and robots are extremely good, but there's still a lot of room for improvement. That's the Paradox model, I suppose; they'll continue iterating and adding onto Stellaris over the next half decade until it finally achieves some near-ideal state—or the engine buckles under all they're trying to do with it. One of the two.
My favorite Stellaris moment this year must be the creation of "The Borth Problem". The Borth are a race of space Hyper-Platypuses, whose traits were specially selected by their creator (me) to be absolutely trash. They're short-lived, xenophobic pacifists who hate being around each other almost as much as they hate being around everyone else. I force them to spawn as one of the empires in every game I play-- not because they're particularly threatening, but because watching them repeatedly balkanize every two months under the strain of their own ineptitude and malfeasance is extremely good. Occasionally some fool attempts to annex Borth planets, which is a tragedy in and of itself.

11. Tekken 7 – Steam – ★★★★ – 2017
God am I terrible at fighting games. I've just never put in the time to get any good, and I'm way too prone to mashing out moves I think are cool than learning combos or hit-strings. God do I love fighting games though— and Tekken 7 is a good one. It is a Tekken game through-and-through, but the additions they've made to the cast have been good, and the limb-specific combat system continues to hold up after all these years.
To be completely honest? I've been playing mostly as Eliza—whose special strings are just Street Fighter entry strings. She's basically Ryu if he was in a bustier (and a sleepy Dracula). It's allowed me to get past the hump of learning how to pull-off her specials, though it's done little to actually get me good at stringing combos together. It's still a lot of fun though.

10. Puyo-Puyo Tetris – Switch – ★★★★ – 2017
IT'S PUYO PUYO AND TETRIS, WHAT ELSE DO YOU WANT FROM ME?

Final Fantasy Tactics: War of the Lions – PSP – ★★★★ – 2007
Coming to Final Fantasy Tactics two decades on from its initial release on the PlayStation, one can still understand the appeal. The tactical RPG system has phenomenal mechanical depth, supporting wide-ranging customization and gameplay specialization. There's lots of weird systems to learn and exploit. The setting is austere and grounded in a way that few RPGs are; the story it tells is ultimately yet another Japanese tale of man-killing-god, but the way that it's presented is more about fighting back again the abuse of systems by society, and the futility of one man trying to change the world.
At the same time, two decades have passed since Final Fantastic Tactics came out, and it honestly has not aged superbly well. The controls are bizarre, its job system is rather annoying in practice, it suffers from the usual problem games with permadeath carry where the second a character joins the party and becomes non-essential, their relevance to the story ends. The story which was apparently once so astounding seems almost quaint now; “Organized religion… may be bad!” is far from a hot take in these days, and there have since been hundreds of other games (JRPGs, even) playing in the same sandbox.
As someone introduced to the Ivalice setting of Final Fantasy through Final Fantasy XII, it's also somewhat strange looking back at this series and trying to conceive of them as some connected timeline. A lot of what I liked about Final Fantasy XII was its diverse races and their cosmopolitan associations and interactions. Tactics has even less than none of that. It goes out of its way say with a ringing finality “AND EVERYTHING NOT HUMAN OR DEMON WENT EXTINCT, THE END.” Pour one out for my Ban'gaa homies, I guess??
I had fun with Final Fantasy Tactics, but I suspect I may have had a miserable time if I didn't have a friend warning me of points-of-no-return and making sure I didn't build myself into an unwinnable state. Also: exposing me to the utterly broken arithmetic / mathematics magic system, good lord.

9. Splatoon 2 – Switch – ★★★★ – 2017
Splatoon was a good game; Splatoon 2 is that same game, on a different platform.
The additions made to Splatoon 2 are really quite minor; there's some slightly different weapons, and the campaign is denser, but all in all it's just the same good game. The only meaningful addition to Splatoon 2 is Salmon Run, Nintendo's take on the cooperative Horde mode. And you know what? Salmon Run fucking rules. My best multiplayer experiences this year were playing Salmon Run with my boys on Discord. If it were more reliably available, I'd probably have played it more!
youtube

8. What Remains of Edith Finch – Steam – ★★★★ – 2017
The latest in the Walking Simulator genre, What Remains of Edith Finch is low on the interactivity, but high on the graphical fidelity, atmosphere, and emotional heft. Sometimes that emotional heft veers into the realm to over-sentimental schmaltz (the ending engendered some real roll-eye), but it doesn't diminish the overall experience. What interactivity that is there is quite good, and it all-in-all made for a great evening experience. I like these sorts of evening-games where you can plop down for 4 hours and just have a nice, self-contained emotional experience.

7. Metroid: Samus Returns – 3DS – ★★★★ – 2017
Maaan, it's good to see Samus in a properly ass good video game again. Other M was bullshit that I wasn't down with at all; this is some proper Metroid-ass Metroid. While there's perhaps still a bit too much Metroid 2 in there (the game is remarkably linear for a “Metroidvania” and the area design is a bit one-note – befitting its Gameboy origins), Metroid: Samus Returns is a very excellent proof of concept that yes, you can make a good Metroid in 2017.
It's also proof that even if we can no longer trust the franchise to Sakamoto's hands without him ruining everything and throwing a tantrum about Prime, others are capable of doing what's necessary to ensure that Samus remains a galactic badass and not Sakamoto's weaponized nadeshiko. Uugh.
As an aside: The references back to the Prime Trilogy, as well as the REALLY WELL-HIDDEN sequel-hook, are extremely good and appreciated. I am pumped to see what Mercury Stream (or someone else!) does with Metroid moving forward. Is that sequel hook actually a Metroid Prime 4 hook? That'd be cool as hell.

6. SteamWorld Dig 2 – Switch – ★★★★ – 2017
SteamWorld Dig was a relaxing, though ultimately rather forgettable take of what would happen if you crossed Metroidvania with Mr. Driller. SteamWorld Dig 2 would be the same, if it wasn't for the fact that it's just so god damned well-polished. Everything about it from the core gameplay feel, the movement, the digging speed, the music— they're just so damn well executed. The game world is just a delight to be in.
The story and ending are disappointing (as legally required of every SteamWorld game) but that's not really the point; this is absolutely a game where it's absolutely about the journey rather than the destination. When your journey revolves around such a fundamentally satisfying gameplay loop, the greatest sin it has is ending in the first place.
youtube

HITMAN – Steam – ★★★★★ – 2016
HITMAN is good! IO Interactive has created the ultimate encapsulation of the Hitman formula. The game is built to encourage replay and iteration on the game's limited number of maps. This is great, because replaying missions to achieve the perfect murder is a real joy. HITMAN is a game about perfecting the art of playing it: learning the systems, the maps, and the routines of people to the point where you see the clockwork that everyone else is beholden to— so that you can slide between the cogs like a bald, sardonic time-ghost. The game is grimly hilarious and cool in equal measures. I can't wait to see what they do with Season 2.

Stardew Valley – Steam – ★★★★★ – 2016
Stardew Valley is a celebration of the routine. While so many games are about providing novel experiences and spectacles to keep our interest, Stardew Valley enables you to a build a routine, iterating and adapting as the world twists and turns around it. It's about riding a slowly swelling wave while maintaining flow; your farm and experience gets more and more complicated as the seasons go on, but it's always at your own pace; there's no real stakes beyond a desire to prosper and discover. It's charming and addicting in equal measures.
I'm glad they stopped development on it to focus on porting it to new platforms, because I'm pretty sure they'd have honest to god killed people with it. It turns out the cup-and-ball game from that Next Generation episode is actually a game about pleasing your peepaws' ghost by growing corn and hooking up with the goth chick down the lane. You're welcome, peepaw.

Valkyria Chronicles – Steam – ★★★★★ – 2016
Man, SEGA used to make brilliant RPGs back in the day, huh? I really liked Skies of Arcadia, and this is another RPG in that vein from that era. You wouldn't think “fantasy World War II European Front through the lens of Japanese RPG developers” would work, but… it does! They manage to evoke some genuine ethos, and their depiction of the brutality and horror of war, the in-grained senselessness of inherited discriminatory beliefs, are actually pretty OK. You'd think “We're going to depict ANIME FANTASY HOLOCAUST” would be the Worst Thing Ever, but they manage to thread that line enough to make it work… mostly.
Perhaps the craziest thing about Valkyria Chronicles though is that they somehow managed to make a tactical JRPG about trench / tank warfare not only work, but work well. While it's kind of breakable in areas and has balance issues, it managed to hold my interest through the dozens of hours without getting bored. I wasn't invested enough to do much in the way of the extra / repeatable missions, but I thoroughly enjoyed the combat for what I played.
That all said, Valkyria Chronicles could have done with less anime all around. If you turned that anime dial down a good 20%, this would have been a vastly superior work— perhaps even an all-time great. Unfortunately, its tendency towards Anime-ass composition and design, and some frankly juvenile characterization means it will forever carry that stigma of “it is very anime” that prevents it from penetrating into less anime-immune audiences. Still, for those willing to give it a shot and endure some really ham-fisted anime-as-all-hell ruminations on peace, Valkyria Chronicles is a real gem.

5. Super Mario Odyssey – Switch – ★★★★★ – 2017
The single thing that has defined Mario since the halcyon ape-threatening days to his hat-tossing present has been his movement. Over the years, the movements available to “Jump Man” have become more varied and complex, but they still harken back to what set him apart in the beginning: it's all about the jump. Mario Odyssey, while ostensibly about his more obvious hat-trick, is in reality just another stage of the gradual, ever-evolving repertoire of Mario's jump. He just… jumps so damn good y'all. It feels real damn good to run around and jump on shit as Mario. The hat even makes it so he can basically jump in the air, it's ridiculous.
Mario's new ups are made even better Mario Odyssey's excellent collections of worlds for him to mark with his kicks. The sheer variety and volume of unique platforming experiences is great, and it's ultimately up to you how deep you're willing to take it. Mario is something of a casual completionist's nightmare, given just how many stars there are to find. But for those willing to take a step back, the game allows you to engage it just as much you'd want. You could work on polishing your platforming skills to where you easily master the Darker Side of the Moon, you could just play enough of the game after “beating” it to get your fill, or you could just play what's needed to get to the credits. If you're a complete mad-person, you could try even collecting all those stars. All are valid end-points, and no matter what the experience is a complete and quality one.
Some one-off thoughts:
The new enemy designs in the game are so good. A particular shout-out to the Oni Thwomp!
THERE IS A BOSS WHOSE NAME IS “Brigadier Mollosque-Lanceur III, Dauphin of Bubblaine”, FUCK
Steam Garden's God Hand surf rock theme music is so good
The entire end-game sequence leading into the post-game zone was one of the most surreal things ever
NEW DONK CITY
youtube

4. Cuphead – Steam – ★★★★★ – 2017
Cuphead is a magic trick. At first glance, it seems impossible, like an actual sorcerer has walked in and done something impossible. “There's no way anyone could recreate the style of Fleischer-era cartoons and make a genuinely good video game!” Like any magic trick, once you look at it long enough the magic goes away, and you see it for what it is. You see the sleight of hand, the smoke and mirrors required to resurrect a nearly century-old style and make it work in what should be a wholly incompatible medium. But the skills required to pull that trick off, and that such a small studio accomplished it, is itself a feat worthy of a wizard with a sizeable beard. It's not perfect, but it's as damn close as any person could ever expect to see, really. The game looks, sounds, and plays damn good.
It's been funny following the discourse around Cuphead's gameplay, particularly the reaction to its difficulty. It's nowhere near as hard as people make it out to be; it's got a lot in common with bullet-hell shooters like the Touhou games, to be sure, but the difficulty about those games, like Cuphead, are more about learning how to play them right than anything particular crazy about most of the challenges they put in front of you. Once you learn how to precisely move the character, you can basically relinquish yourself to the flow state and soldier through pretty much everything (within reason). Cuphead's real trick in this regard is that the types of things going on screen look so fucking cool that it can pull you out of the flow through sheer wow-factor. It's a game that is harder because it looks so good. Unreal.
youtube

3. Pyre – Steam – ★★★★★ – 2017
The cruel hands of mother nature have evolved Supergiant Games into the perfect predator of my species. Their approach to writing characters, stories, and music is such that whenever they release one of their games, they burrow a tendril into my brain and maneuver my zombified body into a hole so they can lay eggs in my chest cavity. I'd feel more broken up about how they play me like an acoustic guitar if they weren't so, y'know, good at playing acoustic guitars.
Ostensibly, Pyre is NBA Jam meets Oregon Trail meets a Visual Novel, but it's so much more than that. It's the archeology of uncovering the history of a world through half-heard conversations and vaguely-written reminiscences. It's the trepidation of holding the fate of friends in your hands and knowing that you can't save them all in the end, and still having to choose. It's the struggle for glorious revolution, even though the odds of a bloodless one is low. It's all these things. You plot the end of an empire with a pipe-smoking treeman in between games of mystic slamball with a mustachioed dog. Everything about how it carries itself and presents its world resonated deeply with me and held me enraptured to the very end.
youtube

2. NieR: Automata – Steam – ★★★★★ – 2017
I've spent a lot of the last year thinking about Nier: Automata. At this point, I'm not even sure what to say about it. Do I talk about the questions it raises about humanity and what we may leave behind? Do I talk about its astounding visual and audio design? Do I go on a long aside on Yoko Taro's writing and directorial style? They're all valid things to talk about, but they're also all meaningless. They're only important in how they made me feel over the course of my journey with Nier. Intrigued, lost, depressed, uplifted. Nier: Automata invoked all these emotions in me in turn.
In the end, I'm left somewhat in awe of the experience. Not because Nier is a perfect game; it's a very flawed one. But it's a game that's really made me feel and think. Yoko Taro weaves the threads of narrative, emotion, and atmosphere with the deftest of hands. So what if the loom he was forced to work with wasn't a particularly good one? Nier: Automata is one of the most complete explorations of the nature of humanity and how impossible it is to grasp. I imagine I will carry thoughts of it with me forever.
youtube

1. The Legend of Zelda: Breath of the Wild – Switch – ★★★★★★ – 2017
Breath of the Wild is my favorite video game of all time. Thanks, Nintendo.
youtube
#game of the year#2017#nonfiction#think piece#breath of the wild#nier#pyre#cuphead#mario odyssey#valkyria chronicles#final fantasy tactics#hitman#steamworld dig 2#stardew valley#Stellaris
15 notes
·
View notes
Text
Original story concept: global temporal crisis
So, this story concept happened entirely by accident. A friend of mine (@erimies https://www.fanfiction.net/u/5374016/erimies , yes, for you Naruto fans out there, that Erimies of Clan of Samsara and I didn’t sign up for this) has been sharing her original story ideas with me. We do this a lot. Just bounce ideas around and do snapshot world building speed battles (it’s tote battles! You can’t tell me otherwise!!). So today we talked about an old idea she had left on the burner for awhile. Her idea involved temporal pocket shenanigans and magical world (of the fantastic science variety). I won’t go too deep into it because it’s her idea and maybe one day we will all get to read it in a book. But my ADD ass apparently forgot completely about the original fantasy setting and assumed that the temporal crisis happened in our current real world instead and … because as usual, I’m like a rabid dog being thrown a world building hook bone, I just went completely crazy and before I knew it (and before she could type ‘wait a minute. Wrong setting! Wrong genre!! Stop! Stop!), I had already written the basic premise for a completely different story also involving temporal shenanigans and global scoped world building (and yes, I flooded her tumblr message app with 99+ messages in under 15 minutes. It happens a lot, I’m proud to say!).
And well, what do you know? After some sheepish back and forth and mutual marveling of each other’s story ideas, I (or rather we because I made sure she was ok with this) decided to type it down and post it. Why? Because… well… because I’m the kind of writers that tote subscribe to the practice of sharing ideas and premises. I like to bounce ideas and concepts around with other people. I think it makes for much richer and more varied concepts and premises. And I would like to hear other people’s takes on concepts, see how different people view it differently. I don’t get possessive over creative ideas and concepts (well… mostly I guess). My boss told me that that’s bad habit for a published author, bad for business and all that but… eh… I guess I can’t change who I am. I just like to share you know? I think the more merrier (or bigger / more mutated /more fun, as ideas go).
So, without further ado, here it is:
I. Premise: our current world, as in, today, May 18th, 2017, Gregorian Calendar, the world is suddenly hit by an unexplainable phenomenon. For a split second, time stops moving for our planet. And when the next second arrives, it splits, branches, implodes in on itself. Our time zones fracture and warp and create bubbles within bubbles. One clock becomes a hundred thousand, each moving to its own rhythm. The next thing we know, our world is fractured into countless temporal zones. Time moves wildly in each of these zones/pockets. In some, it moves far slower than it should. In others, it moves far faster. It rewinds, warps. There are nations where the flow of time goes backward, and then forward, and then backward, winding around itself. The natural world does not escape the effect of the fractured temporal zones. Forests become deserts in a matter of days (the concept of days is fast approaching either an end or transformation too). Mountains rise from the sea. The ice caps enlarge and expand into the territory of northern Europe.
In the human world, the crisis is unprecedented. In the span of a second, global communication, trade, transportation, and the world wide web all immediately cease. Pandemonium erupts as people swiftly transition from confusion to disbelief, to panic.
What is this? A natural cosmic phenomenon? Terrorist action? Alien attack? Scientific experiments gone horribly wrong? Divine reckoning?
Nobody knows. Nobody even has so much as a hint. In their panic, people look for someone to blame. But time waits for none, least of all now when all of time has gone haywire. Our current world is one that is built on the foundation of global trade and communication and now that all of those have ceased, the world is on the precipice of a global collapse. In some nations, wars skid to a stop as both sides is rendered inoperable. In others, the sparks of revolts lit the skies in fire and ashes (looking at you, Venezuela, Zimbabwe, etc...). In some nations, people dread the onset of mass starvation as their agricultural demand far exceeds their output. In others, machines start failing as the national oil reserve dips lower and lower.
This is the story of our world in crisis and the approaching new world order as each nation on our Earth attempt to weather the fallout of the temporal crisis and muddle their way into this new world!
II. With this setting established, now let’s go into world building from there (hah! World building on top the basis of our real world!). Based on economic and scientific principles, four factors determine whether any one nation can survive the initial fallout and thrive afterward:
1. Agricultural bases and resources.
2. Oil; the lifeblood of modern industry
3. Central government stability
4. Temporal sciences and research.
Factors 1 and 3 determine whether a nation can survive. In order to survive, you need to be able to feed the population and avoid mass starvation and the panic that ensues from such. You also need to be able to maintain law and order. In the time of crisis, opportunistic factions may seek to overthrow the current government, leading to violence, bloodshed, and possible civil wars. For countries with divisive issues or with public unrest, this will be particularly hard.
On the other hand, factors 2 and 4 will determine whether a nation will thrive in the new world. Without oil, you will be pushed back to pre-industrialization economy, which means that a massive portion of the population will fall into poverty and any developmental prospects will die stillborn. Oil is especially vital to maintaining an economy now that the global economy has collapsed and each nation must seek to remain self-sufficient. Other sources of energy may lessen the pressure of oil (e.g. wind, thermal, solar, etc…). However, since the majority of our global industrial bases have yet to transition to clean/hybrid energy and such transition is now too costly in this crisis, oil remains the main source of fuel for the economy.
The last factor, temporal science is the only way humanity can hope to make sense of the crisis and this new natural phenomenon of their world. Current researches on temporal sciences and temporal energy harvest are still nascent and a hundred percent theoretical. However, the crisis has supplied ample opportunities for testing. Countries with existing researchs on temporal sciences will have a definite edge as they quickly learn the ins and outs of the temporal zones, exploit them (e.g. navigate and energy harvest), and perhaps find out the root reason for the crisis.
III. A brief look into several nations in crisis:
1. China:.... is in a bad place…
The current China already has issues with public unrest and maintaining stability and a united cultural identity (e.g. what with the suppression of ethnic and religious minority, the overly centralized government, the bulky bureaucratic machine, the non-existent democratic process, widespread corruption, the widening gap between the rich and the poor, the uneven development between provinces, with some provinces not that different from first world countries neighboring provinces that would not look out of place among war-torn third world nations. Their vast land puts even more pressure on efforts to maintain stability and order.) It’s quite likely that the centralized government will be swiftly beheaded once some factions start gaining a foothold and communication / security remain frozen.
Their oil reserve is not so good either. Compared to other nations, their reserve is not small. However, it is not sufficient for their massive economic machine. They are known as the factory of the world, and such title carries weight. In February 2017, China oil import already hit 37.8 million ton (aka 8.286 million barrels per day). Without this imported oil, total economic collapse is imminent.
Agriculture-wise, their situation is… uneven. Decades of non-existent pollution-control policy have led to massive tracts of Chinese territory being ravaged beyond hope of recovery in our life time, thus rendering their potential agricultural yield to zero. However, China is vast, and with good management and labour allocation, they can hope to avoid starvation and widespread panic.
Temporal science and research: currently to my knowledge, they have none. Due to purposefully shortened development time, the state of sciences in China is fairly unevent. Chinese government deliberately encourages progress in hot scientific disciplines (e.g. weapons, energy, heavy industry, IT, medicines) while ignoring other disciplines with less immediate practical uses.
2. Russia: a mystery within a mystery.
Heh… I don’t know much about Russia. But a world game with no mention of great Russia? Impossible. Russia simply is too large and too influential to be ignored (also they have way too many nuclear warheads). That said, we do know that they are fine in the oil department. Agriculture-wise, they are likely to be ok too. Russia is fairly self-sufficient. Temporal research science… well…probably yes… because cold war and stuff and possible exotic weapon development.
On the other hand, Russia has a very centralized government and extremely low democracy index score (coming in at 3.24 out of 10 on the global democracy index compiled by the UK-based Economist Intelligence Unit and designated an authoritarian government) with ongoing issues over freedom of press and oppression of minority. With this crisis, it’s likely that this authoritarian rule will be challenged by opportunistic factions. Only time will tell if the great Russia will be able to weather the immediate fall-out of the temporal crisis.
3. The United States of America:
…. Is united no more.
Tadadaadadadadada….
No really, you guys have deep and insidious divisive issues. From half-way across the world, I see people from different parties demonizing each other and good people being separated along religious, ethnic, and political party line. With this crisis and the current White House, you can’t convince me that folks are going to keep their sane cap on. America’s vast territory and distinct cultural identities across different states and regions will also be a minus for the united and stability factor. Besides which earlier this year your democracy index score just fell below 8, marking you as a flawed democracy. Also, way too many trigger-happy folks with guns and bullets in their hands. And that’s not mentioning racial friction. Good luck with the crisis, folks! Taleh hoo!!
That said though, US is good as far as oil and energy resources go. With their current reserves and expanding shale oil industry as well as a thriving alternative energy source industry, the US won’t see a collapse based on lack of fuel and energy anytime soon.
Agriculture-wise, they are good too as not only do they have a large agriculture industry, their land is still comparatively virgin next to the soils that have been cultivated and farmed for millennia in Europe and Asia.
Temporal sciences and researches: yes… very… but again, uneven due to vast territory. American territory itself is divided into countless temporal zones so likely we will see the start of many small nations and likely collapse of a great one. Having large tracts of land is a minus on control and unity issues, who knew eh?
4. Europe (sing me a song, beautiful Europa!!!)
Has much the same issue with America in terms of centralized government (Brussel this time) and different cultural / ethnic identities that stand in the way of unison. Racial tension is also on the rise due to Islamophobia and fear of terrorist attacks. In the initial fallout, confusion will reign as Brussel is separated from the rest of Europe. Without swift actions from the authority, the European Union faces the risk of implosion. But then again, Europe has pretty good democracy index score so maybe it won’t be so bad?
In terms of oil reserves, hmm, not bad. However, the issue lies with the uneven allocation of oil. Norway holds the largest oil reserves and in this new world setting that is rapidly heading towards a ‘every nation for itself’ scenario, will be loathed to let go of an edge. Without good diplomacy and concession, tension and conflict may arise. That’s not to mention the cut-off of communication and transportation as Europe is trapped in its own myriad pockets of temporal zones. However, many European countries are fairly far along in terms of conversion from oil-based industry to clean energy-based industry so really this factor should have less weight for Europe.
Temporal science: yes. Europe as a whole has larger grants and investment into scientific researches than America. Now is the time to reap that reward! Could this be the second coming of the European Golden Age? Only time will tell!!!
5. North Korea (because why not? Everybody likes to talk about that one poor country with the big gun and trigger happy fingers right?)
Good bye, NK, it’s been nice knowing you.
Total collapse, likely in a matter of months if not weeks. Despite its healthy stock of warheads and other tools of war, North Korea survives by foreign aids. Infamously known by economist as the world’s worst economy, North Korea receives millions of dollars of foreign aids every year. Despite its hefty investment into weapons, it does not actually produce enough food for its own population and has had several famines and mass starvations within the last 5 years.
Without foreign aid (due to cut communication and transportation), the Democratic People’s Republic of Korea (DPRK) will swiftly collapse when massive portions of its own population starve to death. There will be widespread panic and violence as a dieing government struggles to maintain control over a panicking/berserking civilian population. Unlike previously, this time, the elite ruling group likely will not be able to escape out of the nation due to cut-off global transportation. If desperation seizes the day and the warhead codes fall into unwise hand, we may see the start of the collapse of the Korean peninsula as weapons stockpiled for some hypothetical war against the West go up in their own backyard.
…Really, I feel sorry for the Korean people (both North and South). Once, Vietnam was known as North and South Vietnam too and 40 years ago we weren’t that much different.
IV. A new world order!
The goal: to survive.
The goal: to thrive.
To live is to struggle. As the world rocks and fractures under the weight of the global temporal crisis, each and every nation must keep in mind the goals. To survive the initial fall-out of the crisis and perchance to thrive in this new world order. To do that, they must feed their own population, maintain law and order, resuscitate their economy, re-establish international contact and cooperation, and relentlessly push for scientific progress into temporal sciences. Only then will they find out the secret behind the global temporal crisis that rocks their world!
So... that is my story concept. As said, I thought it up (well, from the basis of Erimies’s fantasy concept) in about 20 minutes. It’s just... you know... the start. Because of the massive scope of this story / setting, it’s impossible for me to accurately cover every country. With that said, which country/region do you come from? and how do you think your country/region will fare in this scenario?
Hmmm.. I also want to take into consideration the natural aspects of this setting. For example, natural changes caused by the temporal zones. Our seas are trapped into countless pockets. As a result, ocean currents are in disarray which will eventually lead to changes in global ecology (impacting the migrating patterns of fishes for example) and weather patterns (impacting global temperature and wind current). So on, so forth. But I will need significant research in order to venture into this part. But... just imagine, you know... our world.. transformed in a second because time has fractured. What a world it will be!!!
So, what do you think? Do you have ideas? Questions? Criticism? Come! I want to hear your thoughts and bounce ideas around!
19 notes
·
View notes
Link
There’s no JavaScript here, whatsoever! No jQuery plugins. No trickiness. Just a couple of new-ish CSS properties that I’ve been experimenting with as well as some basic HTML.
OK to start, we need to focus on the markup. The design includes a left navigation made up of images and a large image gallery on the right that lets us scroll through each image individually. We’ll also need a wrapper to help us organize the layout:
<div class="wrapper"> <nav class="lil-nav"></nav> <div class="gallery"></div> </div>
Next, we can add images! For this little example, I checked out our list of sites with high quality images that you can use for free and went with Unsplash.
After saving images with the CodePen asset manager, I started adding the URLs to the nav element:
<nav class="lil-nav"> <a href="#image-1"> <img class="lil-nav__img" src="..." alt="Yosemite" /> </a> <a href="#image-2"> <img class="lil-nav__img" src="..." alt="Basketball hoop" /> </a> <!-- more images go here --> </nav>
See that the href to each of these links is pointing to an ID? That’s because if we look at the demo again, we want to be able to click an image and then we want to it to hop to the larger version of that image in the gallery to the right.
So, now we can start to add these images to the large gallery, too…
<div class="gallery"> <img class="gallery__img" id="image-1" src="..." alt="Yosemite" /> <img class="gallery__img" id="image-2" src="..." alt="Basketball hoop" /> <!-- more images go here --> </div>
Nifty. Next is the fun part: styling this bad boy. We can use a grid layout the parent .wrapper and set some smart defaults for the img element:
img { display: block; max-width: 100%; } .wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 20px; }
CodePen Embed Fallback
So far, we have our layout sorted and our links set up. Next, let’s any any overflow that might spill outside our wrapper and make sure that the nav and the gallery are scrollable:
.wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 10px; overflow: hidden; height: 100vh; } .gallery { overflow: scroll; } .lil-nav { overflow-y: scroll; overflow-x: hidden; }
CodePen Embed Fallback
We can scroll through each image in the gallery now, but if this was a production website we’d probably want to make sure that folks can scroll passed this carousel a bit more easily. Trent Walton wrote about this very problem several years ago and I think it’s always worth keeping in mind.
Next up, let’s focus on the carousel snap of each image in the gallery. To do that we’ll need to use the scroll-snap-type and scroll-snap-align property like this:
.gallery { overflow: scroll; scroll-snap-type: x mandatory; } .gallery__img { scroll-snap-align: start; margin-bottom: 10px; }
Now try scrolling through the gallery on the right-hand side again:
CodePen Embed Fallback
If you want to learn more about these properties I’d highly recommend this piece about practical CSS scroll snapping which digs into the nitty-gritty of these properties.
We have a pretty dang usable carousel! From here, all we have to do is tidy up the design because the gallery image isn’t the full height of the screen. To do that we can use object-fit and give each image a min-height with the vh unit, just like this:
.gallery__img { scroll-snap-align: start; margin-bottom: 10px; min-height: 100vh; object-fit: cover; }
Now the big gallery images will always be the full size of the screen and will scale to take up the width and height. Let’s move on and tackle the style of the little navigation images:
.lil-nav { overflow-y: scroll; overflow-x: hidden; } .lil-nav a { height: 200px; display: flex; margin-bottom: 10px; } .lil-nav__img { object-fit: cover; }
CodePen Embed Fallback
At first, I made this little nav act like a carousel too, but it felt really weird. I’m just keeping the default scroll behavior for now. In that demo above, though, try clicking an image. Notice how it jumps to that image in the carousel immediately? It would be nice if we could animate that transition a bit — and we can!
.gallery { overflow: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
That scroll-behavior CSS property is super handy for this and so now the whole thing will animate if you click one of the nav items:
CodePen Embed Fallback
Nifty, eh? One more tiny thing we could do here is throw a filter on the nav items to make them black and white and then animate them on hover:
.lil-nav__img { object-fit: cover; filter: saturate(0); transition: 0.3s ease all; } .lil-nav__img:hover { transform: scale(1.05); filter: saturate(1); }
I’m sure there’s a lot more we could do here but I think this works quite nicely!
CodePen Embed Fallback
We could even throw a tiny bit of JavaScript into the mix to show which image is active, but I reckon that folks know that just from looking at the gallery.
That’s it! We now have a carousel that’s pretty dang good for progressive enhancement and it means we don’t have to load a library of JavaScript or write a bunch more code than we really need to.
Making the carousel responsive…
Let’s go one step further though and make this chap responsive. What we want to do is reverse the order of our grid by moving all of our current styles into a media query that is only activated at larger screens.
You might want to open up this demo in a new tab and decrease/increase the size of the browser to see the changes take place:
CodePen Embed Fallback
If you load this demo on a mobile device you should see how the layout switches between the two modes. This is done by using a single media query on the .wrapper element. Note that we’re using Sass:
$large: 1200px; .wrapper { overflow: hidden; height: 100vh; display: grid; grid-template-rows: 2fr 1fr; grid-gap: 10px; @media screen and (min-width: $large) { grid-template-columns: 1fr 5fr; grid-template-rows: auto; } }
Let’s add one on the navigation, too. But this time, we need to tell the navigation to start on the second row so it moves to the bottom of the screen:
.lil-nav { overflow-x: scroll; overflow-y: hidden; display: flex; grid-row-start: 2; @media screen and (min-width: $large) { overflow-y: scroll; overflow-x: hidden; display: block; grid-row-start: auto; } }
With the gallery we need to switch around the scroll-type for larger screens and reverse the overflow property as well:
.gallery { overflow-x: scroll; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; display: flex; @media screen and (min-width: $large) { display: block; overflow-y: scroll; overflow-x: hidden; scroll-snap-type: y mandatory; } }
That’s the bulk of the changes we’ve had to make and I quite like it! If we wanted to make this production-ready, we would think about accessibility (e.g. we probably don’t want screen readers to read out all the images in both the nav and gallery). Then there’s performance — we might consider lazy-loading so the images are only rendered when they’re needed.
Either way, this is a good start !
0 notes
Text
How to Make a CSS-Only Carousel
We mentioned a way to make a CSS-only carousel in a recent issue of the newsletter and I thought that a more detailed write up would be interesting and capture some of my thoughts on making one.
So, here’s what we’re making today:
There’s no JavaScript here, whatsoever! No jQuery plugins. No trickiness. Just a couple of new-ish CSS properties that I’ve been experimenting with as well as some basic HTML.
OK to start, we need to focus on the markup. The design includes a left navigation made up of images and a large image gallery on the right that lets us scroll through each image individually. We’ll also need a wrapper to help us organize the layout:
<div class="wrapper"> <nav class="lil-nav"></nav> <div class="gallery"></div> </div>
Next, we can add images! For this little example, I checked out our list of sites with high quality images that you can use for free and went with Unsplash.
After saving images with the CodePen asset manager, I started adding the URLs to the nav element:
<nav class="lil-nav"> <a href="#image-1"> <img class="lil-nav__img" src="..." alt="Yosemite" /> </a> <a href="#image-2"> <img class="lil-nav__img" src="..." alt="Basketball hoop" /> </a> <!-- more images go here --> </nav>
See that the href to each of these links is pointing to an ID? That’s because if we look at the demo again, we want to be able to click an image and then we want to it to hop to the larger version of that image in the gallery to the right.
So, now we can start to add these images to the large gallery, too…
<div class="gallery"> <img class="gallery__img" id="image-1" src="..." alt="Yosemite" /> <img class="gallery__img" id="image-2" src="..." alt="Basketball hoop" /> <!-- more images go here --> </div>
Nifty. Next is the fun part: styling this bad boy. We can use a grid layout the parent .wrapper and set some smart defaults for the img element:
img { display: block; max-width: 100%; } .wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 20px; }
CodePen Embed Fallback
So far, we have our layout sorted and our links set up. Next, let’s any any overflow that might spill outside our wrapper and make sure that the nav and the gallery are scrollable:
.wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 10px; overflow: hidden; height: 100vh; } .gallery { overflow: scroll; } .lil-nav { overflow-y: scroll; overflow-x: hidden; }
CodePen Embed Fallback
We can scroll through each image in the gallery now, but if this was a production website we’d probably want to make sure that folks can scroll passed this carousel a bit more easily. Trent Walton wrote about this very problem several years ago and I think it’s always worth keeping in mind.
Next up, let’s focus on the carousel snap of each image in the gallery. To do that we’ll need to use the scroll-snap-type and scroll-snap-align property like this:
.gallery { overflow: scroll; scroll-snap-type: x mandatory; } .gallery__img { scroll-snap-align: start; margin-bottom: 10px; }
Now try scrolling through the gallery on the right-hand side again:
CodePen Embed Fallback
If you want to learn more about these properties I’d highly recommend this piece about practical CSS scroll snapping which digs into the nitty-gritty of these properties.
We have a pretty dang usable carousel! From here, all we have to do is tidy up the design because the gallery image isn’t the full height of the screen. To do that we can use object-fit and give each image a min-height with the vh unit, just like this:
.gallery__img { scroll-snap-align: start; margin-bottom: 10px; min-height: 100vh; object-fit: cover; }
Now the big gallery images will always be the full size of the screen and will scale to take up the width and height. Let’s move on and tackle the style of the little navigation images:
.lil-nav { overflow-y: scroll; overflow-x: hidden; } .lil-nav a { height: 200px; display: flex; margin-bottom: 10px; } .lil-nav__img { object-fit: cover; }
CodePen Embed Fallback
At first, I made this little nav act like a carousel too, but it felt really weird. I’m just keeping the default scroll behavior for now. In that demo above, though, try clicking an image. Notice how it jumps to that image in the carousel immediately? It would be nice if we could animate that transition a bit — and we can!
.gallery { overflow: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
That scroll-behavior CSS property is super handy for this and so now the whole thing will animate if you click one of the nav items:
CodePen Embed Fallback
Nifty, eh? One more tiny thing we could do here is throw a filter on the nav items to make them black and white and then animate them on hover:
.lil-nav__img { object-fit: cover; filter: saturate(0); transition: 0.3s ease all; } .lil-nav__img:hover { transform: scale(1.05); filter: saturate(1); }
I’m sure there’s a lot more we could do here but I think this works quite nicely!
CodePen Embed Fallback
We could even throw a tiny bit of JavaScript into the mix to show which image is active, but I reckon that folks know that just from looking at the gallery.
That’s it! We now have a carousel that’s pretty dang good for progressive enhancement and it means we don’t have to load a library of JavaScript or write a bunch more code than we really need to.
Making the carousel responsive…
Let’s go one step further though and make this chap responsive. What we want to do is reverse the order of our grid by moving all of our current styles into a media query that is only activated at larger screens.
You might want to open up this demo in a new tab and decrease/increase the size of the browser to see the changes take place:
CodePen Embed Fallback
If you load this demo on a mobile device you should see how the layout switches between the two modes. This is done by using a single media query on the .wrapper element. Note that we’re using Sass:
$large: 1200px; .wrapper { overflow: hidden; height: 100vh; display: grid; grid-template-rows: 2fr 1fr; grid-gap: 10px; @media screen and (min-width: $large) { grid-template-columns: 1fr 5fr; grid-template-rows: auto; } }
Let’s add one on the navigation, too. But this time, we need to tell the navigation to start on the second row so it moves to the bottom of the screen:
.lil-nav { overflow-x: scroll; overflow-y: hidden; display: flex; grid-row-start: 2; @media screen and (min-width: $large) { overflow-y: scroll; overflow-x: hidden; display: block; grid-row-start: auto; } }
With the gallery we need to switch around the scroll-type for larger screens and reverse the overflow property as well:
.gallery { overflow-x: scroll; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; display: flex; @media screen and (min-width: $large) { display: block; overflow-y: scroll; overflow-x: hidden; scroll-snap-type: y mandatory; } }
That’s the bulk of the changes we’ve had to make and I quite like it! If we wanted to make this production-ready, we would think about accessibility (e.g. we probably don’t want screen readers to read out all the images in both the nav and gallery). Then there’s performance — we might consider lazy-loading so the images are only rendered when they’re needed.
Either way, this is a good start !
The post How to Make a CSS-Only Carousel appeared first on CSS-Tricks.
How to Make a CSS-Only Carousel published first on https://deskbysnafu.tumblr.com/
0 notes
Text
How to Make a CSS-Only Carousel
We mentioned a way to make a CSS-only carousel in a recent issue of the newsletter and I thought that a more detailed write up would be interesting and capture some of my thoughts on making one.
So, here’s what we’re making today:
There’s no JavaScript here, whatsoever! No jQuery plugins. No trickiness. Just a couple of new-ish CSS properties that I’ve been experimenting with as well as some basic HTML.
OK to start, we need to focus on the markup. The design includes a left navigation made up of images and a large image gallery on the right that lets us scroll through each image individually. We’ll also need a wrapper to help us organize the layout:
<div class="wrapper"> <nav class="lil-nav"></nav> <div class="gallery"></div> </div>
Next, we can add images! For this little example, I checked out our list of sites with high quality images that you can use for free and went with Unsplash.
After saving images with the CodePen asset manager, I started adding the URLs to the nav element:
<nav class="lil-nav"> <a href="#image-1"> <img class="lil-nav__img" src="..." alt="Yosemite" /> </a> <a href="#image-2"> <img class="lil-nav__img" src="..." alt="Basketball hoop" /> </a> <!-- more images go here --> </nav>
See that the href to each of these links is pointing to an ID? That’s because if we look at the demo again, we want to be able to click an image and then we want to it to hop to the larger version of that image in the gallery to the right.
So, now we can start to add these images to the large gallery, too…
<div class="gallery"> <img class="gallery__img" id="image-1" src="..." alt="Yosemite" /> <img class="gallery__img" id="image-2" src="..." alt="Basketball hoop" /> <!-- more images go here --> </div>
Nifty. Next is the fun part: styling this bad boy. We can use a grid layout the parent .wrapper and set some smart defaults for the img element:
img { display: block; max-width: 100%; } .wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 20px; }
CodePen Embed Fallback
So far, we have our layout sorted and our links set up. Next, let’s any any overflow that might spill outside our wrapper and make sure that the nav and the gallery are scrollable:
.wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 10px; overflow: hidden; height: 100vh; } .gallery { overflow: scroll; } .lil-nav { overflow-y: scroll; overflow-x: hidden; }
CodePen Embed Fallback
We can scroll through each image in the gallery now, but if this was a production website we’d probably want to make sure that folks can scroll passed this carousel a bit more easily. Trent Walton wrote about this very problem several years ago and I think it’s always worth keeping in mind.
Next up, let’s focus on the carousel snap of each image in the gallery. To do that we’ll need to use the scroll-snap-type and scroll-snap-align property like this:
.gallery { overflow: scroll; scroll-snap-type: x mandatory; } .gallery__img { scroll-snap-align: start; margin-bottom: 10px; }
Now try scrolling through the gallery on the right-hand side again:
CodePen Embed Fallback
If you want to learn more about these properties I’d highly recommend this piece about practical CSS scroll snapping which digs into the nitty-gritty of these properties.
We have a pretty dang usable carousel! From here, all we have to do is tidy up the design because the gallery image isn’t the full height of the screen. To do that we can use object-fit and give each image a min-height with the vh unit, just like this:
.gallery__img { scroll-snap-align: start; margin-bottom: 10px; min-height: 100vh; object-fit: cover; }
Now the big gallery images will always be the full size of the screen and will scale to take up the width and height. Let’s move on and tackle the style of the little navigation images:
.lil-nav { overflow-y: scroll; overflow-x: hidden; } .lil-nav a { height: 200px; display: flex; margin-bottom: 10px; } .lil-nav__img { object-fit: cover; }
CodePen Embed Fallback
At first, I made this little nav act like a carousel too, but it felt really weird. I’m just keeping the default scroll behavior for now. In that demo above, though, try clicking an image. Notice how it jumps to that image in the carousel immediately? It would be nice if we could animate that transition a bit — and we can!
.gallery { overflow: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
That scroll-behavior CSS property is super handy for this and so now the whole thing will animate if you click one of the nav items:
CodePen Embed Fallback
Nifty, eh? One more tiny thing we could do here is throw a filter on the nav items to make them black and white and then animate them on hover:
.lil-nav__img { object-fit: cover; filter: saturate(0); transition: 0.3s ease all; } .lil-nav__img:hover { transform: scale(1.05); filter: saturate(1); }
I’m sure there’s a lot more we could do here but I think this works quite nicely!
CodePen Embed Fallback
We could even throw a tiny bit of JavaScript into the mix to show which image is active, but I reckon that folks know that just from looking at the gallery.
That’s it! We now have a carousel that’s pretty dang good for progressive enhancement and it means we don’t have to load a library of JavaScript or write a bunch more code than we really need to.
Making the carousel responsive…
Let’s go one step further though and make this chap responsive. What we want to do is reverse the order of our grid by moving all of our current styles into a media query that is only activated at larger screens.
You might want to open up this demo in a new tab and decrease/increase the size of the browser to see the changes take place:
CodePen Embed Fallback
If you load this demo on a mobile device you should see how the layout switches between the two modes. This is done by using a single media query on the .wrapper element. Note that we’re using Sass:
$large: 1200px; .wrapper { overflow: hidden; height: 100vh; display: grid; grid-template-rows: 2fr 1fr; grid-gap: 10px; @media screen and (min-width: $large) { grid-template-columns: 1fr 5fr; grid-template-rows: auto; } }
Let’s add one on the navigation, too. But this time, we need to tell the navigation to start on the second row so it moves to the bottom of the screen:
.lil-nav { overflow-x: scroll; overflow-y: hidden; display: flex; grid-row-start: 2; @media screen and (min-width: $large) { overflow-y: scroll; overflow-x: hidden; display: block; grid-row-start: auto; } }
With the gallery we need to switch around the scroll-type for larger screens and reverse the overflow property as well:
.gallery { overflow-x: scroll; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; display: flex; @media screen and (min-width: $large) { display: block; overflow-y: scroll; overflow-x: hidden; scroll-snap-type: y mandatory; } }
That’s the bulk of the changes we’ve had to make and I quite like it! If we wanted to make this production-ready, we would think about accessibility (e.g. we probably don’t want screen readers to read out all the images in both the nav and gallery). Then there’s performance — we might consider lazy-loading so the images are only rendered when they’re needed.
Either way, this is a good start !
The post How to Make a CSS-Only Carousel appeared first on CSS-Tricks.
source https://css-tricks.com/how-to-make-a-css-only-carousel/
from WordPress https://ift.tt/2VTpF0p via IFTTT
0 notes
Link
There’s no JavaScript here, whatsoever! No jQuery plugins. No trickiness. Just a couple of new-ish CSS properties that I’ve been experimenting with as well as some basic HTML.
OK to start, we need to focus on the markup. The design includes a left navigation made up of images and a large image gallery on the right that lets us scroll through each image individually. We’ll also need a wrapper to help us organize the layout:
<div class="wrapper"> <nav class="lil-nav"></nav> <div class="gallery"></div> </div>
Next, we can add images! For this little example, I checked out our list of sites with high quality images that you can use for free and went with Unsplash.
After saving images with the CodePen asset manager, I started adding the URLs to the nav element:
<nav class="lil-nav"> <a href="#image-1"> <img class="lil-nav__img" src="..." alt="Yosemite" /> </a> <a href="#image-2"> <img class="lil-nav__img" src="..." alt="Basketball hoop" /> </a> <!-- more images go here --> </nav>
See that the href to each of these links is pointing to an ID? That’s because if we look at the demo again, we want to be able to click an image and then we want to it to hop to the larger version of that image in the gallery to the right.
So, now we can start to add these images to the large gallery, too…
<div class="gallery"> <img class="gallery__img" id="image-1" src="..." alt="Yosemite" /> <img class="gallery__img" id="image-2" src="..." alt="Basketball hoop" /> <!-- more images go here --> </div>
Nifty. Next is the fun part: styling this bad boy. We can use a grid layout the parent .wrapper and set some smart defaults for the img element:
img { display: block; max-width: 100%; } .wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 20px; }
CodePen Embed Fallback
So far, we have our layout sorted and our links set up. Next, let’s any any overflow that might spill outside our wrapper and make sure that the nav and the gallery are scrollable:
.wrapper { display: grid; grid-template-columns: 1fr 5fr; grid-gap: 10px; overflow: hidden; height: 100vh; } .gallery { overflow: scroll; } .lil-nav { overflow-y: scroll; overflow-x: hidden; }
CodePen Embed Fallback
We can scroll through each image in the gallery now, but if this was a production website we’d probably want to make sure that folks can scroll passed this carousel a bit more easily. Trent Walton wrote about this very problem several years ago and I think it’s always worth keeping in mind.
Next up, let’s focus on the carousel snap of each image in the gallery. To do that we’ll need to use the scroll-snap-type and scroll-snap-align property like this:
.gallery { overflow: scroll; scroll-snap-type: x mandatory; } .gallery__img { scroll-snap-align: start; margin-bottom: 10px; }
Now try scrolling through the gallery on the right-hand side again:
CodePen Embed Fallback
If you want to learn more about these properties I’d highly recommend this piece about practical CSS scroll snapping which digs into the nitty-gritty of these properties.
We have a pretty dang usable carousel! From here, all we have to do is tidy up the design because the gallery image isn’t the full height of the screen. To do that we can use object-fit and give each image a min-height with the vh unit, just like this:
.gallery__img { scroll-snap-align: start; margin-bottom: 10px; min-height: 100vh; object-fit: cover; }
Now the big gallery images will always be the full size of the screen and will scale to take up the width and height. Let’s move on and tackle the style of the little navigation images:
.lil-nav { overflow-y: scroll; overflow-x: hidden; } .lil-nav a { height: 200px; display: flex; margin-bottom: 10px; } .lil-nav__img { object-fit: cover; }
CodePen Embed Fallback
At first, I made this little nav act like a carousel too, but it felt really weird. I’m just keeping the default scroll behavior for now. In that demo above, though, try clicking an image. Notice how it jumps to that image in the carousel immediately? It would be nice if we could animate that transition a bit — and we can!
.gallery { overflow: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
That scroll-behavior CSS property is super handy for this and so now the whole thing will animate if you click one of the nav items:
CodePen Embed Fallback
Nifty, eh? One more tiny thing we could do here is throw a filter on the nav items to make them black and white and then animate them on hover:
.lil-nav__img { object-fit: cover; filter: saturate(0); transition: 0.3s ease all; } .lil-nav__img:hover { transform: scale(1.05); filter: saturate(1); }
I’m sure there’s a lot more we could do here but I think this works quite nicely!
CodePen Embed Fallback
We could even throw a tiny bit of JavaScript into the mix to show which image is active, but I reckon that folks know that just from looking at the gallery.
That’s it! We now have a carousel that’s pretty dang good for progressive enhancement and it means we don’t have to load a library of JavaScript or write a bunch more code than we really need to.
Making the carousel responsive…
Let’s go one step further though and make this chap responsive. What we want to do is reverse the order of our grid by moving all of our current styles into a media query that is only activated at larger screens.
You might want to open up this demo in a new tab and decrease/increase the size of the browser to see the changes take place:
CodePen Embed Fallback
If you load this demo on a mobile device you should see how the layout switches between the two modes. This is done by using a single media query on the .wrapper element. Note that we’re using Sass:
$large: 1200px; .wrapper { overflow: hidden; height: 100vh; display: grid; grid-template-rows: 2fr 1fr; grid-gap: 10px; @media screen and (min-width: $large) { grid-template-columns: 1fr 5fr; grid-template-rows: auto; } }
Let’s add one on the navigation, too. But this time, we need to tell the navigation to start on the second row so it moves to the bottom of the screen:
.lil-nav { overflow-x: scroll; overflow-y: hidden; display: flex; grid-row-start: 2; @media screen and (min-width: $large) { overflow-y: scroll; overflow-x: hidden; display: block; grid-row-start: auto; } }
With the gallery we need to switch around the scroll-type for larger screens and reverse the overflow property as well:
.gallery { overflow-x: scroll; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; display: flex; @media screen and (min-width: $large) { display: block; overflow-y: scroll; overflow-x: hidden; scroll-snap-type: y mandatory; } }
That’s the bulk of the changes we’ve had to make and I quite like it! If we wanted to make this production-ready, we would think about accessibility (e.g. we probably don’t want screen readers to read out all the images in both the nav and gallery). Then there’s performance — we might consider lazy-loading so the images are only rendered when they’re needed.
Either way, this is a good start !
0 notes