56,966 blogs · [ { "id": "01a0df1e-acc5-7025-9d72-15171748709a", "title": "JS13KGames 2026 - Post Mortem", "url": "https://timmykokke.com/blog/2026/2026-09-24-js13kgames-2026/", "published_at": "2026-09-24T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1482842605", "title": "MVVM In Web Games", "url": "https://timmykokke.com/blog/2026/2026-06-29-mvvm-in-web-games/", "published_at": "2026-06-29T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14837bd1c6", "title": "Automatic GitHub Deploy to itch.io", "url": "https://timmykokke.com/blog/2026/2026-05-01-github-deploy-to-itch/", "published_at": "2026-05-11T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1483df422f", "title": "Automatic Imports", "url": "https://timmykokke.com/blog/2026/2026-04-01-automatic-imports/", "published_at": "2026-04-01T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1483e92c99", "title": "Automatic Font Parsing for A-Frame", "url": "https://timmykokke.com/blog/2026/2026-03-30-aframe-font-asset/", "published_at": "2026-03-30T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14847eb0c2", "title": "Getting Started in Game Development", "url": "https://timmykokke.com/blog/2026/2026-03-23-getting-started/", "published_at": "2026-03-23T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148553f1d5", "title": "OSS LLM Model Name Codes Explained", "url": "https://timmykokke.com/blog/2025/2025-12-12-llm-codes/", "published_at": "2025-12-12T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1485f7a2ef", "title": "Closing the MVP Chapter", "url": "https://timmykokke.com/blog/2025/2025-07-12-closing-mvp-chapter/", "published_at": "2025-07-12T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1486c2bba8", "title": "Why WebXR", "url": "https://timmykokke.com/blog/2025/2025-06-14-why-webxr/", "published_at": "2025-06-14T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1487b24e13", "title": "Smooth Camera Follow", "url": "https://timmykokke.com/blog/2025/2025-04-30-player-follow/", "published_at": "2025-04-30T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148878f4fb", "title": "Loading Json", "url": "https://timmykokke.com/blog/2025/2025-04-28-loading-json/", "published_at": "2025-04-28T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148933049e", "title": "Supercharging Game Development with GitHub Copilot", "url": "https://timmykokke.com/blog/2025/2025-03-31-gamedev-with-copilot/", "published_at": "2025-03-31T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1489a9aaac", "title": "The Vibecoding Illusion", "url": "https://timmykokke.com/blog/2025/2025-03-25-vibe-coding/", "published_at": "2025-03-25T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148a8fb0f6", "title": "Basic Character Movement", "url": "https://timmykokke.com/blog/2025/2025-03-04-wle-character-movement/", "published_at": "2025-03-04T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148b6775f8", "title": "Using Singletons in Wonderland Engine", "url": "https://timmykokke.com/blog/2025/2025-02-14-wle-singletons/", "published_at": "2025-02-14T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148b9ecd3e", "title": "Demystifying Event Handling in Wonderland Engine", "url": "https://timmykokke.com/blog/2025/2025-01-23-wonderlandevents/", "published_at": "2025-01-23T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148c22e712", "title": "Eliza Effect", "url": "https://timmykokke.com/blog/2024/2024-12-10-eliza-effect/", "published_at": "2024-12-10T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148d19cfc0", "title": "Demystifying Blend Modes", "url": "https://timmykokke.com/blog/2024/2024-10-10-gl-blendmodes/", "published_at": "2024-10-17T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148dea3cb8", "title": "Discriminating Union Types In Typescript", "url": "https://timmykokke.com/blog/2024/2024-10-05-discriminating-union-types-in-typescript/", "published_at": "2024-10-08T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148e49ef8c", "title": "On The Fly Meshes", "url": "https://timmykokke.com/blog/2024/2024-10-02-on-the-fly-meshes/", "published_at": "2024-10-02T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148e543fc9", "title": "My Take on LLMs for Code", "url": "https://timmykokke.com/blog/2024/2024-07-31-using-llms-for-coding/", "published_at": "2024-07-31T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148ed53350", "title": "Visualizing Rosie using Wonderland Engine", "url": "https://timmykokke.com/blog/2024/2024-06-23-rosie-visualization/", "published_at": "2024-06-27T01:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148f45063a", "title": "Preventing Burnout as a Game Developer", "url": "https://timmykokke.com/blog/2024/2024-05-21-burnout-as-gamedev/", "published_at": "2024-05-21T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148f4bd8ad", "title": "The Road to AGI", "url": "https://timmykokke.com/blog/2024/2024-05-08-chatgpt-agi/", "published_at": "2024-05-08T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148f5b6bc5", "title": "Game Jams", "url": "https://timmykokke.com/blog/2024/2024-04-30-gamejam/", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c148fb63635", "title": "Escape from tutorial hell", "url": "https://timmykokke.com/blog/2024/2024-03-26-escape-tutorial-hell/", "published_at": "2024-03-26T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14902d9c29", "title": "Responsible AI", "url": "https://timmykokke.com/blog/2024/2024-03-14-responsibleai/", "published_at": "2024-03-14T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1490f19737", "title": "80-20 rule in game development", "url": "https://timmykokke.com/blog/2024/2024-03-05-80-20-rule/", "published_at": "2024-03-05T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149183302e", "title": "Different types of LLM models", "url": "https://timmykokke.com/blog/2024/2024-02-27-llms/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14921b09fe", "title": "Adding Knowledge to Rosie", "url": "https://timmykokke.com/blog/2024/2024-02-20-rosie-embeddings/", "published_at": "2024-02-21T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1492ccbbae", "title": "Semantic Kernel in VSCode", "url": "https://timmykokke.com/blog/2024/2024-02-18-prompt-development/", "published_at": "2024-02-18T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14932ecef3", "title": "Rosie and Azure OpenAI", "url": "https://timmykokke.com/blog/2024/2024-02-17-rosie-and-chatgpt/", "published_at": "2024-02-17T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14933526b2", "title": "Rosie and Semantic Kernel", "url": "https://timmykokke.com/blog/2024/2024-02-13-rosie-and-semantic-kernel/", "published_at": "2024-02-13T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1493b1ca63", "title": "Quest Passthrough", "url": "https://timmykokke.com/blog/2024/2024-02-07-passthrough/", "published_at": "2024-02-10T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14949b9e0c", "title": "Wonderland Component Life Cycle", "url": "https://timmykokke.com/blog/2024/2024-02-05-componentlifecycle/", "published_at": "2024-02-05T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14958425ad", "title": "Wonderland Components: JS vs TS", "url": "https://timmykokke.com/blog/2024/2024-01-28-componentjsvsts/", "published_at": "2024-01-29T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1495cb89e5", "title": "HMD.Link bookmarklet", "url": "https://timmykokke.com/blog/2023/2023-10-29-hmd.link-bookmarklet/", "published_at": "2023-10-29T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149631cd41", "title": "JS13KGames Devlog 1", "url": "https://timmykokke.com/blog/2023/2023-09-04-js13kgames-devlog-1/", "published_at": "2023-09-04T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1496693a4b", "title": "Summer of code", "url": "https://timmykokke.com/blog/2023/2023-07-16-summer-of-code/", "published_at": "2023-07-16T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c1496a5d9f5", "title": "7 Stages of AI", "url": "https://timmykokke.com/blog/2023/2023-07-07-7-stagesofai/", "published_at": "2023-07-07T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14976a4df0", "title": "MVP 2023", "url": "https://timmykokke.com/blog/2023/2023-07-07-mvp-2023/", "published_at": "2023-07-07T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14979f364c", "title": "Why WebXR", "url": "https://timmykokke.com/blog/2023/2023-07-03-why-webxr/", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14988f2eab", "title": "VR Screen Fade in Wonderland", "url": "https://timmykokke.com/blog/2023/2023-06-28-wlscreenfade/", "published_at": "2023-06-28T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14994c74dc", "title": "Composition Root in TypeScript", "url": "https://timmykokke.com/blog/2023/2023-06-20-compositionroot-in-typescript/", "published_at": "2023-06-20T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149962084f", "title": "Dependency Injection in TypeScript", "url": "https://timmykokke.com/blog/2023/2023-06-19-di-in-typescript/", "published_at": "2023-06-19T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149a0efdc4", "title": "SOLID in TypeScript", "url": "https://timmykokke.com/blog/2023/2023-06-16-solid-in-typescript/", "published_at": "2023-06-16T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149ae4cf95", "title": "Performance debugging with Spector.JS", "url": "https://timmykokke.com/blog/2023/2023-06-06-spectorjs/", "published_at": "2023-06-06T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149b358281", "title": "My Game Development Tools", "url": "https://timmykokke.com/blog/2023/2023-06-02-developmenttools/", "published_at": "2023-06-02T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149c00d988", "title": "VR Game Design Principles", "url": "https://timmykokke.com/blog/2023/2023-05-30-vr-game-design-principles/", "published_at": "2023-05-30T12:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149c70b4af", "title": "GameDev.tv Game Jam 2023 - Final", "url": "https://timmykokke.com/blog/2023/2023-05-29-gamedev.tvgamejam2023-final/", "published_at": "2023-05-29T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149d2a9a49", "title": "GameDev.tv Game Jam 2023 - Day 8", "url": "https://timmykokke.com/blog/2023/2023-05-28-gamedev.tvgamejam2023-day8/", "published_at": "2023-05-28T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149d6bf799", "title": "Tips for Crafting Prompts", "url": "https://timmykokke.com/blog/2023/2023-05-28-tips-for-crafting-prompts/", "published_at": "2023-05-28T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149d955a6a", "title": "GameDev.tv Game Jam 2023 - Day 7", "url": "https://timmykokke.com/blog/2023/2023-05-27-gamedev.tvgamejam2023-day7/", "published_at": "2023-05-27T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149e2edeba", "title": "GameDev.tv Game Jam 2023 - Day 6", "url": "https://timmykokke.com/blog/2023/2023-05-24-gamedev.tvgamejam2023-day6/", "published_at": "2023-05-26T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149e389879", "title": "Remote Localhost and Debugging", "url": "https://timmykokke.com/blog/2023/2023-05-26-localhost-and-debugging-webxr-on-quest/", "published_at": "2023-05-26T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149e55e5f7", "title": "GameDev.tv Game Jam 2023 - Day 5", "url": "https://timmykokke.com/blog/2023/2023-05-24-gamedev.tvgamejam2023-day5/", "published_at": "2023-05-25T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149ee935e5", "title": "RxJS and Wonderland Engine", "url": "https://timmykokke.com/blog/2023/2023-05-25-rxjs-and-wonderland-engine/", "published_at": "2023-05-25T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c149fbff811", "title": "GameDev.tv Game Jam 2023 - Day 4", "url": "https://timmykokke.com/blog/2023/2023-05-24-gamedev.tvgamejam2023-day4/", "published_at": "2023-05-24T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a08d2721", "title": "GameDev.tv Game Jam 2023 - Day 3", "url": "https://timmykokke.com/blog/2023/2023-05-23-gamedev.tvgamejam2023-day3/", "published_at": "2023-05-23T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a13097d5", "title": "GameDev.tv Game Jam 2023", "url": "https://timmykokke.com/blog/2023/2023-05-22-gamedev.tvgamejam2023/", "published_at": "2023-05-22T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a226e49f", "title": "Kishōtenketsu in Video Game Design", "url": "https://timmykokke.com/blog/2023/2023-05-17-kishotenketsu/", "published_at": "2023-05-17T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a2561778", "title": "Making AI-Generated Text More Natural: Tips and Tricks", "url": "https://timmykokke.com/blog/2023/2023-04-19-writing-better-prompts/", "published_at": "2023-04-19T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a2c4316e", "title": "Rosie On ChatGPT", "url": "https://timmykokke.com/blog/2023/2023-03-16-rosie-chatgpt/", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a2de17a9", "title": "AI for Skydome", "url": "https://timmykokke.com/blog/2023/2023-03-12-ai-for-skydome/", "published_at": "2023-03-12T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a3429569", "title": "Rosie AI", "url": "https://timmykokke.com/blog/2023/2023-02-16-rosie/", "published_at": "2023-02-16T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a3f30a70", "title": "WebXR on Azure Static Web Apps", "url": "https://timmykokke.com/blog/2023/2023-02-15-webxr-on-static-website/", "published_at": "2023-02-15T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a474244f", "title": "WebXR Pass-through on Quest", "url": "https://timmykokke.com/blog/2023/2023-02-03-webxr-pass-through/", "published_at": "2023-02-03T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a4f15d92", "title": "VR Controllers with Unity's XR Interaction Toolkit, Part 2", "url": "https://timmykokke.com/blog/2022/2022-12-04-vr-controller-with-xr-interaction-toolkit-pt2/", "published_at": "2022-12-04T00:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a5225e67", "title": "VR Controllers with Unity's XR Interaction Toolkit", "url": "https://timmykokke.com/blog/2022/2022-11-28-vr-controller-with-xr-interaction-toolkit/", "published_at": "2022-11-28T19:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a5426fc0", "title": "Js13K Post-Mortem", "url": "https://timmykokke.com/blog/2022/2022-09-14-js13kgames-postmortem/", "published_at": "2022-09-14T21:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a5cc8117", "title": "Building a Game for Js13K", "url": "https://timmykokke.com/blog/2022/2022-08-13-js13kgames-2022/", "published_at": "2022-08-13T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a6bef9f8", "title": "How to create a skydome for your game with Blender.", "url": "https://timmykokke.com/blog/2022/2022-05-14-3d-skydomes/", "published_at": "2022-05-16T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a737ead8", "title": "Making money with your WebXR games", "url": "https://timmykokke.com/blog/2022/2022-03-28-making-money-with-your-webxr-games/", "published_at": "2022-03-28T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a7a9afcc", "title": "VR Controller Haptics in WebXR", "url": "https://timmykokke.com/blog/2022/2022-03-14-controller-haptics-in-webxr/", "published_at": "2022-03-14T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a829506e", "title": "Assets from Unreal in WebXR", "url": "https://timmykokke.com/blog/2022/2022-02-05-exporting-assets-from-unreal-to-webxr/", "published_at": "2022-02-05T20:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a87c1f9e", "title": "Custom templates for Wonderland Editor", "url": "https://timmykokke.com/blog/2022/2022-02-01-wonderland-custom-template/", "published_at": "2022-02-01T17:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a92ce321", "title": "WebXR at Global XR Conference", "url": "https://timmykokke.com/blog/2021/2021-11-29-webxr-at-global-xr-conference/", "published_at": "2021-11-29T21:52:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a96d14e5", "title": "Creating an APK from a WebXR app", "url": "https://timmykokke.com/blog/2021/2021-11-05-webxr-pwa-apk/", "published_at": "2021-11-05T18:51:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14a9c51b94", "title": "From KenShape To WebXR", "url": "https://timmykokke.com/blog/2021/2021-06-06-from-kenshape-to-webxr/", "published_at": "2021-06-13T18:51:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14aa21b8b8", "title": "WebXR Discord", "url": "https://timmykokke.com/blog/2020/2020-09-27-webxr-discord/", "published_at": "2020-09-20T08:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14aa91e92f", "title": "How to debug Microsoft Edge on the HoloLens", "url": "https://timmykokke.com/blog/2020/2020-09-18-debuggingwebhololens/", "published_at": "2020-09-19T08:00:00+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14aafed4bd", "title": "Halloween Scream Stream", "url": "https://timmykokke.com/blog/2019/2019-11-03-halloween-scream-stream/", "published_at": "2019-11-03T14:26:11+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14abec5ef2", "title": "OBS HueShift Shader", "url": "https://timmykokke.com/blog/2019/2019-10-01-hueshiftshaderobs/", "published_at": "2019-10-01T22:13:11+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14ac45e76e", "title": "Twitch Stream Setup", "url": "https://timmykokke.com/blog/2019/2019-07-02-twitch-stream-setup/", "published_at": "2019-07-17T17:13:11+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14ac5fbd48", "title": "JS13KGames 2018 Post Mortem", "url": "https://timmykokke.com/blog/2018/2018-09-18-js13kgames-2018-postmortem/", "published_at": "2018-07-27T22:49:33+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14ad511083", "title": "Substance Painter to AFrame", "url": "https://timmykokke.com/blog/2018/2018-07-31-substance-to-aframe/", "published_at": "2018-07-27T22:49:33+00:00" }, { "id": "01a08c56-15bb-7321-bab7-6c14ae199e06", "title": null, "url": "https://timmykokke.com/blog/drafts/2026-01-30-webxr-in-2026/", "published_at": null } ] posts Claim your blog
Back to timmykokke.com
Blog · corpus.blog/blogs/timmykokke.com/posts

timmykokke.com

timmykokke.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

Undated