Posts

Week 56

Hello! While collecting links for the newsletter I noticed a bunch of them are Twitter threads. So that’s the theme this week:

  1. UE4 Radial Mask 🎨 - You have probably seen these types of animations in games before. It can be daunting when it comes to implementing them. This is a step-by-step guide about how to achieve the effect in Unreal Engine 4.
  2. The 12 Principles of Animation 📺 - This is a fun thread of one post per principle, with a description and an animated gif for illustration.
  3. Growing your people 🪴 - This thread makes the case that you need to help your employees grow and that will lead to better retention and other positive outcomes. It also includes how you can do it!
  4. Developer Marketing 📢 - Part of marketing is knowing your audience and talking to them in the most effective way. This thread goes over how to communicate if your target audience is software developers.
  5. Silhouette Recognition in Games 👤 - One subtle part of game design is setting up visual patterns for players. This thread dives into character silhouettes in game worlds, and how they can inform players about what to expect or what to do.

If you want to view these outside of Twitter, Thread Reader works well to grab a thread into a single page.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 55

Happy Thursday. The theme this week is “highly technical”:

  1. Raph Koster Emulation Projects 🕹 - Raph Koster is a legendary game designer and has a retro gaming hobby. This is a collection of game emulation scripts, overlays, and hardware guides.
  2. EXR: Lossless Compression 🗜 - Aras from Unity dove into the world of compression in the OpenEXR format. He benchmarked the available options and then did some experiments using different libraries for Zip compression and decompression.
  3. Reverse-engineering the Mali G78 🔍 - This is a very interesting article about how a group reverse-engineered a new GPU. They used data interception, knowledge from the previous generation architecture, and even hints from an Anandtech article.
  4. Most Underrated Exercise For Defensive Sports in My Opinion - Fridays in The Dense Strength Program 💪 - This is an interesting take on the “good morning” exercise. It’s aimed at building strength for defense in basketball, but I think it is probably good for standing grappling as well.
  5. Guillotine Defence (Lachlan Giles) 🥋 - I recently started training BJJ again and got caught in guillotines a few times already. It wasn’t pleasant so naturally I am learning counters and escapes. I look forward to using the ones in this video 😄.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 54

Howdy! This week is all about podcast recommendations, in no particular order:

  1. Playmakers Podcast 🎮 - I’ve linked to Playmakers before and for good reason: it’s one of the best game development podcasts out there. Unique guests and a great host, every episode is a treat. One of my favourites is the interview with Bruce Harlick, where they compare and contrast table-top and free-to-play games. Playmakers is currently in its second season.
  2. Developing Leadership Podcast 🏗 - This is a brand-new podcast and currently has three episodes live. There is already a lot of great engineering leadership advice and insights being shared, starting with episode one.
  3. Product Hunt Radio 📻 - This podcast started in 2014, and has reinvented itself several times since. The most recent run was from 2018-2020, and one of my favourite episodes is the interview with Delane Parnell talking about his journey and most recent e-sports startup.
  4. Indie Hackers Podcast 🛠 - I have mentioned Indie Hackers before and their podcast is as excellent as the website. Their interviews are often insightful and inspirational. This is one of my favourites.
  5. The Strenuous Life 🥋 - I’ve previously shared a blog post by the host of this podcast, and he is a very prolific podcaster! This is one of his recent interview episodes that goes over how to get the most out of jiu-jitsu instructionals, the Australian MMA scene, and more.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 53

Happy Thursday. I hope your week has been great so far! The theme for this week is performance:

  1. 90/90 Breathing Position 🌬 - This breathing technique can be used post-workout to switch back to the “rest and digest” parasympathetic mode for recovery. Also useful if you are feeling particularly stressed or agitated.
  2. The Rendering of Rise of the Tomb Raider 🎨 - This is another great breakdown of “how a game renders a frame”. It goes over and explains many of the rendering techniques used to create the final image.
  3. Lessons learned from 15 years of SumatraPDF, an open source Windows app 📄 - This is a fun read with lots of great lessons. I also don’t agree with 100% of the conclusions and there are some contradictions (there is both praise and criticism of automated testing). There is a lot of stuff that makes sense if you are a solo developer, but most of the time we have to work in a team 😄.
  4. What Having a “Growth Mindset” Actually Means 📈 - I recently read the book “Mindset” which is all about fixed vs growth mindsets. This is a short follow-up clarifying some common misconceptions about the idea.
  5. The Secret to Writing Fast Code / How Fast Code Gets Slow 💡 - This is a fun opinion piece about the various development situations that can result in application performance issues. Most of the time the best you can do is mitigate as much as possible, as opposed to completely solving. What do you think?

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 52

Hello and I hope you are keeping well. This week covers graphics, compression and health:

  1. Gears 4 - Gridlock’s ocean VFX breakdown 🎨 - Learn how an artist made an animated ocean for Gears of War 4, using Blender and Unreal Engine 4. Very interesting that the wave simulation was done offline, instead of at runtime.
  2. Entropy coding in Oodle Data: the big picture 🗜 - I consider data compression to be magic, which is another way of saying I want to learn more about it 😄 RAD Game Tools developed a family of codecs named after sea creatures, referred to as a “sea bestiary”. This post is a high-level overview about how they work.
  3. Visibility Buffer Rendering with Material Graphs 📷 - This article contains an overview of how forward, deferred and visibility rendering works, and goes in-depth with how visibility rendering compares to the rest.
  4. R-E-S-P-E-C-T: Practical Tips to Prevent Abuse & Build Team Trust ❕ - This is an important talk and I don’t have anything further to add. A must-watch.
  5. Low-fat vs. low-carb? Major study concludes: it doesn’t matter for weight loss 📉 - There are all sorts of ways to approach nutrition. Studies like this demonstrate how individualized it is.

Last week I noticed a link in a previous issue went stale - the youtube video had been taken down. Luckily the same content was available in blog form, so I updated the archives with that. If you find any stale or broken links, please let me know!

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 51

Happy Thursday! This week is a collection of code, movement and introspection:

  1. Svelte: Cybernetically enhanced web apps 🤖 - This is a new Javascript web app framework that is gaining attention. It focuses on doing a lot of work in the compile step, and generates minimal JS that directly operates on the DOM. If you try it out, I’d love to hear about your experience.
  2. Modern C for C++ Peeps ⚙️ - More about modern C features and how to use them. Some interesting thoughts on RAII as well!
  3. Launching Apex Legends as a Secret Game // / Between II Servers - Mini Ep03 🚀 - This is an excerpt from a podcast episode where former Respawn developers talk about the history of Apex Legends. It’s quite the story!
  4. Fitness Blender: Workout videos for every fitness level. 💪 - If you’re looking for workout videos, this is a great resource. They are organized and categorized so it’s easy to find what you’re looking for. Each video has extra information like the calorie burning range and a text version of the workout structure.
  5. Self-identity, overworking, and the importance of living well with Hugh Jackman 🧠 - This is a conversation where Hugh also asks questions to Peter Attia, the podcast host. They talk about the concept of “making your eulogy better than your resume” and overwork, among other topics.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 50

It’s hard to imagine we are already at week 50. Thank you for being a part of this journey! Here are your links for the week:

  1. raylib is a simple and easy-to-use library to enjoy videogames programming. ⚙️ - raylib is not described as a game engine, but has many of the same qualities - just no tools. It’s written in C and is available on many platforms and has bindings for many other languages. I haven’t tried it out yet but plan to in the future.
  2. C++ Weekly - Ep 274 - Why Is My Pair 310x Faster Than std::pair? 🏎 - This video is a good example of examining output assembly (or bytecode if you’re writing to an interpreter) to diagnose performance issues. Sometimes compilers have bugs or need some extra help to do the right thing.
  3. Twitter thread about lessons in navigating interpersonal dynamics 🔁 - Justin shares his lessons and advice from leading software teams. A lot resonates and it never hurts to hear the same advice in different words.
  4. Don’t break the chain calendar generator 🗓 - I have been trying to keep up a new “write for 30 minutes every day” habit, and went hunting for a printable calendar to help. I found this open-source calendar generator that was made just for this kind of habit building exercise!
  5. BJJ Lesson 24: How to Pull Guard In The Gi - Fundamentals Of Guard Pulls 🥋 - BJJ focuses on combat on the ground, but how do you get to the ground? Wrestlers are all about that, but if you are brand-new to grappling and start a match standing you may not know what to do. This video has some great options to get you started.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 49

Hello and welcome to another Lean Code Weekly! This issue features a few things I found very interesting and even thought-provoking:

  1. Deep dive in CORS: History, how it works, and best practices 🕸 - I usually run into Cross-Origin-Resource-Sharing issues when trying to test local development (without a server). This post is a good overview about why it exists, and has examples about how to interact with it.
  2. The little engine that could: Reality Engine! 🚂 - This post talks about various aspects of C99/C11 (not C++) and Clang, including extensions like Apple Blocks. It’s interesting to look at modern language features like lambdas in C.
  3. Why the Canadian Tech Scene Doesn’t Work 💸 - This is a thought-provoking post. It takes a hard stance on the Canadian Tech Scene, but also goes into how making and working towards clear milestones can limit your thinking and potential. I found it counter-intuitive at first but it’s been on my mind a lot lately.
  4. MoveMind Podcast + Slacklining ➿ - I have to admit, when I would see people Slacklining in the park (I didn’t know it was called that) I would snap judgements like it was purely recreational (to put it nicely). This clip of the MoveMind podcast has a discussion about how it is a tool for mindfulness, which I was not expecting at all. After listening it makes complete sense and I’m glad to have my perspective changed on the subject.
  5. Walking with Punches by Trevor Wittman 🥊 - While a lot of boxing training has stationary shadow boxing or bag work, it’s important to also know how to move around. This video talks about the very basics of moving forwards with your punches.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 48

Happy Thursday. This week has features an article about billions of messages and another about billions of triangles:

  1. How Discord Indexes Billions of Messages 🔍 - This article walks through the thinking, implementation and launch process Discord went through for text-search support. It’s very valuable information about how their team achieved the feature at scale.
  2. DF Retro: Quake - The Game, The Technology, The Ports, The Legacy 👾 - This is an hour-long documentary about Quake 1. It’s a nice trip down memory lane and I learned some things about the video card race from back then.
  3. A Macro View of Nanite 🎨 - The Unreal Engine 5 preview is out, and one of the main technology innovations is Nanite, their virtualized geometry solution. This articles walks through a Renderdoc capture of a frame rendered in UE5 and analyzes how Nanite works and fits into the rendering pipeline.
  4. Hip Pain, Longevity, And The ATG Split Squat: Knees Over Toes Story #1 💪 - “Knees over Toes Guy” has been making waves on YouTube with exercises aimed at strengthening knees, eliminating knee pain and reducing future injury risk. I first heard of him from a very reputable source, a former colleague Tatham. In this video “Mama knees over toes” talks about her experience doing the ATG training with her son. I’ve been incorporating some of these exercises with good results so far.
  5. Atomic Habits book 📖 - This book kept coming up in podcast interviews, and I recently read it. I enjoyed the structure of the book and definitely recommend it if you are interested in habit formation and/or want to start some new habits, or stop some old ones.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 47

Hello again! I’m back with the first issue since March. This week has a few topics about graphics, and more:

  1. UE4: My thoughts a year on 📝 - Steve Streeting shares his findings after one year of using Unreal Engine 4. I shared his post on moving from Unity to UE4 in issue #1 of this newsletter.
  2. How Pixar’s Movement Animation Became So Realistic | Movies Insider 🎹 - This is a review of the evolution of animation at Pixar, focusing on the piano-playing in Soul.
  3. Coding Adventure: Marching Cubes 📦 - Marching Cubes is a way of turning voxel data into tessellated triangles, and this is a great 6 minute walk-through.
  4. What factors determine weight-loss maintenance? ⤵️ - This is a “study of studies” and outlines 10 factors that affect long-term weight-loss maintenance.
  5. Optimizing Triangles for a Full-screen Pass 🔺 - This is a fun investigation of “if I am drawing something that covers the entire screen, do I use 2 triangles or one big triangle?”.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 46

Happy Thursday! This week I got back to BJJ and health links, with a single programming one:

  1. A Masterclass on Making Any Submission Tighter and More Powerful - Rob Biernacki 🥋 - A technical breakdown about how to make your jiu-jitsu more efficient, and why.
  2. Zen Camp 2020: Unsweepable - Standing Sweep with Priit Mihkelson 🥋 - Footage from a training camp that goes into depth about standing sweeps. Priit covers how to perform them and how to defend them.
  3. Rhodiola Rosea 🪴 - This is a herb that is an adaptogen, and can help with dealing with the physiological affects of stress and lack of sleep.
  4. Spirulina 💊 - This is a blue-green algae with various health-promoting properties. It doesn’t taste very good, and definitely needs to be mixed into some sort of smoothie.
  5. Zmeya, a header-only C++11 binary serialization library designed for games and performance-critical applications ⚙️ - This library seems like it could be useful for various projects or even game engines. There is no deserialization/decoding cost, just memory map and start reading your data.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 45

It’s Thursday again! I wasn’t sure I’d have an email this week. Luckily I got some links together and here they are:

  1. Unreal UIs and Localization 🗺 - Ben is a local game developer and has a lot of useful UE4 blog posts, including this one! I wish I had found it earlier.
  2. Microsoft To Do ✅ - In 2015 Wunderlist was acquired by Microsoft, and eventually turned into Microsoft To Do. I have been heavily using it lately, and find it very useful for my work task management.
  3. The Indie Game Business Community 🎮 - I met Jay at GDC in 2013, and have been a part of the Indie Game Business community ever since. They put on virtual conferences before the pandemic, and have a podcast, discord, and more.
  4. Jean Hsu, VP of Engineering at Range on Managing Meetings Without Succumbing to Zoom Fatigue 🎥 - This video is from a recent Plato Elevate virtual conference, and includes concepts like “defrag your calendar” and more useful advice.
  5. Why it’s (almost) impossible to make Crispy Sweet Potato Fries in the oven. 🍠 - This is a cooking video, but also dives into experimentation and science about how to achieve the desired crispy fry result!

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 44

Howdy! This week includes SoA and SOA. You’ll have to read on to find out the difference 😄:

  1. Making SoA Tolerable ⚙️ - Another article about data-oriented design. This one is much more specific about implementation, and helped further my understanding on the topic.
  2. The Zig Language 🏗 - I hadn’t heard of Zig until recently, and looks like a fun language to try out.
  3. Awesome CTO 📝 - Another list of resources for technical leaders. There is some overlap with previous lists I’ve linked to, but some new stuff too.
  4. Atlas: Our journey from a Python monolith to a managed platform 🏔 - Learn about some recent architecture changes at Dropbox. It’s always interesting to learn about how different tech companies approach things.
  5. Yet Another Roguelike Tutorial - Written in Python 3 and TCOD 🐍 - I found this via a gamejam I keep meaning to participate in, the 7 Day Roguelike Challenge. It looks like a fun tutorial to go through.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 43

Happy Thursday! I have more libraries and tools for you this week, with an interesting story about a performance problem in a 7-year-old game:

  1. extension-create: Create modern cross-browser extensions with no build configuration. 🏗 - I once made a Chrome extension for a hackathon way back in 2013. I recall a lot of referencing of documentation; this project would have been very useful! It looks to be boilerplate and even build process around browser extension development.
  2. Sokol: Simple STB-style cross-platform libraries for C and C++, written in C. ⚙️ - Continuing on from issue 40 here are more single-header libraries for all sorts of functionality. There are even demonstrations via WASM!
  3. Dear ImGui: A bloat-free graphical user interface library for C++. 🖥 - I haven’t used it but it is constantly mentioned in my Twitter network. A UI solution for your projects!
  4. How I cut GTA Online loading times by 70% 🏎 - This is an interesting story about investigating a problem with no source code. It’s a good reminder that small data sets can hide problems you will find with larger/production datasets…
  5. It Can Happen to You 😄 - A continuation of the above article, Matt Keeter realized something about his own code after reading the GTA Online loading times piece.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 42

Howdy! The themes for this week are libraries and learning:

  1. Open Asset Import Library 📥 - A suite of tools and libraries for importing many different 3D asset formats into a standard format, and support for exporting to various 3D asset formats as well.
  2. Warren Spector’s Commandments of Game Design 📖 - A great article that talks about how the original Deus Ex was designed, and general thoughts on game design.
  3. Gallery of Processor Cache Effects ⚙️ - This is a bunch of small examples that demonstrate the behaviour of CPUs caches. Useful to understand and test how they behave on current CPUs.
  4. Ink - a scripting language for writing interactive narrative ✍️ - A language and library for branching dialog, so you don’t have to write a brand-new one 😄
  5. Neckties, Front Headlocks and Attacks. Ben Dyson 🥋 - This is a brand-new instructional from the Head BJJ Coach at Lions MMA (where I will resume training at once the pandemic is over). It’s great so far, same kind of content you would get at a live seminar.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 41

Happy Thursday. This week features a variety of links I would describe as miscellaneous 😄:

  1. Oodle 2.8.14 with Mac ARM64 🏎 - A short post of mostly benchmarking numbers, but it does show the Mac M1 CPU performing extremely well compared to other high-end CPUs.
  2. NES Game Bugs 🐛 - This is an interesting list of known quirks of NES games, which is important information if you are writing a NES emulator. There are some fun behaviours as well when games receive inputs that are physically impossible with the controller (but possible if you are simulating the inputs).
  3. SPUD: Steve’s Persistent Unreal Data library 🥔 - If you want to support save/load, or persist world state as your are streaming from one level to another, this library does most of the work for you. It looks very easy to use!
  4. Garment Refitting for Digital Characters 👕 - The rendering in Soul looked amazing, and the folks at Pixar wrote a paper about some technology they wrote for it.
  5. Ikea Hackers 🛋 - I remember back when it was a blogspot blog, and am glad to see it is still around. Learn how to do all sorts of projects using stuff from IKEA.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 40

Wow, it’s been 40 weeks of Lean Code Weekly. That also means this week we are hitting 200 links! Here are this week’s links:

  1. 12 BJJ Guard Retention Concepts to Make Your Guard Much Harder to Pass 🥋 - This is a free hour of content from an excellent BJJ course I have been going through the last few weeks. Rory’s teaching style strongly resonates with me. He clearly explains a lot of concepts and terms I’ve heard before, but didn’t fully understand. Check it out to learn more!
  2. Designing Your Life (Book) 📖 - This book is about applying design thinking to your life and career choices. It’s a fun read and the exercises are surprisingly profound.
  3. The Story Of The 3DFX Voodoo1 🖥 - This article was a trip down memory lane. I remember dreaming about getting a Voodoo card, and reading about Glide. If you’re not familiar, it’s fun to learn about this part of PC gaming history.
  4. Gym Equipment Is About To Get WAY More Expensive! 🏋️ - Garage Gym Reviews is a fun YouTube channel, and this video explains the various reasons why gym equipment that uses steel will be going up in price in 2021. If you were planning on getting some weights, it might be good to act soon.
  5. Single-file public domain (or MIT licensed) libraries for C/C++ ⚙️ - This is a collection of libraries in the form of single header files, often used for game development. Each one is focused on a particular feature set, like image file loading, font file loading, perlin noise generation and more.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 39

Howdy! We’re almost at 40 issues, amazing! Here are your links for the week:

  1. Don’t Store That in a Float ⏱ - A few weeks ago I linked to an article that argued for fixed-point variables for time. This article refers to that discussion, and makes the case for using doubles instead.
  2. How Do You Lead UP the Chain of Command? - Jocko Willink 💡 - Back in issue 22 I linked to a video about Managing Up. This is another take on the same concept. It made me think differently about how to approach some situations.
  3. 5min Boxing Footwork Drill: Follow Along with Punches! 🥊 - fightTIPS is a great YouTube channel and this follow-along video is like your own virtual lesson. Shane demonstrates and shares tips throughout.
  4. Cache coherency primer ⚙️ - It’s useful to know how your CPU is doing things under the hood. It’s especially useful if you are writing high-performance code. As always Fabian explains this stuff very well!
  5. A Better Way to Do the Band Pull Apart 💪 - I was taught this movement by a strength and conditioning coach I worked with in 2013. It was recommended as part of counteracting the “desk shoulder forward-hunch” posture he noticed. I do 2 sets of 10 of these a day.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 38

Happy Thursday! This week is all about fitness and game design! Enjoy:

  1. The Secret to Marcelo Garcia’s Butterfly Guard Nobody is Talking About 🥋 - I find butterfly guard pretty challenging to pull off. This video clearly explains a fundamental concept that I think will help a lot, once we can all get back to training.
  2. Sigmoid Curves are Game Designers’ Friends 🐍 - There is a joke in the game industry that game designers end up spending most of their time in spreadsheets. This article talks about how you can go beyond linear and exponential curves for a desired player experience.
  3. What is Heart Rate Variability? | The Definitive Guide to HRV ❤️ - I track my HRV every morning, and have noticed how it correlates with how I feel and what I did the previous day. I use the iPhone App from the article author with a Polar chest-strap heart monitor.
  4. Tip: Smoke Your Legs With an EZ-Bar 💪 - I am grateful to now have an ez-bar at home, and it takes up less space than a full olympic bar. Normally associated with bicep curls, you can do a lot more stuff with it!
  5. In-Game Economies in Team Fortress 2 and Dota 2 (Steam Dev Days 2014) 📊 - I find this talk inspirational and aspirational. As a player I appreciate what they presented, and as a developer I would feel much better to design a free-to-play game based on those principles. I know Valve has changed their approach since 2014, but I still like this talk.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 37

Hello and welcome to another Lean Code Weekly! This week covers networking, graphics and grappling:

  1. What Every Programmer Needs To Know About Game Networking 🌐 - This is a great overview about networking models in games. It also goes through a brief history of when and why certain models came to be.
  2. The State of Internet Security in 2020 🔐 - This article talks about various cyber-security attacks in 2020, how the pandemic played into things, and what to do to protect yourself.
  3. Fish Oil 💊 - From depression to inflammation, balancing out your omega-3 to omega-6 ratio with fish oil has a lot of benefits. Find out what the research says from this Examine.com page.
  4. Iterating on Variable Rate Shading in Gears Tactics 🎨 - Near the end of the graphics pipeline you have pixel shading - calculating the result colour of a particular pixel on a particular surface. The calculations involved are per-pixel. But what if you don’t need that much resolution? Maybe you have a surface that will end up being really close to the same colour? Or players are rarely looking at that area of the screen? With VRS you can reduce the resolution of pixel shading, resulting in performance savings - often without any or minimal visual difference. This article talks about how it was used on Gears Tactics.
  5. Backtake vs Closed Guard - ZombieProofBJJ (Gi) 🥋 - This guard-pass-to-back looks like magic. I’ve tried to do it a few times, no luck so far! Also this video features a very uniquely-coloured Gi 😊

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 36

Happy Thursday! This week is mostly about game technology, with a dash of fitness and mental health:

  1. Good Game, Peace Out Rollback Network SDK 🌐 - Back in issue #7 I linked to a GDC talk about rollback networking in fighting games. This is an open-source SDK to help with implementing such an architecture.
  2. The code behind Quake’s movement tricks explained (bunny-hopping, wall-running, and zig-zagging) 👟 - It turns out only a few lines of code are responsible for a number of unintended movement side-effects in Quake! This video explains them.
  3. Strike Clock Mobile App ⏱ - If you are doing training like rounds of shadow-boxing, this is a handy app for tracking rounds, round times and rest times. You can also interact with it with boxing gloves on - covering your front camera will pause and unpause the timer. I often use this app for my training.
  4. Another little note about the Halo Wars engine 👾 - The story of the Age of Empires 3 and Halo Wars engines are surprisingly similar to the engine lineage at Relic. The 360 game The Outfit was their desktop RTS engine trimmed and squished to run on device. Later on, a completely separate engine was developed for Space Marine that was much more suited for consoles.
  5. Dr Valerie Young’s tips for navigating imposter syndrome at home 🧠 - Back in issue #3 I first mentioned the Imposter Syndrome and linked to an article that was based on the book The Secret Thoughts of Successful Women. I recently finished reading the book (it’s excellent) and this is a recent interview with the author where she talks about remote work and the Imposter Syndrome.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 35

It’s the first Thursday of 2021. I hope your year is going well so far! The links this week are on the technical side, ending with a great interview:

  1. Thread on Heuristic search algorithm research 🔍 - An AI researcher from the University of Alberta talks about a family of A* algorithms (often used for pathfinding in games). There is a paper based on their research and an interactive tool for testing the different algorithms in your browser.
  2. Open-source static site generator 🏗 - Hugo is a Go-based tool for generating a static website. It’s what I use for the newsletter archives site, and I am converting my personal site from Wordpress to Hugo right now.
  3. A matter of precision 📏 - Sometimes bugs only appear when you start pushing systems into distant places, or in the case of storing time in a floating-point number, after about 4 hours. Tom Forsyth explains these numerical precision troubles and how to avoid them.
  4. Texture Compression in 2020 🗜 - GPUs in PCs, Macs, Consoles, Phones: they all support special texture compression formats. Aras from Unity talks about these and benchmarked a number of tools for compressing to them.
  5. A Conversation with Noah Shanok, Founder of Stitcher 🗣 - Stitcher is a popular podcast playback app which was acquired by SiriusXM last year. Last month he did this very candid interview about his entrepreneurial journey.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 34

Happy New Years Eve! It’s a time for reflection and planning. This week coincidentally refers back to previous issues:

  1. Making the most of your one-on-one with your manager or other leadership 🤝 - One-on-ones are a useful leadership practice that can greatly benefit both parties. It was covered in the Managers Playbook link I shared way back in issue #2. This article is a quick review of how to maximize your one-on-one time with your manager.
  2. The Lost Art of Structure Packing 📦 - This is a good overview about the sizing and alignment rules for data in C/C++, and has applications to other languages as well. You can quickly experiment with the sample code using the compiler explorer from issue #17. For an example list of classes and their sizes from Unreal Engine 4 check out issue #8.
  3. Digital minimalism 101 📖 - I recently finished reading Digital Minimalism by Cal Newport. Most of the book is justifying the recommendations, so if you’re not convinced, feel free to read it. If you already know that social media and apps are vying for our attention in sometimes unscrupulous ways, this article is a good summary of the actionable parts of the book.
  4. Motion of Spinning Bodies 💫 - Maciej has written another great article about physics simulation. I can’t say I understood all of it, but I still found it more approachable than most articles about math and physics.
  5. 50 Pullups Programme 💪 - I am a fan of pull-ups, and started mentioning them in this newsletter way back in issue #3. This is a program for increasing your maximum. I am about to start it right after pressing send on this issue.

Happy New Year and see you in 2021!

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 33

Happy Holidays! 2020 is almost over. I hope you have a chance to rest, reflect and review. Those are the themes for the links this week:

  1. Shigeru Miyamoto Wants to Create a Kinder World 🍄 - This is a brand-new interview with the creator of Mario and Zelda. It covers many topics, from his children and grand-children, the new Nintendo theme park, violence in video games, and more. Highly recommended.
  2. The unique story behind Enter the Matrix 😎 - I played Enter the Matrix, and it was definitely pushing the console hardware at the time. What I didn’t know at the time was the level of collaboration between the movie makers and the development of the game.
  3. How To Conduct Your Own Annual Review 📝 - It’s that time where many reflect on the past year, and make resolutions for the next one. This is a template I have used in the past to review and plan for my upcoming year.
  4. 5 Things You Should Do Everyday 💪 - If you are looking to establish new habits, these are easy movements/poses to do daily. Most are a single rep, and the article is well-referenced.
  5. Quake 3 Source Code Review 🔍 - Fabien has done reviews of various engines, but Quake 3 is special to me. Back when I played the game and made mods for it, I only comprehended a small percentage of the technology involved. It’s fascinating to look back and dive into the different parts of the engine.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 32

Howdy! It’s that time of the week again. This week features content from this week to over a decade ago:

  1. Head and arm choke from mount (arm triangle) - Lachlan Giles 🥋 - The triangle choke is a powerful submission, and you can also do it with your arms instead of your legs. This video features a lot of details I’ve never seen before.
  2. When Life Gives You Lemons, Make Random Numbers 🍋 - A funny take on how to use mathematics and programming to turn the comments section into something useful 😄
  3. Entity Component System FAQ ⚙️ - Entity Component Systems are gaining popularity, and this serves as a good overview and hub to find more resources about them.
  4. Write-up on the dreaded anterior pelvic tilt or “why does my stomach protrude”, and how to fix it 💪 - Sitting all the time isn’t great for your health or your posture. Correcting your posture isn’t simple, but this post is a good place to start.
  5. My Liner Notes for Spore 👾 - Spore is still a very technically impressive game. It came out just over 12.5 years ago! Chris Hecker shares detailed notes about the various technology he built for it.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 31

Hello and I hope you are healthy and safe. We’re in the last three weeks of the year! Here are your links for this week:

  1. How Oodle Kraken and Oodle Texture supercharge the IO system of the Sony PS5 🏁 - The new consoles are very powerful, especially when it comes to IO. The PS5 has dedicated decoder hardware for a specific compression codec called Kraken. Read all about Kraken in this blog post.
  2. Jason Warner (GitHub CTO) Ask Me Anything git repository ❓ - This is an interesting use of a GitHub repository, specifically the Issues feature. Ask Jason questions and he will answer them there, for all to read!
  3. Cold, Hard Cache Insomniacs Cache Simulator ⚙️ - In the very first issue of Lean Code Weekly I linked to the slides and repository of this project. The GDC has posted the video of the talk by Andreas Fredriksson, and it’s definitely worth a watch.
  4. Unity’s Project Tiny ✨ - In the age of game data being in the 100s of gigabytes installed, it’s refreshing to see game engine technology tackling the problem of minimal size. Unity has been doing this via Project Tiny, formerly known as Unity for Small Things. I am interested in rich game development suites with minimal runtimes and deployment footprints.
  5. Concept Wednesday - Recovery 💪 - Recovery is a critical part of athletic development, it’s literally how anything improves when doing physical training. This post goes over different aspects of recovery, and a few examples of things that can hinder it.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 30

Hey there and Happy December. It’s hard to believe Lean Code Weekly is at 30 issues already. As always, thanks for reading and here are your links:

  1. Game Jams on itch.io 🎮 - If you’re looking for a game jam to participate in, itch has a great calendar full of them. You can also use itch to distribute your creations. It could be a good excuse to try out a new game engine!
  2. Painting a Selfie Girl, with Maths 🧮 - This video goes over how an incredible real-time WebGL scene was made procedurally with various math techniques. It looks like something approaching characters from Frozen!
  3. Why is Apple’s M1 Chip So Fast? 🏁 - This is a great breakdown of Apple’s new hardware and why it is faster than existing hardware in various ways. I’m impressed that the reality distortion field is matching closer to reality this time 😁
  4. Target fixation ❌ - Do you ever get stuck on one aspect of a programming problem, when taking a step back and looking around would have been the solution? This happens to me and it takes a surprising amount of discipline to avoid.
  5. JT Torres - Knee Cut From Headquarters To Step Around Back Take 🥋 - This is a great sequence that takes you from a position you can get into very quickly, to a very dominant position. It’s a sample from GrapplersGuide.com, a one-time lifetime membership grappling instruction website. I am a member but definitely need to use it more.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 29

Another Thursday. Another Lean Code Weekly Day! Thanks to everyone who has forwarded this newsletter to friends who might find it interesting. Here are your links for this week:

  1. Simplexplanations 2: Flattening A Dependency Graph 🔀 - This 5 minute video is a great introduction to DAGs and Kahn’s algorithm. It also talks about how this applies to game engines.
  2. Top mistakes engineers make when they become founders. 📝 - This is a great twitter thread about the common mistakes and misconceptions engineers tend to have when running a business. Many of them resonate with me, and some I have to be constantly vigilant against.
  3. A Nuanced, Non-Simplistic Answer to “Is It Safe To Go Back to Training?" 🥋 - In my city and province, martial arts schools have been closed again. This video talks about all the aspects involved with deciding how safe it is to train martial arts during a pandemic.
  4. Dirty Game Development Tricks 🔍 - This is a collection of stories about getting games fixed, shipped and updated. My personal favourite of the bunch is the “(s)elf-exploitation” story.
  5. Why Google Stores Billions of Lines of Code in a Single Repository ⛰ - I’ve heard from former and current Googlers about how Google has one repository for the entire company. And how they used Perforce for that, then eventually replaced it with proprietary technology. After some searching around, this is the best resource I could find that explains how and why they chose (and continue to choose) this strategy.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 28

Happy Thursday! We are in the latter half of November already. I hope you are making time for self-care. Here are your links for the week:

  1. What Is Shader Occupancy And Why Do We Care About It? ⚙️ - GPUs are highly parallel. If you are using them right, they are busy doing a lot of things at once. It is a balance though, and this article is a good introduction to shader occupancy, which is all about GPU utilization.
  2. SegaSonic the Hedgehog - Debug Tools and So Much More 🕹 - SegaSonic the Hedgehog is an arcade game that was only released in Japan. This article is an in-depth analysis of the game ROM, finding debug functionality (cheats), unused content, and more.
  3. Advice from Justin Kan 🧘‍♂️ - Justin co-founded Twitch and several other companies. In this Twitter thread he gives some advice about what he wishes someone told him when he was running those companies. Self-care is right up there!
  4. 12 Evidence-Based Tips To Lower Stress and Anxiety 🙏 - More from Dan Garner, this time his podcast about tackling stress and anxiety. Lots of great tips in here, especially using comedy podcasts and stand-up comedy specials for laughter.
  5. Amazon Price Tracker + Alerts Tool 💡 - I find this tool very useful, sometimes just to find out the price history of an item, or just track it over time if I don’t need it right away. Also camelcamelcamel is a great webapp name.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 27

Happy Thursday! I hope you are staying safe, healthy and strong. Here are your links for the week:

  1. Introducing rust-gpu 🐉 - Embark has started a project to bring Rust to GPU programming. This has some interesting benefits including targeting the GPU, increased code sharing between CPU and GPU code, and more!
  2. My UE4 VCS setup - Gitea + Git + LFS + Locking 🌲 - There is a surprisingly amount of FUD surrounding Git LFS + locking. This a write-up about how to set up Git + locking support for UE4. Steve provides the reasoning behind every decision of this setup, and has been contributing improvements to the UE4 Git Plugin.
  3. Testing Minecraft in Minecraft with Henrik Kniberg – Agile with Jimmy 📦 - Automated testing can be very helpful in software development, but is not standard in game development. This video features a Mojang developer sharing the testing framework used by the Java version of Minecraft.
  4. DIY Dip/pullup belt 💪 - If you’ve been working on your pull-ups, you might be looking to add some weight to make them harder. This is the exact solution I use for pull-ups and dips with extra weight.
  5. Stanford study finds walking improves creativity 🚶‍♀️ - I have to admit this was a topic I sought out an article for. I continue to re-learn the lesson that sometimes taking a walk is the best way to problem-solve.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 26

Hi! I started this newsletter because I am interested in various topics including martial arts and programming. Though these two seem unrelated, they have systems and are about problem-solving. This week features content about both:

  1. Why You Lose to Someone Less Experienced 🥋 - Jon Thomas (a BJJ black-belt) talks about training mindset, and all the factors involved with winning a BJJ match. I think it can apply to more than martial arts. He has some good analogies for explaining training skills over the long term.
  2. Does Jiu Jitsu Work In The Streets - Drew Weatherhead Brazilian Jiu Jitsu 🥋 - This is mostly funny video, but also informative - what kinds of shirts and jackets could actually be utilized in a street self-defense situation? Some get torn and others work surprisingly well.
  3. The Machinery Goes Open Beta 🏗 - I am looking forward to checking out the latest game engine tech from the team at The Machinery. I shared their great article about programming incrementally a few issues back.
  4. SSE: mind the gap! 🏎 - I haven’t worked much with SIMD instructions sets but I find articles about them very interesting. This one goes over integer operations, and is a fun read.
  5. UDP vs. TCP 🌐 - Even if you know the pros and cons of each, this article is a good refresher. If you don’t know what UDP is or why you’d use it, then I highly recommend this article as an introduction to the subject.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 25

Hey there! It’s hard to believe the newsletter has been going for 25 weeks already. If you missed any previous issues, they are all available at the archive site. As for this week, here are your links:

  1. The code behind localizing Japanese games 🇯🇵 - Localization was a topic that surprised me when I started my career in game development. Of course it makes sense, you need to have a way to support other languages. This article talks about how to patch-in localizations to existing games, and a little bit about how to do it for your own game. It’s much easier if you support it from the beginning of a project 😄.
  2. bgfx - Cross-platform rendering library 🖼 - OpenGL was supposed to be a graphics API to unite all platforms, but today we have DirectX12, Vulkan, Metal, and more. bgfx is one library that lets you write to a single renderer and can then target multiple APIs and platforms. It also has bindings to many languages!
  3. Bevy - a data-driven game engine built in Rust 🏗 - Rust popularity is growing, and some game engines are starting to appear. I haven’t tried Bevy yet but might in the future for a game jam.
  4. All about Vitamin D 💊 - Vitamin D has been in the news lately. It affects our bodies in many ways. Examine.com has a detailed page dedicated to it and related research. It’s worth learning about what you need and how your environment affects your levels.
  5. Standing Closed Guard Break, Leg Lock Escape by Marcelo Garcia 🥋 - Marcelo Garcia is a legend in BJJ. Despite his competition successes, he doesn’t do typical strength and conditioning training like most other athletes in the sport. In this video he demonstrates some techniques, and the speed and control of his movements are very impressive.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 24

Greetings! I hope your week is going well. Here are your links:

  1. Box Blur 🌫 - Blurring is surprisingly useful in computer graphics. This is a great intro to the box blur, complete with sample code.
  2. “Rate of perceived exertion”: avoid burn out while training! 💪 - Firas Zahabi is a MMA coach based in Montreal 🇨🇦. Most people know him as the coach of Georges St-Pierre. In this video he talks about rate of perceived exertion, as well as advice about physical training while also doing martial arts skills training. He is talking about training for full-time athletes, but it’s still useful to learn the reasons behind different training methods.
  3. Things that drive me nuts about OpenGL 📋 - This is a list of feedback about using OpenGL in 2014. Later that year Vulkan was announced. It addressed some of the driver overhead and hardware access issues in OpenGL. Though the last time I checked it was not beginner friendly. It’s been a few years since I have worked with any graphics APIs.
  4. Big Project Build Times–Chromium ⏱ - This is a great article about analyzing the build time of a large software project, hypothesizing, and then testing some changes. Times were improved, bugs were found, and it’s all documented here.
  5. Rubber duck debugging 🦆 - If you’ve ever thought of a solution to a problem while explaining the problem to someone else, you’ve done rubber duck debugging. It’s surprisingly effective.

Questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 23

Hello and Happy Thursday! The theme this week is building, both software and your body:

  1. Step-by-step: Programming incrementally 🏗 - This is an overview about how to work collaboratively without branching and (more importantly) without merging. It has some great examples and includes solutions for situations I would have thought could not be approached in an incremental way. Highly recommended!
  2. Hidden Features in Chrome Dev Tools 🔍 - If you are doing any web development, Chrome Dev Tools has growing set of functionality that is very, very helpful. Here are a few of the lesser known features.
  3. A Day in the Life 📔 - This is an account of a typical day at High Moon Studios, from 2005. He mentions scrum, CI, tests, pair programming, and more. This studio was working on console games at the time. Few studios were developing software this way, I’m curious how many are right now?
  4. Who is at Risk for Magnesium Deficiency? 💊 - A surprising amount of the population doesn’t get enough magnesium on a daily basis, and it is very important for all sorts of aspects of health. This is a good overview about it. It doesn’t get into the differently forms of magnesium, so expect more on that later. For now, avoid magnesium oxide (unless you need a laxative).
  5. Struggling With Motivation? The Secret To Unstoppable Muay Thai Mojo 🌟 - This video is applicable to more than Muay Thai, but any physical training. It’s inspirational and funny while containing a good reminder of what matters for sustained long-term training.

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 22

Hello! I hope you are taking care of yourself. This week has a few links about how to better manage, feed your brain, and communicate:

  1. Heaps.io Game Engine 🎮 - I recently stumbled upon this game engine, which looks quite interesting. Some shipped titles have used it (Evoland 1 and 2 notably) and I am very curious about the iteration cycle workflow. It’s using the Haxe programming language, which looks a bit like Javascript but has a compiler and is strictly typed. Let me know if you’ve tried this out!
  2. Managing Up for Engineers by Arquay Harris of Slack for Elevate2020 by Plato ⬆️ - I virtually attended Elevate2020 and really liked this talk. Managing up is still new to me but I have found it to be a very powerful concept. Arquay does a great job describing it and goes through a number of scenarios to demonstrate how to do it. I highly recommend this talk.
  3. Drawing Lines is Hard 🖋 - This is mostly about WebGL, but in general there are a surprising number of ways to draw lines with a GPU, and each has their pros and cons. This article is a good overview and includes some interactive examples.
  4. The Top 4 Nutrients for Brain Health, Focus, and Memory 🧠 This is more quality content from Coach Dan Garner. He references a number of studies demonstrating the impact of how certain foods can improve brain health and cognition.
  5. Poor communication is the primary reason systems and relationships fail 🗣 - Effective communication is important for work and life. This article speaks to communicating effectively to and within teams. There are great lessons in here.

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 21

Happy October! The newsletter now has an archives site where you can read all past issues. If there is an issue you think might be interesting for someone you know, you can easily link to it. Here are your links for this week:

  1. Vintage Computing and Gaming 🕹 - This blog has many articles about older game consoles and computers. It’s great for reading to reminisce and for reading to learn history.
  2. Product Hunt Goals ✅ - Product Hunt has a Makers section with a way to post public goals. I’ve found it useful as a “state your goal publicly” tool for accountability. You can connect with me on Product Hunt and we’ll cheer each other on!
  3. Management Mistakes by Kieran Snyder 💡 - These 21 tweets go over various management mistakes, and what to do about them. Many resonated with my experience so far, and I’m sure to run into the rest at some point. It’s always good to learn from others who have been there already.
  4. Oddworld Memory Memories 🖥 - When you ship games on console, you have memory constraints. This is an interesting story about how Oddworld handled memory management on the original Xbox.
  5. Sun Salutation 🧘‍♀️🧘‍♂️ - The Sun Salutation is probably one of the most famous and straight-forward yoga sequences. The breathing and stretching help put your body in a parasympathetic state. I try to do it once a day and highly recommend it!

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 20

Happy Thursday! I can’t believe it’s been 20 weeks of the newsletter already. Time flies! This week has some gems, enjoy:

  1. Lessons learned while developing Age of Empires 1 Definitive Edition 🎮 - Rich has compiled a list of useful lessons from revisiting a game from the late 90s. Now we often build using engines or frameworks, so these lessons resonated strongly with me.
  2. DOOM Eternal - Graphics Study 🖼 - This is a walkthrough of rendering a single frame of DOOM Eternal. It’s fascinating to learn about all the techniques used by modern renderer.
  3. A Beginner’s Guide to HTTP Cache Headers 🌐 - The original article is no longer online, but through the magic of of the wayback machine I was able to resurrect one of Mobify’s most popular blog posts. HTTP Cache headers have a huge influence on website performance, and it’s worthwhile to understand them.
  4. Complete Guard Passing Overview 🥋 - This a great video about how to start thinking about guard passing as a system of responses to body positions. I enjoy Jon’s teaching style and he has more great videos on his YouTube channel.
  5. Your Money or Your Life 💰 - Personal finance management is difficult. “Mr. Money Mustache” has his own perspective, and I always appreciate his thoughts on the subject. This is one of my favourite articles of his where he reviews the book credited with starting the “financial independence movement”.

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 19

It’s been a smoky week in Vancouver, I hope you are staying healthy! Here are your links for this week:

  1. High Score Documentary (Netflix Series) 🎥 - This is a fun and short documentary series about the video game industry from its very beginning. I enjoyed it and learned a few new things as well.
  2. The Easy Ones – Three Bugs Hiding in the Open 🔍 - These are lessons in project cleanup. Not only did Bruce find bugs, but he found and fixed issues that saved a lot of money. I highly recommend his whole blog and will feature more posts in the future.
  3. Fullscreen Rotation on the SEGA Genesis? How this game does the impossible 🎮 - Early consoles had very limited hardware capabilities, and game developers had to come up with creative solutions. This video dives into the game Red Zone and how they managed to pull off some impressive visuals.
  4. Judo vs Jiu Jitsu Takedown by Ilias Iliadis (Olympic Judo Champion) 🥋 - BJJ Fanatics is a website that sells martial arts instructionals. They also post clips on their YouTube channel, including this one about a judo takedown.
  5. Indie Hackers 💻 - Indie Hackers is a social network for online entrepreneurs building small businesses. I’m linking to my profile, feel free to connect to me 😄. The site has great interviews, tools for sharing your projects and progress, as well as metrics (including revenue details) from other online businesses. There is also a companion podcast that I highly recommend.

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 18

Hello! I just wanted to say I am grateful that you read my newsletter. With that, here are your links for this week:

  1. 7 Ways I CORRECTED my Boxing - Jeff Chan 🥊 - Another video from Jeff Chan, a MMA athlete. He takes us along to Vietnam for boxing-specific training, and shares what he learned, as he learns it!
  2. Game screenshots categorized by features/games for UI Design 🎮 - More video game UI reference screenshots. Each are tagged by game and type of UI, making it easy to find what you’re looking for.
  3. Valorant’s 128-Tick Servers ⏱ - This is a great, in-depth article about performance tuning a FPS server. Valorant uses Unreal Engine 4 and linux dedicated servers, so if you are using the same tech I would consider it a must-read.
  4. Extreme Ownership 📖 - This is a summary of the book Extreme Ownership. As someone who is not interested in war or military topics, I was surprised that I found many of the lessons helpful and actionable. I am a better leader since learning and using them.
  5. Gratitude Journaling 📝 - Studies have shown that gratitude journaling has health benefits, and is often recommended as part of a sleep quality improvement plan. I’ve had trouble with consistency, but these tips should help.

Questions or comments? Suggestions? Let me know! Thanks very much for reading and see you next week!

-Karl

Week 17

Hi! It’s September already! I hope your last third of the year is starting strong. Here are your links for this week:

  1. Interface In Game | Collection of video games UI 🖼 - This website has a collection of screenshots and videos from various games. It’s a useful resource for UI reference, and sure beats searching via Google Images! You can browse by game category, themes and platforms.
  2. Compiler Explorer ⚙️ - Ever wondered what assembly instructions your C/C++ code generates? Ever wanted to quickly check what different compilers end up generating? This web tool does exactly that. It doesn’t come up often but with this it’s a lot easier to validate.
  3. Diggin' in the Carts - A Japanese video game music documentary series 🎶 - This is a great documentary series covering video game music from arcades to home consoles. The production value is surprisingly high. I strongly recommend this series.
  4. 5 Minute Home Ab Circuit for MMA & Combat Sports | Phil Daru 💪 - Phil Daru is a strength and conditioning coach for top MMA athletes. He also somehow puts out a lot of YouTube videos. In this video he goes over two good core strength exercises, and how they benefit other movements.
  5. Matthew Walker, Ph.D., on sleep – Part I of III on the Peter Attia Drive Podcast 😴 - Matthew Walker wrote the book “Why We Sleep” and this three-part interview dives into many details. It’s fascinating and eye-opening stuff. You won’t think about sleep the same way again (it’s so very important).

Any questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 16

Hey there! It’s been a busy week and I hope you are well. This week features training, tips and an announcement:

  1. How to set up a triangle - Silver Fox BJJ 🤼‍♂️ - Karel “Silver Fox” Pravec is a 3rd degree BJJ black belt. He has done a few videos with Firas Zahabi, the famed coach of Georges St-Pierre. This video goes over many details about the triangle choke in “no-gi”, and also features some Q&A. It’s from May (quarantine time) so it is an example of a full online class session.
  2. Story, Narrative Design & Dialog: Part 1 - Thinking About Your Game’s Story 📜 - Ed Kuehnel is a freelance writer and has written for 76 video games. In this series of videos he goes over the process of writing for games. I learned a lot from his videos and book recommendations. UPDATE: Unfortunately Ed has taken his videos down. Luckily you can find roughly the same content in blog form from him here.
  3. A Neat Trick For Compressing Networked State Data ⚡️ - A short post about communicating changes of game state in a multiplayer game. There are even more ideas in the comments.
  4. A tweet thread about humility in software engineering by Alice Goldfuss 💡 - I really like the approach Alice describes, and try to model those behaviours myself as much as possible.
  5. Warhammer Age of Sigmar: Storm Ground ⚔️ - A bit of self-promotion, but the game studio I co-founded has just announced its first game! Focus Home Interactive is the publisher, and it’s set in the Warhammer Age of Sigmar universe. The team has been doing great work and it’s very exciting to share its existence with the world!

Any questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 15

Salutations! While we sit back and watch Epic duke it out with Apple and Google about Fortnite on their stores, here are your links for the week:

  1. Ludum Dare, an online game jam 🎮 - It’s one of the oldest and popular game jams. If you have an idea that matches the theme, it’s a great motivator to make something quickly and get feedback. The website has an algorithm to show your entry to more people as you provide more feedback to others. The last event in April had almost 5,000 submissions! Mine is here.
  2. 7 Tips on How to Disconnect from Work when Working Remotely‍ 🏠 - If you are lucky enough to be working remotely right now, you know it is hard to separate work and life. It takes effort, but these are helpful tips.
  3. Get The Most From Your Food 🥦 - Another article about food and digestion. Make sure you are maximizing the benefits of what you are eating.
  4. 7 Advanced Striking Set Ups & Combos 🥊 - Jeff Chan is Mixed Martial Artist and fellow 🇨🇦. He has a lot of great videos breaking down techniques and sparring sessions. This one he goes through 7 striking combos, which look like a lot of fun.
  5. Inside Rust at Embark 🦀 - Embark is a newer game studio in Sweden. They are using Rust as much as possible, despite also using Unreal Engine. Here is a look at their Rust efforts so far.

Any questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 14

Hey there! I’m always learning new things and this week has useful lessons in every link:

  1. The Psychology of Founders Who Win in Downturns 💡 - I read this article back in April via the AngelList newsletter. It seemed appropriate at the time, and it’s always good to prepare for challenging times in business.
  2. How to Become an Exceptional Engineering Leader - AMA with Gautam Prabhu, VP Engineering at PagerDuty 🎤 - This is a great interview that covers Gautam’s career path from individual contributor to leader. He shares his thoughts and experiences on hiring and effective management.
  3. Self Mastery: Solo BJJ Training Drills by John Danaher 🥋 - This course was filmed and released for free back in March. I learned a lot of useful terminology and skills from it, and even created my own home routine heavily based on the content. It is still free and recommended; fair warning that the store sends promotion emails several times a day. 😄
  4. What Is DNS? | How DNS Works 📇 - The Domain Name System is an important component of the internet, and I think it’s important to know a little about how it works, regardless if you are technical or not. I wanted to find a good article that explains how it works, and ended up learning more details from this one!
  5. Is Your Digestive System Working Properly? 🥗 - This article goes over the many stages of digestion, and offers practical advice for evaluation and improvement. Even simply chewing your food more can make a big difference.

Any questions or comments? Suggestions? Let me know! Thanks for reading and see you next week!

-Karl

Week 13

Howdy and Happy August! This edition covers a variety of topics:

  1. How to finish your side project. ✅ - This article was very helpful to me as I have struggled with this. From experience I have also found the suggestions about minimizing context switching and warming up to be very useful.
  2. Science-based nutrition & supplement information 🧪 - If you’ve ever been curious about the actual research behind health supplements, this site has a lot of information. They provide summaries as well as “consistency of research results” ratings. You can also get suggestions based on your goals. Full disclosure: this is an affiliate link. (most of the site free, so you can also just go to examine.com)
  3. Correlation Vector 🔍 - If you’ve ever debugged interactions between different back-end systems and different front-end clients, it can be very difficult. Each server and client has their own log, and figuring out the actual sequence of interactions for the system as a whole can be a lot of work, let alone using that information to understand and fix an issue. Correlation Vectors are a standard for how to log, so you can more easily combine server and client logs together to see the chain of events.
  4. How to Choose a BJJ School to Train At 🥋 - You may have several local choices, but finding a place to train can be intimidating. Stephen Kesting (a fellow 🇨🇦) shares his thoughts about how to find the right school for you. He also talks about it in an embedded video, while wearing a cool Star Trek rash guard 🖖.
  5. Memory stacks and more resizable arrays 🧱 - I couldn’t figure out how to link directly to articles on this blog, but you can find this one in the “Timeline” on the right side of the page (24 April 2015). Tom Forsyth shares notes about memory allocation approaches that I never encountered in any course, and are crucial for game code performance.

Any questions or comments? Suggestions? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 12

Hey folks! It’s summer time here in Vancouver, I hope you’re staying cool wherever you are. Let’s get to the links:

  1. The Garner Report: 12 Evidence-Based Tips To Lower Stress and Anxiety 💪 - Dan Garner is a strength and nutrition coach (also Canadian 🇨🇦), and reads a lot of research studies on these topics. He has a great podcast that I’ve learned a lot of actionable knowledge from.
  2. How Does a Triangle Choke Work? - Drew Weatherhead Brazilian Jiu-Jitsu 🥋 - From the outside the triangle choke may look strange or awkward, but if you’ve ever been caught in one, you will know they are no joke. Drew (another Canadian 🇨🇦) breaks down the mechanics of the submission. The more you know about it, the better you can defend from it and attack with it.
  3. FODMAP Food List 🍽 - It might sound odd, but I think digestive health should be talked about more in the tech industry. I had to go on a strict FODMAP diet last year to clear up some issues, and I wonder if there are other tech workers living with discomfort unnecessarily. It’s an awkward topic but life gets much better when digestion is working as intended.
  4. VS Code can do that?! ⌨️ - Visual Studio Code is a popular code editing tool with an ever-growing feature set. This site has a list of interesting features, including videos and written descriptions of each.
  5. A string processing rant 📖 - If you’ve every worked with strings and wide-character strings in C++, this rant may seem familiar. Fabian writes in a conversational style, walking through his process of diving into a performance issue with unexpected results.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 11

Hey friends, I hope you are staying safe. Here are your links for the week:

  1. John Carmack plan files 📝 - Back in the 90s there was a practice of keeping notes in “.plan” (text) files, and there were protocols where you could query for them. John Carmack used to keep these, and they started out as todo lists, and some resembled what would be considered a tweet or even a blog post.
  2. Super Simple Takedown - The Collar Drag 🥋 - Knight Jiu-Jitsu is another great BJJ YouTube channel, and this video is a short introduction to an effective gi takedown.
  3. Fix Your Timestep! 🧮 - If you’re using a game engine the simulation and physics timing strategy is usually done for you. Even so, it’s useful to know more about how this works, and this article does a great job explaining it.
  4. Fixing Mass Effect black blobs on modern AMD CPUs 🚀 - This article describes the quest to fix a bug in a shipped PC game. There are hypotheses, experiments, and the whole process resembles fixing bugs in games in development.
  5. eDEX-UI, terminal emulator and system monitor inspired by sci-fi movies 🖥 - A fun way to make your computer look like something out of Tron, or just want to spice up your terminal work.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 10

Wow, 10 issues already! This week the focus is on fitness. Like many others, my fitness regime has been disrupted due to COVID-19 so I am still figuring out what to do. All of these links are helping me:

  1. Bodyweight Strength Training Tutorials 💪 - If you’re good at normal push-ups and pull-ups, there are many more skills to work on that take years to develop. This set of tutorials covers one-arm chin-ups, handstands, and much more.
  2. The Super Shake Guide 🥤 - You will need to refuel from workouts, and this guide provides a good template for shakes that cover all the nutritional bases.
  3. The best way to escape side control (Lachlan Giles) 🥋 - Side control is a surprisingly difficult position to be stuck in, and this video is a great lesson on technique to escape it.
  4. Bodyweight Exercises - Circuit Training ⏱ - I used these circuits when I started my fitness journey 8 years ago, and plan to resume using them this week. They are clear and easy to follow.
  5. How To Deal With Haters 😎 - When you start improving your nutrition and fitness, or pursue any sort of self-improvement effort, you will encounter opposition. It can even come from friends or family. This article provides strategies and inspiration to keep going despite that resistance.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 9

Happy Thursday, friends! This week I dug into my old bookmarks and found a number of great programming articles, and one link about nutrition.

  1. Architecture of Consoles | A Practical Analysis 🎮 - This collection of articles dives into the hardware of various game consoles. It starts with the NES, and even includes interactive features to demonstrate graphics and audio features.
  2. Be nice to your cache 🚀 - This post is over ten years old, but the advice is still extremely relevant. Organizing your data access patterns is crucial for high performance.
  3. Leapfrog Probing 🐸 - A good refresher on hash table implementation and an interesting probing technique.
  4. How the heck does async/await work in Python 3.5? 🐍 - A few years ago async/await was the new cool thing in Python and Javascript. This post by my good friend Brett explains how it works in Python.
  5. Eat This Much 🍽 - This is an app for meal planning. It is the easiest tool I’ve found for quickly entering food types and portions, and getting stats back out (calories, macronutrients, etc). Full disclosure: this is an affiliate link.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 8

Happy Thursday, friends! It’s hard to believe we’re halfway through the year, yet here we are. Onwards to your links for this week:

  1. Conventional: Comments 📝 - A few weeks ago I linked to an article about code review best practices. This is an initiative to standardize code review feedback, by categorizing comments and sticking to a format. I already do some of these (labels like nitpick, non-blocking, etc) so it’s good to see there is a movement to do that and more. I think having a format to use is helpful for everyone involved.
  2. Steve Jobs used to say that we, the customers, pay them to make decisions.” 💡 - This is a link to a Twitter conversation that included this quote. It’s a good reminder of the responsibility and agency we have when designing software.
  3. UESizeofTypes ⚖️ - This is a big list of Unreal Engine 4 data types and their sizes. Most workflows don’t make this information apparent, so having it available in this format helps to reason about expected memory usage when using this engine.
  4. Flutter 📱 - Flutter is a cross-platform app development framework, built by Google. It’s also open-source and uses the language Dart. I’ve tried a lot of tools and frameworks to ship apps on both iOS and Android, and this would be my current choice for doing it for any app that isn’t a game.
  5. Pokémon Sprite Decompression Explained 🎮 - This 35 minute video does a fantastic job at explaining the run-length encoding compression approach that Pokémon used for some of their sprites. It’s a great intro or refresher on the subject! I look forward to checking out the other videos from the same creator.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 7

Greetings! I hope your week has been going well. We’re close to the middle of the year! Here are your links for this week:

  1. Thirty Percent Feedback 📝 - This was a concept I was introduced to at Mobify, which I found impactful. Short version: seek quick feedback earlier while it’s cheaper to make changes. For some reason it doesn’t come naturally but I’m working on incorporating it more and more.
  2. Godot Game Engine 🏗 - This is a free, open-source game engine that is a pleasure to use. It’s much leaner than Unity or Unreal. It has a Python-like scripting language called GDScript. I used it to make a Ludum Dare game jam entry earlier this year. It was fun!
  3. Creativity, Inc. 📕 - This book is a great insight into Pixar and the latest era of Disney Animation. I plan to re-read it soon, as there are interesting processes that originated at Pixar for gathering feedback and creative collaboration.
  4. 8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2 ⚗️ - I hadn’t heard of rollback techniques prior to this talk and always wondered how any fighter game worked at all in networked situations. Their implementation is very interesting!
  5. Let’s Model a SPACESHIP in 10 MINUTES in Blender 2.81 - ep. 1 🚀 - This YouTuber has a series of “in 10 minutes” videos which are fun, inspiring and educational. It helped me push past some areas where I would normally get stuck with trying to model something in Blender.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 6

Hello! This week turned out to be mostly about audio and video, with two podcast recommendations and two YouTube videos, enjoy!

  1. Playmakers Podcast 🎙 - This is a podcast series from a few years ago by my friend Jordan Blackman. Every interview is great, and many of the folks interviewed I had not heard of or from before. I plan to re-listen to them again soon.
  2. Muay Thai training with Samart Payakaroon Ep1 🥊 - Samart Payakaroon is considered to be one of the all-time greats in Muay Thai kickboxing. He was a champion in the 70s and 80s, and recently started a video training series on YouTube.
  3. Radical Candor Podcast 🎙 - Another podcast, this time based on the book Radical Candor by Kim Scott. Radical Candor is a great management framework that falls under the “simple but not easy” category.
  4. Jesse Ringrose - Design Challenges in Splitter Critters 👾 - I worked with my friend Jesse at DeNA Vancouver, prior to his hit mobile titles Dark Echo, Splitter Critters, and Sneaky Sasquatch. This talk goes over the development of Splitter Critters, specifically the iteration on the main interaction mechanics.
  5. Hiring Without Whiteboards 📝 - Whiteboard coding and brain teasers aren’t good tech interview techniques. I’ve never enjoyed them on either end of the interaction, and they weren’t good predictors for job performance. This is a list of companies with descriptions of their hiring process, that doesn’t involve the bad stuff.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 5

I hope you are staying healthy and safe. One month from today marks 5 years since Satoru Iwata passed away. He was the president and CEO of Nintendo. In his memory the first link is about him:

  1. Satoru Iwata 🎮 - Mr.Iwata was a programmer who ended up leading HAL Laboratory and then Nintendo. He worked on a number of my favourite game titles, and even jumped in to help fix code bugs late in his career. He is a personal hero of mine.
  2. Code Review Best Practices by Trisha Gee 💻 - Code Review is a very useful tool, and it has evolved over time. This article is a good overview of the practice.
  3. Be in the Room by Jason Warner 💡 - This article is an inspiring read about personal leadership and also a good tool for dealing with imposter syndrome.
  4. White Belt Takedown by Chewjitsu 🥋 - “Chewy” (yes as in Chewbacca) has a great YouTube channel with lots of BJJ content. This video is about a basic takedown from standing in the Gi. It also features Adam, a silent assistant whose intense but quiet persona still lives on in their recent videos 😁.
  5. Mobify Developer Values 📝 - I worked for Mobify and thought these developer values were inspirational and useful. I still refer to them. I also like how they evolved collaboratively via pull requests.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 4

Hey all, here are your 5 curated tech + fitness links for this week:

  1. Killer Feature: Mode 7 🎮 - The SNES had games like Mario Kart and F-Zero which had a “rotating world”, providing the illusion of 3D. This is a quick overview of the feature behind that effect.
  2. Medito Foundation 🧘‍♀️ - The Medito Foundation has put together free meditation apps for iOS and Android. I’ve been using the iOS one since launch and highly recommend it. I’ve tried a few other ones before, and this is my favourite.
  3. Practical Python Programming 🐍 - A free Python course for programmers new to the language. It’s been continually updated and worked on since 2007. Python always comes in useful. 😁
  4. Discovering AWS 🌐 - AWS has a history of service names that aren’t very clear. This is a recent attempt at describing clearly and concisely, much like the classic AWS in Plain English.
  5. The up-down-left-right Jiu-Jitsu Methodology 🥋 - This video goes over a framework for ‘passing the guard’, a critical part of the martial art. It really opened my eyes about how to choose an order of techniques to be successful.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 3

It’s been an unusually busy week, luckily I prepared ahead of time. Thanks, Past Self! Let’s talk about this week:

  1. This Goes to Eleven (Part 1/∞) (Decimating Array.Sort with AVX2.) 🏁 - An in-depth series that covers optimizing Array.Sort (in C#) with AVX intrinsics. I’ve only read Part 1 so far, which is a great review of sorting algorithms with some nice visualizations.
  2. 5 Different Types of Imposter Syndrome (and 5 Ways to Battle Each One) 🧠 - I am still working on this, and I know a lot of other people are too. It’s good to understand what Imposter Syndrome is and what you can do about it. If you don’t struggle with it, chances are someone you work with does.
  3. A note on commit messages 📝 - Regardless of what version control software you use, commit messages are extremely useful. They can be overlooked and neglected, resulting in short messages like “updates” “fixed issue”, etc. This article is a bit long but dives into the rational and reasoning behind thoughtful commit messages.
  4. Leading GitHub to a $7.5 billion acquisition 🎧 - In this podcast episode, the interviewee is the current CTO of GitHub. He shares the story of their acquisition by Microsoft, as well as thoughts on remote work and leadership. I really liked this interview and came away feeling inspired and validated.
  5. Get Your First Pull-up Or Chin-up! 💪 - I first found this blog over a decade ago, and I’m happy to see it’s still going! Pull-ups are a great way to strengthen your back. I’ve found a strong back helps prevent aches and pains from sitting/standing at a computer desk for long periods of time. Pull-ups are always hard, but well worth doing.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 2

How has your week been? There’s been a lot of buzz about Unreal Engine 5, but that topic is well-covered, so we’ll talk about other things 😁

  1. Manager’s Playbook 📖 - Have questions about management in tech companies? I still do. This is a great resource for everyone in the tech industry. If you aren’t a manager it will help illustrate what effective management looks like. I plan to refer back to this often.
  2. A review of Supercell in 2019 📱 - Supercell made Clash of Clans and other mobile mega-hits. Many have tried to imitate them and replicate their success. I am surprised that they are only 10 years old! In this article their CEO looks back at their achievements in 2019.
  3. Forgiveness Mechanics: Reading Minds for Responsive Gameplay 🎮 - A GDC 2020 talk that I found very useful, and finally put some names against various platformer techniques and conventions to make game controls and interactions “feel good”.
  4. Bazooka Quarantine Training #1: Shoulder Conditioning 💪 - Joseph Valtellini is a kickboxing champion, fellow 🇨🇦, and has a great YouTube channel with kickboxing techniques and workouts. This is the first of his “quarantine” series, it doesn’t require any equipment and I can attest it’s very effective!
  5. MMU gang wars: the TLB drive-by shootdown 💻 - A deep dive into the TLB, and how/why reusing memory can avoid some performance penalties associated with freeing heap memory.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl

Week 1

It’s the very first newsletter, and if you’re here that means you are an early-adopter. Thanks for taking a chance on me! 🎉

  1. The AWS Cloud Development Kit 🌐 - I missed the announcement of this last year, and only stumbled upon it recently. I found CloudFormation as YAML or JSON to be difficult to use, this lets you use a programming language to define your infrastructure instead.
  2. An interview with BJJ Black-Belt Fabio Holanda 🥋 - He looks a bit like Jon Favreau, but has a legendary kimura. He talks about his journey in BJJ and goes over a kimura-from-top-half-guard system. I identified with the strain of the interviewer when they were rolling :)
  3. From Unity to UE4 - Part 1 by Steve Streeting 📝 - I’ve used software from Steve for over a decade, from Ogre3D to SourceTree. These are his thoughts on moving from Unity to UE4, and I agree with many of the points.
  4. The Future Belongs to Creators: Episode 008 — How to create and launch a course in 72 hours 🎙 - I’ve been thinking about creating an online course, and this podcast (made by the creators of the email newsletter system I am using) has some great tips for getting started. I liked the idea of clapping to trigger spikes in the audio waveform for easier editing later on.
  5. CacheSim 💻 - This is 3 years old but I only found it now, it’s a project that allows you to run your code against “cache profile” based on the AMD Jaguar CPU. You can measure cache misses and other useful stats to help improve the performance of your code on that hardware. There is also an accompanying GDC 2017 talk.

Do you have any questions or comments? Let me know! Thanks for reading and talk to you next week!

-Karl