PDA

نسخه کامل مشاهده نسخه کامل : چگونه ساخت یک موتور طراحی بازی را شروع کنیم؟



silsin
14-05-2011, 11:40
این یه منبع جالب از سایت مجید انلاینه از یکی از کاربرا به نام Mahdi_Rashed] چیز جالبیه حتما بخونین .

به خاطر اینکه به قول یکی از ناظما . نمی دونم ناظم خودمون بود یا ناظم مدرسه بقلی :31: تبلیغ حرامه پس این ادرس اونجا که حق کپی رایت و منبع اوری رعایت شده باشه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید-----------------------------------------------------------------------------------------

طبق بسیاری از کتابهای آموزش ساخت موتور طراحی و سیستمهای گرافیک 4 روش برای شروع ساخت یک موتور طراحی بازی وجود داره که هریک مراحل آغاز پروژه رو توضیح داده.

روشها عبارتند از:


روش Proper Programming Method
روش UI-Based Programming
روش Framework Programming
روش Core-Based Programming یا Kernel-Based Programming


روش Proper Programming Method :

Proper Programming Method یا مناسبترین روش برنامه نویسی اولین روش شروع ساخت یک موتور طراحی بازی است . Proper Programming Method یعنی ترکیب چند متد مختلف که با هم تشکیل یک متد برنامه نویسی مناسب رو میدن و یا ابدای یک روش برنامه نویسی که برای کار پروژه مناسب باشه. یک متد برنامه نویسی وقتی مناسب گفته میشه که دارای خصوصیاتی مانند سرعت کامپایل بالا یا نسبتاً خوب باشه، آموزش اون به افراد دیگه آسان باشه، قابلیت استفاده در تمامی بخشهای موتور رو داشته باشه، قابلیت بروزرسانی هسته موتور رو داشته باشه و از همه مهمتر قابلیت تعریف زبان اسکریپت مخصوص یک موتور رو هم داشته باشه. درحال حاظر تعداد بسیار بسیار زیادی متد برنامه نویسی برای هر زبان برنامه نویسی حالا چه به صورت عمومی یا به صورت خصوصی ابدا شده که هر یک برای یک بخش از برنامه نویسی نرم افزاری مناسب هست ولی تعداد متدهایی که برای همه بخشهای برنامه نویسی نرم افزار وجود داره بسیار کم و انگشت شمار است. منظور همه بخشها در برنامه نویسی نرم افزاری یعنی مثلاً برنامه نویسی موتور طراحی بازی، نرم افزار نمایش عکس یا پخش صدا و ... . البته متدهایی که همه بخشهای برنامه نویسی نرم افزاری رو پوشش میدن بسیار مشکل هستن و یادگیری و استفاده از اونها نیازمند یک گروه چند نفره هست.

در زبان برنامه نویسی C# و C#.net متد های زیادی وجود داره که مناسب ترین اون برای کار برنامه نویسی سیستمهای گرافیک و از جمله موتورهای طراحی بازی C# Advanced هست که معمولاً پکیج 2005 اون با همه نسخه های Visual Studio منتشر میشه ولی در حال حاظر دو پکیج اساسی دیگه که 2008 و 2010 هم هست به صورت standalone منتشر شده که البته رایگان نیست ولی گرون هم نیست . 2008 اون 590 دلار و 2010 620 دلار هست که لایسنس اونها مادامالعمره . من نسخه اصلی اون رو دارم و استفاده میکنم ولی تاجایی که یادمه نتونستم نسخه های وارز و غیر قانونی رو پیدا کنم که ناچار شدم بخرم. حتی روی شبکه بیت تورنت هم نبود.

در روش Proper Programming Method مراحل کار پروژه و برنامه نویسی یک موتور طراحی بازی استاندارد به شکل زیر تعریف شده:



ترکیب چند متد برنامه نویسی یا ابدای یک متد به عنوان متد برنامه نویسی موتور طراحی بازی.
آموزش متد طراحی شده یا ترکیب شده به افرادی که در ایجاد ان نقشی نداشته اند ولی در طراحی موتور بازی نقش دارند.
طراحی یک framework بر اساس متد جدید یا استفاده از یک framework آماده که متد را قبول کند ( Visual Studio تقریباً همه متد ها را قبول میکند )
طراحی هسته موتور با متد مورد نظر
طراحی Database برای داده ها و اطلاعات موتور و بازی یا همسان سازی سیستمهای متن باز با هسته موتور.
طراحی In-game console یا command panel درون بازی.
طراحی زبان اسکریپت نویسی برای موتور طراحی بازی.
طراحی سیستم مدیریت صحنه یا scene management .
طراحی سیستم های زنجیره ای مانند مدیریت مرحله و ...
طراحی سیستم گرافیک که شامل نورپردازی، رندر تکسچر، رندر Shader و ... است و یا همسان سازی سیستمهای متن باز با هسته موتور.
طراحی سیستم پخش صدا و موسیقی یا همسان سازی سیستمهای متن باز با هسته موتور.
طراحی سیستم هوش مصنوعی یا یا همسان سازی سیستمهای متن باز با هسته موتور.
اضافه کردن بخشهایی که ایده طراحان بوده ( بخشهای اضافی موتور)
طراحی سیستم پذیرش پلاگین در صورت نیاز.
فقط طراحی رابط کاربر یا .User Interface
برنامه نویسی رابط کاربر و متصل کردن و همسان سازی بخشهای موتور به هسته و رابط کاربر.
پیکربندی و برنامه نویسی یک سیستم محافظ برای سورس اصلی موتور.
پیکربندی و برنامه نویسی یک سیستم محافظ برای لایسنس کاربری موتور. ( اگر موتور رایگان عرضه نمیشود ).
بهینه سازی همه بخشهای موتور و رفع مشکلات احتمالی.
کامپایل نهایی موتور برای استفاده در رایانه های دیگر.
تست نسخه Beta.
رفع اشکالات احتمالی
تست نسخه نهایی.
کارهایی از قبیل طراحی Help برای موتور ، نمونه ، لوگو و...
طراحی SDK اگرسیستم پذیرش پلاگین را طراحی کرده اید.
فروش و طراحی بازی.



روش UI-Based Programming:

UI-Based Programming یک متد برای اون دسته از طراحان و برنامه نویسایی هست که قصد دارن پروژه خودشون رو به روشهای متن باز codex تکمیل کنن. یعنی ایده و رابط کاربر و برخی از بخشهای مهم رو طراحی و برنامه نویسی کنن و پروژه رو با توضیحات در یک سایت نگه دارنده codex ها قرار بدن . سپس افراد زیادی هستن که ممکنه بخشی از پروژه رو طراحی کنن و از منابع متن باز برای تکمیل پروژه شما استفاده کنند. این روش دارای دو مرحله اصلی هست که اول طراحی هسته و سیستم موتور و دوم طراحی رابط کاربری است . بعد از این دومرحله شما باید پروژه رو در اختیار توسعه دهندگان قرار بدین تا با توسعه دادن هر بخش توسط یک فرد یک موتور طراحی بازی داشته باشید. پروژه های Open Source Codex یا پروژه های Open Source یک فرق اساسی دارن و اون اینکه که پروژه های Open Source بدون توسعه قابل استفاده هستن و فقط نیاز مند یک کامپایل اساسی هستن ولی پروژه های Open Source Codex باید کامل توسعه داده بشن تا آماده طراحی بشن . موتورهای گرافیکی شبیه Panda و Ogre3D ابتدا به شکل پروژه Open Source Codex بودن که پس از کامل شدن به یک پروژه متن باز قابل استفاده تبدیل شدند.

روش Framework Programming:

Framework Programming یکی از روشهای خوب برای طراحی یک موتور طراحی بازی هست البته به شرطی که با روشهای دیگر هم ترکیب بشود . Framework Programming اینطور تعریف میشه که شما با استفاده از متد برنامه نویسی هر زبان برنامه نویسی که مورد نظرتون هست یک Framework مخصوص طراحی و برنامه نویسی میکنید که استانداردهای لازم برای استفاده از یک سیستم گرافیک شبیه DirectX رو داشته باشه . بعد از اون پروژه دقیقاً شبیه متد Proper Programming Method پیش میره ولی با استفاده از متد استاندارد برنامه نویسی هر زبان برنامه نویسی و بر پایه Framework طراحی شده توسط شما. این روش اگر به صورت کلی در یک پروژه استفاده بشه چند ضعف بزرگ سیستم برنامه نویسی استاندارد رو به شما نشون میده و شما رو وادار به استفاده از روشهای طراحی موتور بازی دیگه به عنوان روشهای ترکیبی میکنه . از ضعفهایی که متدهای برنامه نویسی استاندارد هر زبان برنامه نویسی دارن مخصوصاً در بخش برنامه نویسی گرافیک و سیستم گرافیک، عدم توانایی خلق برنامه های اضافی برای بهبود کیفیت مثلاً سیستم رندرینگ یا نورپردازی یا سایه زنی است. یکی دیگر از ضعفها وجود باگهای فراوان بسته اصلی برنامه نویسی هست که معمولاً باید طی چندین و چند مرحله تست حل و تعمیر بشن. مهمترین ضعف هم نیاز تغییر جامع و کلی سیستم در صورت تغییر ورژن هسته سیستم گرافیک یعنی همون DirectX یا برخی مواقع Open GL و ... است . فرق متد استاندارد برنامه نویسی DirectX 9 با وروژن بالاترش یعنی 10 انقدر زیاد هست که تغییر سیستم موتور طراحی بازی از DirectX 9 به 10 مثل برنامه نویسی یک موتور طراحی بازی جدید هست. به همین دلیل هست که متدهای استاندارد زبان برنامه نویسی که همه کتابها به همون روش آموزش دادن بیشتر به درد ساخت نرم افزارهای کوچک . بزرگ تحت ویندوز میخوره و قدرت پشتیبانی از یک موتور طراحی بازی به صورت تنها رو نداره .

روش Core-Based Programming یا Kernel-Based Programming:

روش Core-Based Programming یا Kernel-Based Programming یکی از روشهای مورد علاقه برای برنامه نویسان منابع متن باز هست. Kernel-Based Programming در واقع برنامه نویسی کلی هسته موتور طراحی بازی به شیوه ای است که بعداً بتوان آن را توسعه داد. و توسعه دهنده نیز فرد دیگری هست. پس متد برنامه نویسی باید متد استاندارد برای هر زبان برنامه نویسی باشه. طراحی با روش Kernel-Based Programming بیشتر با زبان C و C++ انجام میشه چون اکثر توسعه دهندگان منابع متن باز این دو زبان رو به عنوان زبان استاندارد انتخاب میکنند. در مراحل طراحی یک موتور طراحی بازی به روش Kernel-Based Programming نباید به فکر طراحی یک Framework بیفتید چون با طراحی یک Framework اولاً روشی که استفاده کرده اید فقط Kernel-Based Programming نیست و دوماً متد برنامه نویسی شما ممکن است از حالت متد برنامه نویسی استاندارد یک زبان برنامه نویسی خارج شود . باید یادآوری کنم که Kernel-Based Programming به تنهایی برای طراحی یک موتور بازی متنباز مناسب است ولی اگر Kernel-Based Programming با روشهای دیگه به کار گرفته بشه دیگه برای یک منبع متن باز استاندارد مناسب نیست و افرادی زیادی نمیتونن اون رو توسعه بدن. پس اولین مرحله به جای ساخت یک متد جدید یا یک framework ، طراحی هسته موتور طراحی بازی هست و بعد از اون میتونید مطابق روش Proper Programming Method عمل کنید به شرطی که Kernel-Based Programming رو به یک روش ترکیبی تبدیل نکنه یعنی اگر هر یک بخشها باید طوری برنامه نویسی میشد که از متد برنامه نویسی استاندارد خارج میشد یا باید اون بخش رو حذف کنین ( پیشنهاد نمیشه ) یا اینکه سعی کنید با متد استاندارد طراحیش کنید حالا ممکنه هست که ناچار به حذف یا تغییر کاربر برخی از بخشهای اون بشید. در ضمن نوشتن سیستمهای محافظ و SDK نیاز نیست چون اولاً یک منبع متن باز باید رایگان باشه و دوماً منبع متن باز خودش یک SDK هست.


اصول استفاده از روشهای ترکیبی:

اگر قصد استفاده از چند روش رو دارین باید به مواردی دقت کنید وگر ممکنه که خروجی شما به درستی کار نکنه. هر موتور طراحی بازی به طور کلی باید دارای یک هسته و یک سیستم گرافیک برای رندرینگ رئال تایم باشه در غیر این صورت حتی با داشتن بقیه بخشهای یک موتور نمیتونه کار بکنه . پس در استفاده از روشهای ترکیبی باید یک روش که Base اون هسته و سیستم گرافیک باشه رو به عنوان روش پایه یا مادر انتخاب کنید. در مرحله بعد باید با توجه به این که محصول نهایی شما رایگان و متن باز و یا غیر رایگان است باید روشی را انتخاب کنید که در اون سیستم های متن باز ملاک باشد در غیر این صورت روشی باید انتخاب کنید که ملاک آن نوشتن سیستم حفاظت و کیت توسعه نرم افزار یا SDK باشد. در استفاده از روشهای ترکیبی معمولاً مرحله اول و دوم ملاکی برای بقیه مراحل است که انتخاب آنها به خصوصیات موتور و ابزارهای جانبی اون مرتبت میشه . البته مد نظر داشته باشید که چهار روشی که در پستهای قبل ذکر شد فقط چهار روش که روشهای مهم در طراحی موتور بازی است وگر نه تعداد روشها بسیار بسیار زیاد هست و حتی خود شما میتوانید یک روش انتکاری ابدا کنید ولی در ساخت یک روش جدید همیشه این رو در نظر بگیرین که بسته به نوع موتور اول هسته و framework را طراحی و بعد از این دو بخش شروع به طراحی بخشهای دیگر موتور کنید. همچنین در انتخاب متد برنامه نویسی در ترکیب روشها یا ابدای یک روش جدید نهایت دقت رو به کار ببرید چون اگر متدی را اشتباهی انتخاب کرده و تا وسط کار پیش برید بعد دیگه امکان عوض کردن متد یا به اصطلاح multimethod کردن پروژه عاقلانه نیست چون همیشه بخشهایی هست که دو متد جداگانه نمیتونن با هم تبادل انجام بدن و حتی برخی مواقع بوده که ضد هم کار میکنن. یعنی مثلاً متد اول یک دستور رو به هسته موتور میفرسته و متد دوم همون دستور رو از هسته موتور حذف میکنه قبل از این که حتی پردازش بشه .


بخش بعدی روند طراحی یک پایگاه داده برای موتور طراحی بازی است. اول سوال اینجاست که پایگاه داده چیست؟

پایگاه داده در موتورهای طراحی بازی نگه دارنده سه بخش مهم در روند اجرای بازیها هستن. بخش نگه دارنده داده های مقداری، بخش نگه دارنده داده های پایه و بخش نگه دارنده سورس بازی. داده های مقداری داده هایی اغلب به صورت اعداد یا Hex ها هستن که اطلاعاتی مانند مختصات و مقیاس و ... را که مربوط به نحوه اجرای trigger ها و دستورات میان بازی هست را شامل میشوند. داده های پایه کلیه داده هایی هستند که موتورطراحی بازی بعد از عملیات Compile بازی به صورت کلی آنها در در بخشی خاص از پایگاه داده ذخیره میکند تا در هنگام اجرای بازی مورد استفاده قرار بگیرند . این داده های به این دلیل پایه نام گرفتند چون بازیهایی که روی یک موتور طراحی بازی خاص ساخته شده اند برای اجرا به این داده ها نیازمندند . داده های پایه از هر موتور طراحی بازی تا هر سبک طراحی بازی متفاوتند و معمولاً برای بخش نگهدارنده آنها سیستم امنیتی جداگانه ای طراحی میشود. سروس بازی یعنی کلیه عناصر 2بعدی و 3 بعدی مورد استفاده در یک بازی که توسط طراحان در محیط بازی یا کاراکتر ها یا هر شی موجود در بازی استفاده شده . پایگاه داده پس از دریافت این سورس ها بر طبق اصولی که با آن پایگاه داده را طراحی کردند . الگوریتمهایی که برای آن نوشته اند عمل فشرده سازی در حد ممکن را بر روی سورس بازی اعمال میکند . تا حد ممکن یعنی تا جایی حجم آن را کم میکنند تا سرعت Unpack کردن آنها در بازی چه به صورت Real-time unpacking یا full unpacking از حد مجاز بیشتر نشده و معمولاً حد مجاز به صورت یک متغیر قبل از فشرده سازی توسط طراح قابل تغییر است .

طبق تعاریف ارائه شده در سال 2010 در صنعت راحی بازی 4 نوع پایگاه داده اصلی داریم:



Open Source Database
Open File Database
Regular Database
Secure Database



Open Source Database:

Open Source Database نوعی پایگاه داده هستند که برای ساخت نرم افزارها و بازی های متن باز رایگان استفاده میشوند و معمولاً به صورت کدها و سورسهای آماده برای گسترش و استفاده در پروژه ها در سراسر محیط اینترنت موجود هستند. Open Source Database با توجه به نوع کاربری و فردی که آن را توسعه میدهد میتوان مدل های مختلفی داشته باشد . مثلاً داده های مقداری و سورس رو پس از دریافت در ثبت در پایگاه داده قفل کرده و از فرمتهای مخصوص و فشرده سازی مشخص با الگوریتم های خصوصی استفاده کند و در عین حال میتوان Open Source Database را به یک پایگاه داده را طوری طراحی کرد تا مقادیر قفل شده و یا بتوان آنها را در پنل کنسول تغییر داد و سورس بازی کاملاً باز و قابل استفاده باشد ( سورس بازی یعنی تکسچرها، مدلها، Shader ها و دیگر عناصری که در بخشهای مختلف بازی مورد استفاده قرار میگیرد. ).

طراحی Open Source Database ها معمولاً توسط یک گروه تشکیل شده از تعداد کمی از افراد بر اساس لایسنس های متن باز شبیه GPL یا LGPL و ... طراحی میشود و افراد دیگر با استفاده از سورس ها و کد ها آن یک پایگاه داده مورد نیاز برای بازی یا موتور طراحی بازی خود طراحی و گسترش میدهند . Open Source Database بهترین نوع پایگاه داده در طراحی بازی و موتور طراحی بازی هستند چون میتوان با توجه به استفاده کاربری آن را تغییر داد و مطابق خواسته های خود بخشهای امنیت و سیستم فشرده سازی را برنامه ریزی کرد.

ساختار سیستمی Open Source Database:

Open Source Database ها از ساختارهای ساده ای تشکیل شده اند تا همه ی افراد بتوانند با دریافتن و فهمیدن این ساختارها مطابق خواسته خود پایگاه داده را گسترش و توسعه دهند.

از لحاظ الگوریتمی ساختار Open Source Database ها به شکل زیر میباشد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]اين تصوير از اندازه واقعي خود کوچکتر نمايش داده مي شود. براي ديدن اين تصوير در اندازه واقعي اينجا را کليک کنيد. اندازه واقعي اين تصوير 641 در 478 پيکسل است.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در سیستم Open Source Database ساختار اجرایی قبل از توسعه قابل رسم نیست چون ساخنار اجرایی برای هر فرد که سورس Open Source Database رو گسترش و توسعه میده متفاوت هست و مطابق با موتور طراحی بازی مورد نظر set میشه .

:Open File Database
Open File Database یکی از انواع پایگاه های داده هست که میتونه رایگان و متن باز یا غیر رایگان و فقط دارای SDK باشه . اما چیزی که در Open File Database مهمه اینه که سیستم پایگاه داده به گونه ای طراحی شده که فایلها و عناصری که در بازی استفاده میشه مخصوصاً تکسچرها و صدا ها و موسیقی ها به صورت کامل باز و قابل استفاده توسط بقیه هست . شبیه پایگاه داده بازی counter strike که همه باهاش آشنا هستین. Open File Database معمولاً برای بازی هایی استفاده میشه که یکی از این دو حالت رو هدف بازی کردن قرار بدن . اول این که کلاً دوست دارن سروس بازی رو در اختیار بقیه بذارن و این جور بازی ها قالباً متن باز و رایگاه هستن. حالت دوم اینه که قصد داشتن بازیی رو طراحی کنن که موقع بارگذاری اطلاعات و عناصر بازی وقت زیادی رو به Unpack کردن این عناصر نکنه . حالت دوم برای بازی های آنلاین و تحت شبکه خیلی مهمه چون سرعت ping کاربری که هنوز کامل بازی رو load نکرده با کسی که load کرده در اونور خطوط اینترنت یا یک کامپیوتر دیگه بالا میره.

ساختار سیستمی Open File Database شبیه ساختار Open Source Database هست ولی معمولاً تغییرات زیادی روی اون اعمال میشه تا سرعت ارسال اطلاعات یا ثبت داده ها مخصوصاً برای بازی تحت شبکه یا اینترنت بیشتر و بهینه تر بشه.

ساختار اجرایی Open File Database معمولاً به صورت ساختار های درختی کار میکنه ولی چون ساختارهای درختی حجم پردازشی رو بالا میبره این ساختار توسط توسعه دهنده های نرم افزاری تغییر میکنه بنابراین نمیشه یک ساختار مناسب ارائه کرد.

Regular Database:

Regular Database ها از ساده ترین پایگاه های داده هستن که از ساختار معمولی یک پایگاه داده یعنی دریافت، پردازش و انتشار استفاده میکنن . Regular Database ها از نظر امنیت در سطح پایینی قرار دارن و معمولاً از اونها در پروژه های آموزشی و دانشگاهی که باید در کوتاهترین زمان ممکن بهترین نتیجه حاصل بشه استفاده میشن . یکی از معروف ترین نوع از انواع مختلف و بسیار زیاد Regular Database ها Microsoft Access Database هست که شاید تا به حال در هر زمینه کاری از اون استفاده کرده باشید ولی این پایگاه داده بسیار اسیب پذیر میتونه در طراحی بازی های رایانه هم به کار بره . البته هیچکس هیچوقت همچین پیشنهادی رو به کسی نمیکنه چون Access واقعاً از نظر امنیت در سطح پایینی قرار داره . بحث سرعت و دقت عمل پایگاه داده هم قابل بحثه . در بین کاربران Gamedev.net ایجاد شده سیستم و ساختار پایگاه داده Access از نظر امنیت از 10 نمره 3 نمره دریافت کرده و از نظر سرعت 6 نمره ولی همین پایگاه داده ساده دقت عمل عجیبی داره و نمره 8 رو به خودش اختصاص داده. همچنین در برخی از مطالبی که مطالعه کردم از پایگاه داده Access به عنوان یک Open File Database یاد کرده و گفته فرق بین Regular Database مخصوصاً Access با Open File Database ها یک قدم و اون استفاده از یک نرم افزار رمز یابی فایل Access هست که میتونه به سادگی داده های بازی رو در اختیار کاربران قرار بده . Access نمیتونه فایلها و عناصر بازی رو در خودش ذخیره کنه بلکه فقط میتونه مقادیر رو ذخیره و بازخوانی کنه . برای حل این مشکل طراحانی که از این پایگاه داده استفاده میکنند فایلها و عناصر بازی رو با کدها و ساختارهای مقداری قفل یا encrypt میکنن و در محیط بازی این داده های به فایلها اعمال میشه و عناصر بازی در محیط بازی بارگذاری میشن. البته این بخش باید تحت نظارت زیادی طراحی بشه چون در برخی مواقع دیده شده که سورس و فایلهای بازی بعد از decrypt شدن درون فولدر temp سیستم عامل ویندوز ریخته شدن و به سادگی قابل استفاده هستند. بازی ..... یکی از نمونه های این بازی هست که با سیستم پایگاه داده access طراحی شده و در نسخه رمی 1.01 دارای مشکل ذخیره فایلها در فولدر تمپ بود که بعد توسط نسخه های به روز رسانی درست شد.

Secure Database:

Secure Database همون نوع پایگاه داده ای هست که امروزه توسط بسیاری از شرکتهای بزرگ طراحی بازی استفاده میشه. Secure Database ها معمولاً توسط کمپانی مورد نظر و یا شرکت سازنده موتور بازی طراحی میشه و بسته به بودجه اونها سیستم امنیتی اون میتونه توسعه یافته یک سیستم متن باز باشه یا اینکه مهندسان نرم افزار مخصوص طراحی یک سیستم امنتیی استخدام کنند. ساختار Secure Database از یک نوع تا نوع دیگه فرق داره و معمولاً ساختار اون در دسترس عموم قرار نمیگیره چون هکر ها میتون با استفاده از ساختار یک دیتابیس به هسته اون راحتتر و زودتر نفوذ کنن. البته این ساختارها در اختیار تعدادی از هکرهای با تجربه قرار میگیره تا از لحاظ امنیتی ارتقا پیدا کنه. هکرهایی که استخدام شدن یک حفره امنیتی رو پیدا میکنن و با رفع اون پایگاه داده رو امن تر میکنن. معمولاً ساختار اجرایی Secure Database ها به صورت پیاده سازی لایه ای یا پیاده سازی کلی هست. در جاهایی هم میشه از تکنیکهای real time memory loading استفاده کرد که حجم پردازشی و سرعت بارگذاری رو کمتر میکنه. Secure Database ها معمولاً به صورتی ساخته میشن تا علاوه بر نگه داری داده های عددی، داده های غیر عددی شبیه فایلها و ... رو نگه داری و فشرده سازی کنند. همچنین بحث خارج کردن از حالت فشرده سازی در طراحی Secure Database در یک کمپانی طراحی بازی یا موتور طراحی بازی بسیار مهم هست