DEV Community

Cover image for MOKSHA v0.0.8 — Engine Refactor, Prarabdha Timer & Visual Clarity
Weird Codes
Weird Codes

Posted on

MOKSHA v0.0.8 — Engine Refactor, Prarabdha Timer & Visual Clarity

🕉️ MOKSHA — DevLog v0.0.8

"जो भीतर है, वही बाहर दिखेगा।"

Release: v0.0.8 — Visual Clarity + Engine Refactor + Prarabdha Mechanic

Date: July 2026

Developer: @weirdcodesofficial

Play: weirdcodes.itch.io/moksha

Support: ko-fi.com/weirdcodes


🌱 क्या है MOKSHA?

MOKSHA एक browser-based HTML5 Canvas game है जो Sanatan Shastra और Karmic philosophy पर आधारित है। यह कोई simple platformer नहीं — यह एक आत्मिक यात्रा है जहाँ player की हर action का कर्म-फल होता है।

नाम जपो, माया से बचो, समर्पण करो — और मोक्ष पाओ।


🔧 v0.0.5–v0.0.8 में क्या हुआ?

यह release एक बड़े refactor और कई gameplay improvements का परिणाम है। v0.0.4 monolithic index.html था — अब यह एक पूरा modular ES6 architecture है।


⚙️ Engine Refactor — Mixin Pattern

सबसे बड़ा change था engine.js को तोड़ना। एक 1000+ line file को 4 focused modules में split किया:

engine.js   →  Slim orchestrator (core loop, state)
karma.js    →  KarmaMixin (Vedic logic, maya, actions)
physics.js  →  PhysicsMixin (glow-rings, particles, pools)
state.js    →  StateMixin (HUD, alerts, animations)
Enter fullscreen mode Exit fullscreen mode

Composition pattern use किया — हर Mixin engine instance को this से access करता है। इससे circular dependencies से बचाव हुआ और zero breaking changes हुए।

Object.assign(KarmaEngine.prototype, PhysicsMixin, KarmaMixin, StateMixin);
Enter fullscreen mode Exit fullscreen mode

यह decision शुरू में डरावना लगा — लेकिन जैसे वेदान्त में कहते हैं, "विभाजन में भी एकता" — सब modules मिलकर एक KarmaEngine बनाते हैं।


📜 प्रारब्ध Timer Mechanic

यह v0.0.8 का सबसे philosophically important feature है।

शास्त्र-आधार: "प्रारब्धं भुज्यते एव" — प्रारब्ध कर्म को भोगना ही पड़ता है, उससे बचा नहीं जा सकता।

Game में:

  • पुनर्जन्म पर संचित कर्म → प्रारब्ध बनता है
  • प्रारब्ध timer countdown करता है (10s per unit)
  • Timer active होने पर samaya decay ×1.15 तेज़ होती है
  • 10 नाम active हों तो भोग-गति हो जाती है
  • MAX_PRARABDHA = 15 cap — game unplayable नहीं होगा
  • प्रारब्ध unit घटने पर purple explosion + बंधन-मुक्त sound

यह mechanic player को encourage करता है कि वो नाम-जाप जारी रखे — यंत्र-विद्या नहीं, भक्ति-मार्ग।


🔔 Canvas Alert Queue System

पुराना DOM-based alertBox element हटाया। अब Canvas पर slide-in alert cards हैं:

  • Top-right position — gameplay से अलग
  • 4 categories: achievement 🟢, guidance 🟠, warning 🔴, info 🔵
  • Smooth animation: 80px right से slide-in, fade-in/fade-out
  • Max 3 alerts stack — overflow पर oldest हटे
  • Depth fade: नीचे वाले cards slightly dim

साथ में Contextual alerts भी add हुए:

  • samaya < 200 → "समय समाप्त होने वाला है"
  • samaya < 100 → context-aware नाम-समर्पण guidance
  • पहली चेतना-जागृति → achievement card
  • Samarpita milestones (10/25/50) → achievements
  • Chakravaata nearby → शंख guidance
  • Drishti blocked → ज्योति guidance

🎨 Visual Clarity Improvements

Gameplay में बहुत clutter था। इसे systematically fix किया:

Timer Pills — punyaTimer और prarabdhaTimer अब player के ऊपर pill background के साथ दिखते हैं। दोनों active हों तो side-by-side।

Floating Text StaggerMIN_Y_GAP = 22px enforce किया। Multiple events एक साथ आएं तो texts overlap नहीं होंगे। X jitter भी ±10 → ±28px किया।

Chain/Orbit Separation — prarabdha heavy chain की globalAlpha = 0.72 और Y position +8px shift। orbit rings का extraGlow cap 28px maximum।

notifyText Banner — पुराना abrupt full-screen black overlay गया। अब centered pill (340×56px) है जो smoothly fade-in/out होती है।


👁️ चेतना-जागृति → कर्म-रक्षा

गीता 4.37: "ज्ञानाग्निः सर्वकर्माणि भस्मसात् कुरुते"

जब samarpita ≥ 50 पूरा होता है और चेतना जागती है — अब isKarmaImmune = true हो जाता है। माया का कर्म-प्रभाव शून्य। पुनर्जन्म में भी यह carry होती है।

यह शास्त्र-संगत है — जागृत आत्मा पर कर्म-बंधन नहीं लगता।


🐛 Bug Fixes

  • bandhanaMukta audio key typo fix (manifest mismatch)
  • Per-second alert flooding बंद — unit-change पर ही alert
  • Naam jaapa duplicate alert fix
  • DOM alertBox → canvas triggerAlert() (gamepad, tab-switch)
  • ctx.roundRect() polyfill — older browser support
  • Reincarnation पर isNaamaJaapa, _prevSamaya200 reset

📊 Stats

Metric v0.0.4 v0.0.8
Architecture Monolithic ES6 Modules
Source files 1 (index.html) 7 src files
Alert system DOM single string Canvas queue (3 cards)
prarabdha No timer Bhog timer + penalty
Browser support Chrome 99+ Chrome 80+ (polyfill)

🛣️ आगे क्या?

✅ v0.0.9 — Prarabdha refinements (done)
⬜ v0.1.0 — Pankhudi directional mechanics
Enter fullscreen mode Exit fullscreen mode

v0.1.0 पहला major gameplay overhaul होगा — pankhudi की active direction से power shoot, maya pull, और indriya pull drive होंगे।


🙏 समर्पण

यह game एक solo project है — code, design, audio, philosophy — सब कुछ अकेले।

अगर यह journey अच्छी लगी तो:

ॐ नमः शिवाय 🕉️


Moksha

Top comments (0)