نسخه جدید با تغییرات اساسی!

معمولا هروقت فاصله زمانی بینه پستهای وبلاگ زیاد میشه احتمالا کارهای زیادی در حال انجام شدن هست که دوست داریم به نقطه ایی برسه که بتونیم خدمت دنبال کنندگان عزیز وبلاگ عرض کنیم. خب در این پست قصد ندارم تمام تغییرات رو کامل توضیح بدم ولی میتونم بگم Kite2D تغییرات اساسی زیادی کرده هم از نظر ظاهری و هم قسمتهای داخلی که شامل تمام بخشها از جمله ادیتور هم میشه و به امید خدا در نسخه بعدی با امکانات بسیار بیشتری روبرو هستیم که در پستهای آینده بصورت جزعی توضیح خواهم داد. کدهای روی مخزن هم اکنون قابل کامپایل نیستند و هنوز قسمتهایی از تغییرات روی مخزن قرار نگرفته به دلیل گزراندن مراحل آزمایش. 
۲۰ بهمن ۹۵ ، ۰۵:۴۶ ۰ نظر
MrMilad

سریعتر و سبکتر!

بعد از چند ماهی تجربه کار با رابط کاربری (UI) ادیتور به این نتیجه رسیدم که بخشهایی کمتر مورد استفاده قرار میگیرن و بخشهایی استفاده بیشتری دارند. بخاطر همین موضوع تغییرات زیادی داخل رابط کاربری ادیتور انجام شد که هنوز تکمیل نشده اما نهایتا با یک نسخه سبکتر و البته سریعتر از لحاظ دسترسی به امکانات نسبت به نسخه قبلی روبرو میشیم.

۲۱ آبان ۹۵ ، ۰۱:۱۹ ۱ نظر
MrMilad

تبادل کمتر = سرعت بیشتر!

شاید تیتر مطلب کمی عجیب باشه اما در پشت این تیتر یک موضوع فنی جالب قرار داره که بعد از انجام تست های زیادی متوجه این موضوع شدیم. معمولا زبان های اسکریپتی (مثل Lua) وظیفشون اینه که برای یک API سطح پایین, یک رابط منعطف سطح بالاتر ایجاد میکنند که بعضا در حالت run-time و بدون کامپایل مجدد هم قابل تغییر و استفاده باشه. در Kite2D این زبان اسکریپتی رابطی برای کتابخانه Kite2D که تماما در ++C پیاده شده فراهم میکنه و کاربر میتونه بدور از پیچیدگی های زبان سطح پایینی مثل ++C برای انجین در زبان سطح بالاتر و راحتتری مثل Lua کد نویسی کنه. اما در پشت صحنه این موضوع یک تبادل داعم و پیوسته بینه Lua و ++C در جریانه و در اصل هر تابعی که شما در Lua صدا میزنید بلافاصله نسخه ++C آن تابع توسط Lua فراخانی میشه و نتیجه کار مجددا توسط Lua به شما برگردانده میشه, این تبادل بینه دو زبان هزینه هایی داره که در بعضی مواقع ناچیز و در بعضی مواقع سنگین هست. برای اینکه متوجه بشیم تستهای زیادی انجام دادیم و در نهایت فهمیدیم که ارتباط بینه C++ ---> Lua بسیار کندتر از ارتباط ++Lua ---> C هست! با توجه به همین موضوع کل سیستم آپدیت اشیاع تغییر کرد و بخش زیادی بازنویسی شد که حدودا 60/70 فریم به سرعت آپدیت اشیاع اضافه شد!

۰۹ آبان ۹۵ ، ۱۱:۵۲ ۰ نظر
MrMilad

Render To Texture اضافه شد!

ویژگی جدید و بسیار پر کاربرد render to texture یا off-screen rendering قابلیتی است که به شما این امکانو میده تا بتونید فارغ از سایز (resolution) اصلی صفحه نمایش کاربران, محتوای خودتونو بسازید و و در هر صفحه ایی و با هر سایزی اونو نمایش بدید! البته این تنها یکی از امکاناتی هست که توسط off-screen rendering قابل پیاده سازی هست و امکانات بسیار جالب و بیشتری مثل امکان بزرگنمایی صفحه بدون مشکلاتی همچون کش امدن و تغییر رنگ پیکسلها (که در OpenGL بصورت طبیعی رخ خواهد داد) و یا ایجاد افکتهای post-process و ... رو به کاربران میده. نمونه پروژه در فایل ضمیمه قرار دارد. توجه کنید که برای مشاهده پروژه باید انجین رو از پست قبلی دانلود کنید.

نمونه پروژه Render To Texture

۰۱ آبان ۹۵ ، ۱۹:۳۶ ۰ نظر
MrMilad

شرکت در جشنواره بازیسازان مستقل ایرانی- IGDF

تقریبا 2 روز تا شروع اولین مرحله داوری جشنواره بازیسازان مستقل ایرانی باقی مانده. طبق برنامه ریزی های قبلی تونستیم Kite2D رو تا نقطه قابل قبولی برای جشنواره ارتقا بدیم و امیدواریم در بخش فناوری جشنواره بتونیم موثر حاضر بشیم.

همونطور که قول نسخه exe ادیتور به همراه نمونه پروژه اماده رو در پست قبلی داده بودم در قالب یک فایل زیپ قرار میدم و البته از صفحه مربوط به Kite2D در وبسایت جشنواره هم میتونید فایل رو دانلود کنید.

Kite2D در جشنواره بازیسازان مستقل

نسخه exe ادیتور و انجین به همراه نمونه پروژه آماده TileMap


۲۸ مهر ۹۵ ، ۲۱:۳۰ ۰ نظر
MrMilad

Kite2D Orthogonal Tile Editor

خوب همونطور که در پست قبلی هم اشاره هایی کردم :) امکان ساخت و ویرایش Tile Map (کاشی) به ادیتور اضافه شد و تا چند روز آینده نسخه exe برای تست میزارم. جالبه بدونید که در حال حاضر بهترین ادیتوری که قابلیت ساخت این مدل مپ ها رو داره Tiled Map Editor نام داره که برای مپ های بزرگ حجم بسیار زیادی از حافظه رو میگیره و در رندر هم به مشکلات دیگه ایی برمیخورین. اما در Kite2D ساختار مپ ها طوری تعریف شده که شما براحتی میتونید با مپ هایی به اندازه 1 میلیون! کاشی یا بیشتر کار کنید و از نظر حافظه براحتی حتی بر روی یک سیستم ضعیف هم خروجی مناسبو بگیرید و از این نطر بسیار بهینه تر از Tiled ساخته شده.
۱۲ مهر ۹۵ ، ۲۳:۵۴ ۰ نظر
MrMilad

رندر بر پایه Texture Array

همونطور که در پستهای قبل اشاره کردیم در حال کار روی بخش گرافیکی و رندر Kite2D و اتصال اون به ادیتور هستیم. ویژگی جدیدی که به بخش رندر اضافه شد پشتیبانی کامل از Texture Array ها هست که با کمک این ویژگی ترسیم یک مپ سنگین و پیچیده با تسکچر های متنوع و زیاد با تنها یک فراخانی تابع رسم OpenGL امکان پذیر میشه!

البته امکانات دیگری هم در حال اضافه شدن هست که در پستهای اینده توضیح خواهم داد اما داخل تصویر میتونید حدس بزنید! :)

امیدوارم تا دو ماه آینده بتونم اولین نسخه stable و تقریبا کامل ادیتور رو برای آزمایش بزارم.

۲۸ شهریور ۹۵ ، ۲۳:۲۳ ۰ نظر
MrMilad

آماده شدن برای نمایش!

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

۰۹ مرداد ۹۵ ، ۱۷:۳۹ ۱ نظر
MrMilad

مدیریت منابع - Kite2D Resource Manager

بیشترین کاری که در چند روز گذشته انجام گرفت پیرامون بخش مدیریت منابع (Resource Manager) بود و میشه گفت در حال حاضر این بخش به نقطه ایی رسیده که میتونه به عنوان یک مدیر وظیفه شناس و دقیق! تمام مسئولیت های مربوط به منابع رو در Kite2D به عهده بگیره.
برخی از امکانات جدید اضافه شده به این بخش:
  • ذخیره و بارگزاری منابع ترکیبی - Load\save Composite Resources
  • ثبت چند مرحله ای منابع بارگزاری شده در سیستم های دیگر - Initialize and Register Resources
  • استفاده از نام های کوتاه برای سهولت دسترسی به منابع
  • امکان بارگزاری منابع در حالت offline (داخل ویرایشگر) و online (Run-time) که باعث جلوگیری از هدر رفت حافظه گرافیکی در زمان کار با ویرایشگر میشود.

البته نا گفته نماند که کلاس Resource Manager شامل امکاناتی کامل در این ضمینه هست که در این پست فقط به موارد جدیدی که اضافه شده اشاره شد.

نسخه جدید به همراه تمامی تغییرات در چند روز آینده بر روی مخزن قرار خواهد گرفت.

۰۹ مرداد ۹۵ ، ۰۰:۵۷ ۰ نظر
MrMilad

نسخه جدید بر روی مخزن قرار گرفت!

نسخه جدید به همراه امکانات گفته شده در پست قبلی بر روی مخزن قرار گرفت. البته امکانات اضافه شده هنوز بصورت آزمایشی هستند و امکان وجود باگهای احتمالی میباشد.

۲۱ تیر ۹۵ ، ۲۱:۵۱ ۰ نظر
MrMilad