ساخت بازیها در مرورگر با سی پلاس پلاس، Lua و WebAssembly
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- کامپایل سی پلاس پلاس و Lua به WASM با Emscripten
- ساخت یک موتور بازی دوبعدی ماژولار از ابتدا
- افزودن اسکریپتنویسی، رندرینگ، ورودی و مدیریت دارایی Lua
- ساخت بازیهای مبتنی بر مرورگر واقعی و قابل بازی
پیشنیازهای دوره
باید به راحتی بتوانید سی پلاس پلاس اولیه (توابع، اشارهگرها و کلاسها) بنویسید، اما نیازی به دانش WASM یا Lua نیست.
توضیحات دوره
قدرت سی پلاس پلاس 20 مدرن، OpenGL و SDL2 را با WebAssembly مستقیماً به مرورگر بیاورید و موتور بازی دوبعدی خودتان را از ابتدا بسازید. در این دوره یاد میگیرید چگونه عملکرد نیتیو سی پلاس پلاس را با دسترسپذیری وب با Emscripten ترکیب کنید و موتور خود را به WASM کامپایل کنید تا مستقیماً در هر مرورگر مدرن اجرا شود.
شما فراتر از کشیدن اسپرایتها خواهید رفت و یک موتور واقعی با ویژگیهای زیر را معماری خواهید کرد:
- سیستم کامپوننت موجودیت (ECS) با EnTT
- فیزیک و برخوردها با قدرت Box2D
- اسکریپتنویسی Lua برای منطق گیمپلی انعطافپذیر و پویا
- رندرینگ OpenGL برای گرافیک کارآمد
- SDL2 برای ورودی، صدا و windowing
- داراییهای قابل hot-reload و معماری ماژولار آماده برای گسترش
تا پایان دوره، یک فریمورک بازی کامل و مبتنی بر مرورگر ساختهاید که میتواند بازیهای دوبعدی پیچیده را اجرا کند، در حالی که به طور کامل با سی پلاس پلاس 20 مدرن و تمیز نوشته شده و بهراحتی از طریق اسکریپتهای Lua قابل گسترش است.
کار را با یک بازی ساده شبیه تتریس شروع میکنیم، سپس آن را به یک پلتفرمر با فیزیک، tilemapها و کنترل اسکریپتنویسی واقعی گسترش میدهیم. در طول مسیر، الگوهای اصلی طراحی موتور، تکنیکهای مدرن سی پلاس پلاس و روشهای واقعی برای کامپایل متقابل و بهینهسازی بازیها برای وب را یاد میگیرید.
آنچه یاد خواهید گرفت:
- چگونه سی پلاس پلاس 20 مدرن را با Emscripten به WebAssembly کامپایل کنیم؟
- چگونه از SDL2 و OpenGL برای رندرینگ چندسکویی در مرورگر استفاده کنیم؟
- چگونه یک سیستم کامپوننت موجودیت (ECS) با EnTT بسازیم؟
- چگونه با Box2D فیزیک اضافه کنیم؟
- چگونه Lua را برای اسکریپتنویسی گیمپلی تعبیه و از آن استفاده کنیم؟
- چگونه معماری موتور بازی خود را به طور مرتب و موثر سازماندهی کنیم؟
- چگونه بازیهای دوبعدی واقعی و مبتنی بر مرورگر را با عملکرد سی پلاس پلاس بسازیم؟
فناوریهای مورد استفاده:
- سی پلاس پلاس 20
- WebAssembly (WASM)
- Emscripten
- SDL2
- OpenGL
- Box2D
- Lua
- EnTT (ECS)
این دوره برای چه کسانی است؟
- توسعهدهندگان سی پلاس پلاس که میخواهند بازیهای خود را به وب بیاورند.
- توسعهدهندگان بازی که میخواهند موتور دوبعدی خودشان را بسازند.
- برنامهنویسانی که میخواهند Emscripten و WebAssembly را در یک پروژه واقعی یاد بگیرند.
- هر کسی که میخواهد عملکرد نیتیو را با استقرار روی وب ترکیب کند.
چرا این دوره را بگذرانید؟
بیشتر آموزشهای WebAssembly در حد «Hello World» هستند. در این دوره، شما چیزی واقعی میسازید، یک موتور بازی دوبعدی کاملاً کاربردی که در مرورگر اجرا میشود. شما همه لایهها، از کامپایل سی پلاس پلاس 20، معماری ECS و یکپارچهسازی فیزیک تا اسکریپتنویسی، رندرینگ و استقرار را درک خواهید کرد.
این دوره طراحی موتور بازی مدرن برای وب را بهصورت گامبهگام با سی پلاس پلاس تمیز و قابل نگهداری و تکنیکهای سطح تولید آموزش میدهد.
این دوره برای چه کسانی مناسب است؟
چه مبتدی باشید و چه در مسیر تبدیل شدن به یک توسعهدهنده موتور، این دوره به شما مهارتهای واقعی و سطح پایین لازم برای ساخت و گسترش بازیها و ابزارهایتان را میدهد.
ساخت بازیها در مرورگر با سی پلاس پلاس، Lua و WebAssembly
-
مقدمه 01:15
-
نصب و راهاندازی Emscripten 09:17
-
نصب CMAKE 02:12
-
ایجاد یک پروژه کوچک تستی سی پلاس پلاس 13:18
-
کشیدن یک مستطیل با SDL 24:17
-
افزودن Lua 08:53
-
افزودن Sol2 09:16
-
انتقال مستطیل با Lua 04:49
-
تغییر از SDL Renderer به OpenGL - بخش 1 20:24
-
تغییر از SDL Renderer به OpenGL - بخش 2 16:28
-
ایجاد فایل RunProj Batch 04:25
-
بارگذاری تکسچرها - بخش 1 19:01
-
بارگذاری تکسچرها - بخش 2 14:16
-
ساخت کلاس شیدر 08:03
-
ساخت کلاس تکسچر 09:48
-
ساخت کلاس Asset Loader 09:57
-
افزودن شیدرهای پیشفرض 05:34
-
افزودن کتابخانه ریاضی GLM 04:57
-
ساخت کلاس دوربین - بخش 1 12:50
-
ساخت کلاس دوربین - بخش 2 17:46
-
افزودن اتصالات دوربین Lua 11:05
-
ایجاد Vertex Struct 16:26
-
افزودن کتابخانه Entt ECS 06:12
-
ایجاد Wrapper رجیستری - بخش 1 13:26
-
ایجاد Wrapper رجیستری - بخش 2 10:03
-
ایجاد Wrapper موجودیت 21:07
-
افزودن کامپوننتهای پیشفرض 23:54
-
افزودن اتصالات کامپوننت Lua 28:57
-
بررسی سریع Entt::Meta 06:00
-
ساخت یوتیلیتیهای متا 15:10
-
افزودن Type_Hash به کامپوننتها 03:38
-
ساخت اتصالات متای موجودیت 32:24
-
ساخت اتصالات متای رجیستری 28:23
-
ساخت موجودیتها در Lua 15:34
-
افزودن اتصالات GLM Lua 40:52
-
شروع Batch Renderer - بخش 1 28:22
-
شروع Batch Renderer - بخش 2 22:00
-
بهکارگیری Batch Renderer در عمل 13:39
-
افزودن کلاس فونت 20:38
-
بارگذاری فونت با Asset Loader 21:24
-
ایجاد کامپوننت متن 10:19
-
شروع Text Batch Renderer 34:16
-
Text Rendering در عمل 10:27
-
ایجاد کلاس کیبورد 23:44
-
کلاس کیبورد در عمل 26:09
-
ایجاد کلاس ماوس 25:32
-
ایجاد کلاس پد بازی 38:56
-
کلاس پد بازی در عمل 14:52
-
ایجاد کلاس بازی - بخش 1 29:04
-
ایجاد کلاس بازی - بخش 2 27:12
-
ایجاد کلاس پلیر موسیقی 20:04
-
ایجاد کلاس پلیر صدا 10:05
-
بارگذاری و پخش صداها 17:29
-
ایجاد کلاس Asset Manager 35:08
-
Asset Manager در عمل! 16:23
-
افزودن چند تابع اسکریپت مفید 15:40
-
حذف داراییهای موقت و بارگذاری از اسکریپتها 16:29
-
افزودن اتصالات صدای Lua و پخش از اسکریپتها 18:01
-
افزودن یوتیلیتیهای مفید برای متن 16:38
-
افزودن کلاس تایمر 15:33
-
بارگذاری مجدد داراییها و داده بازی 24:45
-
کلاس بلوک در Lua 18:35
-
کلاس شبکه در Lua 29:55
-
افزودن چند یوتیلیتی برای تتریس 13:36
-
کلاس پایه Tetromino در Lua 29:50
-
ایجاد کلاس فرزند Tetromino در Lua 26:15
-
شروع کلاس بازی در Lua 31:14
-
فیکس کردن اندازهگیری متن!! 04:59
-
افزودن چند تابع کلاس بازی 27:53
-
تکمیل تتریس! 21:58
-
افزودن کتابخانه Box2D 09:51
-
ایجاد چند Wrapper سی پلاس پلاس برای Box2D 09:32
-
تئوری Contact Listener و UserData 08:26
-
پیادهسازی کلاس UserData 21:58
-
پیادهسازی کلاس ContactListener 16:32
-
درک دستهبندیهای فیلتر 07:51
-
پیادهسازی دستهبندیهای فیلتر 09:32
-
ایجاد داده اصلی موتور 20:49
-
شروع کامپوننت فیزیک: بخش 1 24:05
-
ادامه کامپوننت فیزیک: بخش 2 38:28
-
ادامه کامپوننت فیزیک: بخش 3 26:33
-
فیکس کردن اتصالات کامپوننت فیزیک 05:17
-
بهکارگیری فیزیک در عمل!!: بخش 1 19:07
-
ادامه تست فیزیک: بخش 2 18:26
-
افزودن کلاسهای RayCast و BoxTrace - بخش 1 14:12
-
افزودن کلاسهای RayCast و BoxTrace - بخش 2 - کامپوننت فیزیک و اتصالات Lua 22:17
-
ایجاد Shape Batch Renderer - بخش 1 33:29
-
ایجاد Shape Batch Renderer - بخش 2 15:03
-
ایجاد کلاسهای شکل 22:07
-
کشیدن شکلها 25:41
-
کشیدن شکلها از اسکریپتهای Lua 31:40
-
کشیدن Ray Cast و Box Trace 33:23
-
ایجاد نقشهها با Tiled Map Editor 20:00
-
بارگذاری نقشهها از Tiled - بخش 1 35:07
-
بارگذاری نقشهها از Tiled - بخش 2 25:31
-
بارگذاری کاراکترها و موجدیتها 29:40
-
افزودن فیزیک تایل و داده کاربری بیشتر برای فیزیک 24:58
-
افزودن دنبال کردن دوربین و فیکس کردن دوربین 35:20
-
دنبال کردن دوربین پخش تکسچر با Texel Padding 09:28
-
افزودن انیمیشنهای دوبعدی ساده 20:30
-
تنظیم انیمیشنها برای استفاده از UV Generation جدید 15:36
-
شروع افزودن کد حرکت بازیکن و داده کاربری بازیکن 27:01
-
برعکس کردن اسپرایتها و انیمیشنها 22:04
-
افزودن قابلیت بالا رفتن از نردبان و جابجایی دوربین 25:17
-
مدیریت قابلیت تماس قبل و بعد از حل - عبور از تایلها 29:13
-
ایجاد کلاس بازیکن Lua و کمی پاکسازی اسکریپت 25:27
مشخصات آموزش
ساخت بازیها در مرورگر با سی پلاس پلاس، Lua و WebAssembly
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:متوسط
- تعداد درس:106
- مدت زمان :33:53:43
- حجم :21.67GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy