<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>David Amador</title>
    <link>https://www.david-amador.com/</link>
    <description>Recent content on David Amador</description>
    <image>
      <title>David Amador</title>
      <url>https://www.david-amador.com/david-amador-pixel.png</url>
      <link>https://www.david-amador.com/david-amador-pixel.png</link>
    </image>
    <generator>Hugo -- 0.139.0</generator>
    <language>en</language>
    <lastBuildDate>Mon, 23 Feb 2026 11:47:00 +0000</lastBuildDate>
    <atom:link href="https://www.david-amador.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Short Story - A Girl and a Railgun</title>
      <link>https://www.david-amador.com/2026/02/short-story-a-girl-and-a-railgun/</link>
      <pubDate>Mon, 23 Feb 2026 11:47:00 +0000</pubDate>
      <guid>https://www.david-amador.com/2026/02/short-story-a-girl-and-a-railgun/</guid>
      <description>&lt;p&gt;&lt;em&gt;02h23m&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;She woke up &amp;hellip;&lt;/p&gt;
&lt;p&gt;Sweating&amp;hellip; the ceiling fan was dead and the neon from the noodle shop across the alley kept the room in a constant state of artificial twilight, it was exhausting. Rane was pretty sure the only reason why the streets now looked like those futuristic movies was because everyone thought it would be a good idea to actually make them in real life.&lt;/p&gt;
&lt;p&gt;She sat on the edge of her bed, the frame making noises under her weight as she sat closer to the edge. Part routine part itch, she ran a finger down the back of her neck, that tiny ridge where the skin met the cold seam of the spine mod. It didn&amp;rsquo;t hurt, not anymore, but there was always that feeling of an itch in the morning.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><em>02h23m</em></p>
<p>She woke up &hellip;</p>
<p>Sweating&hellip; the ceiling fan was dead and the neon from the noodle shop across the alley kept the room in a constant state of artificial twilight, it was exhausting. Rane was pretty sure the only reason why the streets now looked like those futuristic movies was because everyone thought it would be a good idea to actually make them in real life.</p>
<p>She sat on the edge of her bed, the frame making noises under her weight as she sat closer to the edge. Part routine part itch, she ran a finger down the back of her neck, that tiny ridge where the skin met the cold seam of the spine mod. It didn&rsquo;t hurt, not anymore, but there was always that feeling of an itch in the morning.</p>
<p>She stood up, looked at the window and stretched her back, that always made the servos thrum with a low-level static that she could feel in her molars.</p>
<p>Looking around the apartment was tiny but functional, mostly empty, she had just moved in.
Four days out of jail, got assigned some work, a legitimate job starting Monday at the hydro-processing plant, a real luxury all things considered.</p>
<p>The credits they gave her when leaving ran out already, was barely enough for a couple meals, if not for the work assigned living space, she&rsquo;s been out in the street already. Not that it was just luck, she paid dearly for what was now a handout from greedy-corp. She just needed to survive the weekend.</p>
<p><em>Knock. Knock. Knock.</em></p>
<p>Three taps on the door. She looked towards the door, to the small monitor on the right side, slightly aged but perfect quality to see who it was.</p>
<p><em>Knock. Knock.</em></p>
<p>Rane opened the door reluctantly. &ldquo;I can&rsquo;t believe you still wear that coat&rdquo;, a stressed but suddenly confused face looked back to her. &ldquo;Rane, listen I &hellip;.&rdquo;, she cut him right away. &ldquo;You know what, f- you, two years, not a single visit? I thought you were dead. Or maybe you are, judging by that face and still wearing the same stupid coat&rdquo;. She didn&rsquo;t even knew why she was pointing out the coat but it was pissing her off.</p>
<p>&ldquo;Listen, I&rsquo;m sorry but we don&rsquo;t have much time, they are just behi&hellip;.&rdquo;. Now it was Rane&rsquo;s turn to be confused but worried quickly.</p>
<p>&ldquo;Get out&rdquo;, she started closing the door, but it halted.</p>
<p>A hand kept it open, with a screech of the door trying to go where it couldn&rsquo;t anymore, forced to go against it&rsquo;s initial direction, but very quickly turning direction, opening again, it&rsquo;s let&rsquo;s-not-crush-a-human mechanism triggered.</p>
<p>Victor stepped to the side, now looking like a man who had been beaten down.</p>
<p>&ldquo;Well well, if it isn&rsquo;t Miss Rane, fresh out of the box&rdquo;, it was Jack, smaller than both of them, but still a menacing figure. Behind him one goon who&rsquo;s grin was as stupid as his face. Both entering the apartment, not in a forceful way but also not in a waiting for permission mood.</p>
<p>She didn&rsquo;t lose a beat. &ldquo;Exactly, and my debt is paid Jack, you know this.&rdquo;
&ldquo;Oh I know&rdquo; , he replied. &ldquo;But old Vic here has some pending business, and I know you owe him&rdquo;.
She looked at Victor &ldquo;The fuck?&rdquo; - he shrugged. The other guy circled behind her.
&ldquo;See I got a problem&rdquo; Jack continued, &ldquo;That needs fixing, which makes it a problem for both of you&rdquo;.</p>
<p>&ldquo;Rane,&rdquo; Victor started, his voice in a almost caring but serious tone. &ldquo;We wouldn&rsquo;t be here if we had a choice, coppers got the kid, he&rsquo;s still in a local but if we don’t get him out soon, he&rsquo;s ending at Blackgate&rdquo;</p>
<p>&ldquo;Blackgate? The heck did he do? You have to do some serious level of fuckery to end up there&rdquo;. Blackgate was bad as it gets, even she didn&rsquo;t ended up there and well, it had been messy.</p>
<p>Victor intervened, &ldquo;He&rsquo;s in for minor only, barely one hour ago, we managed to escape, but it&rsquo;s what they&rsquo;ll find once they process him.&rdquo;. Victor paused, eyes to the left side corner, &ldquo;We hijacked a lab and there was a bundle package with some Root Certs in it &hellip; still valid till midnight&rdquo;.</p>
<p>Rane turned at the goon who had now circled to her back. He wasn&rsquo;t looking at her face or checking her out, instead looking at the chrome seam at the base of her skull. She knew already.</p>
<p>Jack was mostly observing her interactions, like evaluating the next step that would get him what he wanted, not in a mood for prolonged conversations. He started &ldquo;Ok now that the introductions are made. Yeah we&rsquo;re in a pinch we can&rsquo;t properly setup anything, you&rsquo;re as good as it gets on short notice, also clean, won&rsquo;t flag anything until we get there.&rdquo;</p>
<p>&ldquo;Get a cab? Why you need me for?&rdquo;. She was playing dumb trying to gain some time for &hellip; something. But she knew they were after her for the spinal mod. It wasn&rsquo;t one of those that gave strength or anything like it, it had been a life-death situation that allowed her to walk again.</p>
<p>Jack was still patient but clearly losing it. &ldquo;A little bird told me that thing in your back&rdquo;, he moved his finger in the air drawing a line &ldquo;Can run unsigned code, off-grid, no one&rsquo;s the wiser&rdquo;.
She looked at Victor, but realized immediately who it was.</p>
<p>Jack continued: &ldquo;Oh, I know he&rsquo;s your brother&rsquo;s kid, he was always very chatty about his cool aunt, so you&rsquo;ll help us get him out of there, and I need what&rsquo;s on that head of his.&rdquo;</p>
<p><em>02h38m</em></p>
<p>Designated driver because she had no outstanding warrants, Rane was driving a car that had seen better decades. Victor was on the passenger seat and Jack and Rex, she heard the name when they were getting into the car, both in the back seats.</p>
<p>While going to the car she got the short version of the story, they broke into a lab, stole a big experimental weapons called railcaster or something, almost looked like it belonged on a gunship, but still quite portable all things considered. Rane could see them tinkering with it in the back, they also had this weird cylindric tube with a window showing a chip of sorts, apparently some sort of portable power source they wanted to hotwire to the gun and shoot it to blast their way into the police station. And for that they needed her.</p>
<p>&ldquo;How do we even get close?&rdquo; Rane asked, her voice tight as she saw them messing around with the connection ports on the weapon. They were weaving through the thick, neon-lit traffic of the lower districts.</p>
<p>&ldquo;We don&rsquo;t,&rdquo; Jack said, &ldquo;We pull up, you hit some roof nearby, and you give us one high output burst. We blow the holding cell wall from the street, grab the kid and vanish.&rdquo;</p>
<p>It started raining&hellip;</p>
<p><em>03h02m</em></p>
<p>They were three blocks from the precinct when the red strobes started reflected in the water drops filled back mirror. Cop cruiser behind them.</p>
<p>&ldquo;Keep it cool,&rdquo; Victor whispered, but not looking at her. &ldquo;Car is registered. Just a routine sweep.&rdquo;</p>
<p>The cruiser pulled alongside them. A drone detached from the roof, hovering less than 2 meters from Rane’s window, lens adjusting as it scanned her face, a blue light pattern scanning. She kept looking forward, hands on wheel. In the cruiser two coppers inside, not even looking at them, just watching something on the feed, assuming it wasn&rsquo;t worth their time, just another routine check.</p>
<p>It seemed like the drone was all finishing when something flashed on the cop&rsquo;s car. Something was up.  A red dot showed up near the drone lenses, infra-red scan, Rane looked through the rearview mirror, the gun!</p>
<p>The drone’s light turned a sharp, piercing red. Both cops looked to them simultaneously, they couldn&rsquo;t get away clean anymore.</p>
<p>&ldquo;Go! Go!&rdquo; Victor screamed.</p>
<p>Rane slammed the pedal. The tires trying to grab the wet asphalt slipping as they speeded up.
The cops followed them, sirens full blasting. It didn&rsquo;t took long until a rhythmic <em>thrum-thrum-thrum</em> of a police heavy chopper started to chase them. They hadn&rsquo;t just flagged their faces, they’d flagged the stolen tech now.</p>
<p>&ldquo;Rane! Get up there! Now!&rdquo;</p>
<p>She didn&rsquo;t have time to argue.</p>
<p>The sunroof already half-open, she pulled herself through. The wind hit like a wall of knives, the rain needling her face as the car was being pushed harder. She pressed flat against the roof, palms over the metal until she found the forward handles of the railcaster&rsquo;s mount.</p>
<p>The weapon was mag-locked to the roof rack now. She gripped the handles and felt the chassis clamps snap around her forearms, not a designed feature, just the recoil-lock engaging everything it could reach. Good enough so she wouldn&rsquo;t fall.</p>
<p>She reached back. The cable was thick, triple-pronged, still trailing from where they&rsquo;d left it coiled near the mount. She jammed the first end into the cylinder port, <em>click</em>, and fed the second into the seam at the base of her skull.</p>
<p><em>03h11m</em></p>
<p>The connection hit her like a punch immediately.</p>
<p><strong>a surge</strong></p>
<p>Not a handshake. Not data yet. Just raw, unfiltered current screaming up through her vertebrae. Her vision tore, the city splitting in frames, each one half a second behind the last, neon bleeding at the edges. White noise swallowed her hearing.</p>
<p>Her left eye gave up first, nothing, all black. The right one started throwing errors, the spine implant crashing diagnostics hard, red lines of code bleeding down the lower half.</p>
<p>Through it she could feel the cylinder&rsquo;s charge the way she&rsquo;d feel heat from a stove. Present, close, hurting.</p>
<p><em>Energy climbing.</em></p>
<p>The police chopper was directly overhead, its spotlight making everything even worse. The precinct was one block ahead. She couldn&rsquo;t have known where the holding cells were.</p>
<p><em>She could feel it now, she could command some of the instructions in the flow</em></p>
<p>The chopper dropped lower but more distant. She could feel the heat building at her back, radiating off the cylinder like an oven, that&rsquo;s why the cops were backing off. They were running out of road.</p>
<p><em>Raw data, too much to process&hellip;. almost&hellip;</em></p>
<p>Faded voices &hellip; &ldquo;What are you waiting for?&rdquo;</p>
<p>&ldquo;I can&rsquo;t see shit!&rdquo;, Rane didn&rsquo;t know what was in front of them anymore.</p>
<p>Jack shouted &ldquo;Just shoot!&rdquo;</p>
<p>She squeezed.</p>
<p>The recoil didn&rsquo;t just shake the car. It almost broke it. A white-hot displacement beam punched through the rain and hit the precinct wall in a single detonation of concrete and violet sparks. The blast wave shattered every window on the block.</p>
<p>The shockwave threw her into the asphalt, the cable ripped from her spine with a sound she felt in her back teeth.</p>
<p>The world went black even before she hit the ground.</p>
<p><em>06h42m</em></p>
<p>Sleep was a thin, fragile thing. It broke when the smell of antiseptic hit her nose.</p>
<p>Rane opened her eyes. The room was sterile, filled with high-tech monitors that hummed with a rhythmic pattern. She tried to reach for her head but her arms felt heavy. She looked down and saw high-tensile magnetic handcuffs.</p>
<p>Victor was sitting in a chair by the bed. He wasn&rsquo;t wearing his grimy jacket anymore. He was in a crisp, dark uniform with a badge that caught the light.</p>
<p>&ldquo;You&rsquo;re awake,&rdquo; he said quietly.</p>
<p>Rane stared at him, the static still echoing in her teeth. &ldquo;What happened? Where’s the kid?&rdquo;</p>
<p>&ldquo;Alive.&rdquo; He didn’t look at her when he said it.</p>
<p>&ldquo;You’re a cop,&rdquo; she whispered, the betrayal stinging worse than the spine mod. &ldquo;You used us, &hellip;me. I did time for you.&rdquo;</p>
<p>&ldquo;I was undercover.&rdquo; He paused, eyes going to the window. &ldquo;I didn’t know their target tonight until after the robbery. By the time they showed up at your place I had no way to get word out without blowing everything.&rdquo;</p>
<p>&ldquo;So you let them use me anyway.&rdquo;</p>
<p>&ldquo;My cover got blown the second I called for backup.&rdquo; He met her eyes then. &ldquo;I barely got you help in time.&rdquo;</p>
<p>Victor stood up, reaching into his pocket. &ldquo;Rex boy is in custody. Jack disappeared in the chaos. We thought he was small fish but we think he’s working for someone much worse now. All that firepower, that device, whatever it is.&rdquo; He paused. &ldquo;They got a brain dump out of the kid before we could pull him. He’s out but what he was carrying isn’t.&rdquo;</p>
<p>Rane looked at the sterile white walls. She was four days out of jail, and she was already back in chains.</p>
<p>&ldquo;I’m sorry but let’s be honest here, you and your family were doing stints well before I showed up. I just rode shotgun for a while.&rdquo;</p>
<p>She looked at Victor&rsquo;s empty hands.</p>
<p>&ldquo;So&hellip; what you’re saying is that you brought no chocolates or flowers?&rdquo;</p>
<p>Victor reached out, but he didn&rsquo;t touch her. He pulled a small set of electronic keys from his belt and tapped them against the bed rail. &ldquo;I brought keys&hellip;&rdquo;</p>
<p>He looked at her, his expression unreadable behind the professional mask. &ldquo;We might need your help again.&rdquo;</p>
<p>Rane laid her head back on the pillow and closed her eyes. The sun would be rising in a few hours, but for her, the night was just getting longer.</p>
<hr>
<p>.</p>
<p><code>Thanks for reading. Sorry for potential disappointment, sometimes I have flashes of stupid ideas form in my mind that &quot;are nothing or not complete&quot;, but I've been doing this exercise were I write them in my blog as brain dumps.  </code></p>
<p>Photo by <a href="https://unsplash.com/photos/cars-on-road-between-high-rise-buildings-during-night-time-yVUQlyRlJSw">Valentin BEAUVAIS</a></p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Short Story - A Dog and a Backpack</title>
      <link>https://www.david-amador.com/2026/01/short-story-a-dog-and-a-backpack/</link>
      <pubDate>Sun, 11 Jan 2026 13:50:00 +0000</pubDate>
      <guid>https://www.david-amador.com/2026/01/short-story-a-dog-and-a-backpack/</guid>
      <description>&lt;p&gt;John looked up, the sun was high and bright, scorching really, if not for the contrast of the snow and ice covering the ground in every visible direction as he looked down again. Up on the top of the trees some of the ice would always melt a bit, but never too much, as it was still quite cold. He often wondered how cold it was but with nothing to check he&amp;rsquo;d settled on Too-F-Cold ºC.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>John looked up, the sun was high and bright, scorching really, if not for the contrast of the snow and ice covering the ground in every visible direction as he looked down again. Up on the top of the trees some of the ice would always melt a bit, but never too much, as it was still quite cold. He often wondered how cold it was but with nothing to check he&rsquo;d settled on Too-F-Cold ºC.</p>
<p>The dog was just a few meters ahead, going back and forth once in a while, as if covering the extra distance ahead multiple times didn&rsquo;t mattered at all, like it was effortless, which made John feel even more tired. He guessed being a husky maybe helped with the cold, but still, it was weird how much the temperatures didn&rsquo;t seem to bother him except at night.
John hadn&rsquo;t given it a proper name, so he&rsquo;d been calling it Dog, since a few weeks ago when they found each other, a name to which Dog seemed more than willing to answer, honestly just seeming incredibly happy someone was interacting with him.</p>
<p>It&rsquo;s not that John didn&rsquo;t liked the company, obviously he did, but part of him was still worried about the noise. He actually tried to get rid of him for that particular reason, but Dog kept following him, and it wasn&rsquo;t until he found out he was being followed without knowing, from shadows and corners for 4 days, with no bark at all, that he decided that maybe it could be ok to have him around. Dog had survived so far, so there had to be something.</p>
<p>A clearing ahead, he&rsquo;d been hearing water running for some time, and that was probably also the reason why Dog was more active then usual. They&rsquo;ve been walking for so long, it would be a nice break next to a <em>fresh</em> source of water, also a good time to get some bearings.</p>
<p>Despite hearing the sound it took them quite a bit to get to the creek, but on arrival a transparent-green ribbon of water was greeting them, just cutting through the white around. A desolated view, a few small dead animals around, clearly no longer being able to stand the thirst they had no choice and probably consumed too much of the tainted water.</p>
<p>John filled up his canteen, with the cold metal stinging his hands as the water touched it.
Dog was sniffing around, always the curious one, he&rsquo;d grown to appreciate that, while stationary they were a target, and having &ldquo;someone&rdquo; watch his back felt reassuring. He closed the canteen lid, shook it a bit &hellip;  good enough, he couldn&rsquo;t drink it yet but a problem for later.</p>
<p>He placed the backpack on the floor, which should have probably been the first thing to do, but it was heavy and most times taking it off and putting it back on again was worse then just resting a bit with it. He reached for the map, not because he was lost, they were close, it was a motivation look, that maybe he could make it there soon.</p>
<p><em>They couldn&rsquo;t stay long.</em></p>
<p>The night was approaching fast, no place in sight for bunking up, another night outdoors. Dog recognized when it was time and knew the drill already, what places were better, and would keep closer, eventually they found a place with enough trees around, and John slowly started mounting the tent.</p>
<p>Warming up a can of beans by a small improvised fire before dark was crucial, he hadn&rsquo;t lit a fire in weeks at night time, he feared it would be like turning on a lighthouse with a giant sign &ldquo;I&rsquo;m here&rdquo;. He reserved those warmer nights for indoors.</p>
<p>He felt guilt the first nights he sleep on the tent and left Dog outside, the bond wasn&rsquo;t there, and in a way it was clear both were still anxious to be trapped with each other on the first night he made signal do the dog - &ldquo;Want to sleep on the tent tonight?&rdquo; - It wasn&rsquo;t until the third night of him leaving it a bit open for some time that Dog finally entered. On the opposite the bond grew faster from that point on, he appreciated the warmer feet, a dog right at the entrance of the tent, if someone - or something - opened it, he had a buffer of safety, with teeth.</p>
<p>The nights weren&rsquo;t as cold as the process of packing the tent again still in night time, after being a bit cozier for a couple hours, and starting the walk again.</p>
<p>A bit after mid-day he spotted the first thing that was not a tree or a mountain in weeks, a saw mill, it was a few kilometers ahead, excitement and a sudden rush started flowing though his veins &hellip; civilization. Well &hellip; hopefully just the building.</p>
<p>They both scouted the area for a couple hours before entering, it seemed to be the saw mill of a nearby town, which they could see it far ahead, the building seemed empty, so they got in eventually.</p>
<p>The bottom floor was filled with machines part covered in some ice near the outer walls, part covered in vines, chunks of wood they could easily use to light a fire, John decided he would feel safer on the top floor, where a few offices were.</p>
<p>There were just too many entry points here to feel completely safe, but he didn&rsquo;t wanted to venture into the town just yet, tomorrow. The good thing about these sort of places is there&rsquo;s material everywhere, he grabbed some wire, several cans, bottles and other things and improvised an alarm system near the entrances on the bottom floor. It was easy to spot but better than nothing.</p>
<p>Tonight he didn&rsquo;t needed the tent, the backpack was heavy and if he had to leave in a hurry it would be a problem. He decided to leave it on the bottom floor hidden, just the small blanket would suffice today. Before closing it he looked further inside, he&rsquo;d been carrying around that thing for so long, he opened it a bit more, inside a cylinder made of some alloy he didn&rsquo;t know, rust already forming in some of the places, it had a small glass window where a bunch of wires coming out of a chip could be seen. He reached for a small wooden box that was between the cylinder and the backpack itself near the bottom. This was more of mental reassuring, he knew it was there, a small lithium battery tucked away inside the box wrapped in some paper. - &ldquo;I hope you still have juice, it&rsquo;s been a while&rdquo;.</p>
<p>He picked a corner far from windows, hauled several rocks, covered the floor and lit a fire.
He boiled the water he picked the prior day. In its raw state, the water was thick, with synthetic spores, green-ish bastards that would settle in the kidneys and eventually shut them down. He watched as the heat killed the bloom, with the spores falling together into a dark sediment at the bottom of the tin. After a quick filter with a spare cloth, it was back to being drinkable. It still tasted of metal, but it wouldn&rsquo;t kill him, not today at least.</p>
<p>Dog feel asleep before he did, or at least it looked like it. He checked the perimeter again and laid on his back, checked his watch, old technology was great, batteries would last years especially if had solar charging &hellip; <em>22h47m</em>.</p>
<p>His mind suddenly rushed to the usual, always her &hellip; usually around this time of night, John wondered if she was alive, if any of his family was really. Flashbacks of both good and embarrassing moments flashed his brain.</p>
<p><em>23h19m &hellip;.</em></p>
<p>He turned to the side, placed his hand near Dog head &hellip; it was nice.</p>
<p><em>23h21m &hellip;</em></p>
<p>Sleep was a thin, fragile thing. It broke at  &hellip;.</p>
<p><em>02h39m</em></p>
<p>He didn&rsquo;t wake to a noise, but to a sensation. A heavy, warm weight was pressing down on his chest. He opened his eyes to see the silhouette of the husky standing over him. Dog wasn&rsquo;t growling, that would be too loud. He was silently and intensively breathing, ears were flat against his head, and he was staring one of the cracked windows.</p>
<p>Then, John felt it.</p>
<p>The noise of the cans started first, but then the vibration in the floorboards.</p>
<p><em>Thump.</em></p>
<p>It wasn&rsquo;t footsteps.</p>
<p><em>Thump. Thump.</em></p>
<p>It was too heavy for that, too rhythmic.</p>
<p><em>Thump. Thump. Thump.</em></p>
<p>It sounded like something massive was breathing through the earth itself.
Through the window, a faint light began to pulse outside. It didn&rsquo;t cast shadows like a lamp, but instead it seemed to swallow the darkness, turning the world into a blurred version of itself.</p>
<p>John didn&rsquo;t moved for a few moments, maybe he could ignore it and go back to sleep, he didn&rsquo;t breathe.</p>
<p><em>Thump. Thump. Thump.</em></p>
<p>He quickly and silently got up, there was no way of knowing how long he had, he had to hurry. Dog was already ahead of him going down the flight of stairs, he was fast. As they got on the ground floor he saw the four legged animal pick up even more speed, he couldn&rsquo;t match, he disappeared one room ahead right after the corridor.</p>
<p><em>Thump. Thump. Thump.</em></p>
<p>The next sound hit John like a punch</p>
<p><strong>a bark</strong></p>
<p>&hellip;. it was the first time in many days he hear it, and it wasn&rsquo;t the playful type.</p>
<p>He started to slow down, with doubts flowing through his head, but quickly picked up pace again, he wouldn&rsquo;t leave him behind.</p>
<p><em>Thump. Thump. Thump.</em></p>
<p>Even with the increasing noise he feared how far the bark noise had travelled.</p>
<p>Right around the corner he saw the husky rushing back in his direction, eyes wide open, still reflecting some of the light ahead, he had seen something and was running away, the pulsing light growing bigger, he quickly ducked as the light was passing through the window outside.</p>
<p><em>Thump. Thump. Thump.</em></p>
<p>While this looked like the wrong way to exit the building, it was also probably the safer bet in a few minutes as it seemed the light was moving towards the other end from the outside. He just had to wait &hellip;. but he remembered the backpack, he left it on the other opposite side of the building.</p>
<p>He maintained his crouched position and started moving as quickly as possible, there was still time.</p>
<p><em>Thump. Thump.</em>
<em>Thump.</em></p>
<p><em>Th&hellip;</em></p>
<p><em>Silence.</em></p>
<p>He realized the noise had stopped, but there hadn&rsquo;t been time to move that further away, so still outside.</p>
<p>He slid his arms into the backpack straps while still lying down, clicking the plastic buckles with agonizing slowness, muffling the <em>click</em> with his sleeve.</p>
<p>He looked at Dog. Movement noises were forming outside.</p>
<p>Both started moving again to the opposite side of the building, like a cat and mouse game, but it was much harder doing this with the backpack, his knees couldn&rsquo;t keep up, and he kept losing balance, almost falling backwards.
It was an impossible task, but he couldn&rsquo;t leave it behind.</p>
<p>As they moved to another room he decided to get up.</p>
<p>The light outside moved towards that room &hellip; he kept moving, not running but no time to be subtle. They were outside, he moved instinctively to the direction where Dog was running to, no time to second guess, animal instincts would probably be right, choice paralysis would be the worse thing now.</p>
<p><em>Th&hellip;</em>
<em>Thump. Thump.</em></p>
<p>The vibrations had resumed, took him a while to notice, but then again it was only when they stopped running, after ducking under some nearby trees, that he was able to listen again something else other than his heart pounding through his chest.</p>
<p>He opened the backpack, grabbed the wood box and took the battery and held it as tightly as possible, ready to slot it in if needed, the metal device half outside, half still covered by the backpack itself.</p>
<p>02h49m</p>
<p>He waited &hellip;. a hand on the battery, another hand resting on Dog&rsquo;s body, he could sense his heartbeat.</p>
<p>02h51m</p>
<p>The pulsing light grew brighter, but then began to fade as the vibration moved further down the road.</p>
<p>02h53m</p>
<p>It was impossible to distinguish anything, whatever was out there this night wasn&rsquo;t looking for them anymore, it was just passing through now. John waited until the lights vanished completely.</p>
<p>03h17m</p>
<p>He stood up, his bones aching from the cold and tension.</p>
<p>Survival was a game of staying out of sight. He patted the dog’s once, a silent thank you. Dog nudged John’s hand with a wet nose, probably from the cold, he just realized he didn&rsquo;t had his gloves.</p>
<p>The sun would be rising in a few hours.</p>
<p>They stepped out into the freezing night, two small shadows disappearing into the trees, leaving nothing but paw prints and boot marks soon to be covered by the falling snow.</p>
<p>.</p>
<p><code>Thanks for reading. Sorry for potential dissapointment, sometimes I have flashes of stupid ideas form in my mind that &quot;are nothing or not complete&quot;, but I wanted to start this exercise were I write them in my blog (aka diary) as brain dumps. I guess this could even help me improve my English writing skills which are quite lacking.   </code></p>
<p>Photo by <a href="https://unsplash.com/photos/an-open-window-in-a-wooden-building-with-snow-on-the-ground-FSyHZQB3Y2A">Maxim Shklyaev</a></p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>2025 what a year huh?</title>
      <link>https://www.david-amador.com/2025/12/what-a-year-huh/</link>
      <pubDate>Wed, 31 Dec 2025 08:15:00 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/12/what-a-year-huh/</guid>
      <description>&lt;h2 id=&#34;2025&#34;&gt;2025!&lt;/h2&gt;
&lt;p&gt;This has been, for the lack of a better expression, a stressful year. I still remember around end of 2024 many people saying &amp;ldquo;things will change next year&amp;rdquo;. And change they did.&lt;/p&gt;
&lt;p&gt;For me personally, professionally and overall worldwide events turned this year into a constant state of alert that made almost every week in sync with my weekly &lt;a href=&#34;https://bsky.app/profile/djlink.bsky.social/post/3ma6yoweqm22a&#34;&gt;&amp;ldquo;Cloud it&amp;rsquo;s Wednesday&amp;rdquo;&lt;/a&gt; post.&lt;/p&gt;
&lt;h2 id=&#34;intraconnected-world-&#34;&gt;Intraconnected-world 🕸️&lt;/h2&gt;
&lt;p&gt;Even if someone&amp;rsquo;s work doesn&amp;rsquo;t depend on using the internet, we can&amp;rsquo;t escape it these days.
The problem for me really is that &amp;ldquo;The Internet&amp;rdquo; as I&amp;rsquo;ve grown to know it, is for the most part gone.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="2025">2025!</h2>
<p>This has been, for the lack of a better expression, a stressful year. I still remember around end of 2024 many people saying &ldquo;things will change next year&rdquo;. And change they did.</p>
<p>For me personally, professionally and overall worldwide events turned this year into a constant state of alert that made almost every week in sync with my weekly <a href="https://bsky.app/profile/djlink.bsky.social/post/3ma6yoweqm22a">&ldquo;Cloud it&rsquo;s Wednesday&rdquo;</a> post.</p>
<h2 id="intraconnected-world-">Intraconnected-world 🕸️</h2>
<p>Even if someone&rsquo;s work doesn&rsquo;t depend on using the internet, we can&rsquo;t escape it these days.
The problem for me really is that &ldquo;The Internet&rdquo; as I&rsquo;ve grown to know it, is for the most part gone.</p>
<p><img alt="IT Crowd this is the internet" loading="lazy" src="/wp-content/uploads/2025/12/it_crowd_this_is_the_internet.jpg"></p>
<p>It used to be like a library with a few rooms for leisure and games, but now it looks like a night-club with music blasting where everyone is shouting, trying to be louder than the rest, and relegated to the backrooms are a few of the places you might still like/identify with, the knowledge sections, non-fake-content and positive collaboration vibes, finding them is the problem. The majority of people are in the main hall now, if we only enter and stay, we are exposed to all the noise that comes with it, it&rsquo;s exhausting.</p>
<p><img alt="Tired computer anime" loading="lazy" src="/wp-content/uploads/2025/01/tired_computer_anime.gif"></p>
<p>It&rsquo;s been over a year since I mostly stopped using Twitter (yes I still call it that) as my main social network, for over a decade that was my daily website to post, check on mutuals, cool stuff being made and overall news. That&rsquo;s why I used it, I enjoyed going there, but that is no longer what I find when I open it, everyone is angry, trying to drive traffic through negativity which algorithms push even higher (although that can be said of most social networks).</p>
<p>Weirdly I thought it would be harder to leave Twitter, but it wasn&rsquo;t, once in a while I&rsquo;ll poke around, but I leave quickly.</p>
<p>I&rsquo;ve been using <a href="https://mastodon.gamedev.place/deck/@djlink">Mastodon</a> and <a href="https://bsky.app/profile/djlink.bsky.social">Bluesky</a> via cross-posting but it&rsquo;s not the same. Which in a way has been good, it&rsquo;s not like I felt pressure to post on Twitter, for me was always natural, but maybe I was too addicted to posting regardless. I spend less time on social networks now, which also helps with not feeling the urge to &ldquo;post that I&rsquo;m making cool stuff&rdquo;, and most times I can&rsquo;t talk about anything.</p>
<p><img alt="Break NDA" loading="lazy" src="/wp-content/uploads/2025/12/cant_break_nda_not_active.jpg"></p>
<p>There is contract work I&rsquo;ve been doing only for next year and maybe even beyond. In 2024 I was working on stuff that was only launched this year, an example is <a href="https://www.kinmoku.games/videoverse">VideoVerse</a>, which for several months I was in touch daily with Kinmoku so that we could try and get the console versions as polished (and as humanly fast) as possible, and it wasn&rsquo;t something that none of us was publicly talking about; dopamine of feedback when you are working on neat stuff via social network is cool but learning to live without it is quite liberating. A funny thing actually about this one, and why I mentioned it specifically, is by coincidence I ended up working on the same game as <a href="https://luiscorreia.pt/">Luis Correia</a>, which I&rsquo;ve known IRL for years, and for the longest time he didn&rsquo;t know as well xD.</p>
<h2 id="gaming-industry-">Gaming Industry 👾</h2>
<p>This year was the continuation of a cycle that started a couple years ago now, many layoffs, even in profitable studios, which while baffling is probably fuelled by other external factors like the rise of the <a href="#agents-era">&ldquo;agent era&rdquo;</a> and keeping stocks rising. This last one was something that I had a friend point out last year, usually layoffs in public companies are accompanied by stocks rising, investors predict a leaner company with less expenses. Ever since I was made aware of this I can&rsquo;t unsee it, it&rsquo;s true, it&rsquo;s a vicious cycle.</p>
<p>The problem with the big companies doing this is that it trickles down to mid and smaller companies and indie developers. Projects get cancelled, funds get pulled out of nowhere.</p>
<p>I was feeling this last year as several teams I was in touch with were having some projects cancelled, but by end of 2024 a bunch of stuff for Q1/Q2 2025 got cancelled; many teams do contact work for bigger studios, and those contracted studios sometimes outsource additional help from smaller external teams or individuals, and I&rsquo;m one of them, so I was seeing the cascading effect happen in real-time.</p>
<p><img alt="Office Space Is this good for the company" loading="lazy" src="/wp-content/uploads/2025/12/office_space_is_this_good_for_the_company.jpg"></p>
<p>A lot of times I am enquired about work time for a potential project (additional programming or port-work) months before, which gives a good idea of my runway of work, it shrank tremendously from &ldquo;I don&rsquo;t have time for the next 6 months&rdquo; to &ldquo;Oh wait I got next month with nothing&rdquo;.</p>
<p>This year I was in touch with many other devs I know in similar situations, questions from &ldquo;hey let me know if you find something that could be a good fit for me&rdquo;, or just generally enquiring if anyone had found anything, in hopes to get some good news that things could be improving for someone.</p>
<p>Luckily and better than most I guess, I was able to find some short-term things to minimize this and did a few random work tasks to fill that time the best possible. I even used some of it to start learning <a href="#unreal-engine">Unreal Engine</a>. Eventually found other stuff that wasn&rsquo;t just a couple weeks of work, so at the moment, while not super stable, (but this is a general thing for everyone), I have a couple things for the next months and through 2026 in my hands, fingers crossed nothing caves.</p>
<p>But it is a scary situation for everyone, and it reminds me that time back in 2009, the bank-house-finantial-market-bubble <a href="/2009/12/updates-about-different-pixel-and-sapphire/">where I found myself out of job</a>, I couldn&rsquo;t quite understand why back then (ah young and oblivious), but now it makes more sense, it wasn&rsquo;t just the company, but external stuff too.</p>
<p>But ending on a positive note, and even though according to Steam sheer amount of games launched the competition for &ldquo;digital shelf space&rdquo; is increasing at a rapid pace, it seems the % of studios finding success is growing, the problem really is on the other end it&rsquo;s a trail of destruction for people who can&rsquo;t make it.</p>
<h2 id="agents-era-">Agents-era 🤖</h2>
<p>A lot of digital ink has been used in the last few years, and especially this one, about &ldquo;AI&rdquo;, agents, large models, and the for better-or-worse, the digital revolution (?) with real life impact that is causing.</p>
<p><img alt="Agent Smith with Agents in The Matrix" loading="lazy" src="/wp-content/uploads/2025/12/agent_smith_with_agents_in_the_matrix.jpg"></p>
<p>We are all feeling it&rsquo;s impact, either directly, if someone is using it for work or got layoff due to the perceived reality that &ldquo;AI will replace everyone&rdquo;; or indirectly, subscriptions getting more expensive due to addition of AI features, regardless if you use them or not, Power plants being activated (and built) for the sole purpose of keeping up with increasing GPU demands, electricity prices likely increasing due to that, chips are getting more expensive, RAM prices are through the roof, and overall companies are becoming less and less interested in selling stuff at affordable prices to consumer market and instead profit from the increasingly demanding AI-Data-GPU-centres being used and built.</p>
<p>This stuff is happening, in real-time, regardless of what we think about it, my humble opinion here is that it will eventually land in the middle, it won&rsquo;t be a bubble that pops, but neither will it &ldquo;full replace everything and everyone and is so much better&rdquo;. There are benefits (just not the way it&rsquo;s being used) but it will also leave a trail of tech debt everywhere. Those who can position themselves in cleanup-complete-tasks-ai-is-not-good, might find a <a href="https://en.wikipedia.org/wiki/Blue_Ocean_Strategy">new blue ocean</a>. If in the future everyone uses AI, then that&rsquo;s the new average, regardless if it&rsquo;s much faster than today or not, and whom ever breaks from that, stands out.</p>
<h2 id="unreal-engine">Unreal Engine</h2>
<p>While searching for new contract work this year I found myself with a couple weeks of slower, even dead time, and while in insight <a href="#taking-vacations-time-or-lack-of">I should have taken some time off</a>, I decided to use the time to start learning Unreal Engine. I&rsquo;ve been thinking about it for several years, but never had the time, and the decision was helped by seeing lot of job postings for that, seems to be growing at a steady pace of demand, many studios shifting towards Unreal, even AAA that had built-in-house engines.</p>
<p>I had never even opened it, so this was the perfect opportunity for in 2-3 years I wouldn&rsquo;t be a complete noob, maybe even applying for such positions, so starting now with no expectations would be nice.</p>
<p>After talking with <a href="https://www.stevestreeting.com/">Steve Streeting</a> a bit, who I look up to when it comes to game engines (I mean he created <a href="https://www.ogre3d.org/">OGRE 3D</a> after all), I decided to enroll into an online course to get started faster. This was the first time I did this approach, I usually just start working on a new tool with small tests or a prototype and learn as I go, like <a href="/2025/04/switching-unity-to-godot-my-experience-so-far/">I did with Godot</a> (and still am working with it). But since my time was a bit more limited, and I did not wanted to start yet another prototype, I went the course route instead.</p>
<p>It&rsquo;s been a while since I coded so much in C++ and I forgot how both elegant and obnoxious this language can be, but the Unreal way of doing things is quite interesting. In a way there&rsquo;s a lot of the same things we have in Unity, linking stuff to inspector, a more editor-oriented approach, but I think the interesting part is there it kind of expects you to do things a certain way, instead of Godot/Unity more &ldquo;sandbox type&rdquo; approach.</p>
<p>The advantage I guess is that very rapidly we have stuff working, like character movement, collisions etc, which speeds up early development/learning.</p>
<p>I learned that Blueprints vs C++ is not necessarily &ldquo;one vs the other, but more &ldquo;there&rsquo;s a good time for either&rdquo;, and I&rsquo;m glad the course is approaching both, pros and cons of either in different situations.
I like it so far, even if the dev machine sys requirements are very high, it took SOOO much to install, create and build the first project that I thought &ldquo;omg my computer sucks&rdquo;. Luckily it gets faster after that, I&rsquo;m using Rider which also helps, Visual Studio has become quite a resource hog in last few years on my machine. It will take a bunch of time for me to learn how to be at ease in Unreal, and I would need a real project for this later, but I don&rsquo;t consider it wasted at the moment even if I&rsquo;m not using it now professionally (yet).</p>
<h2 id="personal-projects-">Personal projects 💻</h2>
<p>With all that&rsquo;s been happening this year, as much as it makes me sad, I had my pet prototypes mostly in &ldquo;pause&rdquo;, contract work taking priority, which really feels like the &ldquo;excuse&rdquo; these last few years, but &ldquo;life am I right?&rdquo;. And this year FINDING work was the main priority of course.</p>
<p>That doesn&rsquo;t mean I stopped but it&rsquo;s been harder to find time to work on things, <a href="/2025/09/the-degradation-of-our-attention-spans/#accountability">streaming helped</a> and I&rsquo;ve been happy working on that silly-duckuban-rogue-game (wonder if I can turn it into a real game!), but I&rsquo;ve slowed down quite a lot since I landed a few new work gigs.</p>
<p><img alt="Duck duck prototype" loading="lazy" src="/wp-content/uploads/2025/12/duck_prototype.jpg"></p>
<p>But even if I haven&rsquo;t launched nothing by myself (in quite a while!), I&rsquo;ve been working enough on Godot that I feel more comfortable in it, to the point that I&rsquo;ve started finding a few frustrating things (a conversation for another day), which means I&rsquo;m on the right track if I started scratching the surface, as nothing is perfect. Also I&rsquo;ve worked on many projects via contract work in last few years and as I mentioned before, that is very fulfilling on it&rsquo;s own.</p>
<h2 id="games-">Games 🎮</h2>
<p>What a year indeed. After years of speculation, Nintendo finally released the sequel to it&rsquo;s best selling console, and a numeric version, breaking their pattern. The Nintendo Switch 2, very similar, bigger size, better screen, better specs and backward compatible with Switch 1. Joy-cons can be used as a mouse, on all accounts a very safe and unlike-Nintendo bet.</p>
<p>I grabbed mine on launch with Mario Kart World bundle, unfortunately the digital version as it was cheaper than the €90 the physical version was being sold at launch.
The screen is great, obviously playing on a bigger screen is nice. The Joycons are also more comfortable to hold and play, I find myself playing with them instead of the Pro Controller (1st version) now even in TV mode.</p>
<table>
  <thead>
      <tr>
          <th><img alt="Nintendo Switch 2 Mario Kart World Bundle" loading="lazy" src="/wp-content/uploads/2025/12/nintendo_switch_2_mario_kart_bundle.jpg"></th>
          <th><img alt="Nintendo Switch 2 vs Nintendo Switch 1 screen size" loading="lazy" src="/wp-content/uploads/2025/12/nintendo_switch_2_vs_switch_1_size.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>But as usual with Nintendo, it&rsquo;s about the games, not necessarily just the hardware.</p>
<h3 id="mario-kart-world">Mario Kart World</h3>
<p>A launch title, I&rsquo;ve played tons of hours of every entry (with exception of GBA and Wii version), and it&rsquo;s always a cool franchise to grab. The tracks are way bigger now, 24-players, and I loved exploring the world for giant creatures.</p>
<table>
  <thead>
      <tr>
          <th><img alt="Mario Kart World screenshot" loading="lazy" src="/wp-content/uploads/2025/12/mario_kart_world_02.jpg"></th>
          <th><img alt="Mario Kart World screenshot" loading="lazy" src="/wp-content/uploads/2025/12/mario_kart_world_03.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>Unfortunately while fun at start, I bounced off quickly to my surprise. Once I played all the tracks, the online was not as fun to grab me, can&rsquo;t really put my finger on why. I guess the smaller more handcrafted levels of MK8 especially, were more fun. I do enjoy the new game modes, but the excitement ended quickly. Maybe I&rsquo;m too spoiled at this moment, or had high expectations.</p>
<h3 id="donkey-kong-">Donkey Kong 🍌</h3>
<p>On the other hand, to my surprise, especially because I&rsquo;ve never played any Donkey Kong games (a sin I know, hold on, don&rsquo;t leave yet), and I grabbed this mostly because &ldquo;might as well try to justify the Switch 2 purchase&rdquo;, I love this game, and OH DID does it justify the Switch 2 and more. It&rsquo;s a system seller in my opinion.</p>
<p>I ended up almost doing 100% of it, it&rsquo;s immensely fun, the dopamine hits of that game is almost perfection, I&rsquo;m so glad this is a pay only once title, it could be a problem.</p>
<p><img alt="Donkey Kong Bananza" loading="lazy" src="/wp-content/uploads/2025/12/donkey_kong_bananza_01.jpg"></p>
<h3 id="ball-x-pitt">Ball x Pitt</h3>
<p>I initially purchased Clair Obscur: Expedition 33  because everyone was talking about it, but did not enjoy the combat, the timing thing felt off, and while I enjoyed games like Mario &amp; Luigi: Superstar Saga for example, which also has that, this one would not click for me.</p>
<p>I was thinking about returning it, but a friend took it off my hands in exchange for a few digital indie games. I picked Ball X Pitt and Crow Country based on a quick search. Ball X Pitt was random chance, but it&rsquo;s great, arkanoid on steroids, seriously go play.</p>
<p><img alt="Ball X Pitt" loading="lazy" src="/wp-content/uploads/2025/12/ball_x_pitt.jpg"></p>
<h3 id="dragon-quest-i-hd-2d-remake">Dragon Quest I HD-2D Remake</h3>
<p>Somehow I never played any Dragon Quest game until now, but when this was announced, I saw this screenshot&hellip;</p>
<p><img alt="Dragon Quest I HD-2D Remake" loading="lazy" src="/wp-content/uploads/2025/12/dragon_quest_1_hd_2d_remake.jpg"></p>
<p>&hellip; and bought the game. It comes packed with Dragon Quest II Remake as well. It reminded me a lot of the vibe of Phantasy Star IV. DQ1 is simple, short and not very feature packed compared with modern RPG standards, however that&rsquo;s exactly why I enjoyed it a ton, it was simple to pick, play a few combats and grab later. The modern Remake features helps a ton, also the fact that we only play as 1 character through the entire game, it needs a lot more grinding with 1 char only but if you are bored you can toggle invincibility on for those tougher fights. If you never picked any of the DQ games, I highly recommend picking this one.</p>
<h3 id="metroid-prime-4">Metroid Prime 4</h3>
<table>
  <thead>
      <tr>
          <th><img alt="Metroid Prime 4" loading="lazy" src="/wp-content/uploads/2025/12/MetroidPrime4Beyond.jpg"></th>
          <th><img alt="Metroid Prime 4 Switch 2 Physical Edition" loading="lazy" src="/wp-content/uploads/2025/12/metroid_prime_4_switch_2_physical.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>I haven&rsquo;t finished this one (~10h in) so it&rsquo;s hard to judge it, but I decided to talk about it just because it&rsquo;s been SO DAMN LONG we&rsquo;ve been waiting for this, this game has been though dev hell for sure. Visually the game is stunning, solid 60FPS gameplay, smooth as butter movement. Sadly I don&rsquo;t have a 120Hz 4k tv so I can&rsquo;t experience the full thing but the base version is already stunning. I&rsquo;m enjoying it so far, let&rsquo;s hope I don&rsquo;t end up leaving it pending for years (I still haven&rsquo;t completed Metroid Prime 1 Remaster).</p>
<h2 id="taking-vacations-time-or-lack-of-">Taking vacations-time or lack of 🏝️</h2>
<p>Something to do better next year, I need to take proper vacation time, once in a while through the year, not just a burst session when I&rsquo;m near a wall and power through the rest of the year. 2025 was almost work non-stop, I only took a few days of proper &ldquo;completely off work&rdquo; during my birthday in March, and it was also partly related to personal-emotional issues I wanted to process.
So I ended up spending 4-5 days trekking and climbing mountains in the snow, which I have say is pretty cool and really helps, because it clears your mind, it&rsquo;s just kind of dangerous at times to do this alone. Also was a neat way to find the Apple Watch trekking app when you go off route really helps backtracking, battery isn&rsquo;t that great though when that is on, but I&rsquo;ve had this device for 4 years or so with original battery still.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_08.jpg"><img alt="David in the snow mountains March 2025 picture 8" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_08.jpg"></a></td>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_02.jpg"><img alt="David in the snow mountains March 2025 picture 2" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_02.jpg"></a></td>
      </tr>
  </tbody>
</table>
<table>
  <thead>
      <tr>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_04.jpg"><img alt="David in the snow mountains March 2025 picture 4" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_04.jpg"></a></td>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_07.jpg"><img alt="David in the snow mountains March 2025 picture 7" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_07.jpg"></a></td>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_05.jpg"><img alt="David in the snow mountains March 2025 picture 5" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_05.jpg"></a></td>
      </tr>
      <tr>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_01.jpg"><img alt="David in the snow mountains March 2025 picture 1" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_01.jpg"></a></td>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_03.jpg"><img alt="David in the snow mountains March 2025 picture 3" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_03.jpg"></a></td>
          <td style="text-align: center"><a href="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_06.jpg"><img alt="David in the snow mountains March 2025 picture 6" loading="lazy" src="/wp-content/uploads/2025/12/david_switzerland_trip_march_2025_06.jpg"></a></td>
      </tr>
  </tbody>
</table>
<p>I took tons of pictures and have a few videos that would be cool to share but it would be beside the point of the post.</p>
<h2 id="journaling-">Journaling 📝</h2>
<p>Here&rsquo;s a habit I picked up in 2025 that I&rsquo;m having fun with, I&rsquo;ve always have a physical notebook in my desk but it&rsquo;s usually for random misc work-phone-calls quick notes stuff I need to take note of, consider or just brainstorm. But I grabbed a specific notebook just for writing down tasks of todos on a daily basis, and what I managed to get done. It seems silly but it really helps putting things in perspective, also I always like to do my crappy-art-doodles on the sides.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center"><img alt="Journaling" loading="lazy" src="/wp-content/uploads/2025/12/journaling_01.jpg"></td>
          <td style="text-align: center"><img alt="Journaling" loading="lazy" src="/wp-content/uploads/2025/12/journaling_02.jpg"></td>
      </tr>
  </tbody>
</table>
<h2 id="movies--tv-recommendations-">Movies &amp; TV Recommendations 🍿</h2>
<p>Had the chance to watch several Movies and TV Shows this year, leaving you with some of the stuff that stood out enough for me to recommend in no particular order.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
          <th style="text-align: center"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center"><img alt="The Pitt" loading="lazy" src="/wp-content/uploads/2025/12/the_pitt_poster.webp"></td>
          <td style="text-align: center"><img alt="Andor" loading="lazy" src="/wp-content/uploads/2025/12/andor_poster.jpg"></td>
          <td style="text-align: center"><img alt="Severance" loading="lazy" src="/wp-content/uploads/2025/12/severance_poster.jpg"></td>
          <td style="text-align: center"><img alt="Alien Earth" loading="lazy" src="/wp-content/uploads/2025/12/alien_earth_poster.webp"></td>
      </tr>
      <tr>
          <td style="text-align: center"><img alt="Weapons" loading="lazy" src="/wp-content/uploads/2025/12/weapons_poster.webp"></td>
          <td style="text-align: center"><img alt="F1" loading="lazy" src="/wp-content/uploads/2025/12/f1_poster.webp"></td>
          <td style="text-align: center"><img alt="Blackberry" loading="lazy" src="/wp-content/uploads/2025/12/blackberry_poster.webp"></td>
          <td style="text-align: center"><img alt="Until Dawn" loading="lazy" src="/wp-content/uploads/2025/12/until_dawn_poster.webp"></td>
      </tr>
      <tr>
          <td style="text-align: center"><img alt="She Rides Shotgun" loading="lazy" src="/wp-content/uploads/2025/12/she_rides_shotgun_poster.webp"></td>
          <td style="text-align: center"><img alt="Plur1bus" loading="lazy" src="/wp-content/uploads/2025/12/plur1bus_poster.jpg"></td>
          <td style="text-align: center"><img alt="The Running Man" loading="lazy" src="/wp-content/uploads/2025/12/the_running_man_poster.jpg"></td>
          <td style="text-align: center"><img alt="Ballerina" loading="lazy" src="/wp-content/uploads/2025/12/ballerina_poster.jpg"></td>
      </tr>
  </tbody>
</table>
<p>If you have anything you watched and want to recommend let me know.</p>
<h2 id="heres-to-2026">Here&rsquo;s to 2026!</h2>
<p>I don&rsquo;t have a crystal ball so I have no idea what&rsquo;s going to happen, and usually I&rsquo;m more of the &ldquo;plan for the worst, hope for the best&rdquo; kind of person. Majority of stuff happening in the world we have little to no control whatsoever. We can be optimistic but also realistic.
And if I look objectively to the things that most impacted me directly this year, I took action on some, and it helped, and the rest that pending because I have yet to take action on them.</p>
<p>Someone wiser than me once said that most of stress is not taking action when we can, not when things fail.</p>
<p>In case you made it this far, thanks for reading, I do really appreciate it, it took me a couple days of writing in smaller sessions, so glad to know it&rsquo;s not only posting to the void.</p>
<p>So if you had a stressful year, remember, this too shall pass.
Wish you a great 2026!</p>
<p><img alt="2026 Nintendo Shop Calendar" loading="lazy" src="/wp-content/uploads/2025/12/2026_nintendo_calendar.jpg"></p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>The Degradation of our attention spans</title>
      <link>https://www.david-amador.com/2025/09/the-degradation-of-our-attention-spans/</link>
      <pubDate>Mon, 22 Sep 2025 12:10:00 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/09/the-degradation-of-our-attention-spans/</guid>
      <description>&lt;h3 id=&#34;an-interruption&#34;&gt;An interruption&lt;/h3&gt;
&lt;p&gt;Ok, how did you get here?&lt;/p&gt;
&lt;p&gt;Was it a notification, scrolling a feed, did you saw my post and pressed the link, an RSS feed perhaps? What was the interruption that broke your flow, and do you remember the last thing before? Or even before, before you were on socials or scrolling whatever got you here?&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Gandalf I don&amp;rsquo;t remember&#34; loading=&#34;lazy&#34; src=&#34;https://www.david-amador.com/wp-content/uploads/2025/09/gandalf_I_have_no_recollection.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Sorry, maybe an exaggeration here, it hasn&amp;rsquo;t been that long, but how often does that happen? That rabbit-hole where you set your time to do a certain thing and by the end you don&amp;rsquo;t even remember what it was?&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="an-interruption">An interruption</h3>
<p>Ok, how did you get here?</p>
<p>Was it a notification, scrolling a feed, did you saw my post and pressed the link, an RSS feed perhaps? What was the interruption that broke your flow, and do you remember the last thing before? Or even before, before you were on socials or scrolling whatever got you here?</p>
<p><img alt="Gandalf I don&rsquo;t remember" loading="lazy" src="/wp-content/uploads/2025/09/gandalf_I_have_no_recollection.jpg"></p>
<p>Sorry, maybe an exaggeration here, it hasn&rsquo;t been that long, but how often does that happen? That rabbit-hole where you set your time to do a certain thing and by the end you don&rsquo;t even remember what it was?</p>
<h3 id="the-best-time-was-yesterday-now-its-today">The best time was yesterday, now it&rsquo;s today</h3>
<p>The irony of this title is I&rsquo;ve had it on my mind for a couple months, but kept postponing for later. <em>Oh &hellip; the lack of time, too much work, something got in the way&hellip;</em> nah, let&rsquo;s be honest here, there&rsquo;s always something that I (we?) keep leaving for later and could be done rather quickly.</p>
<p>If only I had focused, giving it the proper and full attention for the required time it needs to get done, no side-quests. And I&rsquo;m not just talking about big tasks that take weeks or months, but smaller ones, quick ones, that I could finish, snowballing the piece of mind that comes from taking action and getting things done.</p>
<p>It&rsquo;s rarely just lack of time, if I sum up the wasted time looking at useless stuff or context switching since April (been a while since my <a href="/2025/04/switching-unity-to-godot-my-experience-so-far/">last post</a>) I could have gotten this post done a long, long time ago. <em>queues Star Wars theme</em>, speaking of that, Andor is just great isn&rsquo;t it?</p>
<p>See, our brains have this tendency of stretching and tethering to other subjects. Or maybe it&rsquo;s a <em>me</em> problem.</p>
<h3 id="stress-from-not-taking-action">Stress from not taking action</h3>
<p>Being overwhelmed by things to do, tasks we want to finish, tasks we SHOULD finish, side projects, freezing over selection of what to do next; is a natural occurrence as we want to do more, and have more on our plate, are handed over more tasks to do, or //TODO: that we kept on delaying.</p>
<p>It can be work, personal things, asking for something, replying to that email/text, a difficult conversation.</p>
<p>The more we pile the worst it gets because the possibilities are now so many. And the process of freezing while selecting the best use of our time, becomes the time sink itself.</p>
<p>Procrastination, leaving it for later, I&rsquo;ll do that in a bit, but first I guess &hellip; hold on  &hellip;. let me just &hellip;. watch check this notification first&hellip;</p>
<p><img alt="A few moments later" loading="lazy" src="/wp-content/uploads/2025/09/few_moments_later.jpg"></p>
<p>Wait where did the time go? It&rsquo;s that easy isn&rsquo;t it?</p>
<h3 id="free-time-guilt">Free-time guilt</h3>
<p>Have a bit of time you could actually relax, rest and recharge your batteries but feel guilty you should be working?</p>
<p>In a way that might be because there isn&rsquo;t a clear separation of tasks time and &ldquo;me time&rdquo;, so if we context-switch a lot in allocated time for work, in the time you should be resting the brain doesn&rsquo;t feel like it accomplished what it should have. Limbo.</p>
<p>Do you start a movie and pick up the phone while the title is rolling?</p>
<h3 id="doom-scrolling">Doom scrolling</h3>
<p>An expression that gets thrown a lot to define how the internet is (attempting and succeeding) to trap us on an endless scrolling of brainrot content. The quality really doesn&rsquo;t matter, their whole goal is to keep us there, and that&rsquo;s also one of the reason why the internet overall feels <a href="https://en.wikipedia.org/wiki/Enshittification">enshittified</a>.</p>
<p>And while that is a whole different topic, it does prey and augments the issue that our attention span is being reduced, harder to stay focused on something.</p>
<h3 id="donkey-kong-bananza">Donkey Kong Bananza</h3>
<p>Wait, what? Yeah sorry, bear with me for a second. 🍌</p>
<p>I got Donkey Kong Bananza at launch (July 17th), so around 2 months ago, it&rsquo;s great, been playing a lot of it, has that right mix of gameplay and dopamine hit.</p>
<p>I found myself ONLY playing that on Switch 2, whenever time allowed, for these 2 months, no switching (bad pun intended) to other games in between. There have been many games where I&rsquo;ll start and finish over time (still gotta complete Metroid Prime), but also a lot that I&rsquo;ll just eventually give up as time passes, not because I don&rsquo;t like them, but switching to other games usually makes it happen faster, because the attention span is now elsewhere, and then something else.</p>
<p>So DK Bananza made me have that strange and comfortable feeling that whenever I had time to play, I wouldn&rsquo;t idle-freeze considering &ldquo;what should I play now? &hellip;. omg I&rsquo;m out of time&rdquo;.
A bit like if you boot up Netflix and you&rsquo;re not sure exactly what to watch, you scroll a bit, time passes and &hellip; wait a notification &hellip; shit it&rsquo;s 2am.&quot;</p>
<h3 id="multiple-things-at-a-time">Multiple things at a time</h3>
<p>I guess I&rsquo;ve always had that issue a bit, I remember back when I was working on Vizati or QoD (because it took years), many times that I decided to do a gamejam during on-going projects, my brain would get invested in that new thing and the old thing seemed like well &hellip; old now.</p>
<p>When you reach a more complicated part in #gamedev, or boring phases you might be a bit stuck, or unsure of the quality, everything else seems more exciting so it&rsquo;s easier to think &ldquo;what if I do a smaller project, this new idea seems better&rdquo;.</p>
<p>Most times it isn&rsquo;t that, but our brain trying to get the next dopamine hit that comes from the initial stages of something, where the ideas just flow and our brain lits.</p>
<p>Learning can be quite interesting but we, as a population, are mostly consuming &ldquo;knowledge&rdquo; 10 seconds at a time and moving on, it doesn&rsquo;t matter anymore, this becomes a cycle.</p>
<p><img alt="Calvin and Hobbes short attention span" loading="lazy" src="/wp-content/uploads/2025/09/calvin_hobbes_short_attention_span.jpg">
<a href="https://en.wikipedia.org/wiki/Calvin_and_Hobbes">Calvin and Hobbes comic strip</a></p>
<h3 id="one-thing-at-a-time">One thing at a time</h3>
<p>I was having this conversation with a friend the other day about TV Shows, he watches multiple weekly-released TV Shows at a time, I wait for full seasons, so we are always out-of-sync if we want to discuss about a particular show.</p>
<p>I&rsquo;ll try to watch just one show at a time, not necessarily binge watching in one weekend, but only one, until I finish the season or quit watching, very often I&rsquo;ll wait weeks (waiting for Alien TV show to wrap up) for something to complete. I can watch at my own speed, but only one. This is probably the only situation where I can control that very well, no pressure, I don&rsquo;t even think about it, I know it usually pays off, I can wait, know how much time I&rsquo;ll need to watch, when I fill that in, and with it comes a certain liberation of either finishing or quitting them.</p>
<p>So can I do this with other things? Well&hellip;. not quite, for example this article you are reading (still there?), it wasn&rsquo;t written in one go, not because it needs research, or it&rsquo;s a super complicated topic, or even that long to write; but because when I searched that image of Calvin and Hobbes you saw a bit above, I got side-tracked and ended up watching unrelated stuff and then decided it was already late and might as well do it &ldquo;tomorrow&rdquo;.</p>
<p><img alt="Han Solo It&rsquo;s not my fault" loading="lazy" src="/wp-content/uploads/2025/09/han_solo_not_my_fault.jpg"></p>
<p>Except it is!</p>
<h3 id="social-networks-">Social Networks ⛓️</h3>
<p>Well sure the world seems crazy now (or I am?), and a big part of our lives is interacting online somehow, we are constantly bombarded by things to trigger us.</p>
<p>One can logoff and &ldquo;touch grass&rdquo;, that is actually surprisingly easier than I anticipated (I managed to not use Twitter for months now, and I thought it would be a problem), I don&rsquo;t miss it, although I do have that feeling that I might &ldquo;be missing something&rdquo;. I can&rsquo;t deny that a lot of work opportunities came from that platform!</p>
<p>But that enshittification spreads quickly, recently I&rsquo;ve being going to LinkedIn more often; to search for work and/or maybe something a bit more stable (btw do tell me if you are looking, or know someone in need for a programmer with my &ldquo;particular set of skills&rdquo;); and that Feed is absolute trash fire, people are using it as they used Twitter and other networks, most stuff I see there almost always unrelated to work, but instead &ldquo;the drama&rdquo; of the day.</p>
<p>So it&rsquo;s everywhere now, it used to be more contained to certain corners of the internet.</p>
<p>And the problem is that there is no winning there, not worth trying, fuelling arguments will just take your time, sanity, and kill your mood. I&rsquo;ve seen mutuals enrolling in discussions that I know are topics close to their hearts but it won&rsquo;t help at all unfortunately.</p>
<p>And that&rsquo;s why those algorithms push certain posts to the front of the page, for &hellip;</p>
<h3 id="engagement">Engagement</h3>
<p>By now I imagine a large percentage has stopped reading the article, maybe because it&rsquo;s not that interesting or any good, but some got a notification and &ldquo;quickly check&rdquo; and are not on another path, who knows where they are now, keeping someone engaged is hard on it&rsquo;s own, especially if there are millions of possible distractions.</p>
<p>Many freemium games have that gotcha thing, to keep you hooked, engaged, if you aren&rsquo;t paying with money, you are paying with time. Your life time!</p>
<p>An interesting argument I heard once &ldquo;David you can say that about anything, a book wants to keep you engaged, a movie as well&rdquo;.
And while we can agree, I disagree on the fundaments, because a company doesn&rsquo;t care much if you read the book as long as you pay for it, or buy the ticket, or the DVD. The intention of quality will come from the creator to make you satisfied enough to see/buy their next work, to recommend to friends. If they trick you once they probably won&rsquo;t do it again.</p>
<p>But with a shift to live-services, subscriptions and freemium models, things are specifically designed to keep us hooked all the time, they HAVE to trick us constantly, the money doesn&rsquo;t come directly from each purchase, not even from each user, but from carefully handcrafted/manipulated loop to exploit our time.</p>
<p><a href="https://web.archive.org/web/20250826100802/https://automaton-media.com/en/news/almost-19-of-japanese-people-in-their-20s-have-spent-so-much-money-on-gacha-they-struggled-with-covering-living-expenses-survey-reveals/"><img loading="lazy" src="/wp-content/uploads/2025/09/19_percent_japanese_people_gotcha_games.jpg"></a></p>
<p>Isn&rsquo;t this article crazy? This is the result over time, it&rsquo;s insane and quite upsetting.</p>
<p>I went on a weird tangent there, let&rsquo;s talk about &hellip;.</p>
<h3 id="work--routine">Work &amp; routine</h3>
<p>Work is something that luckily I&rsquo;ve managed to keep in a more controlled state, and I don&rsquo;t find it as problematic, but it&rsquo;s a combination of multiple things that help with that, and two of the ones I consider most important for me is a clear set of decided things that need to be done and routine.</p>
<p>Sometimes I&rsquo;m not a good &ldquo;decider of things&rdquo;, but I can usually be better at getting them done, or finding a way, or just asking someone else for help. The goal is clear, I just have to get there. Even if there&rsquo;s a bug where I don&rsquo;t know anything, there&rsquo;s a clear goal &ldquo;fix this issue&rdquo;. The problem really comes from a blank canvas, or until I can decide the first stroke of paint and color I guess.</p>
<p>That&rsquo;s why planning is so important, and some people are great at planning but not starting; I&rsquo;m better at starting if I don&rsquo;t have to plan much. None is necessarily better that the other, but knowing your strengths is good.</p>
<p>I few times I got asked &ldquo;why are you doing this?&rdquo;, and the answer is often &ldquo;I don&rsquo;t know but if I don&rsquo;t start I&rsquo;ll never know&rdquo;.</p>
<p>Lack of planning might only take you so far, but lack of action takes you nowhere. So usually just starting is great, but focus, and that&rsquo;s usually the advice I give to anyone asking me &ldquo;How can I learn gamedev?&rdquo;. Just &hellip; start!</p>
<p>Routine is extremely important as well, I could not have accomplished working remotely for so many years if I didn&rsquo;t set a clear &ldquo;time to start working&rdquo;. There&rsquo;s always flexibility sure, but I quickly learned the best way is just habits and routine, your brain and body knows it&rsquo;s time and it&rsquo;s much easier.</p>
<p>Getting up, going for a walk, not random, mostly always the same path so that I don&rsquo;t get distracted but still get some exercise and it helps with stress, coming back sort yourself and just start working.</p>
<p>I guess the third factor that is important is &hellip;</p>
<h3 id="accountability">Accountability!</h3>
<p>A month or so ago I read two different things within a couple days apart that got me curious.
One person was saying that they were building a game and sharing the progress on social but the lack of engagement from sharing the progress was making them unsure and demotivated about the project and they haven&rsquo;t been able to progress much. That&rsquo;s rough, and very relatable.</p>
<p>A few days after I read on an unrelated forum someone talking about marketing and video-promotional-content not being great for people who don&rsquo;t feel comfortable doing that. A few comments deep there was someone talking about streaming, and that streaming themselves working, even if most of the time for 0 viewers, had made them more productive because they had to plan something doing online.</p>
<p>Now that got my attention. 👀</p>
<p>I talked with <a href="https://www.twitch.tv/sorcerystory">a friend</a> who&rsquo;s been streaming gamedev for a while and she confirmed that there are things that she plans, otherwise it would be harder to just &hellip; be here.</p>
<p>So I decided to give it a try, been doing it for a month now, and yeah it&rsquo;s pretty cool, I plan a few tasks, some take longer, others are shorter, but if I run out of planned things, I have to just come up with something on the fly (sometimes I&rsquo;ll see bugs while live so it helps). Most of the time I&rsquo;m at zero viewers, but it doesn&rsquo;t really matter because it keeps you motivated to work on your own stuff, also you never know who might show up.</p>
<p>A great side effect is that I found myself talking while typing, like reading the code out loud and the process behind it, even if alone (again because you never know), and that helps a ton, I realize how dumb some solutions might be before hand, like when you rubber duck it with someone.</p>
<p>I am not using a face camera, it was actually Joana who mention that to me, that a lot of people don&rsquo;t use cameras, and it doesn&rsquo;t matter depending on the streamer&rsquo;s goal. So I just grabbed an old GoPro, it&rsquo;s showing a view to my Keyboard, I have a Mic and I just work, it&rsquo;s fun. I even added a task list on screen which I update as I go (this was a viewer suggestion).</p>
<p><img alt="Twitch layout" loading="lazy" src="/wp-content/uploads/2025/09/david_twitch_streaming_setup.jpg"></p>
<p>That thermal printer on the right corner was yet another side-project that I thought &ldquo;what if I hook up a python script to receive notifications of new followers and trigger a print by USB?&rdquo; as you can see, the getting distracted by other things still does happen, luckily this one was short, it&rsquo;s done and I got it out of my system.</p>
<h3 id="wrap-up">Wrap-up</h3>
<p>I think in the past humans were able to stay focused more time mostly because there were less things in front of us, with a more modern connected-world comes a new challenge of being able to filter our the noise from what we need, while still staying in it, connected and alert to knowledge.</p>
<p>I don&rsquo;t think this all comes from technology, like it&rsquo;s the worst thing ever, but it uses our weakness against us. People will always be distracted and not fully focused for long, it&rsquo;s natural, but the problem now is we are getting distracted with things that add little to our lives. Better to have a bunch of failed projects than 300h of videos, because the failed projects you got them out of your system.</p>
<h3 id="its-been-a-minute-">It&rsquo;s been a minute ⌚</h3>
<p>Thank you for reading all of this, some of it might not make sense, but this is usually the result of my brain dumping a bunch of thoughts in one post, something I wanted to talk about, the best part is that I&rsquo;ve cleared this from my mind, it feels good, even if no one reads it, it was something I wanted to do and now it&rsquo;s done.</p>
<p>That thing you&rsquo;ve been meaning to do? Start, just do it, don&rsquo;t end this just to browse the next YouTube video, or Instagram. We overestimate how much we can get done in a week, but we underestimate how much we can get done in a year.</p>
<p>I&rsquo;ll paraphrase something I&rsquo;ve once read on a book (which I now can&rsquo;t remember).</p>
<p>Giving meaning to life comes from having a purpose, and having a purpose comes from taking action.</p>
<hr>
<p>See you in the next post!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Switching from Unity to Godot My Experience So Far</title>
      <link>https://www.david-amador.com/2025/04/switching-unity-to-godot-my-experience-so-far/</link>
      <pubDate>Sat, 26 Apr 2025 08:10:00 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/04/switching-unity-to-godot-my-experience-so-far/</guid>
      <description>After years with Unity, I spent time exploring Godot 4. Here&amp;#39;s some of the things I liked, the things that frustrated me, and how the switch compares overall.</description>
      <content:encoded><![CDATA[<h3 id="why">Why?</h3>
<p>After several years working with Unity, both for personal and contract projects, I decided to finally properly test and use Godot.</p>
<p>I had been keeping an eye on it for a few years, but <a href="/2023/09/the-unity-enshittification-proprietary-tech-dangers-and-mostly-not-talking-about-what-im-doing/">Unity&rsquo;s controversial policy changes</a> in late 2023 were the final push I needed to start experimenting seriously with an alternative engine, even if I could use my custom engine.</p>
<p>I guess the sort of exploding new wave of devs switching to Godot made me even more tempted, adoption is rapidly expanding.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center"><img alt="Godot game jam usage 2023" loading="lazy" src="/wp-content/uploads/2025/04/godot_jams_use_2023.jpg"></th>
          <th style="text-align: center"><img alt="Godot game jam usage 2024" loading="lazy" src="/wp-content/uploads/2025/04/godot_jams_use_2024.jpg"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center"><em>Godot game jam usage – 2023</em></td>
          <td style="text-align: center"><em>Godot game jam usage – 2024</em></td>
      </tr>
  </tbody>
</table>
<p>While I’m still using Unity for some projects, Godot has become my engine of choice for prototyping, personal games, and game jam-sized projects.</p>
<p>I&rsquo;m not an expert but I&rsquo;ve been using it for some time so I&rsquo;ll share my first impressions, the things I loved, the things that could be better, and how the overall experience compares to Unity.</p>
<p><img alt="Godot Editor Overview" loading="lazy" src="/wp-content/uploads/2025/04/godot_editor_overview.jpg"><br>
<em>Godot editor with a 3D demo prototype project loaded.</em></p>
<hr>
<h3 id="the-good-parts">The Good Parts</h3>
<p><strong>Node System</strong><br>
Godot’s node system is incredibly flexible. Each scene is built by composing nodes, and nodes themselves can be entire scenes. Coming from Unity’s prefab and component system, I found Godot’s approach simpler, the &ldquo;prefabs&rdquo; system feels more robust in Godot, it always felt a bit more fragile in Unity, like things could fall apart quicky, especially nested prefabs.</p>
<p><img alt="Create a new Godot Node window" loading="lazy" src="/wp-content/uploads/2025/04/godot_create_node_system.jpg"></p>
<p>At first, having only one script per node felt restrictive, I remember this was my first &ldquo;oh no, but why?&rdquo; moment, but quickly I realized it makes sense and it actually enforces a cleaner project structure and easier readability.</p>
<p><img alt="Example of a Godot Node setup" loading="lazy" src="/wp-content/uploads/2025/04/godot_node_system_example.jpg"></p>
<p>Making shaders inside the editor itself by code is super easy to iterate and see the results, it highlights syntax errors and it&rsquo;s well rounded and perfect for quick tweaking.</p>
<p><img alt="Doing a shader for a duck " loading="lazy" src="/wp-content/uploads/2025/04/godot_shader_example.jpg"></p>
<p><strong>UI Themes</strong><br>
Godot&rsquo;s UI system is a pleasure to work with once you understand how <strong>themes</strong> work.<br>
Instead of tweaking every button manually, you can design a style once and apply it across your project — similar to using CSS on a website.<br>
Compared to Unity’s sometimes fragile UI system, Godot’s feels more modern and consistent.</p>
<p><img alt="Godot UI Theme Example" loading="lazy" src="/wp-content/uploads/2025/04/godot_ui_theme_example.jpg"><br>
<em>Styling the UI globally using Godot&rsquo;s Theme system, almost kind of a &ldquo;CSS&rdquo; for games.</em></p>
<p><strong>Editor Scripting and GDScript</strong><br>
Before starting I knew we could code in GDScript, C# and C++.
Honestly I&rsquo;m growing tired of C#, but going C++, which I already use for my custom engine, felt like I was leaving a learning opportunity on the table. So I decided to go full GDScript and learn it, also there are way more tutorials and examples online using GDScript.</p>
<p>It&rsquo;s a Python like indentation system, so I&rsquo;m used to it from my Python scripts, the language is quite easy to understand and has several nice functionalities. We still have classes, enums, inheritance, arrays etc, you&rsquo;ll feel at home right away.</p>
<p>The signals are surprisingly boilerplate code free, so I&rsquo;ve embraced them for several things.</p>
<p>The ability to script inside the editor with GDScript makes many workflows very fast. GDScript itself is fun, clean, and powerful enough for full games. It feels like a sandbox-friendly language without giving up robustness.</p>
<p><strong>Mobile Export</strong><br>
I decided to export a mobile build of a prototype, exporting to iOS was surprisingly straightforward. It needs Xcode and setting up the usual certificates, because Godot produced a working Xcode project that we can then use to compile and deploy easily to the phone.<br>
Aside from a small hiccup with orientation settings, everything just worked on first build. Didn&rsquo;t yet tried Android but I&rsquo;m assuming a similar process.</p>
<p><strong>Debugging Tools</strong><br>
I&rsquo;ve been using Rider for several years for C# and C++, so I decided to use it as well here, even if coding and debugging inside Godot is very solid.<br>
But using Rider externally allows me some familiarity, but we can still use the built-in editor debugger, you can set breakpoints, watch variables, and step through code easily. It works as expected so far, no complaints there.</p>
<p><img alt="Debugging a Godot project" loading="lazy" src="/wp-content/uploads/2025/04/godot_debugging_example.jpg"></p>
<p>An awesome bonus: if you hit a C++ level error, Godot shows you the exact file and line number in the engine source — and you can jump straight to GitHub to inspect it.</p>
<p><img alt="CPP code jump from Godot Editor" loading="lazy" src="/wp-content/uploads/2025/04/godot_open_cpp_source_code_in_editor.jpg"></p>
<p><strong>Open Community</strong><br>
Whenever I found documentation gaps or bugs, reporting them was easy, and fixes often came quickly.  The Godot community is active, helpful, and genuinely open to feedback. Many times the only way I could get something to work was by seeing someone with same issue because Docs were lacking something.</p>
<p><img alt="Debugging a Godot project " loading="lazy" src="/wp-content/uploads/2025/04/godot_community_1.jpg"></p>
<hr>
<h3 id="the-rougher-edges">The Rougher Edges</h3>
<p><strong>Editor UX Inconsistencies</strong><br>
While the editor is powerful, UX polish is still lacking compared to Unity or Unreal.  Some buttons don&rsquo;t look clickable, tabbing between elements can behave inconsistently across tools, and finding certain actions (like creating new animations) isn’t always intuitive.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center"><img alt="Godot Animation Editor Confusing Button" loading="lazy" src="/wp-content/uploads/2025/04/godot_animation_button_1.jpg"></th>
          <th style="text-align: center"><img alt="Godot Animation Editor Confusing Button" loading="lazy" src="/wp-content/uploads/2025/04/godot_animation_button_2.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>*Some buttons in the editor can be hard to spot at first, like adding a new animation. &ldquo;Animation&rdquo; doesn&rsquo;t look like a button at first glance *</p>
<p><img alt="Godot size before position in UI " loading="lazy" src="/wp-content/uploads/2025/04/godot_size_before_position.jpg"><br>
<em>Control Nodes show the Size before position, contrary to the other nodes, which doesn&rsquo;t make much sense to me, <a href="https://github.com/godotengine/godot/pull/100169">I even opened a PR for this</a>, it&rsquo;s under consideration.</em></p>
<p><strong>TileMap Workflow</strong><br>
Working with TileMaps can be a bit frustrating. I found myself often jumping between multiple tabs just to tweak small things. It feels fragmented compared to Unity’s more consolidated tile setup.</p>
<p><strong>Atlas System</strong><br>
Managing sprite Atlases in Godot isn’t as flexible as Unity’s system. We can’t name regions (afaik), and the workflow feels a bit clunky compared to Unity’s Sprite Atlas features. All of this can be improved but at the moment it feels a bit more in the way, and I never felt this friction when using Unity.</p>
<p><strong>Version Mismatches and Learning Curve</strong><br>
Because Godot 4 changed many APIs from version 3, a lot of web tutorials and resources are slightly outdated.  The official documentation is good, but sometimes finding clear differences between versions required digging through forums or Reddit posts. The good news really is that if you take the time to make a PR on Github or ask for someone to fix odds are it will be done rather quickly.</p>
<p><strong>GDScript Indentation</strong><br>
While GDScript is fun, I’m personally not a fan of Python-style tab-based indentation.<br>
I would have preferred curly braces <code>{}</code> for clarity, but that’s more a personal preference than a true flaw.</p>
<hr>
<h3 id="iteration">Iteration</h3>
<p>Godot is rapidly evolving, last month Godot 4.4 was released with tons of new features,
from performance boost, a built-in game window for running the games inside the editor, typed dictionaries, physics improvements, and tons of more things.</p>
<p>This is great, but also means some things might evolve quickly or get deprecated as the engine improves. I think we&rsquo;re on the stage that Unity was around version 4-5-2017 transitions. Not saying this as a bad thing, just that some new features might mean something else we were relying has to go.
One thing I noticed is that they overhauled the tilemap system in favour of a layered one, so the older one is still around but not recommended; and it brought me memories of Unity getting rid of the old Particle System when they got a new one. Again, the right choices, but with some pains along the way.</p>
<p>You can read all the new features on Godot 4.4 here: <a href="https://godotengine.org/releases/4.4/">https://godotengine.org/releases/4.4/</a></p>
<h3 id="final-thoughts">Final Thoughts</h3>
<p>Despite the small rough edges, my overall experience with Godot so far has been <strong>very positive</strong>.  It’s an incredibly powerful, lightweight engine that has a nice balance between features and flexibility, encourages a clean structure, and is backed by a great community.</p>
<p>If you’re coming from Unity and considering Godot, expect a bit of a learning curve — especially with editor quirks and differences in workflow. But once you get past the initial bumps, it’s really nice.</p>
<p>I would HIGHLY recommend learning GDScript instead of &ldquo;oh but I know C# already&rdquo;.</p>
<p>I’m excited to keep building with Godot, and I’m looking forward to seeing how the engine grows even stronger in the next few years.</p>
<p>Bonus tip I read somewhere, if something isn&rsquo;t working, and you feel like it should, restart Godot or clean the autogenerated .godot folder, and odds are it will work properly now, especially GDScript stuff tends to be &ldquo;confused&rdquo; if you use external tools.</p>
<p>P.S.: If you also recently switched to Godot, I&rsquo;d love to hear your experience too. Feel free to comment or message me.</p>
<hr>
<p>See you in the next post!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Switching to a new Keyboard, the Glove80</title>
      <link>https://www.david-amador.com/2025/03/new-keyboard-glove80/</link>
      <pubDate>Sat, 29 Mar 2025 11:20:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/03/new-keyboard-glove80/</guid>
      <description>&lt;h3 id=&#34;why&#34;&gt;Why?&lt;/h3&gt;
&lt;p&gt;My 8-9 year old Microsoft Sculpt Ergonomic keyboard died 🪦 (actually it&amp;rsquo;s been showing signs for a while), so I decided to search the market.&lt;/p&gt;
&lt;p&gt;At first I just wanted &amp;ldquo;the same one&amp;rdquo;, but they are discontinued, even used ones are expensive, and many didn&amp;rsquo;t had the dongle anymore (btw don&amp;rsquo;t buy this KB without the bundled dongle, comes locked from factory, you can&amp;rsquo;t use a different one, shame on you MS).
I found that some brands will eventually have similar models later this year (but no release date yet) but I needed to start changing now.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="why">Why?</h3>
<p>My 8-9 year old Microsoft Sculpt Ergonomic keyboard died 🪦 (actually it&rsquo;s been showing signs for a while), so I decided to search the market.</p>
<p>At first I just wanted &ldquo;the same one&rdquo;, but they are discontinued, even used ones are expensive, and many didn&rsquo;t had the dongle anymore (btw don&rsquo;t buy this KB without the bundled dongle, comes locked from factory, you can&rsquo;t use a different one, shame on you MS).
I found that some brands will eventually have similar models later this year (but no release date yet) but I needed to start changing now.</p>
<p>A friend recommended me a Kinesis or the ErgoDox, but for a variety of reasons I ended up going with a Glove80 which I found during my searches. From reviews I read online I saw a few saying it was one of the most comfortable KBs for smaller hands/fingers so I decided to give it a go. It&rsquo;s an expensive one, but it&rsquo;s split, concave, ortholinear and it has the F1-F10 keys which I think are a nice to have separate.</p>
<p>I anticipate a big learning curve, and there&rsquo;s a possibility I might not even get used to it. I found a bunch of posts of people who gave up and returned them (any of the KBs I mentioned really), so I anticipate friction. I&rsquo;m going to write a log on how things will progress and eventually post it. Regardless of failure or success.</p>
<h3 id="unboxing">Unboxing</h3>
<p>After much debating I decided to order it on February 6th, received it on February 14th, so overall pretty fast shipping + delivery.</p>
<p>I got the Rev2 with Cherry Blossom switches; and contrary to Rev1, it seems it always comes with a carrying case now, and this is how it was packed.</p>
<p><img alt="Glove80 Rev 2 unboxing" loading="lazy" src="/wp-content/uploads/2025/03/glove80_rev2_unboxing.jpg"></p>
<p>The box is indeed sturdy, and as the welcome note claims, good enough to travel, although it&rsquo;s on the big side so I don&rsquo;t see it as something to be carried around everyday, but for a trip or working elsewhere for a couple days it&rsquo;s very good.</p>
<p>It also came with some spare keycaps on a cloth bag, some tools and rubbers for tenting, and a USB-C (KB side) to USB-A (PC side) cable.</p>
<p><img alt="Glove80 extras in the case" loading="lazy" src="/wp-content/uploads/2025/03/glove80_unboxing_extras.jpg"></p>
<h3 id="setup">Setup</h3>
<p>You can setup the keyboard by bluetooth (no dongle) or via USB cable. You only need to connect the left part, and the right side always communicates with the left one wirelessly. However, to charge you need to connect a cable on both, not at the same time but if you want to never care about battery you&rsquo;ll need a USB split cable or 2 of them always plugged in. The left side runs out of battery faster than the right one so that&rsquo;s probably not an issue.</p>
<p><img alt="Glove80 tenting" loading="lazy" src="/wp-content/uploads/2025/03/glove80_tenting.jpg"></p>
<p>In terms of tenting there&rsquo;s several feet with some screws you can lower and put higher as needed, but I&rsquo;ve been using it flat. As I mentioned they ship it with some extra rubbers, for stability if needed to raise a lot, I have it on a deskmat and it&rsquo;s super stable, I guess on a desk directly, if you run into issues that could be useful.</p>
<p>Note for Mac users, the best way to just use it out of the box and having all keys work as they are on each key Label is U.S. International - PC as the keyboard layout.</p>
<p><img alt="Glove80 mac keyboard setting" loading="lazy" src="/wp-content/uploads/2025/03/glove80_mac_keyboard_setting.png"></p>
<h3 id="day-1">Day 1</h3>
<p>The first thing I noticed it how low profile it is, I love it, so close to the desk, here&rsquo;s the left side near a Nintendo Switch (left).</p>
<p><img alt="Glove80 low profile" loading="lazy" src="/wp-content/uploads/2025/03/glove80_side_profile_vs_nintendo_switch.jpg"></p>
<p>Ok just to be honest here, I just tried it but right now but I&rsquo;m still typing this on my temporary keyboard, I tried the Glove80 a bit and I&rsquo;m now on that &ldquo;OMG I regret this already!&rdquo; stage. The packing is very nice, the keyboard looks great and seems comfortable, but I&rsquo;m switching from ISO to ANSI, algo to split and ortholinear, everything is in a completely different place, I can barely find anything. Out of curiosity I did a <a href="https://monkeytype.com/">https://monkeytype.com/</a>  test and yeah this will take some getting use to, but I&rsquo;m excited for this.</p>
<p><img alt="Glove80 day one test typing" loading="lazy" src="/wp-content/uploads/2025/03/glove80_day_one_test_typing.jpg"></p>
<h3 id="day-2">Day 2</h3>
<p>I&rsquo;m typing this on the Glove80 now so it might take forever. I&rsquo;ve been practicing a little bit more and I started to average 20 words per minute (with a lot of errors and corrections). So it&rsquo;s still terrible but not as bad as yesterday, that&rsquo;s what I got to focus on.</p>
<p>Some observations already, most of my tests are still just words as I noticed that I need to get used to the ortholinear layout, I have a lot of fails that come from the muscle memory of fingers moving around, which is not as needed here. Also I&rsquo;m messing up all the time the usual shortcuts, CTRL, SHIFT, ALT, they are all now in different places so there&rsquo;s a lot to get used to.</p>
<p>I don&rsquo;t like much that the &ldquo;WIN&rdquo; key is on the right thumb cluster, so I&rsquo;m taking a note to maybe switch it with the layer key which I guess I&rsquo;ll use way less.</p>
<p><img alt="Glove80 left and right thumbcluster" loading="lazy" src="/wp-content/uploads/2025/03/glove80_change_thumbcluster.jpg"></p>
<h3 id="day-4">Day 4</h3>
<p>I&rsquo;m only using the keyboard at night but I&rsquo;ve been making progress, do a couple rounds of tests after work, I&rsquo;m more comfortable typing with it, doesn&rsquo;t feel as strange anymore, at least words.</p>
<p>The keyboard is indeed comfortable, not having to move my hands so much, really starting to grow on me. During the day I&rsquo;m using a regular KB and I can feel the wrists pressure. If I fully turn into this keyboard I can see myself not wanting to go back.</p>
<p>It&rsquo;s funny that I now know exactly which characters I have more trouble typing, it&rsquo;s especially right hand pinky row (OPL) and left hand CDFV &ldquo;square&rdquo;. But mentally that has helped as I pause a bit, remember myself and do a bit less errors even if I&rsquo;m slower. I&rsquo;ve been trying to force myself not to look to the keyboard but once in a while I&rsquo;ll do a couple tests looking to get my bearings.</p>
<h3 id="day-5">Day 5</h3>
<p>Today I&rsquo;ve reached a 50 WPM speed test with 100%, that was an outliner but I&rsquo;m happy about it.</p>
<p><img alt="Glove80 5th day speed test" loading="lazy" src="/wp-content/uploads/2025/03/glove80_type_speed_day_5.png"></p>
<h3 id="day-7">Day 7</h3>
<p>Slowly but steady I&rsquo;m getting better. I found out that I tend to have the right side with a worse angle then the left side, probably bad posture from older keyboards, I guess I probably had the 1-piece keyboard always slightly more to the left, due to the mouse, so I tend to have my left wrist not as relaxed. This might be because of mouse use as well.</p>
<p>Yikes coding just kills your body slowly.</p>
<p><img alt="Glove80 5th day speed test" loading="lazy" src="/wp-content/uploads/2025/03/glove80_type_speed_day_7.png"></p>
<h3 id="day-8">Day 8</h3>
<p>The start of a new week, I decided I&rsquo;ll now introduce numbers and special keys like ( ) ; , . etc to my typing practice, it&rsquo;s time to start dealing with that.</p>
<h3 id="day-17">Day 17</h3>
<p>Most of the biggest &ldquo;speed&rdquo; progress was made in the first 2 weeks, now it&rsquo;s mostly being a bit more confident with the fingers, not as many mistakes, not necessarily being faster.
I found out that I can have shortcuts to use the keyboard as a mouse, like having 4 keys to move mouse UP/DOWN/LEFT/RIGHT, this is a godsend, sometimes I just want to move the mouse a little bit and switch back to keyboard, this speeds up things by a lot. I mapped it to holding LAYER key and IJKL for movement.</p>
<h3 id="day-18-to-29">Day 18 to 29</h3>
<p>Slow but steady&hellip;</p>
<p><img alt="progress" loading="lazy" src="/wp-content/uploads/2025/03/glove80_typing_progress.jpg"></p>
<p>I keep bouncing between using the Glove80 and going back to my keyboard depending on what I need, if I need faster coding sessions or if something that I&rsquo;m more comfortable with going slower.</p>
<h3 id="day-30">Day 30</h3>
<p>I just realized I&rsquo;ve been using it as my main keyboard for the past week or so of work, I&rsquo;m still not as fast, and many of the shortcuts still ilude me a bit, but for the most part I can work ok, it&rsquo;s rare that I have to speed type this past week, so it was the perfect time. Most work has been evaluation, debug and searching/fixing stuff, so I think I&rsquo;ll get there as fast as my old KB eventually.</p>
<p>This change was mostly due to a friend asking me last week how the change was going (he has a Kinesis so was curious), and I said I was feeling bad on doing the full change while I was not as good, due to contract work. And his comment about my speed probably already being good enough and that I should switch made me do it. Thing is, that final stretch can&rsquo;t be done in small bursts.</p>
<h3 id="mapping-tool">Mapping tool</h3>
<p>Glove80 provides a web interface where we can remap every key and layer. It&rsquo;s very intuitive, and how I remapped some of the keys in a layer for using mouse. Once you wrap it up, it exports a file, you just plug in the keyboard left part via USB mode, just drag a file to a storage disk that shows up on the computer, once it&rsquo;s there it ejects automatically, then repeat it for the right side. It&rsquo;s fast and just works. I haven&rsquo;t used this much but I can see myself in the long run wanting to do tweaks as I even talked a bit before.</p>
<p>Most of the keyboard keys are in a good position, even if it feels odd at first, but you can remap everything.</p>
<h3 id="thoughts">Thoughts</h3>
<p>I&rsquo;ll admit that once in a while when I&rsquo;m in a rush I still go back to a regular keyboard, I&rsquo;ve made good progress and I can see the advantages but I have nearly 2 decades of muscle memory on regular keyboards, so it will take some extra time to never have the feeling of requiring to switch back when I need to code faster or in a rush. Shortcuts especially are harder.
But if I keep this up I&rsquo;ll eventually only need it rarely or not at all.</p>
<p>The good things is that when I use it my posture is better.</p>
<p><img alt="Glove80 on a desk" loading="lazy" src="/wp-content/uploads/2025/03/glove80_photo_desk_showing_halve_distanced_desk.jpg"></p>
<p>I can have my shoulder blades in a more comfortable position, I feel myself less hunched and curled, my shoulders and wrists appreciate it. It&rsquo;s definitely worth learning how to use one and the cost. Again, coding slowly kills your body, have to try and delay it as much as possible.</p>
<p>A special note for the support on Discord, before the purchase and after, whenever I had a question there was always someone there to help (staff and community).</p>
<p>In terms of comfort this is one, if not the best keyboard I&rsquo;ve ever typed on, your hands just rest there, very small travel distance for the fingers even for me with small hands.
However, and because of that, it&rsquo;s nearly perfect but the outer edges columns are a bit too far for me so I need to move my hand a bit for those. But considering on my older keyboards I had to move it mostly ALL the time, this is a big plus.</p>
<p>On a bad note, which is not necessarily the keyboard problem, but because it&rsquo;s not Bluetooth with a dongle, I found out Windows Bluetooth is so unreliable I had to force my device not to allow power management. Luckily that fixed disconnections with the Glove80 right away. It&rsquo;s possible I would have issues with other stuff (usually I have with Bluetooth headphones issues once in a while), but a keyboard failing wasn&rsquo;t something that I could have happening. While having a dongle seems cumbersome I feel like with all the connection/firmware is on the manufacturer side it&rsquo;s more reliable.</p>
<p>If you plan on using the RGB (I don&rsquo;t), prepare for the battery to die fast, just use it wired. And while I love the design, the rectangular edges seem a bit &ldquo;rough&rdquo;, I mean it&rsquo;s nitpicking but it&rsquo;s also not a cheap keyboard.</p>
<p><img alt="Glove80 Rev 2 unboxing" loading="lazy" src="/wp-content/uploads/2025/03/glove80_cherry_blossom.jpg"></p>
<p>I&rsquo;m still on the fence on the best place to keep my trackball mouse. Because the keyboard can be much farther apart, if you put the mouse on the right side, it becomes too uncomfortable, which defeats the purpose.
So sometime if I need to use it for longer sessions (like painting software etc) I just put the right part of the keyboard to the middle.</p>
<p>I don&rsquo;t regret buying this, even if it was the most expensive keyboard I ever got.</p>
<p><img alt="Most expensive keyboard so far" loading="lazy" src="/wp-content/uploads/2025/03/the_most_expensive_kb_so_far.jpg"></p>
<p>I would recommend this keyboard as a good one, for sure. However, having never tried any of the other popular ones (Kinesis, Ergodox, etc), I can&rsquo;t know for sure if this one is better or worse, all I can say is that I&rsquo;m happy with it so far.</p>
<p>Let me know if you have any particular questions, be glad to answer, I know this isn&rsquo;t exactly a &ldquo;good review post&rdquo;, it&rsquo;s just a dump of my process to get here.</p>
<hr>
<p>See you in the next post!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Cozy Game Moments in Unexpected Places</title>
      <link>https://www.david-amador.com/2025/01/cozy-game-moments-in-unexpected-places/</link>
      <pubDate>Mon, 03 Feb 2025 20:20:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/01/cozy-game-moments-in-unexpected-places/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a rise in the popularity of cozy games, the ones that are not about just hard challenges, combat or adrenaline, but about comfort and attempt of well-being. Those are great, and it&amp;rsquo;s incredible to see the indie scene doing many interesting things in that department.&lt;/p&gt;
&lt;p&gt;But I always have this on the back on my mind as one of my favourite things, one thing I&amp;rsquo;m usually very interested in, cozy feelings/atmosphere that can be found in unexpected places.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>There&rsquo;s a rise in the popularity of cozy games, the ones that are not about just hard challenges, combat or adrenaline, but about comfort and attempt of well-being. Those are great, and it&rsquo;s incredible to see the indie scene doing many interesting things in that department.</p>
<p>But I always have this on the back on my mind as one of my favourite things, one thing I&rsquo;m usually very interested in, cozy feelings/atmosphere that can be found in unexpected places.</p>
<p>They can come in a variety of genres or situations, even if the overall game is not about that. What fascinates me about this is my own taste for &ldquo;comfort movies&rdquo;, when you ask someone what their comfort movie is, it&rsquo;s a wide range of action, horror, comedy, drama, sci-fi and more, it&rsquo;s not always obvious.</p>
<p>So in this post, I just to dump a bit of my thoughts on some of the games that I found interesting.</p>
<p>Let&rsquo;s start by an obvious to understand, and possibly one of my all time favourite ones &hellip;</p>
<h2 id="sanctuaries-of-survival">Sanctuaries of survival</h2>
<p>Resident Evil - Ok read it again but with the title voice, RESIDENT EVIL. Thanks :)</p>
<p>RE games, for those who never played, might seem like a weird pick for &ldquo;cozy&rdquo;, and it is, but let&rsquo;s focus on the first few games here, they are pure suspense and horror games, gore, scares, you die a lot, however, they pull off one of the most relaxing game rooms maps ever made, the Save Rooms. That&rsquo;s why I was mentioning the originals mostly, from Zero, 1, 2 and 3 the save rooms are so damn good.</p>
<p><img alt="Resident Evil 1 Remake Save Room" loading="lazy" src="/wp-content/uploads/2025/02/resident_evil_remake_gamecube_save_room.webp"></p>
<p>These locations as the name implies is where the player can save, but also, they allow you to breathe a little, small pockets of safety, where there are no dangers, you are locked from the monsters and you can manage your inventory.</p>
<p><img alt="Resident Evil 0 Save Room" loading="lazy" src="/wp-content/uploads/2025/02/resident_evil_0_save_room.webp"></p>
<p>On top of that, soothing music plays in the background, seriously, it&rsquo;s near perfect. The feeling is so strong, that the first few times, after you reach them, you don&rsquo;t want to leave, you are immediately attached to them. You can control when you leave, and leave you will, but at your pace, eagerly waiting for the next one. Unless you&rsquo;re out of Ink Ribbons!</p>
<p>Here, I&rsquo;ll save you the trouble of searching the <a href="https://www.youtube.com/watch?v=4pZV3UPmXI4">RE Save Room music</a> :)</p>
<h2 id="a-home-away-from-home">A Home Away From Home</h2>
<p>Final Fantasy VII, despite its epic scale and combats, dozens of hours of gameplay and storyline, joy and sadness, offers moments of quiet coziness during the difficult journey around the world.</p>
<p><img alt="Final Fantasy 7 PS1 Cozy Room" loading="lazy" src="/wp-content/uploads/2025/02/final_fantasy_7_cozy_room_3.jpg"></p>
<p>Whenever we are exploring a town, entering other people&rsquo;s houses (classic RPG!), everything has an inviting atmosphere. These spaces, though simple, feel familiar and offer a sense of relaxation.</p>
<table>
  <thead>
      <tr>
          <th><img alt="Final Fantasy 7 PS1 Cozy Room" loading="lazy" src="/wp-content/uploads/2025/02/final_fantasy_7_cozy_room_1.jpg"></th>
          <th><img alt="Final Fantasy 7 PS1 Cozy Room" loading="lazy" src="/wp-content/uploads/2025/02/final_fantasy_7_cozy_room_4.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>It&rsquo;s the small details, like a carefully placed painting or a comfy-looking bed, that contributes to this feeling of comfort. These moments actually do a lot for the game&rsquo;s personality, especially because a lot of long dialogues take place in these environments, so you don&rsquo;t feel out of place, or with the urge to leave right away. Maybe it&rsquo;s it&rsquo;s painted nature, maybe it&rsquo;s the camera angle, but the Remake couldn&rsquo;t replicate this feeling.</p>
<p><img alt="Final Fantasy 7 PS1 Cozy Room" loading="lazy" src="/wp-content/uploads/2025/02/final_fantasy_7_cozy_room_2.jpg"></p>
<h2 id="journeys-into-the-unknown">Journeys into the Unknown</h2>
<p>I only recently played Syberia, all because of Nintendo Switch, I saw the game and felt like it was a good fit. The game has a somewhat slow pace which helps with giving us change to visually absorb the world. I couldn&rsquo;t quite put my finger in it but I was immediately drawn to it, the game can be defined mostly by it&rsquo;s sense of of melancholic beauty and isolation at first. The mechanical town, some of the most eerie scenarios. And yet, the total feeling of comfort really comes after we get to use the train.</p>
<p><img alt="Syberia 1 train" loading="lazy" src="/wp-content/uploads/2025/02/Syberia-train-winder.jpg"></p>
<p>By becoming Kate Walker primary mode of transport, after many many puzzles, it soon turns not only into a transport but also a home, becoming surprisingly cozy, and the only way to move forward.  The rhythmic melody of the engine, the passing landscapes, and the quiet solitude of the train compartment create a sense of journey and reflection.  These moments allow Kate and the player to process the events, adding warmth to the game&rsquo;s overall atmosphere.</p>
<p><img alt="Syberia 1 train pedestral" loading="lazy" src="/wp-content/uploads/2025/02/Syberia-train-pedestal.jpg"></p>
<h2 id="a-different-kind-of-cozy">A Different Kind of Cozy</h2>
<p><img alt="Little Nightmares" loading="lazy" src="/wp-content/uploads/2025/02/little_nightmares_01.jpg"></p>
<p>I&rsquo;m a big fan of Little Nightmares (I and II), to me very special games, it ranges from cute to horrific, majority of it&rsquo;s vibes are Ghibli-meets-Nightmare-Before-Christmas aesthetic esque scenarios, giving it a cartoony look that looks secure but it just happens to take place at &ldquo;Silent Hill levels of horror&rdquo;.</p>
<p><img alt="Little Nightmares" loading="lazy" src="/wp-content/uploads/2025/02/little_nightmares_02.jpg"></p>
<p>There are elements of coziness, just not in the traditional kind, not even the one that I might say there will be moments where you&rsquo;ll feel relaxed. You&rsquo;re never quite there, but feels like it could.</p>
<p><img alt="Little Nightmares" loading="lazy" src="/wp-content/uploads/2025/02/little_nightmares_03.jpg"></p>
<p>Instead, it&rsquo;s tied to the feeling of being small and vulnerable in a large and dangerous world, it&rsquo;s an odd one, the feeling of crawling through vents, hiding under furniture, and finding small pockets of safety create a sense of childlike vulnerability, which can be surprisingly comforting in its own way.</p>
<p><img alt="Little Nightmares" loading="lazy" src="/wp-content/uploads/2025/02/little_nightmares_04.webp"></p>
<p>It&rsquo;s a dangerous world that wants to kill you, but empty it has it&rsquo;s charm and calmness.</p>
<hr>
<p>Ok thanks for sticking around, I hope you enjoyed, let me know other games you felt they had cozy moments, atmosphere or other in unexpected places.</p>
<hr>
<p>See you in the next post!</p>
]]></content:encoded>
    </item>
    <item>
      <title>2024 wrap-up, 2025 the year of Godot</title>
      <link>https://www.david-amador.com/2025/01/2024-wrap-up-2025-the-year-of-godot/</link>
      <pubDate>Wed, 01 Jan 2025 08:32:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2025/01/2024-wrap-up-2025-the-year-of-godot/</guid>
      <description>&lt;h1 id=&#34;-2024&#34;&gt;🕛 2024&lt;/h1&gt;
&lt;p&gt;I initially intended to do a &amp;ldquo;end of year&amp;rdquo; post BEFORE the EOY talking about some stuff, but that never happened because work and other things kept getting in the way. 2024 was a weird year, from work, to personal, to world, to finances, to game dev, &lt;em&gt;&lt;strong&gt;to everything really&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I just feel tired honestly, that&amp;rsquo;s the best way I can describe 2024!&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Tired Computer Anime&#34; loading=&#34;lazy&#34; src=&#34;https://www.david-amador.com/wp-content/uploads/2025/01/tired_computer_anime.gif&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ok that started in a weird way, but allow me some latitude here&amp;hellip;
The world is in a weird state, economy, layoffs everywhere, the game dev industry in a very fragile state; and suddenly every company is betting all their chips on &amp;ldquo;AAAAeee IIIIII&amp;rdquo;, politics seem wacko, climate change, social networks going bananas, overall everyone trying to find their feet.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="-2024">🕛 2024</h1>
<p>I initially intended to do a &ldquo;end of year&rdquo; post BEFORE the EOY talking about some stuff, but that never happened because work and other things kept getting in the way. 2024 was a weird year, from work, to personal, to world, to finances, to game dev, <em><strong>to everything really</strong></em>.</p>
<p>I just feel tired honestly, that&rsquo;s the best way I can describe 2024!</p>
<p><img alt="Tired Computer Anime" loading="lazy" src="/wp-content/uploads/2025/01/tired_computer_anime.gif"></p>
<p>Ok that started in a weird way, but allow me some latitude here&hellip;
The world is in a weird state, economy, layoffs everywhere, the game dev industry in a very fragile state; and suddenly every company is betting all their chips on &ldquo;AAAAeee IIIIII&rdquo;, politics seem wacko, climate change, social networks going bananas, overall everyone trying to find their feet.</p>
<p>I&rsquo;ve been trying to take the opportunity of Twitter going bananas to spend less time on social networks, it&rsquo;s just doom scrolling these days, but it propagated to every other place.</p>
<h2 id="games-and-such">Games and such</h2>
<p>I haven&rsquo;t played many video games this year, I&rsquo;m still trying to finish Metroid Prime Remaster, I&rsquo;m SOOO STUCK on Phazon mines, I really want to finish this one as I&rsquo;m enjoying the game a lot, and I understand why it was so highly rated back then.</p>
<p><img alt="Stuck on Phazon Mines" loading="lazy" src="/wp-content/uploads/2025/01/stuck_on_phazon_mines.png"></p>
<p>I got the new Legend of Zelda Echoes of Wisdom, and actually completed it, almost couldn&rsquo;t put it down until I did, it&rsquo;s such a nice game with tons of great ideas and mechanics, a merge of Breath of the Wild and Tears of Kingdom with Link Between Worlds. I really think this brings top-down Zeldas to a whole new level, can&rsquo;t wait for a new one.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2025/01/zelda_echoes_1.jpeg"><img alt="Zelda Echoes of Wisdom" loading="lazy" src="/wp-content/uploads/2025/01/zelda_echoes_1.jpeg"></a></th>
          <th><a href="/wp-content/uploads/2025/01/zelda_echoes_4.jpeg"><img alt="Zelda Echoes of Wisdom" loading="lazy" src="/wp-content/uploads/2025/01/zelda_echoes_4.jpeg"></a></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/wp-content/uploads/2025/01/zelda_echoes_3.jpeg"><img alt="Zelda Echoes of Wisdom" loading="lazy" src="/wp-content/uploads/2025/01/zelda_echoes_3.jpeg"></a></td>
          <td><a href="/wp-content/uploads/2025/01/zelda_echoes_2.jpeg"><img alt="Zelda Echoes of Wisdom" loading="lazy" src="/wp-content/uploads/2025/01/zelda_echoes_2.jpeg"></a></td>
      </tr>
  </tbody>
</table>
<hr>
<p>I&rsquo;ve also played a bit of board games. For some reason I always assumed most board games were multiplayer, which would be harder for me, but there&rsquo;s actually tons of neat solo ones now, a booming market it seems, so I started playing some Arkham Horror, which I can play solo, and it&rsquo;s cool, even if I lose a lot.</p>
<p><img alt="Arkham Horror Card Game" loading="lazy" src="/wp-content/uploads/2025/01/arkham_horror_card_game_box.jpeg"></p>
<p>And just a couple days ago I decided to grab Carcassonne from my desk (been there a while unboxed) and take to play during the Xmas days break, it&rsquo;s a lot of fun to play with other people.</p>
<p><img alt="Carcassonne" loading="lazy" src="/wp-content/uploads/2025/01/carcassonne.jpg"></p>
<h1 id="travel">travel</h1>
<p>Every year I keep saying I should travel/rest more, and I haven&rsquo;t been taking a lot of free time/vacations, but I did manage to take a 6 days-vacation and a flight to Cabo Verde (they have low cost routes now). I visited Maio and Santiago islands, gorgeous landscapes and ocean views. To sum it up, within 2 hours of landing I got a rusty nail rip through my shoes (so lucky I hadn&rsquo;t changed into beach sandals yet), I also saw a dude accidentally fishing a baby Hammerhead shark, did some snorkeling and had a local convince me to try fishing, which I haven&rsquo;t done since my dad took me once as a kid, learned how to play an old board game with some locals, it was fun.</p>
<p>Here&rsquo;s some dumb photos/videos because my blog is like a personal journal :)</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2025/01/tarrafal_beach.jpg"><img alt="Tarrafal Beach" loading="lazy" src="/wp-content/uploads/2025/01/tarrafal_beach.jpg"></a></th>
          <th><a href="/wp-content/uploads/2025/01/cabo_verde.jpg"><img alt="Tarrafal Beach" loading="lazy" src="/wp-content/uploads/2025/01/cabo_verde.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><video width="100%" controls>
    <source src="/wp-content/uploads/2025/01/david_attempt_fishing.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>
</td>
          <td><a href="/wp-content/uploads/2025/01/tarrafal_sign_david.jpg"><img alt="David near Tarrafal Sign" loading="lazy" src="/wp-content/uploads/2025/01/tarrafal_sign_david.jpg"></a> <video width="100%" controls>
    <source src="/wp-content/uploads/2025/01/dumb_stuff.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>
</td>
      </tr>
  </tbody>
</table>
<p>Sorry for video quality, in an attempt of not having tons of MBs on this page, and I really don&rsquo;t want to embed this on YouTube, so let me know if you know a better alternative to have videos on a blog post that &ldquo;makes sense&rdquo;.</p>
<h1 id="age">age</h1>
<p>I turned 40 this past year, yeah that&rsquo;s right, time does fly. Now this is not something that I usually discuss but the turn of a new decade does make you pause for a second, life comes fast. What I notice so far is most of the same things at early 30&rsquo;s but more, your body gives you more signs that you really need to pay attention to your health, it&rsquo;s not a &ldquo;power it through&rdquo; anymore, it&rsquo;s a &ldquo;maintenance mode&rdquo; now, whatever bad decisions you made in the past might show up now, any good ones you&rsquo;ll start to appreciate. Honestly my major problem has always been overworking myself and maybe not that good eating habits, that&rsquo;s the bad. On the good side, ever since I got a health scare right before my 30th birthday, I&rsquo;ve tried to be a bit more active (thanks Fitbit!) so in the past 10 years I&rsquo;ve actually managed to get into better physical shape, I do feel I&rsquo;m probably more in shape now than in my 20s and 30s;  I just can&rsquo;t do as much as 10 years ago, there&rsquo;s limits, we just have to work with them and move forward.
<img alt="Indiana Jones It&rsquo;s not the Years, It&rsquo;s the Mileage" loading="lazy" src="/wp-content/uploads/2025/01/indiana_jones_its_not_the_years_its_the_mileage.jpg"></p>
<h1 id="gamedev">gamedev</h1>
<p>It&rsquo;s been forever since I launched a game of my own even if I&rsquo;ve helped with dozens of games (porting) in the last few years, but it is what it is. It&rsquo;s hard to mix all in, and I can&rsquo;t do the whole &ldquo;quitting a job, work on a game for a couple months, launch it and get a new job after&rdquo; anymore, so development just takes &raquo;forever&laquo;  It&rsquo;s one of the reasons I don&rsquo;t even talk about what I&rsquo;m attempting to work on, I have no idea of deadlines because I can&rsquo;t probably do both contract deadlines + my own, which is both a blessing and a curse. It&rsquo;s not bad, but I still have a few more dumb games I want to work on, and release, I just feel like a bit of a fraud I haven&rsquo;t been able to after wrapping up QoD development, but I think that project also left me some burnout, it was ~7years of dev, porting and updates after all.</p>
<p>But for things we can control  a bit better, and while I like to tinker with my own <a href="/tags/basalt/">game framework</a>, it would be a mistake not to look into what&rsquo;s available in terms of Game Engines. I&rsquo;ve done a lot of contract work in Unity and GameMaker 2, including some personal stuff, but after what <a href="/2023/09/unity-enshittification-round-2-moving-on-to-custom-tech/">Unity pulled</a> (over a year now), using Unity now leaves a sour taste, it&rsquo;s not the same anymore.</p>
<hr>
<h1 id="godot">Godot</h1>
<p><a href="https://godotengine.org/">Godot</a> has been around since 2014, and gained popularity over the years, and like what happened with Mastodon when Twitter died (yes it&rsquo;s dead, old twitter is gone, X is crap), Godot exploded once Unity did what they did.
People became aware there was an open-source alternative, stable and ready to use, not controlled by maniac shareholders just trying to profit even if they had to fire everyone in the company.</p>
<p>Over the years I had read some stuff and devs talking about it, but never found the time, until a couple weeks ago.</p>
<p>So I downloaded, unzip it, ran the executable, and &hellip; wait it booted the entire Editor within a couple seconds &hellip;</p>
<p><img alt="Godot Editor" loading="lazy" src="/wp-content/uploads/2025/01/godot_editor_new_scene.png"></p>
<p>My brain thought:</p>
<blockquote>
<p>wtf there&rsquo;s no installer :O</p>
</blockquote>
<p>Yes, it just boots, a whole engine in a 250mb executable.</p>
<p><strong>Choice of Language</strong></p>
<p>Godot allows a couple of languages, but there seems to be 2 main ones, and I was a bit on the fence if I should go with C# or GDScript, Godot&rsquo;s custom scripting language. So I decided to talk a bit with <a href="https://iohanna.itch.io/">Joana</a> about the pros and cons, she had also recently started using Godot herself. She went with C#, and seems like most of her Unity code worked fine, which is great.
But I decided to just dive into GDScript, a clean slate with &ldquo;no baggage&rdquo; is something that I enjoy from time to time, the idea of learning something new without trying to make existing things work sounded exciting; and I also remember the lessons from GameMaker 2 GML, at first there was friction, but there are some valid choices/ideals there that I sometimes think others could copy. Also if you want to use C#, for now, you need a dedicated Editor build and there&rsquo;s no support for Web Exports (this will change in the future).</p>
<p><a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html">GDScript</a> is at first glance very Python like, but it&rsquo;s mostly due to it&rsquo;s indentation-based syntax</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">var</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">5</span>
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="n">s</span> <span class="o">=</span> <span class="s2">&#34;Hello&#34;</span>
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="n">arr</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="nb">dict</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&#34;key&#34;</span><span class="p">:</span> <span class="s2">&#34;value&#34;</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span> <span class="mi">3</span><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="n">typed_var</span><span class="p">:</span> <span class="nb">int</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">enum</span> <span class="p">{</span><span class="n">UNIT_NEUTRAL</span><span class="p">,</span> <span class="n">UNIT_ENEMY</span><span class="p">,</span> <span class="n">UNIT_ALLY</span><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="n">enum</span> <span class="n">Named</span> <span class="p">{</span><span class="n">THING_1</span><span class="p">,</span> <span class="n">THING_2</span><span class="p">,</span> <span class="n">ANOTHER_THING</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="n">v2</span> <span class="o">=</span> <span class="n">Vector2</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">func</span> <span class="n">something</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">	<span class="nb">super</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Something</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">	<span class="n">var</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
</span></span></code></pre></div><p>I use Python often for scripts so it was easy to get used to it. So far, from what I&rsquo;ve read, one of the downsides is if you need really intensive computation algorithms, in which maybe doing them directly in C++ or C# might be better, but that&rsquo;s probably edge cases, and you can mix in both languages, so not a decision that can ruin things later on.</p>
<p>In terms of language I do like it, it&rsquo;s clean, feels modern, and my only complaint so far is exactly the same as Python, I wish we had { } to wrap up scopes instead of tabs, but that&rsquo;s a personal preference. I&rsquo;m sure as months progress I&rsquo;ll bump into caveats, but that can be said of all languages.</p>
<h2 id="the-nodes-and-more">The Nodes and more</h2>
<p>Godot uses Nodes for everything, and at first I thought &ldquo;oh it&rsquo;s like Unity GameObject&rdquo;, but it&rsquo;s not quite that, Nodes can only be used with 1 script, you can&rsquo;t just add a bunch of them to a node like Unity on a GameObject.</p>
<p><img alt="Godot Nodes" loading="lazy" src="/wp-content/uploads/2025/01/nodes_and_scenes_nodes.jpg"></p>
<p>Here if you want a new behaviour, add a child node and add that script.
It seems odd at first but this comes with a very powerful &ldquo;side-effect&rdquo;, anything can be a scene, and you can add nodes in anything, it&rsquo;s quite fascinating and powerful, seems truly abstract.</p>
<p>The rest is the standard 2DSprites, Meshes, Sounds, position components, UI etc.
To learn this I decided to make a small prototype game and so far most stuff has been very easy to create, from UI to animations and game logic.</p>
<p>The part that is creating more friction for me right now, is the Editor UI/UX inconsistency, there are tons of small quirks (I&rsquo;ve been live posting some) that are not necessarily bugs but tweaking would go a long way in terms of User Experience and making it more intuitive.</p>
<p>Took me forever to notice that &ldquo;Animation&rdquo; was actually a button hiding a ton of options, it looked like a pressed &ldquo;Tab&rdquo;, it has the same design as the 0 on the left, it doesn&rsquo;t look like a button. I&rsquo;m nitpicking here, because it does work functionally, but I care about this engine now and I want it to be even better.</p>
<table>
  <thead>
      <tr>
          <th><img loading="lazy" src="/wp-content/uploads/2025/01/godot_button_1.png"></th>
          <th><img loading="lazy" src="/wp-content/uploads/2025/01/godot_button_2.png"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<p>Godot is being made for free by the community, on their spare time, the fact that it works as it does right now is magic.</p>
<p><img alt="IT Crowd Have you tried turning it off and on again" loading="lazy" src="/wp-content/uploads/2025/01/have_you_tried_turning_it_off_and_on_again.jpg"></p>
<p>Sometimes I had to restart the editor to make some things work again (I read this on Reddit) and whenever some code isn&rsquo;t working but I can&rsquo;t quite understand why, I would just restart it. At least once a day this would happen, but it might also be due to my use of Visual Code as external code editor and it getting confused some times (I need to do more testing on this).</p>
<p>Right now the engine has tons of potential and I feel it&rsquo;s already quite robust for 2D games, I can&rsquo;t say for 3D because I haven&rsquo;t had the chance yet.</p>
<h1 id="plans-for-godot">Plans for Godot</h1>
<p>As the title suggests, for me this will be the year I plan to migrate to Godot whenever possible.</p>
<p>I do have a &ldquo;game&rdquo; that I&rsquo;m working on SLOOOWLY whenever I find some time, and getting it out of Unity would be a big plus for me. I initially started it as part of learning Unity for contact work purposes and I kept working on it, felt like a nightmare to move it to my custom framework due to amount of work (but doable), but moving to Godot actually sounds FUN! But it&rsquo;s not for now, I have to wrap up the gameplay at least so that migrating would be easier once I have it all.</p>
<p>And that&rsquo;s what I wanted to say, Godot is a lot of fun to work with, you&rsquo;ll spot quirks very rapidly, but it&rsquo;s such a light and fast engine to work, perfect for prototyping.</p>
<p>Godot is in the same place as Blender a few year ago, with a promising future.</p>
<hr>
<p>See you in the next post!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Let&#39;s Talk About Alien Romulus</title>
      <link>https://www.david-amador.com/2024/11/alien-romulus/lets-talk-about-alien-romulus/</link>
      <pubDate>Sun, 17 Nov 2024 08:32:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2024/11/alien-romulus/lets-talk-about-alien-romulus/</guid>
      <description>&lt;h1 id=&#34;-so-is-it-back&#34;&gt;👽 So, is it back?&lt;/h1&gt;
&lt;p&gt;I like the &lt;em&gt;Alien&lt;/em&gt; franchise a lot and tend to talk about it more than I probably should. But if I narrow it down, my focus is mostly on &lt;a href=&#34;https://en.wikipedia.org/wiki/Alien_(film)&#34;&gt;&lt;em&gt;Alien&lt;/em&gt;&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/Aliens_(film)&#34;&gt;&lt;em&gt;Aliens&lt;/em&gt;&lt;/a&gt; — two of the best sci-fi movies ever made. Then we had the weirdness of &lt;em&gt;Alien³&lt;/em&gt; and &lt;em&gt;Alien Resurrection&lt;/em&gt;, which had some cool action but also a ton of questionable decisions. &lt;em&gt;Prometheus&lt;/em&gt; started as something separate but eventually merged into the &lt;em&gt;Alien&lt;/em&gt; universe; and while I think it has its merits (especially the visuals and large-scale sci-fi world-building), there are plenty of head-scratching and plain dumb moments. And &lt;em&gt;Covenant&lt;/em&gt;? Oh I don’t even want to talk about that one, it exists.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="-so-is-it-back">👽 So, is it back?</h1>
<p>I like the <em>Alien</em> franchise a lot and tend to talk about it more than I probably should. But if I narrow it down, my focus is mostly on <a href="https://en.wikipedia.org/wiki/Alien_(film)"><em>Alien</em></a> and <a href="https://en.wikipedia.org/wiki/Aliens_(film)"><em>Aliens</em></a> — two of the best sci-fi movies ever made. Then we had the weirdness of <em>Alien³</em> and <em>Alien Resurrection</em>, which had some cool action but also a ton of questionable decisions. <em>Prometheus</em> started as something separate but eventually merged into the <em>Alien</em> universe; and while I think it has its merits (especially the visuals and large-scale sci-fi world-building), there are plenty of head-scratching and plain dumb moments. And <em>Covenant</em>? Oh I don’t even want to talk about that one, it exists.</p>
<p>It all felt like the franchise had lost its way. Then came the announcement of a new <em>Alien</em> movie—this time from a different director, Fede Alvarez, and under the Disney umbrella. I tend to get overly hyped only to be crushed later, so I skipped the theater release and only watch it, in digital release, this past weekend. Twice.</p>
<p>And yes, it’s back. I really enjoyed it. While it has flaws, it gets so much right that I can honestly say I’ll rewatch it later alongside <em>Alien</em> and <em>Aliens</em>—the only two movies in the franchise I rewatch regularly. So, if you want my TL;DR opinion: <em>Go watch it. It’s good.</em> But I have a lot I want to talk about. Instead of spoiling things on social media, I’ll just dump my thoughts here.</p>
<p><img alt="Alien Romulus banner" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_door_enter.jpg"></p>
<hr>
<h1 id="-the-mood">🎥 The Mood</h1>
<p><em>Alien Romulus</em> takes place in 2142, twenty years after the events of <em>Alien</em> — roughly 37 years before Ripley is rescued in <em>Aliens</em>. In the intro, Weyland-Yutani recovers a cocoon from the wreckage of the Nostromo. That setup, paired with the futuristic-but-retro-looking tech, immediately set the tone. The lighting, sound, and atmosphere hit all the right notes. It was clear the filmmakers understood which vibes to channel from the original films and how to execute them.</p>
<p><img alt="Alien Romulus Intro 1" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-1.jpg"></p>
<p><img alt="Alien Romulus Intro 2" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-2.jpg"></p>
<p><img alt="Alien Romulus Intro 3" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-3.jpg"></p>
<p><img alt="Alien Romulus Intro 4" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-4.jpg"></p>
<p><img alt="Alien Romulus Intro 5" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-5.jpg"></p>
<p><img alt="Alien Romulus Intro 6" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-intro-6.jpg"></p>
<hr>
<h1 id="-the-plot-and-crew">🎥 The Plot and Crew</h1>
<p>As I mentioned, the movie is set 20 years after <em>Alien</em>. It begins on Jackson’s Star Colony, where Rain lives with her synthetic brother, Andy. Early on, we learn Rain’s parents died working in the mines, and Andy was programmed to help and protect her.</p>
<p><img alt="Work quota" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_work_quota_1.jpg"></p>
<p>They work for Weyland-Yutani, and Rain has met her 12000 hours contract, but the corporation arbitrarily extends Rain&rsquo;s contract by doubling the hours, forcing them to stay on Jackson for several more years.</p>
<p><img alt="Work quota" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_work_quota_2.jpg"></p>
<p>A group of friends, who had the same thing happening to them, convinces Rain to join their team. The group includes Tyler, his sister Kay, their cousin Bjorn, and Navarro.</p>
<p><img alt="Alien Romulus Crew" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_crew.jpg"></p>
<p>Their plan? Flee the planet to Yvaga, by traveling to a derelict station in orbit to steal sleeping pods for the nine-year cryosleep journey to the distant, and Weyland-Yutani free planet.</p>
<table>
  <thead>
      <tr>
          <th><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_rain.jpg"></th>
          <th><img alt="Andy" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_andy.jpg"></th>
          <th><img alt="Bjorn" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_bjorn.jpg"></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><img alt="Navarro" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_navarro.jpg"></td>
          <td><img alt="Tyler" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_tyler.jpg"></td>
          <td><img alt="Kay" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/romulus_crew_kay.jpg"></td>
      </tr>
  </tbody>
</table>
<p>The derelict station is of course the place where they took the xenomorph cocoon they found on the Nostromo in the introduction sequence, where - <em>spoilers</em> - all hell broke loose.</p>
<p><img alt="Door unlock" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_mother.jpg"></p>
<p>The main reason they went to Rain is Andy, since he&rsquo;s a Weyland-Yutani android, he has credentials to speak MOTHER, the Operative System MU/TU/UR, unlock the spaceship and give them access to what they need.</p>
<p>Soon they find the pods they were looking for, but they lack the necessary power, only having energy for three years, which is not enough.</p>
<p><img alt="Pods" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_pods.jpg"></p>
<p>So they search deeper into the station, and find a room which is locked, and inside, a room full of facehuggers, frozen, hibernating, powered by the batteries, so when they remove them, a lockdown starts to prevent the spread, and the facehuggers start to wake up.</p>
<p><img alt="frozen facehuggers" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_frozen_facehuggers.jpg"></p>
<p>This scene has 3 very important things in my opinion, first of all they accidentally release all the facehuggers; second we see Bjorn fending off facehuggers a couple times with success, saving Tyler in the process, which shows he&rsquo;s a fighter, a survivor and willing to help.</p>
<p><img alt="Bjorn facehugger" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_bjorn_facehuggers_2.jpg"></p>
<p>But also, once they find themselves locked into that room, they have to put a new chip on Andy hoping the credentials get updated and allows to unlock the room.</p>
<p><img alt="Chip" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_chip.jpg"></p>
<p>They successfully do that, but in the process his prime directive of protecting Rain gets replaced with protecting Weyland-Yutani interests first. This makes Andy less sympathetic towards what the crew needs, only helping if it suits the company, even if there&rsquo;s still many traits of his former self there, probably the most well written character in this movie.</p>
<p>When they finally leave the room there&rsquo;s an incredible facehugger hallway chase scene.</p>
<p><img alt="Hallway chase" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_hallway_facehuggers.gif"></p>
<p>Sadly Navarro is the first victim via facehugger, they power up Rook, a semi destroyed Android that looks like Ash from the first movie in order to get more information.</p>
<p><img alt="Rook" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_wake_up_rook.jpg"></p>
<p>In this process it&rsquo;s clear that Navarro is probably done for, so when Andy tries to prevent Navarro from returning to the ship, Bjorn flees with her, stealing the ship, splitting the team in two.</p>
<p>But Navarro time is ending, so we get one of the coolest chestburster scenes in the franchise, with an X-ray.</p>
<p><img alt="Navarro" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_xray_chestburster.gif"></p>
<p>And this causes the ship to crash on an hangar on the other side of the station.</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_ship_crashing.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<p>Bjorn later dies trying to kill the xenomorph that hatched from Navarro, while still in it&rsquo;s coccoon, leaving Kay alone. She tries and escape the hangar, but is trapped with the now full grown xenomorph.</p>
<p><img alt="Hallway chase" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_kay_door.jpg"></p>
<p>Andy proves he&rsquo;s not joking around anymore by refusing opening a door to her.</p>
<p><img alt="Door unlock" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_andy_finger_door.jpg"></p>
<p>By arguing that would also allow the xenomorph to pass we get a terrifying scene because the Xenomorph really seems to be taking it&rsquo;s time hoping the door would open, adding more to the tension, but eventually grabbing Kay regardless.</p>
<p>I&rsquo;m not going through the whole movie, there&rsquo;s a few more parts of the later sections I&rsquo;ll discuss below on each character, these were just a few of the things that I wanted to just talk about, and just got a bit carried away, the final act section is a bit weaker, the whole baby-hybrid thing, but still better than most stuff we&rsquo;ve got in recent years.</p>
<p>The Xenomorph is well done and scary, the practical effects help.</p>
<p><img alt="Xenomorph" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_xenomorph.jpg"></p>
<p>The facehuggers are the &ldquo;main enemy&rdquo; for half of the movie, and it works, they have one scene with Andy, Rain and Tyler that reminded me of The Walking Dead, they had to move slowly not to be detected!</p>
<p><img alt="facehuggers temperature room" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_facehugger_hallway.jpg"></p>
<p>Eventually we learn that the derelict station was attempting to synthesize the &ldquo;black goo&rdquo; to create strong humans.</p>
<p><img alt="black goo" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_black_goo.jpg"></p>
<p>Which is a theme Prometheus/Covenant was exploring, Rook even referring to the black goo as &ldquo;Prometheus fire&rdquo; , this is the main mission Rook has and it passes down to Andy, to save a sample and bring it to Weiland.</p>
<p><img alt="Rook and Andy" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rook_andy.jpg"></p>
<p>Now I just want to talk a bit about each character before wrapping up.</p>
<hr>
<h3 id="andy--n-d-255">Andy / N-D-255</h3>
<p><img alt="Andy" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_andy_1.jpg"></p>
<p>First of all I want to talk about Andy, played by David Jonsson, he steals this movie with his performance, not only the character is well written, convincing, and makes sense within this world, the acting is just excellent.
The duality of good and evil in the Android has been explored before, Prometheus and Covenant especially trying doing &ldquo;something&rdquo; with the Android David, but honestly I think if failed.</p>
<p>And this is where Andy shines in my opinion.</p>
<p>At the beginning we learn that Andy has been reprogrammed to help Rain, it&rsquo;s prime directive to do anything to protect her. We also see that this model glitches often, which I wonder if a callback to Bishop in Aliens mentioning older models were often &ldquo;twitchy&rdquo;.</p>
<p><img alt="Bishop" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_bishop_callback.jpg"></p>
<p>But later on, in order to open a door they install a new program on Andy, and it&rsquo;s just amazing to see the transformation, his prime directive is now to serve the company, but it&rsquo;s done in such a good way, and they never went for the cliché &ldquo;it&rsquo;s now a full evil robot and wants to kill them&rdquo; angle.</p>
<p>Instead we see it in subtle things, Andy is more confident, always on track to protect the company mission, and still remembers everything, and learned the small things that were done to him, like a comment to Rain about being left behind. This shows more humanity from the character even though being an Android, he doesn&rsquo;t feel some things were right, but also doesn&rsquo;t bother him.</p>
<p>The one thing that didn&rsquo;t quite clicked for me was one line towards the end when Andy kills a xenomorph while protecting Rain and says &ldquo;Get away from her&rdquo;, followed by &ldquo;You bitch&rdquo;. This is a direct reference to Ripley in Aliens, but the &ldquo;You bitch&rdquo; felt out of place, and out of character, until I rewatched the movie; and noticed that in the beginning of the movie Bjorn says to Andy &ldquo;That&rsquo;s how it&rsquo;s done, bitch.&rdquo; So it made more sense to me now, Andy heard it, stayed passive, and unleashed it at a later time, suiting the whole scene better and even making it a better tiny arc overall. I probably missed tons of things during my first viewing.</p>
<p>I wasn&rsquo;t going into this movie looking forward to the Android, but this was one of the best parts of the movie. If we get a sequel I hope they explore it a bit more.</p>
<hr>
<h2 id="human-crew">Human crew</h2>
<p>When it comes to the human crew they worked well, definitely the smartest crew in last few Alien movies (looking at you Prometheus and Covenant).</p>
<h3 id="rain">Rain</h3>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_0.jpg"></p>
<p>Rain is &ldquo;the Ellen Ripley&rdquo; of this movie, that&rsquo;s what people will probably be comparing her to, which might sound a bit unfair; but the movie dangerously, yet successfully, do a lot of inspired angles/scenes with her so it&rsquo;s bound to happen.</p>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_1.jpg"></p>
<p>Luckily it works, her motivation is simple yet effective, escape Weiland and go to Yvaga, her protective nature comes into play with both Andy and later Kay.</p>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_4.jpg"></p>
<p>It never felt forced in my opinion and kept the character plot moving forward and making her more decisive as the movie developed.</p>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_5.jpg"></p>
<p>She literally goes face to face with xenomorphs, a callback to Alien³ famous shot.</p>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_2.jpg"></p>
<p>The idea of making a shooting scene in zero gravity where the acid is floating all around is so good, combined with the elevator shaft part, it was a great action sequence, they could have ended the movie there.</p>
<p><img alt="Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rain_3.jpg"></p>
<hr>
<h3 id="bjorn">Bjorn</h3>
<p><img alt="Bjorn" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_bjorn_1.jpg"></p>
<p>I think he&rsquo;s a bit of Hudson, and starts out only as a jerk towards Andy. But he did a good job, fends off several facehugers, saves Tyler, does what he thinks is in the best interest to save Navarro, because he doesn&rsquo;t trust androids, so he thinks Andy wants to kill her. He later tries to kill a xenomorph in a cocoon but dies in the process.</p>
<p><img alt="Bjorn facehugger" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_bjorn_facehuggers_1.jpg"></p>
<p>He had a big mouth but would not back off in face of danger, so I was a bit sad he didn&rsquo;t lasted longer.</p>
<p><img alt="Bjorn" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_bjorn_2.jpg"></p>
<hr>
<h3 id="tyler">Tyler</h3>
<p><img alt="Tyler" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_tyler_1.jpg"></p>
<p>I guess I can say is the Hicks on this movie, from the more protective characteristics to teaching Rain how to use the guns, mostly callbacks to Aliens, but for me that was fine, I don&rsquo;t think his character stand out much, even if he had a lot of screen time; but once they found the pods he was mostly in a supportive role, but he didn&rsquo;t felt out of place or anything like that. Sometimes that&rsquo;s required for the other characters to move along.</p>
<p><img alt="Tyler and Rain" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_tyler_rain_gun.jpg"></p>
<p><img alt="Tyler" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_tyler_2.jpg"></p>
<hr>
<h3 id="navarro">Navarro</h3>
<p><img alt="Navarro" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_navarro_1.jpg"></p>
<p>She&rsquo;s the ship pilot, I immediately got Vasques vibes, and sadly she dies way too soon, but on the other hand, we got thet classic facehugger and chestburster scenes, but even better, with an the X-ray, and who ever thought of that is a G-E-N-I-US. A chestburster scene made even more terrifying than it already is, on a confined space, on a moving spaceship. Worth it.</p>
<hr>
<h3 id="kay">Kay</h3>
<p><img alt="Kay" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_kay_3.jpg"></p>
<p>Kay is revealed to be pregnant, and unfortunately ends up the victim of a very graphic birth scene, giving birth to a hybrid baby a bit like Prometheus but still somewhat different, I guess giving more information on the whole goo-engineers-xenomorphs thing.</p>
<p><img alt="Kay" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_kay_4.jpg"></p>
<p>As I mentioned before there is a really great scene in the ship hangar where she gets locked in a room with a xenomorph, it lands on some stairs above her, to a scary and chilling effect, and later the horror of being locked with the xenomorph because of Andy&rsquo;s refusal to open the door.</p>
<p><img alt="Kay" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_kay_1.jpg"></p>
<p><img alt="Kay" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_kay_2.jpg"></p>
<hr>
<h3 id="rook">Rook</h3>
<p><img alt="Rook" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien_romulus_rook.jpg"></p>
<p>There&rsquo;s another Android in the movie which is the same model as Ash in original Alien, sadly Ian Holm passed away in 2020, so even if they would had to CGI de-age him, this meant it wasn&rsquo;t even the original actor. The CGI isn&rsquo;t great in some scenes, but we could&rsquo;t just have him constantly in dark environments to mask of stuff since he does show up quite a few times until the end. We only see it in a destroyed state from the waist up (another callback), I don&rsquo;t think it would have mattered much, we know it&rsquo;s an Android, it didn&rsquo;t had to look real, but CGI was a bit of uncanny valley. But for the role itself it was Ash again, doing everything for the company, twisting words and manipulation to get what he wants. The movie would have worked without the resemblance, but this way it does a nice connection and the movie feels even more that it actually belongs.</p>
<hr>
<h1 id="-conclusion">🎥 Conclusion</h1>
<p>Still here? Thanks for sticking with me through this brain dump! Writing this post helped me get all my thoughts out, and I even managed to give my blog a bit more attention (which I keep saying I’ll do but rarely follow through).</p>
<p>Watching the movie a second time helped me appreciate it more. Scenes that initially felt a bit disjointed made more sense. Honestly, I think this movie needs a Director’s Cut. From what Ridley Scott mentioned in interviews, Fede Alvarez had to cut a lot of material by Scott&rsquo;s suggestion to make the movie shorter and to the point quicker. The upcoming Blu-ray release includes an &ldquo;X-Ray Edition,&rdquo; so maybe that’s an extended cut. I’ll definitely be doing a third viewing if that’s the case.</p>
<p>I’m now looking forward to the next movie (whatever it ends up being) and the <em>Alien: Earth</em> TV show coming out next year. The title already hints at being set on Earth, and I wonder if it ties into the ending of <em>Alien Resurrection</em>’s Special Edition, where they land on Earth. Time will tell.</p>
<hr>
<h1 id="-before-i-go">⌚️ Before I go</h1>
<p>Before I go, I just want to share some screengrabs of watches, cool looking watches have always been a thing in <em>Alien</em> and <em>Aliens</em>, and I was really happy to see that whenever possible the director would make sure they could be seen :)</p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-1.jpg"></p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-2.jpg"></p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-3.jpg"></p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-4.jpg"></p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-5.jpg"></p>
<p><img alt="watch" loading="lazy" src="/wp-content/uploads/2024/11/alien-romulus/alien-romulus-watch-6.jpg"></p>
<hr>
<p>Yeah sorry it&rsquo;s the actual end now.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Gamedev tricks used by developers</title>
      <link>https://www.david-amador.com/2024/11/gamedev-tricks-used-by-developers/</link>
      <pubDate>Fri, 15 Nov 2024 14:39:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2024/11/gamedev-tricks-used-by-developers/</guid>
      <description>&lt;h2 id=&#34;-origin-thread&#34;&gt;🧵 origin thread&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;In 2018 I started a thread on Twitter (later renamed X 🙄) where &lt;a href=&#34;https://x.com/DJ_Link/status/964124424969637888&#34;&gt;I shared some game development tricks&lt;/a&gt; devs used to get around bugs, software, hardware and/or time constraints. Later I kept adding more posts to that thread, and there&amp;rsquo;s some cool information there. But because I now went through the process of replicating that thread on both &lt;a href=&#34;https://mastodon.gamedev.place/deck/@djlink/109313319839796759&#34;&gt;Mastodon&lt;/a&gt; and &lt;a href=&#34;https://bsky.app/profile/djlink.bsky.social/post/3l6ubkivh5o2t&#34;&gt;Bluesky&lt;/a&gt;; it got me thinking, I should probably put this on my own blog, a single post, which is easier to read, also in case those websites are ever gone. If I find more I&amp;rsquo;ll add them later. This page may take a bit to load due to images, gifs videos etc.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="-origin-thread">🧵 origin thread</h2>
<blockquote>
<p>In 2018 I started a thread on Twitter (later renamed X 🙄) where <a href="https://x.com/DJ_Link/status/964124424969637888">I shared some game development tricks</a> devs used to get around bugs, software, hardware and/or time constraints. Later I kept adding more posts to that thread, and there&rsquo;s some cool information there. But because I now went through the process of replicating that thread on both <a href="https://mastodon.gamedev.place/deck/@djlink/109313319839796759">Mastodon</a> and <a href="https://bsky.app/profile/djlink.bsky.social/post/3l6ubkivh5o2t">Bluesky</a>; it got me thinking, I should probably put this on my own blog, a single post, which is easier to read, also in case those websites are ever gone. If I find more I&rsquo;ll add them later. This page may take a bit to load due to images, gifs videos etc.</p>
</blockquote>
<hr>
<h3 id="-skyrim-shelves">👾 Skyrim shelves</h3>
<p>Skyrim small tables are actually shelves buried. If you can&rsquo;t see it &hellip;</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_1.jpg"><img alt="Skyrim buried shelves 1" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_1.jpg"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_2.jpg"><img alt="Skyrim buried shelves 2" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_2.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-jak-and-daxter-loading">👾 Jak and Daxter loading</h3>
<p>In Jak and Daxter if by any chance the Area/assets ahead aren&rsquo;t fully loaded the game will make you trip to give it more time to load in background.</p>
<p><img alt="Jak and Daxter tripping loading" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/jak_dexter_tripping_loading.gif"></p>
<hr>
<h3 id="-super-mario-64-infinite-stairs">👾 Super Mario 64 infinite stairs</h3>
<p>In Super Mario 64 this is how Nintendo got the infinite stairs effect working, teleport. Mario keeps getting teleported to a prior point on the stairs which makes it impossible to progress in a normal way. But this is also the reason why Speedrunners can glitch the effect and skip it using the backwards jump trick.</p>
<p><img alt="Super Mario 64 infinite stairs" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/super_mario_64_infinite_stairs.gif"></p>
<hr>
<h3 id="-wing-commander-memory-exception">👾 Wing Commander memory exception</h3>
<p>There was a memory exception in Wing Commander on exit, because of the deadline they left it but change the error message to &ldquo;Thank you for playing Wing Commander!&rdquo;</p>
<p><img alt="Wing Commander exit message" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/wing_commander_exit_message.jpg"></p>
<hr>
<h3 id="-undertale-npc-pathfinding">👾 Undertale NPC pathfinding</h3>
<p>This one is from Undertale, to prevent NPCs to walk on pits, developer added Magic glass so that way &ldquo;it works&rdquo;.</p>
<table>
  <thead>
      <tr>
          <th><img alt="Undertale magic glass 1" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/undertale_magic_glass_1.jpg"></th>
          <th><img alt="Undertale magic glass 2" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/undertale_magic_glass_2.jpg"></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-fallout-3-trains-are-hats">👾 Fallout 3 trains are hats</h3>
<p>In Fallout 3 all the trains are actually a character wearing a train model as a hat. <a href="https://www.pcgamer.com/heres-whats-happening-inside-fallout-3s-metro-train/">Source</a>.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/fallout3_train_1.jpg"><img alt="Fallout 3 Trains" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/fallout3_train_1.jpg"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/fallout3_train_2.jpg"><img alt="Fallout 3 Trains" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/fallout3_train_2.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-donkey-kong-64-memory-crash-myth">👾 Donkey Kong 64 memory crash (myth)</h3>
<p>This one was later proved as a myth by developers on my thread, but I&rsquo;m leaving it here since you can still find it in tons of places, so this way here it has a correction that it was in fact a myth.</p>
<p>Internet theories says that Donkey Kong 64 had a memory crash/limit bug on standard N64. Unable to identify the cause of the crash they decided to ship the game with the memory expansion bundled with game.</p>
<p><img alt="Donkey Kong 64" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/donkey_kong_64.jpg"></p>
<hr>
<h3 id="-super-mario-bros-reuse-of-grassclouds">👾 Super Mario Bros. reuse of grass/clouds</h3>
<p>In Super Mario Bros. because of memory limitations clouds and bushes are the same sprite but using a different color palette.</p>
<p><img alt="Super Mario Bros. reuse of grass and clouds" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/super_mario_bros_grass_clouds.jpg"></p>
<hr>
<h3 id="-kirby-dream-land-memory-saving">👾 Kirby Dream Land memory saving</h3>
<p>In Kirby Dream Land for Gameboy, to save memory some enemies have the same &ldquo;back&rdquo; part of the sprite and only change the face.</p>
<p><img alt="Kirby Dream Land memory saving" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/kirby_gameboy_reuse_assets.jpg"></p>
<hr>
<h3 id="-zelda-a-link-between-worlds-fake-perspective">👾 Zelda A Link Between Worlds fake perspective</h3>
<p>This is one of my fav, in Zelda: A Link Between Worlds because a true top down view in 3D had some issues, they purposely tilt the objects so the perspective looks good to the player.</p>
<p><img alt="Zelda A Link Between Worlds fake perspective" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/zelda_link_between_worlds_skewed_view.jpg"></p>
<hr>
<h3 id="-duke-nukem-mirrors">👾 Duke Nukem mirrors</h3>
<p>Duke Nukem 3D mirrors reflection were achieved by duplicating the room on the other side. If you deactivate clipping you can go to the other side. True reflections are computational intensive even today.</p>
<p><img alt="Duke Nukem mirrors" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/duke_nukem_mirrors.gif"></p>
<hr>
<h3 id="-nba-jam-te-cartridge-day-one-patch">👾 NBA Jam: T.E. cartridge day one &ldquo;patch&rdquo;</h3>
<p>In NBA Jam: T.E. for Genesis/Mega Drive devs only found out after making the 250k cartridges there was a save bug. Playing game in a certain order fixed it so it got a day one patch in the manual saying how to initialize memory.</p>
<p><a href="/wp-content/uploads/2024/11/gamedev-tricks/nba_jam_1.jpg"><img alt="NBA Jam T.E" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/nba_jam_1.jpg"></a></p>
<p><a href="/wp-content/uploads/2024/11/gamedev-tricks/nba_jam_2.png"><img alt="NBA Jam T.E" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/nba_jam_2.png"></a></p>
<hr>
<h3 id="-mario-galaxy-drown-animation">👾 Mario Galaxy drown animation</h3>
<p>In Super Mario Galaxy when Mario drowns in a swap his hand reaches out, because of the size of the head they have to shrink it so only the hand is visible to the player.</p>
<p><img alt="Mario Galaxy drown animation" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/mario_galaxy_drown_animation.gif"></p>
<hr>
<h3 id="-world-of-warcraft-rest-bonus">👾 World of Warcraft rest bonus</h3>
<p>World of Warcraft rest bonus was made to encourage breaks, half XP gained after a few hours. Players hated, so they made everything take 2x as much XP to achieve but you start at 200% XP and gradually back to 100%. Same thing &amp; players are happy. <a href="https://www.psychologyofgames.com/2010/03/framing-and-world-of-warcrafts-rest-system/">source</a></p>
<p><img alt="World of Warcraft rest bonus" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/world_of_warcraft_rest_bonus.jpg"></p>
<hr>
<h3 id="-resident-evil-4-radio-billboards">👾 Resident Evil 4 radio billboards</h3>
<p>This one is not as unknown or hard to imagine but in Resident Evil 4 during the radio chat cutscenes it&rsquo;s actually a 2D panel with the 3D models behind. Many other games do this too.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/resident_evil_4_cutscene_behind_1.jpg"><img alt="Resident Evil 4" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/resident_evil_4_cutscene_behind_1.jpg"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/resident_evil_4_cutscene_behind_2.jpg"><img alt="Fallout 3 Trains" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/resident_evil_4_cutscene_behind_2.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-duck-hunt-zapper">👾 Duck Hunt Zapper</h3>
<p>In Duck Hunt the NES Zapper worked by blacking out screen &amp; drawing white blocks around targets when you fire, for a couple frames. The diode in the Zapper detects the change in light intensity and tells the computer if it’s pointed at a lit target.</p>
<p><img alt="Duck Hunt Zapper" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/duck_hunt_zapper.gif"></p>
<hr>
<h3 id="-metal-gear-solid-ps1-reflections">👾 Metal Gear Solid PS1 reflections</h3>
<p>In Metal Gear Solid 1, another reflection trick. Water puddle in 1st mission map is just a transparent texture with the geometry of ceiling and walls duplicated below the ground. That&rsquo;s why you can&rsquo;t see Snake reflection.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/metal_gear_solid_reflections_1.jpg"><img alt="Metal Gear Solid" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/metal_gear_solid_reflections_1.jpg"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/metal_gear_solid_reflections_2.jpg"><img alt="Metal Gear Solid" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/metal_gear_solid_reflections_2.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-prince-of-persia-animations">👾 Prince of Persia animations</h3>
<p>In Prince of Persia (1989) animations looked fluid &amp; realistic because Jordan Mechner used Rotoscope, he filmed his brother doing the stunts, took pictures with camera, had them developed at Fotomat and then traced them, frame by frame.</p>
<p><img alt="Prince of Persia Rotoscope" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/prince_of_persia_rotoscope.gif"></p>
<hr>
<h3 id="-tomb-raider-sega-saturn">👾 Tomb Raider Sega Saturn</h3>
<p>Sega Saturn used Quads instead of triangles (the industry norm) for rendering, which is good for 2D but not as practical for 3D, devs had to work around that, so games like Tomb Raider had to be built to support quads on Saturn and triangles on PlayStation.</p>
<p><img alt="Tomb Raider Sega Saturn quads" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/tomb_raider_saturn_quads.gif"></p>
<hr>
<h3 id="-pong">👾 Pong</h3>
<p>Original Pong had 0 lines of code.</p>
<p><img alt="Pong" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/pong_0_lines_code.jpg"></p>
<hr>
<h3 id="-paper-mario-shadows">👾 Paper Mario shadows</h3>
<p>Paper Mario uses a transparent mesh to simulate door shadows.</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/paper_mario_shadows.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-dead-space-ui">👾 Dead Space UI</h3>
<p>Dead Space UI is all made with particles so it can sort in render, glow and be more immersive. <a href="https://x.com/Worthless_Bums/status/1271139746551599112">source</a></p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/dead_space_particles_ui.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-katamari-damacy-spawns">👾 Katamari Damacy spawns</h3>
<p>Katamari Damacy only has support for closed, circular paths, so how they make boulders travel beneath the ground, back to the original place, so that it seems like they are spawning and despawning!</p>
<p><a href="https://x.com/JasperRLZ/status/1289960052250435584">source</a></p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/katamari_spawns.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-elders-scroll-morrowind-xbox-memory-management">👾 Elder&rsquo;s Scroll Morrowind Xbox memory management</h3>
<p>This is easily one of the best, on OG Xbox, Elder Scrolls III would occasionally reboot the Xbox if they ran out of memory. The user would just see a longer then usual loading screen.</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/xbox_elders_scroll_reboot_when_low_memory.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-grand-theft-auto-tanks">👾 Grand Theft Auto tanks</h3>
<p>In GTA the tanks were made with pedestrians that were on top of a car to use the existing shooting mechanics and also the driving code.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/gta_tanks_1.png"><img alt="Grand Theft Auto Tanks" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/gta_tanks_1.png"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/gta_tanks_2.png"><img alt="Grand Theft Auto Tanks" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/gta_tanks_2.png"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-kirby-and-the-forgotten-land-game-feel">👾 Kirby and the Forgotten Land game feel</h3>
<p>Kirby and the Forgotten Land is a 3D game, but will fake the hit collisions for better game feel depending where the camera is, in certain angles as long as in camera it &ldquo;looks&rdquo; like it hits it will consider it a collision even if it&rsquo;s not.</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/kirby_forgotten_land_game_feel.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-skyrim-npcs-inventory-system">👾 Skyrim NPCs inventory system</h3>
<p>Skyrim handles each NPCs inventory by having it on a unique chest hidden under the map. Most are impossible to get unless clipping is used, but sometimes you can find them.</p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_npc_chests_1.jpg"><img alt="Skyrim NPC inventory" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_npc_chests_1.jpg"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_npc_chests_2.jpg"><img alt="Skyrim NPC inventory" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/skyrim_npc_chests_2.jpg"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-doom-3-volumetric-glow">👾 Doom 3 volumetric glow</h3>
<p>Doom 3 fakes volumetric glow by folding vertexes with camera movement. <a href="https://simonschreibt.de/gat/doom-3-volumetric-glow/">source</a></p>
<p><img alt="Doom 3 volumetric glow" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/doom3_volumetric_glow.gif"></p>
<hr>
<h3 id="-lord-of-the-rings-engine-reuse">👾 Lord of the Rings engine reuse</h3>
<p>Lord of the Rings game was made by reusing Tiger Woods golf game because they needed large areas with a goal/castle at the end, a golf game is just that. I think it’s quite funny how far apart they are but it works.</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/11/gamedev-tricks/lord_of_the_rings_tiger_woods_engine.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<hr>
<h3 id="-metroid-prime-noise-texture">👾 Metroid Prime noise texture</h3>
<p>In order to save memory, Metroid Prime fullscreen static texture effect is generated using random live RAM data, which is just the game itself running, GameCube only had 24MB. <a href="https://x.com/ZoidCTF/status/1590012338421518337">source</a></p>
<p><img alt="Metroid Prime" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/metroid_prime_noise_texture.jpg"></p>
<hr>
<h3 id="-titan-quest-action-delays">👾 Titan Quest action delays</h3>
<p>On Titan Quest, because there was no way to script timed delays actions, developers created ambient creatures like Squirrels and used their animations as a way to count time to trigger the events.</p>
<p><img alt="Titan Quest action delays" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/titan_quest_timed_delays.png"></p>
<hr>
<h3 id="-journey-shadows">👾 Journey shadows</h3>
<p>Journey doesn&rsquo;t have a real-time shadow system so they are hand painted and baked later. The results are impressive but the amount of work involved wow. <a href="https://x.com/matt_nava/status/1503152810078052355">source</a></p>
<p><img alt="Journey Shadows" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/journey_shadows_1.png"></p>
<table>
  <thead>
      <tr>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/journey_shadows_2.png"><img alt="Journey Shadows" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/journey_shadows_2.png"></a></th>
          <th><a href="/wp-content/uploads/2024/11/gamedev-tricks/journey_shadows_3.png"><img alt="Journey Shadows" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/journey_shadows_3.png"></a></th>
      </tr>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3 id="-silent-hill-2-mirror">👾 Silent Hill 2 mirror</h3>
<p>Another duplicate room mirror trick, this time Silent Hill 2, in the beginning of the game, the mirror reflection is just the entire bathroom duplicated.</p>
<p><img alt="Silent Hill 2 mirror" loading="lazy" src="/wp-content/uploads/2024/11/gamedev-tricks/silent_hill_2_mirror_duplicate_room.jpg"></p>
<hr>
<p>(to be continued &hellip;. maybe)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Quest of Dungeons turns 10 years old!</title>
      <link>https://www.david-amador.com/2024/03/quest-of-dungeons-turns-10-years-old/</link>
      <pubDate>Mon, 25 Mar 2024 11:39:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2024/03/quest-of-dungeons-turns-10-years-old/</guid>
      <description>&lt;h1 id=&#34;-its-been-10-years&#34;&gt;📝 It&amp;rsquo;s been 10 years&lt;/h1&gt;
&lt;p&gt;It&amp;rsquo;s around 11 a.m. as start to type this. 10 years ago at this hour, I was at my day job, trying to focus and not be distracted by the fact that later that day, at around 18h, &lt;a href=&#34;https://www.questofdungeons.com&#34;&gt;Quest of Dungeons&lt;/a&gt; was being released on Steam and iOS. For the first time, players around the world could try it. I was quite anxious about this; it had been a few years in the making, &lt;a href=&#34;https://www.david-amador.com/2014/10/indie-dev-day-job-making-it-work-building-quest-of-dungeons/&#34;&gt;mostly nights and weekends&lt;/a&gt;. I had little idea of what to expect, but being on Steam was simultaneously exciting and terrifying. What if people hated it?&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="-its-been-10-years">📝 It&rsquo;s been 10 years</h1>
<p>It&rsquo;s around 11 a.m. as start to type this. 10 years ago at this hour, I was at my day job, trying to focus and not be distracted by the fact that later that day, at around 18h, <a href="https://www.questofdungeons.com">Quest of Dungeons</a> was being released on Steam and iOS. For the first time, players around the world could try it. I was quite anxious about this; it had been a few years in the making, <a href="/2014/10/indie-dev-day-job-making-it-work-building-quest-of-dungeons/">mostly nights and weekends</a>. I had little idea of what to expect, but being on Steam was simultaneously exciting and terrifying. What if people hated it?</p>
<p>What follows for the rest of the post, is a brain dump of the timeline of some of the most crucial events of this silly little project for anyone who is curious.</p>
<p><img alt="Quest of Dungeons characters" loading="lazy" src="/wp-content/uploads/2024/03/pixel_logo_v1_4x.png"></p>
<h1 id="-2011-2013">🤯 2011-2013</h1>
<p>✔️ Failing can help</p>
<p>Before the game launched, I had a few years of terrible prototypes, cancelled projects, and other unexpected life events. One day, though, all those mistakes fell into place, and QoD was born—a flow of ideas came to my mind, after seeing a bunch of stuff failed in front of me, but that maybe I could make them work. I knew what I wanted to avoid now and what I things I would like to experiment with. Within this time I also made a simple iOS game called <a href="/2012/09/puwang-a-5-day-work/">Puwang</a>, a gamejam compo, where most of the goal was to make a quick game and hopefully make $100 that year to cover the iOS developer account expenses. For QoD I wanted to make a small game that I could play on my phone during commute, and that&rsquo;s why it started as a mobile-only game.</p>
<p><img alt="Quest of Dungeons characters" loading="lazy" src="/wp-content/uploads/2024/03/qod_characters.png"></p>
<p>⌨️ Expanding</p>
<p>During the time I was the only person to ever played it, I found myself enjoying it on a bigger screen/tablet, and after giving it a 2-3 friends to test and having confirmation, I thought it would be good to launch a desktop version along the iPhone/iPad versions, Windows and Mac.
This added some development time, but also allowed me to expand the game a bit more, the mobile version was virtually identical to desktop/tabled, but they shared a bigger UI, more suited for Mouse and the higher resolutions.
This turned out to be one of the best decisions, as the desktop version is foundation for everything after. At this point I was already <a href="/tags/basalt/">rolling my own engine</a> for prior games on mobile and desktop, so most of the development was indeed for game stuff, and not engine. While I&rsquo;ve made the mistake often of &ldquo;build the engine instead of game&rdquo;, here the engine was built around the game, that&rsquo;s how it should be.</p>
<h1 id="20140325---steam-and-ios-launch">2014/03/25 - Steam and iOS launch</h1>
<p>I had tried to bring games to Steam before but with no success. The focus was on Mobile, with Desktop in mind, but where to sell it? Before Steam I was able to get confirmation for the new Humble Store, but Steam was still on my mind. In the past I had higher hopes for my first game <a href="/tags/vizati/">Vizati</a>, looked more polished, so QoD didn&rsquo;t seemed to have a chance.</p>
<p><img loading="lazy" src="/wp-content/uploads/2017/03/Screenshot-2022-11-01-at-19.38.50.png"></p>
<p>But I decided to make a trailer and launch a GL page, and imagine my surprise when QoD was approved on Steam Greenlight within a week or so. Just look at my dumb face here that I just digged from some old Tweets.</p>
<p><img alt="David celebrating QoD approval on Steam Greenlight" loading="lazy" src="/wp-content/uploads/2024/03/david_amador_celebrating_qod_greenlight_2014-01-24_22.38.07.jpg"></p>
<p>With the trailer out, people seemed to enjoyed what they saw, I also thought I was near completing the game, there&rsquo;s always something right? So I pretty much crunched the entire rest of time between my day job and finishing the game.</p>
<p>Finally on March 25th it was out, everyone could play it. Since the game was only releasing around 18h on Steam, I went to my day job that day, and only took the next day off for checking &amp; fixing bugs etc.</p>
<p>Initially all I was getting was a flow of emails with some bugs and suggestions, but overall people seemed to like it, which was a relief. There was still tons of stuff to fix, but slowly, and for the next few weeks went through issues and suggestions. On the mobile side of things things were smoother, that version was the older one, had more testing, also less hardware configurations. I recall before launch, a conversation with some coworkers, that making it paid on mobile was probably a mistake, but I don&rsquo;t know how to design games around F2P/Ads, so I made it paid.  But, thankfully, even being a paid game, at $1.99, people were happy with what they were getting.</p>
<p><img alt="Quest of Dungeons Android" loading="lazy" src="/wp-content/uploads/2024/03/quest_of_dungeons_tablet_iphone_desktop.jpg"></p>
<h1 id="20140530---linux">2014/05/30 - Linux</h1>
<p>This one was something that I had in the back on my mind for a while, theoretically my engine could be ported to Linux, but I was scared of having too many versions at launch, handing those 4 SKUs was already a handful, so this was left for later. This actually ended up being a factor in Humble Bundle contacting me to participate in one of their bundles, back then having a game on all 3 platforms was a must.
Technically speaking it wasn&rsquo;t extremely complicated, by this time the engine was already relatively split in ways that it was easy to integrate new OS, it was just a matter of implementation.
Also, now that Steam Deck is a thing, it just worked out of the box.</p>
<h1 id="20140826---android">2014/08/26 - Android</h1>
<p>With Desktops and iOS versions being well received I started getting requests for an Android version, I had never worked on this platform, but with most of the know bugs fixed, I bought a cheap Android phone and I moved into porting the game to this platform, you can read more about that <a href="/2014/08/native-game-on-android-porting-quest-of-dungeons/">here</a>.</p>
<p><img alt="Quest of Dungeons Android" loading="lazy" src="/wp-content/uploads/2024/03/quest_of_dungeons_android_2014-05-29_00.05.50.jpg"></p>
<h1 id="2014---ouya-cancelled">2014 - OUYA (cancelled)</h1>
<p>The hot thing around the time was OUYA, games like TowerFall were born there, so since I had an Android version I started to work on that, because it would be the closest to a traditional console that I thought I could put this game on. I started working on it, but once Microsoft accepted my pitch for the Xbox One (see below), I placed this in low priority. Between the time it took me to develop the Xbox One version, OUYA had it downfall, and by that time I just cancelled it.</p>
<h1 id="201509---xbox-one">2015/09 - Xbox One</h1>
<p>In the summer of 2014, after the launch of all those versions, relatively successfully, I started talking with ID@Xbox with the possibility of bringing QoD to Xbox One. There were a couple months of paperwork and mostly the conversation about &ldquo;this is a mouse game, how will it work on consoles?&rdquo;, which was when I started seeing that all the UI needed to be remade, and even some gameplay.</p>
<p>There are several posts, <a href="/2015/07/lets-talk-about-the-new-stuff-in-quest-of-dungeons-for-xbox-one/">here</a>, <a href="/2015/04/necrodancer-is-joining/">here</a>, <a href="/2014/11/qod-xo-devlog-1/">here</a>, <a href="/2015/01/qod-xo-devlog-2/">here</a> and <a href="/2015/02/qod-xo-devlog-3/">here</a>  detailing what went into to that process, but after around 1 year the game was finally released, and all the work put into reworking the game to controller friendly interface and gameplay paid off, it was <a href="/2015/10/quest-of-dungeons-reviews-roundup/">positively received</a>. I also took the opportunity to double the content available, and also add an <a href="/2015/04/necrodancer-is-joining/">extra character</a>. I&rsquo;m sure it was this combination of an almost remade version with increased content that led to it&rsquo;s positive feedback. I&rsquo;m really happy I decided to take all those months to remake it, it was daunting at first, I&rsquo;ll tell you that, but I&rsquo;m glad I did it.</p>
<p><img alt="Quest of Dungeons Xbox One launch" loading="lazy" src="/wp-content/uploads/2024/03/quest_of_dungeons_xbox_one_launch.jpg"></p>
<h1 id="20160929---wii-u-and-nintendo-3ds">2016/09/29 - Wii U and Nintendo 3DS</h1>
<p>Around 2015 summer, before Xbox One release, and if I recall correctly, during Gamescom in Germany, I started talking with Nintendo about bringing the game to Nintendo 3DS and Wii U.</p>
<p>This was when Nintendo was a bit more restrictive in terms of third party developers, and I was fully expecting, that me, a solo developer, would not make the cut, and it took a lot of months and patience to finally be able to show the game to someone and get accepted as an official Nintendo developer.</p>
<p>At first my goal was to make Wii U port first because it would be similar to Xbox One, with some additional features for the GamePad. Nintendo 3DS would come later, it would take more work due to it&rsquo;s specifics.</p>
<p>Unfortunately, or fortunately (depending how you see it), I bricked my Wii U devKit after a couple months of work, when the game was in a good state already but before 100% finished. During the time I waited for repairs I started the Nintendo 3DS version.</p>
<p>I knew would take a LOT more work, from performance, to completely different UI for dual screen, hybrid of touch + buttons. But when the Wii U devKit arrived, I decided to launch them side-by-side, I talked with Nintendo about a cross-buy possibility, and once they gave the ok that was the goal.</p>
<p><img alt="Quest of Dungeons StreetPass" loading="lazy" src="/wp-content/uploads/2016/05/3ds_new_inventory.png"></p>
<p>The Nintendo 3DS version was one of the most complicated ones to pull off. This was also the first time that working on my own engine was the only thing making it possible. A lot of people were suggesting me to use Unity, and I had would have saved time in porting, which can be true, but Unity didn&rsquo;t supported 3DS, so it would never have happened if not for my custom framework.</p>
<p>This is hands down my favourite version, there is no other like it, mostly because of the nature of the device.</p>
<p>It was so fun to work with that I found myself <a href="/2016/05/qod-3dswii-u-port-devlog-1/">adding features</a> just because I wanted to test them, like the StreetPass, where you can get ghosts from other players you pass on the street. Nintendo had a really neat device here.</p>
<p><img alt="Quest of Dungeons StreetPass" loading="lazy" src="/wp-content/uploads/2016/05/3ds_qod_streetpass.png"></p>
<p>There was some trouble having both versions on the same day, it&rsquo;s a lot of coordination required between me, Nintendo America and Europe teams, 4 different SKUs (3DS NA+EU, Wii U NA+EU), but in the end we made it.</p>
<p>Like I suspected during my own tests, on the 3DS it was the ideal portable version, it&rsquo;s a game that suits shorts sessions on the go.</p>
<p>This was also the first time I worked with a publisher for this game, for Japan, the game was published by Flyhigh Works, they took it to Tokyo Game Show, localized to JP, and were crucial in shaping up the 3DS version into what it is. I do recall many sessions where my stubbornness almost caused some bad decisions in the game, but they were really cool in guiding me to make the best of it.</p>
<p><img alt="Quest of Dungeons on Wii U and Nintendo 3DS" loading="lazy" src="/wp-content/uploads/2024/03/qod_wiiu_3ds.jpg"></p>
<h1 id="20170120---playstation-4-and-the-vita-version-that-never-was">2017/01/20 - PlayStation 4 and the Vita version that never was.</h1>
<p>I love my PlayStation 4, in fact it&rsquo;s the console I have more physical games for.</p>
<p>So it was with great excitement that after a Skype call with my PlayStation rep I had the greenlight to get the game there. This started around the time of Nintendo too, but sadly, and at first I wanted PS4 + Vita combo, like Wii U + 3DS, but for a variety of reasons the PlayStation Vita never happened.</p>
<p>This was one of the reasons the PS4 versions was one of the latter ones, I kept hoping I could launch both simultaneously but never happened. Fun fact, this version almost had a physical edition that got cancelled by the publisher at last moment, eventually I even got someone, another publisher, to take care of the PS Vita version, but that also got cancelled later on. So a combination of things that happened that were no one&rsquo;s fault, but also made it a bit hard for me to explain why it wasn&rsquo;t happening. In certain moments it was almost, but it never did happened. It was a bit frustrating that I didn&rsquo;t had clear answers for the players regarding this, but I couldn&rsquo;t, and I tried but failed in the end. Well, that&rsquo;s game development.</p>
<p><img alt="Quest of Dungeons on PlayStation 4" loading="lazy" src="/wp-content/uploads/2017/01/qod_ps4_no_name.png"></p>
<h1 id="20170810---nintendo-switch">2017/08/10 - Nintendo Switch</h1>
<p>Around 1 month after I released on Wii U and 3DS, Nintendo announced their new hybrid console, the Nintendo Switch. I immediately started getting questions from players about a port. This complicated promoting the new Nintendo versions while everyone was excited about the upcoming console, saving money for it and the games. By coincidence I had launched both versions right at the end.</p>
<p>I can&rsquo;t recall exactly when conversations started with Nintendo about this, since it was in hot demand, both for retail and developers, but eventually Nintendo shipped me a devKit and I started porting. It was released first in the Japanese regions, again by Flyhigh Works. But a few weeks later again by me in the rest of the world. This version had the portability of 3DS, and graphics/resolution and UI of the home consoles. This was also the first time I made a demo for the game, which still exists on the eShop.</p>
<p><img alt="Quest of Dungeons on Nintendo Switch" loading="lazy" src="/wp-content/uploads/2017/08/quest_of_dungeons_switch.jpg"></p>
<h1 id="2019---dreamcast-just-having-fun">2019 - Dreamcast (just having fun)</h1>
<p>In 2019 I got my hands on a Dreamcast I decided to &ldquo;wonder if I can port it there?&rdquo;, it was never really meant for a full release, that would take months of time that I don&rsquo;t have at the moment,
I just posting it here for the record, this was under a week of work, it was fun. Maybe if I reach retirement I&rsquo;ll take some time to finish it. There&rsquo;s a lot of work left in there.</p>
<p>After a while booting the game on an emulator,</p>
<p><img alt="Quest of Dungeons running on emulator 1" loading="lazy" src="/wp-content/uploads/2024/03/qod_dreamcast_2.png"></p>
<p>and then later when I got it booting on a real Dreamcast</p>
<video width="100%" controls>
    <source src="/wp-content/uploads/2024/03/qod_running_on_dreamcast.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<h1 id="20210413---switch-physical-edition">2021/04/13 - Switch Physical Edition</h1>
<p>Like I mentioned before, I tried to get the game in physical format before, and I kept trying for years but it simply wasn&rsquo;t happening. Until 2021, when by random chance, someone recommended me Leoful, and they accepted right away, in fact, from initial contact to production, it was just a couple months, I&rsquo;m really happy I was able to finally get the game on an actual box, it hits differently, as I <a href="/2010/08/games-and-systems-from-childhood/">grew playing Nintendo games</a>,  and also feels like a closure to a project that started on a smaller device and made it&rsquo;s way to a real physical game.</p>
<p><img alt="Quest of Dungeons Physical Edition for Nintendo Switch" loading="lazy" src="/wp-content/uploads/2021/03/Quest-of-Dungeons-Nintendo-Switch-Physical-edition.png"></p>
<h1 id="2022---">2022 - ??</h1>
<p>Right now the game still exists in several stores (R.I.P. Nintendo 3DS and Wii U), and it&rsquo;s in maintenance mode only. The platforms patched more regularly are the mobile ones, whenever Apple or Android come up with new rules or it breaks on new devices. Windows gives nearly no problems, MacOS breaks things more often, but overall it doesn&rsquo;t give a lot of work, the last time I had to mess with it, was the Linux version to patch stuff for Steam Deck, but it was relatively easy.</p>
<p><img alt="Quest of Dungeons on Steam Deck" loading="lazy" src="/wp-content/uploads/2024/03/quest_of_dungeons_steam_deck.jpg"></p>
<p>So in the end things worked out, and I want to say a big thank you to everyone who supported this project, I read all the emails, DMs, messages everyone sent over the years, even fanart, you rock.</p>
<p><img loading="lazy" src="/wp-content/uploads/2017/03/gKx4R.gif"></p>
<h1 id="some-trivia">Some trivia</h1>
<ul>
<li>The game has 79k of code (all platforms)</li>
<li>The game engine has 130k of code (all platforms)</li>
<li>Over 63800 years of total play time on Steam alone</li>
<li>The game allowing the player to drop items anywhere and being persistent was a side effect of saving the whole world to save instead of recreating it by seed. I just turned it into a feature.</li>
<li>I was only able to finish the game in Hell mode AFTER releasing it, the math seemed to check out, but I wasn&rsquo;t good enough.</li>
<li>The game was called Quest of Dungeons from day 1 of development, as a generic codename, I just grew too attached to it.</li>
<li>There was a pet system that got dropped, taming enemies, but it was dropped in favour of Shaman unique skill of summons.</li>
<li>There was a way for enemies to travel between floors, like Resident Evil added that later on, going between rooms, but it was too aggressive and made the game frustratingly hard.</li>
<li>All the level and combat damage math falls apart around character level 40 or above, but the game was designed below that.</li>
<li>The initial skull sign, which only exists at the very start, was a way to teach the player that death meant restarting, in 2013-14 roguelikes weren&rsquo;t as popular and it was seen as a shock for that to happen (play-testers would email me &ldquo;my save is lost&rdquo;). My goal was that by potentially learning that early on, the player would not get surprised.</li>
</ul>
<p>Thank you for reading all of this.</p>
<p><img loading="lazy" src="/wp-content/uploads/2024/03/qod_characters_anniversary.png"></p>
<p>Here&rsquo;s a cool image made by <a href="https://twitter.com/LeonorParra08">Leonor</a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Converting the blog from WordPress to Hugo</title>
      <link>https://www.david-amador.com/2024/01/converting-the-blog-from-wordpress-to-hugo/</link>
      <pubDate>Sat, 27 Jan 2024 17:20:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2024/01/converting-the-blog-from-wordpress-to-hugo/</guid>
      <description>&lt;p&gt;Yesterday, I shutdown the VPS that has been hosting all my websites for the last ~10 years. I&amp;rsquo;ve moved everything to static content, including this website.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.david-amador.com/wp-content/uploads/2024/01/shutting-down-server.gif&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;-wordpress&#34;&gt;📝 WordPress&lt;/h1&gt;
&lt;p&gt;Since the very beginning (~2008) this blog has been powered by WordPress, it served me well, it worked, had a nice backend to make the posts, plugins and themes. After a couple years I moved from shared hosting to a VPS, I had other websites and services I needed running and all in same machine was better and cheaper. But WordPress needs a lot of things, PHP, MySQL, maintenance in all those moving parts.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yesterday, I shutdown the VPS that has been hosting all my websites for the last ~10 years. I&rsquo;ve moved everything to static content, including this website.</p>
<p><img loading="lazy" src="/wp-content/uploads/2024/01/shutting-down-server.gif"></p>
<h1 id="-wordpress">📝 WordPress</h1>
<p>Since the very beginning (~2008) this blog has been powered by WordPress, it served me well, it worked, had a nice backend to make the posts, plugins and themes. After a couple years I moved from shared hosting to a VPS, I had other websites and services I needed running and all in same machine was better and cheaper. But WordPress needs a lot of things, PHP, MySQL, maintenance in all those moving parts.</p>
<p>So for the past couple of years I&rsquo;ve been thinking in migrating it to something like Jekyll or Hugo, to serve it as static content. But the few times I looked into the process it seemed like a big task especially because I have 184 posts, I wasn&rsquo;t just starting from 0, I wanted to maintain the existing content, posts, images, URLs etc. So, a couple days ago I decided it was time.</p>
<h1 id="-converting-and-moving-the-websites">📝 Converting and Moving the websites</h1>
<h3 id="-questofdungeonscom">🔗 questofdungeons.com</h3>
<p>This was the easier of them, it&rsquo;s just not working 100% as it was before (more on that in a bit). Site was just a couple of hand-made pages I hacked in HTML/CSS/JS years ago, so that was already done.</p>
<p>The only problem was the <a href="https://www.questofdungeons.com/stats.html">stats page</a>  relied on a PHP script to pull the stats from Steam. PHP was out of the question since I wanted to host on GitHub, so I tried the full JavaScript approach, but that hits the <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a> issue, and I would need a proxy for that, so for now I grabbed the last stats and it&rsquo;s serving it statically. I have to think of something else later since I don&rsquo;t have PHP anymore etc. But it&rsquo;s not important and the numbers aren&rsquo;t moving as much as they used to. I grabbed all files, pushed to a GitHub repo, activated pages, changed the nameservers, queued SSL cert, and voilá, the site is now live.</p>
<h3 id="-upfallstudioscom">🔗 upfallStudios.com</h3>
<p>The <a href="/2022/11/merged-personal-and-studio-blogs-into-one/">merging the Upfall Studios blog</a> a while ago was not an isolated act, I was thinking about this already. After the merge, <a href="https://www.upfallstudios.com">www.upfallstudios.com</a> was left with only the front page, which was static content already. I also had a doPresskit() <a href="https://www.upfallstudios.com/press/">page</a>, which was all PHP, and I need to keep it for games info etc. After a bit of search I found there is an <a href="https://github.com/Dvergar/dopresskit-static">alternative</a>, serving static content, so I converted and updated the site to use it, that way 100% of the site was ready. Easy and working as before.</p>
<h3 id="-david-amadorcom">🔗 david-amador.com</h3>
<p>And now I was free to focus on the one I knew would be a headache, this blog. Full wordpress site, no static content, everything dynamic using plugins, MySQL, PHP and custom .htaccess rules.</p>
<ul>
<li>❌ Jekyll</li>
</ul>
<p>From prior research, I was inclined to <a href="https://jekyllrb.com/">Jekyll</a> since all I read online was that it was good, also it&rsquo;s been around for 15 years, so it has proved it works and should be stable.
But after a couple days of messing around with configs and pre-requisites, packages versions mismatches between Jekyll, ruby, wordpress exporters etc, I gave up. Booting up a new site can be achieved fast, but I needed to also be able to import all of my content, and that proved to be hard. Also I started thinking about the future of the blog, what if in a couple years the version breaks on modern OS version, and I can&rsquo;t run the latest one due to some incompatibility, even on a VM that would be a nightmare to keep around just for one site.</p>
<ul>
<li>✅ Hugo</li>
</ul>
<p>So I decided to go for <a href="https://gohugo.io/">Hugo</a>, single executable, it works, it&rsquo;s fast. Highly recommend it. The documentation does lacks sometimes, but between the forums, and looking at other people&rsquo;s pages on GitHub it&rsquo;s perfectly doable.</p>
<p>I had to export the data, and there are a couple of Wordpress plugins for that, the problem was that my server was old, i386, outdated Ubuntu version, the PHP server version had no Zip support, which most of those plugins needed. After messing around a bit with the server trying to install the proper dependencies, which included actually breaking the entire thing and having to restore from backup, I decided a different approached. Created a Docker VM with wordpress, imported my existing WP files and database locally, installed the required plugins and was finally able to export all.</p>
<p>📄 Now that I had all the files in markdown format, it was really more of a going through Hugo documentation, placing all freshly made files in place and cleaning up stuff. One neat thing is that you can run and edit an Hugo website live.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">Hugo.exe server -D
</span></span></code></pre></div><p>This will make the site run on localhost:1313/ , so while you edit the markdown files, it will keep refreshing, I didn&rsquo;t even had to press F5, I could have it side by side and Ctrl+S, super fast to iterate.</p>
<p>🎥 There was a LOT of YouTube embed code, that I placed over the years, and was not ever working anymore on original website, some of it had Macromedia code, yeah, that old! So I tried to fix all that, then just regex replace some stuff like wrong image paths.</p>
<p>🧑‍💻 I also had to fix some of the programming code block notation. I was using</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">pre</span> <span class="na">lang</span><span class="o">=</span><span class="s">&#34;LANG&#34;</span><span class="p">&gt;</span> 
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">pre</span><span class="p">&gt;</span>
</span></span></code></pre></div><p>for code blocks, but the parser collapsed in a couple posts, leaving pre tags, which was helpful in searching for them actually. I fixed all I could find.</p>
<p>🗣️ As for the comments, I had Disqus installed on Upfall Studios blog, but on this blog it was on WP system, so what I did was just import all the comments on Disqus and merged both. So the comment system should work on the bottom of all posts (say Hi if you want :)</p>
<p>I&rsquo;m not sure if all the comments are there though, one particular post I had to go back and import it manually again, but it also had over 100 comments, so it might have failed the first time. I still have all the old data, so if needed (and I can spot it) I can always import it again on Disqus.</p>
<p>📰 The RSS feed should theoretically still work for everyone who had from the old blog, but I&rsquo;m not 100% sure, once I put this post live I guess I&rsquo;ll know.</p>
<p>💻 So my current workflow is: I have a git repo with all the markdown and website code and I have the live website as a submodule, so whenever I made a change, I export it with Hugo, git commit all changes and GitHub pages just deploys them, feels like magic :D</p>
<h3 id="-speed">🚀 Speed</h3>
<p>Oh its much faster, obviously, but look at the changes of before (left) and after (right) using PageSpeed Insights.</p>
<p><img loading="lazy" src="/wp-content/uploads/2024/01/david_amador_site_wordpress_vs_hugo_speed.png"></p>
<h2 id="conclusion">Conclusion</h2>
<p>Still there? Well so far I&rsquo;m happy with the move, I do miss the nice WordPress backend thing if I&rsquo;m being honest, but I can live without it. I feel like in the long run I won&rsquo;t miss having to maintain that server, also the costs. Right now I&rsquo;m editing this on Obsidian, about to commit and see if it goes live, RSS and all. If you find any broken stuff or have suggestions let me know, either mastodon, email or a comment here.</p>
<p>Until the next time, where hopefully I&rsquo;ll talk about games! Thanks for reading.</p>
]]></content:encoded>
    </item>
    <item>
      <title>game5 devlog #2</title>
      <link>https://www.david-amador.com/2023/10/game5-devlog-2/</link>
      <pubDate>Sun, 15 Oct 2023 17:20:55 +0000</pubDate>
      <guid>https://www.david-amador.com/2023/10/game5-devlog-2/</guid>
      <description>&lt;p&gt;I missed last week devlog, mostly because I did almost no progress but also because it was a bad week overall, personally and in terms of work, nothing too bad but you know that feeling when you barely made any progress, despite tons of work hours? So one of those weeks.&lt;/p&gt;
&lt;p&gt;But onto &lt;a href=&#34;https://www.david-amador.com/2023/10/game5-devlog-1/&#34; title=&#34;game5 devlog #1&#34;&gt;game5&lt;/a&gt; progress.&lt;/p&gt;
&lt;h2 id=&#34;importers&#34;&gt;Importers&lt;/h2&gt;
&lt;p&gt;I managed to finish some of the importers (spreadsheets -&amp;gt; ScriptableObjects + prefabs) that I was working on, right now I can just glance over values on a spreadsheet, tweak, and have it export all the Scriptable Objects, generating the prefabs with corresponding data and images and test them. I could have made the game parse the spreadsheet at boot time and create them, but I decided against it, I want to generate this process offline. One of the reasons is because I have more control over not replacing existing items GUIDs (to keep and existing links), and also I can tweak any individually generated files manually, if I need to.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I missed last week devlog, mostly because I did almost no progress but also because it was a bad week overall, personally and in terms of work, nothing too bad but you know that feeling when you barely made any progress, despite tons of work hours? So one of those weeks.</p>
<p>But onto <a href="/2023/10/game5-devlog-1/" title="game5 devlog #1">game5</a> progress.</p>
<h2 id="importers">Importers</h2>
<p>I managed to finish some of the importers (spreadsheets -&gt; ScriptableObjects + prefabs) that I was working on, right now I can just glance over values on a spreadsheet, tweak, and have it export all the Scriptable Objects, generating the prefabs with corresponding data and images and test them. I could have made the game parse the spreadsheet at boot time and create them, but I decided against it, I want to generate this process offline. One of the reasons is because I have more control over not replacing existing items GUIDs (to keep and existing links), and also I can tweak any individually generated files manually, if I need to.</p>
<h2 id="testing-amp-automation">Testing &amp; Automation</h2>
<p>As I start to get more pieces onto the game I’m hitting the time that I need to start testing what I do, obviously with beta testers etc, but also I need to find a way to test it on my own in an effective way. For bugs, balance and well, fun factor.</p>
<p>I recall for Quest of Dungeons I had several spreadsheets with the game combat formulas and it would show up curves of progression for each character stat as it levelled up, this helped me visualising pros and cons of each one of them. And even other stuff, like how many total XP points one could get by each floor, or gold, so even with the procedural nature, I knew lower and upper bounds.</p>
<p>That meant that even if I never ended up getting a really good, or bad combination of items during my tests, I could see the best and worst case, and I would tweak monsters and boss fights accordingly.</p>
<p>This leads me to this game, where given it’s nature of it’s progression, I’m still unsure of the best tools I can cook up to help me on this, before I place it on testers hands. It won’t be bullet proof but it would be best for me to get a general idea of what to expect.</p>
<p>Automation is something I had for QoD and already have it to a certain degree here, an “auto playtester”, basically a script that just does some dumb decisions and plays the game on it’s own, this doesn’t give much info but at least I can quicky test over crashes over certain periods of time, I just let it playing on it’s own. It has limitations but it’s nice.</p>
<h2 id="content">Content</h2>
<p>As I’m making importers for content I’m now starting to replace some testing placeholders with what I think will be final, in terms of mechanics and items, which is why the Testing phase will start to be important as I tweak content and also gameplay values, the fun factor of the game in a way.</p>
<p>This step is usually the one I get stuck the most, because as much as I can plan on paper, some things might not work at all when testing, also trying to keep the scope realistic for me, I’m just one person coding all this, got to be real here. I always think “oh 8 items might be too little content”, but then again sometimes less is more, as long as it’s well placed. Also being less we can always add more later if needed. Doing work unnecessarily hurts more, on Vizati and QoD locking down content amount like “7 floors max, 4 characters, 10 skills per character” really helped me early on, it was tangible and gives a sense of progression and motivation as we create each one. So that’s the sort of thing I’m trying to do here.</p>
<p>So that’s one of the reasons I’m trying to decide this stuff right now, considering the very low time and budget I have available, I’m trying to realistically get a good scope for what I can do, even if it turns out a short game (and that’s ok), match everything as close as possible to what I think I’ll need in the end, so I can decide the stage of art, where to get it, or who to hire, or even if it’s something I could do on my own (some of it anyway). Yeah I know I just described that I’m lacking a proper <a href="https://en.wikipedia.org/wiki/Game_design_document">GDD</a> 🙂</p>
<h5 id="mood">Mood</h5>
<p>So all around I feel a bit more optimistic about game5 this week, but as any game developer will tell you, this feeling goes up and down every given week xD. Sometimes I feel like I might have something here, other times “this sucks”.<br>
Until the next post!</p>
<p>post feature image from deviantArt, Halloween month! 🎃 (<a href="https://www.deviantart.com/hoshi-pan/art/witch-tea-818804167">https://www.deviantart.com/hoshi-pan/art/witch-tea-818804167</a>)</p>
]]></content:encoded>
    </item>
    <item>
      <title>game5 devlog #1</title>
      <link>https://www.david-amador.com/2023/10/game5-devlog-1/</link>
      <pubDate>Mon, 02 Oct 2023 20:40:47 +0000</pubDate>
      <guid>https://www.david-amador.com/2023/10/game5-devlog-1/</guid>
      <description>&lt;p&gt;Nothing announced, not even a name decided, but I want to vaguely blog about it as a means of brainstorming with myself. I’ll be vague as heck until I’m sure I have something worth “here’s a new game”, if that ever turns out to be the case.&lt;/p&gt;
&lt;p&gt;So this week’s it’s progress on my “on-going not yet announced game because not ready and might be bad” game, which I decided to for now on call Game5 here, so it’s easier to know what we are talking about.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Nothing announced, not even a name decided, but I want to vaguely blog about it as a means of brainstorming with myself. I’ll be vague as heck until I’m sure I have something worth “here’s a new game”, if that ever turns out to be the case.</p>
<p>So this week’s it’s progress on my “on-going not yet announced game because not ready and might be bad” game, which I decided to for now on call Game5 here, so it’s easier to know what we are talking about.</p>
<h2 id="no-progress">No progress</h2>
<p>I haven’t been able to do make progress during the day because of contract work, so it’s mostly nights and weekends when physically possible. And I’m actually feeling a bit bad about this, so this might take a while. There’s been weeks of good productivity followed by weeks/months of just “seems to be the same”. To be honest some design decisions were also blocking me, the initial plan was enough to start but there’s always some roadblocks ahead.</p>
<h2 id="death-by-a-thousand-buttons">Death by a thousand buttons</h2>
<p>After QoD I specifically remember saying “My next game needs to have as little UI as possible”, but here we are, this game will (probably) live or die depending on how bad it is to use it. I mean the “game” part has to be fun as well obviously, but there is a lot of interconnection between both. You’ll understand what I mean by that later. No it’s not an RTS etc.</p>
<h2 id="slow-progress-is-better-than-none">Slow progress is better than none</h2>
<p>But the past 2-3 weeks I got a little lightbulb that gave me a general direction of a way to solve some stuff and it’s on a good track again I feel. And while there’s no real need for the UI to look good at this point, I already have 2 iterations of it, mostly from a functional standpoint.</p>
<p>I did a first prototype with the general idea, not all features, but turned out incredibly cumbersome to use from a UX standpoint. But this was good, I felt there was still something there in terms of “game”, just needs iteration.</p>
<p>I “quickly” remade it into a different one recently, and now I feel it’s much better, there’s still a lot to do in terms of making it coherent. But this is also the part where I feel I have to focus on the “toy” part of the game itself.</p>
<h3 id="planning">Planning</h3>
<p>A lot of my problems sometimes come from lack of planning some details more carefully, in a way it’s good to just jump in and get it rolling, but other times it comes back to bite you. With that in mind, and since I now have a general idea of functionalities and a barebones UI, I hired someone to freelance work with me on their spare time on the UI. At this point it’s compartmentalized enough that if they need to leave to other things I can carry on, and also I can focus a bit more on the gameplay components.</p>
<h3 id="iteration-and-automation">Iteration and Automation</h3>
<p>I do a lot of notes and value on spreadsheets, that end up on the game, for testing, and especially during prototype phase I found myself copying pasting values around. So I took a couple hours to write some python scripts that grab cvs, parse them and export the proper ScriptableObjects for what I need. This speeds up quick testing and changing values. I was getting tired of changing them directly on Unity inspector.</p>
<h2 id="next-steps">Next steps</h2>
<p>My next move is balancing out a initial progress/difficulty ramp. Right now I have most stuff “just there”, in a sort of chaotic way, to test out the fun of it, but I need to make a proper vertical slice. At this point I do have several mechanics in place, but a lot buggy and a bit all over the place, so I have to streamline that to make it more cohesive. I don’t have any new mechanics still missing (so far), so just cooking up a small prototype that I could just hand over to someone and have them play, and see what happens.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Unity enshittification round 2, moving on to custom tech.</title>
      <link>https://www.david-amador.com/2023/09/unity-enshittification-round-2-moving-on-to-custom-tech/</link>
      <pubDate>Sun, 24 Sep 2023 09:57:43 +0000</pubDate>
      <guid>https://www.david-amador.com/2023/09/unity-enshittification-round-2-moving-on-to-custom-tech/</guid>
      <description>&lt;p&gt;After mostly a &lt;a href=&#34;https://www.david-amador.com/2023/09/the-unity-enshittification-proprietary-tech-dangers-and-mostly-not-talking-about-what-im-doing/&#34; title=&#34;The Unity enshittification, proprietary tech dangers, and mostly not talking about what I’m doing.&#34;&gt;week of anxiety,&lt;/a&gt; for thousands and thousands of developers, Unity &lt;a href=&#34;https://blog.unity.com/news/open-letter-on-runtime-fee&#34;&gt;changed the rules again&lt;/a&gt;, and first glance, it’s better for the immediate problems it would cause for active and in-development games. They removed the retroactive aspect of the “pay-per-game-install”, so only for someone on Unity 2023 LTS+ (launching next year) will that apply, current projects will not be affected. Small relief, as long as we can keep using existing versions with current Terms of Service. This will be impossible on mobile and consoles in a short time frame due to SDKs, but for PC should be fine.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>After mostly a <a href="/2023/09/the-unity-enshittification-proprietary-tech-dangers-and-mostly-not-talking-about-what-im-doing/" title="The Unity enshittification, proprietary tech dangers, and mostly not talking about what I’m doing.">week of anxiety,</a> for thousands and thousands of developers, Unity <a href="https://blog.unity.com/news/open-letter-on-runtime-fee">changed the rules again</a>, and first glance, it’s better for the immediate problems it would cause for active and in-development games. They removed the retroactive aspect of the “pay-per-game-install”, so only for someone on Unity 2023 LTS+ (launching next year) will that apply, current projects will not be affected. Small relief, as long as we can keep using existing versions with current Terms of Service. This will be impossible on mobile and consoles in a short time frame due to SDKs, but for PC should be fine.</p>
<p>So that’s good huh? Well not quite imo, because the rest pretty much maintains, more or less with some changes, Unity Plus still gone (although expected), but <a href="https://unity.com/pricing-updates">it’s a revenue/pay-per-install deal</a>, on top of the yearly license fees. I feel they fear they tainted their image so much they aren’t even forcing the Unity splash screen anymore, probably because players will now fear every Unity game will come with install tracking software.</p>
<p>I think the subscription plan, especially for mobile/consoles is needed, it’s a company and needs to make money to maintain the software, fair. However for me it’s a lot of the break of trust they did, and trying for the SECOND time (that I recall) to change the Terms of Service retroactively and only after industry-wide outrage did they backtracked slightly. So for now the new-new rules only apply to a smaller %, which I guess they expect will calm down most of the community. In a couple years they’ll pull some other stunt and we’ll recall “oh right, they did this before”.</p>
<p>Furthermore, they had deleted the transparency repo with the Terms of Service from GitHub, which raised many eyebrows, when enquired to why they deleted the answer was “low views so it was deleted”. The repo is back up meanwhile, I mean, what the heck?</p>
<p><a href="https://twitter.com/unity/status/1705317639478751611"><img loading="lazy" src="/wp-content/uploads/2023/09/image-2.png"></a></p>
<h2 id="moving-forward">Moving forward</h2>
<p>So as I mentioned in last post I have been working on a prototype for what I hope I can turn into a new game, in Unity. I decided that I’ll continue working on the prototype in Unity (actually taking a break from work right now to write this), it would be slightly silly to change now. And when I feel most of the features are done, I’ll try to move to my own tech, yes again.</p>
<p>I’ve been doing some research and tests and I’ll be dismantling <a href="/tags/quest-of-dungeons/" title="Quest of Dungeons development update">Quest of Dungeons</a> engine, which was all <a href="https://en.wikipedia.org/wiki/Object-oriented_programming">OOP</a>, to adding <a href="https://en.wikipedia.org/wiki/Entity_component_system">ECS</a>, using <a href="https://github.com/SanderMertens/flecs/">Flecs</a>, this is a major thing I’m taking with me from my time using Unity, I like that it helps solving a lot of issues sometimes, even if full ECS is not the solution for me. But having that will be nice, I can see the benefit now. Another thing might also be trying to mimick Prefabs and/or ScriptableObjects, that would be nice, but that’s just in the back of my head at the moment. I already started the process of integrating Flecs, so slowly and gradually, and hopefully, when it’s time to switch engine it will be a suitable alternative. If not well, better not update to 2023LTS I guess.</p>
<p>At least this is the plan right now, who knows, maybe I’ll reach a point where it feels too frustrating to rewrite it all in a different engine and language (c# to cpp), or ran out of budget to do so, plans do change. But at the moment at least it moves forward like this.</p>
<h2 id="list-of-mostly-open-source-game-engines-and-frameworks">List of mostly open-source game engines and frameworks</h2>
<p>Using suggestions I compiled a list of game engines and frameworks, mostly open-source and free, but there are a few with licenses, regardless, for anyone looking to test alternatives, there’s a bunch of stuff.</p>
<p><a href="https://github.com/DJLink/list-of-game-engines-and-frameworks">https://github.com/DJLink/list-of-game-engines-and-frameworks</a></p>
<p>My personal suggestion for anyone who wants to try the “make my own engine” approach, for 2D stuff (don’t get too deep the rabbit hole on 3D), will be to use SDL to bootstrap window creation, input etc. I’ve used that in a bunch of stuff in the past and can vouch for it.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
