"তাড়াতাড়ি অপ্টিমাইজ করবেন না" এর অর্থ এই নয় যে "জিনিসগুলি করার সবচেয়ে খারাপ উপায় বেছে নিন"। আপনার এখনও কর্মক্ষমতা সংক্রান্ত প্রভাবগুলি বিবেচনা করতে হবে (যদি আপনি কেবল প্রোটোটাইপিং না করেন)। বিষয়টি হ'ল উন্নয়নের সেই মুহূর্তে অন্যান্য গুরুত্বপূর্ণ বিষয়গুলিকে বিকল করা নয় - যেমন নমনীয়তা, নির্ভরযোগ্যতা ইত্যাদি simple সহজ, নিরাপদ অপ্টিমাইজেশন চয়ন করুন - আপনার সীমাবদ্ধ জিনিস এবং আপনি যে জিনিসগুলি মুক্ত রাখেন তা চয়ন করুন; খরচ ট্র্যাক রাখুন। আপনার কি শক্ত-টাইপিং ব্যবহার করা উচিত? বেশিরভাগ গেমস কাজ করে এবং কাজ করে; আপনি যদি গেমপ্লেয়ের জন্য নমনীয়তার আকর্ষণীয় ব্যবহারগুলি খুঁজে পান তবে এটি অপসারণ করতে আপনার কতটা ব্যয় হবে?
অপ্টিমাইজড কোড, বিশেষত "স্মার্ট" কোডটি সংশোধন করা অনেক বেশি শক্ত। এটি সর্বদা একটি পছন্দ যা কিছু জিনিসকে আরও ভাল করে তোলে এবং অন্যগুলি খারাপ করে তোলে (উদাহরণস্বরূপ, আপনি মেমরির ব্যবহারের জন্য সিপিইউ সময় ট্রেড করতে পারেন)। এই পছন্দটি করার সময়, আপনাকে সমস্ত বিষয় সম্পর্কে সচেতন হওয়া দরকার - এগুলি বিপর্যয়কর হতে পারে তবে তারা সহায়কও হতে পারে।
উদাহরণস্বরূপ, কমান্ডার কীন, ওল্ফেনস্টাইন এবং ডুম প্রত্যেকেই একটি অনুকূলিত উপস্থাপনা ইঞ্জিনের শীর্ষে নির্মিত হয়েছিল। প্রত্যেকের তাদের "কৌশল" ছিল যা গেমটিকে প্রথম স্থানে উপস্থিত করতে সক্ষম করেছিল (প্রত্যেকেরই সময়ের সাথে সাথে আরও আরও অনুকূলতা তৈরি হয়েছিল, তবে এটি এখানে গুরুত্বপূর্ণ নয়)। ঠিক আছে । গেমের মূল বিষয়টিকে ভারিভাবে অনুকূল করা ঠিক আছে, এই ধারণাটি যে গেমটি সম্ভব করে তোলে; বিশেষত যদি আপনি নতুন অঞ্চল ঘুরে দেখেন যেখানে এই বিশেষ অনুকূলিত বৈশিষ্ট্যটি আপনাকে গেম ডিজাইনগুলি বিবেচনা করতে দেয় যা খুব বেশি অন্বেষণ করা হয়নি। অপ্টিমাইজেশনের সীমাবদ্ধতাগুলি আপনাকে আকর্ষণীয় গেমপ্লেটিও দিতে পারে (উদাঃ আরটিএস গেমসে ইউনিট গণনা সীমাবদ্ধতা পারফরম্যান্সের উন্নতির উপায় হিসাবে শুরু হয়েছে, তবে তাদের গেমপ্লে প্রভাবও রয়েছে)।
তবে মনে রাখবেন যে এই প্রতিটি উদাহরণে গেমটি অপ্টিমাইজেশন ছাড়া থাকতে পারে না। তারা কোনও "সম্পূর্ণরূপে অনুকূলিত" ইঞ্জিন দিয়ে শুরু করেনি - তারা খালি প্রয়োজনীয়তা দিয়ে শুরু করেছিল এবং তাদের পথে কাজ করেছে। তারা নতুন প্রযুক্তি বিকাশ করছিল এবং মজাদার গেমস তৈরি করতে তাদের ব্যবহার করছিল। ইঞ্জিনের ট্রিকসটি কোডবেসের যথাসম্ভব ক্ষুদ্র অংশে সীমাবদ্ধ ছিল - গেমপ্লেটি বেশিরভাগ ক্ষেত্রে সম্পন্ন হওয়ার সময় ভারী অপটিমাইজেশনগুলি কেবল তখনই চালু করা হয়েছিল, বা যেখানে এটি একটি আকর্ষণীয় নতুন বৈশিষ্ট্যটির উত্থানের অনুমতি দিয়েছে।
আপনি এমন একটি গেমটি বিবেচনা করুন যা আপনি করতে চান। সত্যই কি এমন কোনও প্রযুক্তিগত অলৌকিক ঘটনা রয়েছে যা সেই খেলাটিকে ভেঙে দেয় বা ভেঙে দেয়? হতে পারে আপনি অসীম বিশ্বের একটি মুক্ত-বিশ্ব গেমের কল্পনা করছেন। আসলেই কি এই খেলার কেন্দ্রীয় অংশ? গেমটি কি কেবল এগুলি ছাড়া কাজ করবে না? হতে পারে আপনি এমন একটি খেলা সম্পর্কে ভাবছেন যেখানে অঞ্চলটি সীমা ছাড়াই বিকৃতযোগ্য, বাস্তববাদী ভূতত্ত্ব এবং এই জাতীয় সাথে; আপনি কি এটি একটি ছোট সুযোগ নিয়ে কাজ করতে পারেন? এটি 3D এর পরিবর্তে 2 ডি তে কাজ করবে? যত তাড়াতাড়ি সম্ভব কিছু মজা পান - এমনকি যদি অপ্টিমাইজেশানগুলির জন্য আপনার বিদ্যমান কোডের একটি বিশাল অংশটি পুনরায় কাজ করা প্রয়োজন হয় তবে এটি মূল্যবান হতে পারে; এবং আপনি এমনকি বুঝতে পারেন যে জিনিসগুলি আরও বড় করা গেমটি আরও ভাল করে না।
প্রচুর অপটিমাইজেশন সহ সাম্প্রতিক গেমের উদাহরণ হিসাবে, আমি ফ্যাক্টোরিওকে নির্দেশ করব। গেমের একটি সমালোচনামূলক অংশ হ'ল বেল্টগুলি - তাদের মধ্যে হাজার হাজার লোক রয়েছে এবং তারা আপনার কারখানার চারপাশে অনেকগুলি ব্যক্তিগত বিট বহন করে। ভারী-অনুকূলিত বেল্ট ইঞ্জিন দিয়ে খেলাটি শুরু হয়েছিল? না! প্রকৃতপক্ষে, আসল বেল্ট নকশাটি অপ্টিমাইজ করা প্রায় অসম্ভব - এটি বেল্টের আইটেমগুলির একটি ধরণের শারীরিক সিমুলেশন করেছিল, যা আপনাকে করতে পারে এমন কিছু আকর্ষণীয় জিনিস তৈরি করেছিল (এটিই আপনি "উত্থানকারী" গেমপ্লে পান - অবাক করে দেয় গেমপ্লে ডিজাইনার), তবে আপনাকে বেল্টের প্রতিটি আইটেম অনুকরণ করতে হয়েছিল। হাজার হাজার বেল্টের সাহায্যে আপনি হাজার হাজার শারীরিক-সিমুলেটেড আইটেম পাবেন - এমনকি কেবল এটি সরিয়ে ফেলা এবং বেল্টগুলি কাজ করতে দিলে আপনি সম্পর্কিত সিপিইউ সময়টি 95-99% কেটে ফেলতে পারবেন, এমনকি স্মৃতি লোকালয়ের মতো জিনিস বিবেচনা না করেও। তবে আপনি যখন কেবল সেই সীমাতে পৌঁছান তখনই এটি করা কার্যকর।
বেল্টগুলির সাথে খুব সুন্দর কিছু করার জন্য বেল্টগুলি অপ্টিমাইজ করার অনুমতি দেওয়ার জন্য পুনরায় তৈরি করতে হয়েছিল। এবং বেল্টগুলি অপ্টিমাইজ করা প্রয়োজন, কারণ আপনার একটি বড় কারখানার জন্য প্রচুর পরিমাণে বেল্টের প্রয়োজন ছিল এবং বড় কারখানাগুলি গেমটির এক আকর্ষণ tion সর্বোপরি, যদি আপনার বড় কারখানা না থাকতে পারে তবে কেন একটি অনন্ত বিশ্ব রয়েছে? মজার আপনার জিজ্ঞাসা করা উচিত - প্রারম্ভিক সংস্করণগুলি নয় :) গেমটি পুনরায় তৈরি হয়েছিল এবং এখন কোথায় রয়েছে তা পেতে পুনরায় আকার পরিবর্তন করেছিল - যখন তারা বুঝতে পেরেছিল যে জাভা কোনও পথের দিকে যাওয়ার উপায় নয় তখন 100% গ্রাউন্ড-আপ রিমেক সহ including এই জাতীয় খেলা এবং সি ++ এ স্যুইচ করা হয়েছে। এবং এটি ফ্যাক্টোরিওর পক্ষে দুর্দান্ত কাজ করেছে (যদিও এটি এখনও ভাল জিনিস ছিল তবে তা গেটওয়ে থেকে অনুকূলিত হয়নি - বিশেষত যেহেতু এটি একটি শখের প্রকল্প ছিল, যা আগ্রহের অভাবে অন্যথায় ব্যর্থ হতে পারে)।
কিন্তু কথা হলো, সেখানে হয়সীমিত স্কোপ ফ্যাক্টরির সাহায্যে আপনি প্রচুর কাজ করতে পারেন - এবং অনেকগুলি গেম এটি দেখিয়েছে। সীমাবদ্ধতা স্বাধীনতার চেয়ে মজাদার জন্য আরও শক্তিশালী হতে পারে; "মানচিত্র" অসীম থাকলে স্পেসচেম আরও মজা পাবে? আপনি যদি ভারি অনুকূলিত "বেল্ট" দিয়ে শুরু করেন তবে আপনাকে বেশিরভাগ ক্ষেত্রে সেই পথে যেতে বাধ্য করা হবে; এবং আপনি অন্যান্য নকশার দিকনির্দেশগুলি (যেমন পদার্থবিজ্ঞানের সিমুলেটেড কনভেয়ার বেল্টগুলি দিয়ে কী কী আকর্ষণীয় জিনিসগুলি করতে পারেন তা দেখার মতো) অন্বেষণ করতে পারেন নি। আপনি আপনার সম্ভাব্য নকশা-স্থান সীমাবদ্ধ করছেন। এটির মতো মনে হচ্ছে না কারণ আপনি প্রচুর অসম্পূর্ণ গেমগুলি দেখেন না, তবে শক্ত অংশটি মজাটি পেয়েছে - প্রতিটি মজাদার গেমের জন্য, সম্ভবত সেখানে শত শত রয়েছে যা কেবল সেখানে পৌঁছতে পারেনি এবং ছিঁড়ে ফেলা হয়েছিল (বা খারাপ, ভয়াবহ জঞ্জাল হিসাবে মুক্তি)। যদি অপ্টিমাইজেশন আপনাকে এটি করতে সহায়তা করে - এগিয়ে যান। যদি তা না হয় ... এটা সম্ভবত অকাল। আপনি যদি মনে করেন কিছু গেমপ্লে মেকানিক দুর্দান্ত কাজ করে তবে সত্যিকারের জ্বলজ্বলে অপ্টিমাইজেশন প্রয়োজন - এগিয়ে যান। আপনার যদি আকর্ষণীয় মেকানিক্স না থাকে,তাদের অনুকূলিত করবেন না । প্রথমে মজাটি সন্ধান করুন - আপনি সর্বাধিক অপটিমাইজেশনগুলি এতে সহায়তা করেন না এবং প্রায়শই ক্ষতিকারক হন।
অবশেষে, আপনার একটি দুর্দান্ত, মজাদার খেলা আছে। এটি এখন অনুকূলিত করে তোলে ? হা! এটি এখনও আপনি যতটা ভাবেন তেমন পরিষ্কার নয়। কিছু মজা আছেআপনি কি পরিবর্তে করতে পারেন? আপনার সময় এখনও সীমাবদ্ধ ভুলবেন না। সবকিছু একটি প্রচেষ্টা নেয়, এবং আপনি যে প্রচেষ্টা এটি সবচেয়ে গুরুত্বপূর্ণ তার দিকে মনোযোগ দিতে চান। হ্যাঁ, আপনি যদি একটি "ফ্রি গেম" বা একটি "ওপেন সোর্স" গেম তৈরি করে থাকেন তবেও। খেলাটি কীভাবে খেলা হয় দেখুন; কর্মক্ষমতা একটি বাধা হয়ে ওঠে লক্ষ্য করুন। এই জায়গাগুলি অনুকূলকরণ কি আরও মজা করার জন্য তৈরি করে (যেমন আরও বড়, কখনও আরও জটযুক্ত কারখানাগুলি তৈরি করা)? এটি কি আপনাকে আরও প্লেয়ার (যেমন দুর্বল কম্পিউটারগুলির সাথে, বা বিভিন্ন প্ল্যাটফর্মে) আকর্ষণ করার অনুমতি দেয়? আপনার সর্বদা অগ্রাধিকার প্রয়োজন - অনুপাত উত্পাদন করার প্রচেষ্টা সন্ধান করুন। আপনি কেবল আপনার গেমটি খেলতে এবং অন্যদের খেলা খেলতে দেখে প্রচুর কম-ঝুলন্ত ফল পাবেন। কিন্তু গুরুত্বপূর্ণ অংশ দ্রষ্টব্য - সেখানে যেতে, আপনাকে একটি গেম প্রয়োজন । সেদিকে মনোযোগ দিন।
শীর্ষে চেরি হিসাবে বিবেচনা করুন যে অপ্টিমাইজেশানটি কখনই শেষ হয় না। আপনি যে কাজটি সম্পন্ন করেছেন এবং অন্য কাজগুলিতে এগিয়ে যান এটি একটি সামান্য চেক চিহ্ন সহ কোনও কাজ নয়। আপনি করতে পারেন সর্বদা "আরও একটি অপ্টিমাইজেশন" রয়েছে এবং যে কোনও বিকাশের একটি বড় অংশই অগ্রাধিকারগুলি বোঝে। আপনি অপ্টিমাইজেশনের জন্য অপ্টিমাইজেশন করবেন না - আপনি একটি নির্দিষ্ট লক্ষ্য অর্জনের জন্য এটি করেন (যেমন "333 মেগাহার্টজ পেন্টিয়ামে একবারে পর্দার 200 ইউনিট" একটি দুর্দান্ত লক্ষ্য)। টার্মিনাল লক্ষ্যটি হারাবেন না কারণ আপনি মধ্যবর্তী লক্ষ্যগুলিতে খুব বেশি মনোনিবেশ করেন যা টার্মিনাল লক্ষ্যের জন্য পূর্ব-প্রয়োজনীয়তা নাও হতে পারে।