গেমগুলি একবার মেশিনের ভাষায় লেখা হয়েছিল, কারণ তাদের কাছে ছিল বহিরাগত হার্ডওয়্যার যার জন্য কোনও সংকলক ছিল না। এই হার্ডওয়্যারটিতে এমন বৈশিষ্ট্যও নেই যা সি প্রোগ্রামাররা গ্রহণযোগ্যতার জন্য গ্রহণ করে, যেমন দক্ষ 16-বিট পূর্ণসংখ্যার গণিত।
গেমগুলি পরিচিত হার্ডওয়্যারগুলিতে স্থির হয়ে গেলে, সি সংকলকগুলি উপলভ্য হয়ে যায় এবং অল্প সময়ের মধ্যে সমস্ত গেম সিতে লেখা হয়
সি ++ একবারে একটি ভাল ধারণা বলে মনে হয়েছিল, এবং বেশিরভাগ গেমস সি ++, তবে ইঞ্জিনিয়াররা এখন সি-তে ফিরে আসার বিষয়ে বিড়বিড় করছে, এবং সম্ভবত এটি ঘটতে পারে। আমি সি তে একটি গেমে কাজ করতে পছন্দ করব এবং অনেক সহকর্মীও চাই। সি ++ তে নতুন কোনও বৈশিষ্ট্য নেই যা আমার মনে হয় গেমগুলিকে উন্নত করে।
কম্পিউটারগুলি কয়েক বছর আগের তুলনায় 1000x দ্রুত গতিতে এখন মনে হচ্ছে, একটি উচ্চ স্তরের ভাষা বিকাশের সময়কে ($) সি অচল করে তুলবে।
এটি ঘটেনি কারণ গেমের ক্রেতারা জানেন যে হার্ডওয়্যারটি 1000x আরও ভাল, এবং এমন একটি গেমের জন্য তাদের ডলারগুলি বাণিজ্য করতে চায় যা দেখতে আরও ভাল এবং 1000x ভাল দেখায়। এটি উচ্চ স্তরের ভাষা গ্রহণ করবে এমন সিস্টেম থেকে theিলটিকে সরিয়ে দেয়।
গেমসে পারফরম্যান্সের প্রয়োজনীয়তা নির্মম। গ্রাফিক্সের একটি নতুন ফ্রেম অবশ্যই ব্যর্থতা ছাড়াই 33 মিমি (বা 16 মিমি!) এর মধ্যে রেন্ডার করা উচিত। হার্ডওয়্যার যা কিছু করে তা অবশ্যই জবাবদিহি করতে হবে, যাতে এই বাজেটটি পূরণ করা যায়। প্রোগ্রামার বুঝতে পারে না বা প্রত্যাশা করে এমন হার্ডওয়্যার সহ এমন কোনও ভাষা যা বন্ধ হয়ে যায় এবং এমন কিছু করে যা এই বাজেটটি পূরণ করা খুব কঠিন করে তুলছে। এটি উচ্চ-স্তরের কোনও কিছুর বিপরীতে একটি স্বয়ংক্রিয় বিয়োগ।
গেম প্রোগ্রামাররা কেবল একটি নিম্ন-স্তরের ভাষায় কাজ করে না, তবে তারা উচ্চ-স্তরের ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলিও বাদ দেয়। গেমগুলিতে সাধারণত লিঙ্কযুক্ত তালিকা থাকে না এবং খুব কমই গাছ থাকে। যখনই সম্ভব * পয়েন্টার এড়ানোর দিকে চলাচল আছে। O (N) সময় বা O (1) এর বেশি স্থান সহ যে কোনও অ্যালগরিদম বিস্তৃত ব্যবহার খুঁজে পাবে না।
* যদি কোনও পয়েন্টারটি ক্যাশে মিস না করে, তবে কেন 32 টি বিট এটি সঞ্চয় করতে ব্যয় করবে? যদি কোনও পয়েন্টার ক্যাশে মিসের কারণ হয়ে থাকে তবে সেরা সেই ক্যাশে মিস থেকে মুক্তি পান।