مستندات فنی (Devlog)

دو مقاله کوتاه برای نشان دادن درک فنی از پروژه.

مقاله ۱ — منطق Raycasting

در Raycasting برای هر ستون صفحه، یک پرتو از موقعیت بازیکن با زاویه مشخص ارسال می‌شود. پرتو با پیمایش شبکه‌ای (مانند DDA) در سلول‌های نقشه حرکت می‌کند تا اولین دیوار را پیدا کند. فاصله برخورد به ارتفاع دیوار روی همان ستون تبدیل می‌شود و در نهایت بافت روی دیوار نگاشت می‌گردد. به این شکل یک نقشه دوبعدی به نمای سه‌بعدی سریع و قابل بازی تبدیل می‌شود.

مقاله ۲ — چالش‌ها

یکی از سخت‌ترین مشکلات، Fish-eye effect بود که باعث می‌شد دیوارها در کناره‌ها غیرطبیعی دیده شوند. با اصلاح فاصله هر پرتو نسبت به زاویه دید (تصحیح پرسپکتیو)، تصویر طبیعی شد. همچنین مدیریت حافظه در C (آزادسازی منابع) مهم بود تا نشت حافظه و کرش رخ ندهد.