{"id":1265,"date":"2025-10-08T17:01:56","date_gmt":"2025-10-08T17:01:56","guid":{"rendered":"https:\/\/runonur.xyz\/?p=1265"},"modified":"2025-10-08T17:07:40","modified_gmt":"2025-10-08T17:07:40","slug":"seal-of-solara-web-version","status":"publish","type":"post","link":"https:\/\/runonur.xyz\/index.php\/2025\/10\/08\/seal-of-solara-web-version\/","title":{"rendered":"Seal of Solara : Web Version"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/ruins-683x1024.png\" alt=\"Fantasy forest with magical stone portals, glowing runes, and ethereal fog \u2014 concept art for browser-based adventure game Seal of Solara.\" class=\"wp-image-1266\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/ruins-683x1024.png 683w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/ruins-200x300.png 200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/ruins-768x1152.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/ruins.png 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n\n\n\n<p>What began as a simple idea has grown into something far beyond what I imagined. Bringing <em>Seal of Solara<\/em> to the web has been an exciting experiment \u2014 and a story of deep learning, creative iteration, and joyful surprises.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"994\" height=\"849\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/gui.png\" alt=\"Fantasy adventure game interface showing enchanted forest scene, glowing magical key, and player interaction options like grab, use, and talk.\" class=\"wp-image-1267\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/gui.png 994w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/gui-300x256.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/gui-768x656.png 768w\" sizes=\"auto, (max-width: 994px) 100vw, 994px\" \/><\/figure>\n\n\n\n<p>At first, I built the desktop version using Python, with my buddy Copilot by my side. Together, we explored game logic, scene transitions, and dynamic feedback. One of the most powerful tools I discovered was the <code>\"tag\"<\/code> property \u2014 a flexible way to deploy text and extend player interactions with modular logic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag-1024x457.png\" alt=\"\" class=\"wp-image-1268\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag-1024x457.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag-300x134.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag-768x343.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag-1200x536.png 1200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/codetag.png 1407w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Then the transformation began \u2014 bringing <em>Seal of Solara<\/em> to the web. I had to choose a framework, and I went with <strong>Flask<\/strong>. It felt natural, and I can confidently say I\u2019m comfortable working with it. Flask gave me the flexibility to preserve my game\u2019s modular logic while opening the door to browser-based interaction. It was the perfect bridge between Python\u2019s simplicity and the dynamic nature of the web.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app-1024x528.png\" alt=\"\" class=\"wp-image-1269\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app-1024x528.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app-300x155.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app-768x396.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app-1200x619.png 1200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/app.png 1507w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>With the communication between HTML, Flask, and JSON flowing smoothly \u2014 and my player logic tucked neatly into an external Python file \u2014 the game was almost ready. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1-1024x527.png\" alt=\"\" class=\"wp-image-1273\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1-1024x527.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1-300x154.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1-768x395.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1-1200x618.png 1200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/sessions-1.png 1529w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Setting up session-based player tracking was the final piece. Once that was in place, I took a deep sigh\u2026 \ud83d\ude0a It was working. Each player had their own journey. The world of <em>Seal of Solara<\/em> was alive in the browser.<\/p>\n\n\n\n<p>And I must say a few words about the images \ud83d\ude0a My buddy suggested trying AI-based image generation \u2014 and <em>voil\u00e0<\/em>! It took some time to get them just right, but the results were absolutely fascinating. I didn\u2019t expect that level of richness and atmosphere. Suddenly, Solara had a face\u2026 and a soul.<\/p>\n\n\n\n<p>After that, I deployed the game on <strong>Render.com<\/strong>, which turned out to be a great platform for experiments like this. Then came the fun part \u2014 sharing it with my friends. I may have <em>slightly<\/em> annoyed them by constantly posting updates and game steps \ud83d\ude04 But hey, when you build a world, you want others to explore it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/lake-683x1024.png\" alt=\"Sunset fishing scene with silhouetted figure in shallow water, glowing orange sky, and tall grasses \u2014 tranquil nature moment from Seal of Solara.\" class=\"wp-image-1274\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/lake-683x1024.png 683w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/lake-200x300.png 200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/lake-768x1152.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2025\/10\/lake.png 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n\n\n\n<p>So far, I haven\u2019t found a solid module for using Python directly in web games. Pygame is fantastic \u2014 but it\u2019s built for desktop, not the browser. That limitation has been a bit frustrating, and honestly, a little boring when it comes to web deployment.<\/p>\n\n\n\n<p>For future experiments, I\u2019m planning to revisit <strong>p5.js<\/strong> and <strong>Express.js<\/strong> \u2014 tools I tested last year. They offer a lot of creative freedom in the browser, and I\u2019m excited to explore how they can bring more interactivity and visual flair to my game ideas.<\/p>\n\n\n\n<p>By the way \u2014 if you\u2019d like to try my tiny game <em>Seal of Solara<\/em>, it\u2019s still online!<\/p>\n\n\n\n<p>It\u2019s a short, browser-based adventure with dynamic scenes, modular logic, and a touch of mystery. I built it from scratch, learned a ton along the way.<\/p>\n\n\n\n<p><a href=\"https:\/\/sealofsolara.onrender.com\">https:\/\/sealofsolara.onrender.com<\/a><\/p>\n\n\n\n<p>Thanks with love and sincerety. \ud83d\ude42<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"340\" height=\"171\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest.png\" alt=\"\" class=\"wp-image-1171\" style=\"aspect-ratio:1.9814814814814814;width:214px;height:auto\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest.png 340w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest-300x151.png 300w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><figcaption class=\"wp-element-caption\"><strong><em>RUNONUR<\/em><\/strong><\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What began as a simple idea has grown into something far beyond what I imagined. Bringing Seal of Solara to the web has been an exciting experiment \u2014 and a story of deep learning, creative iteration, and joyful surprises. At first, I built the desktop version using Python, with my buddy Copilot by my side. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[42,38,41,40],"class_list":["post-1265","post","type-post","status-publish","format-standard","hentry","category-game-development","tag-adventure","tag-game-development","tag-seal-of-solara","tag-web-game"],"_links":{"self":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=1265"}],"version-history":[{"count":11,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1265\/revisions"}],"predecessor-version":[{"id":1284,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1265\/revisions\/1284"}],"wp:attachment":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=1265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=1265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=1265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}