ক্রস প্ল্যাটফর্ম গেম ইঞ্জিন বিকাশের জন্য সি ++ 11 ব্যবহার করা


18

দ্রষ্টব্য: এটি সি ++ 03 এবং সি ++ 11 সম্পর্কে 'আপনার মতামত দিন' প্রশ্ন নয়।

আমাদের গেম ইঞ্জিন, সি ++ 03 তে লিখিত, উইন্ডোজ, ওএসএক্স এবং আইওএসে সংকলিত করার জন্য ডিজাইন করা হয়েছে। লিনাক্স সমর্থন অদূর ভবিষ্যতে (খুব) জন্য পরিকল্পনা করা হয়েছে। কনসোলগুলির ক্ষেত্রে আমাদের অভিজ্ঞতা সীমাবদ্ধ, যে কারণে আমি এই প্রশ্নটি জিজ্ঞাসা করছি।

বর্তমানে, আমরা সি ++ 11 এ স্যুইচ করা এবং সি ++ 11 স্ট্যান্ডার্ডের নন-সামঞ্জস্যপূর্ণ বৈশিষ্ট্যগুলি ব্যবহার করা অদূর ভবিষ্যতে কোনও সমস্যা তৈরি করতে পারে কিনা তা নিয়ে আমরা আলোচনা করছি (সম্ভবত আমাদের জেন কনসোলগুলিতে আমাদের ইঞ্জিনটি পোর্ট করতে হবে (সম্ভবত কিছু কনসোল দ্বারা সমর্থিত সংকলকরা এখনও সি ++ 11 সমর্থন করে না? আমরা জানি না ...)।

সুতরাং, গেম ডেভেলপারদের যাদের একাধিক প্ল্যাটফর্ম এবং কনসোল জুড়ে অভিজ্ঞতা রয়েছে, আপনি কি মনে করেন যে নতুন প্রজন্মের কনসোলগুলি না আসা অবধি এবং বেশিরভাগেরই সি ++ 11 স্ট্যান্ডার্ড (তাদের ইতিমধ্যে আছে?) না যাওয়া পর্যন্ত আমাদের সি ++3 তে থাকা উচিত। বা সর্বাধিক কনসোলগুলি / সমর্থন সংকলক (ভিসি ++, জিসিসি বা রূপগুলি?) ব্যবহার করছে যা ইতিমধ্যে সি ++ 11 বৈশিষ্ট্যগুলিকে সমর্থন করছে?


1
আমার জ্ঞানটি কিছুটা পুরানো হয়ে গেছে সুতরাং আমি এটি উত্তর হিসাবে পোস্ট করব না, তবে কনসোল সংকলকগুলির আমার অতীত অভিজ্ঞতাটি হল আপনি যদি ভাগ্যবান হন তবে তারা পুরানো মানের সাথে মেলে তবে কোনও নতুন বিষয় মনে করবেন না।
কাইলোটন

1
কোন বৈশিষ্ট্যগুলি এবং কেন এগুলি এত গুরুত্বপূর্ণ যে আপনি এমন একটি মানক ব্যবহার করা বিবেচনা করছেন যা সর্বাধিক জনপ্রিয় উন্নয়ন প্ল্যাটফর্মগুলিতেও পুরোপুরি প্রয়োগ করা হয় না?
সাপ 5

4
@ স্নাপ 5: অটো, ল্যাম্বডা, টেম্পলেট ওরফে, সি-টোর প্রতিনিধি। এই বৈশিষ্ট্যগুলি কেবলমাত্র আমাদের কোডকে আরও পঠনযোগ্য / সংরক্ষণযোগ্য করে তুলবে না তবে উত্পাদনশীলতা বাড়িয়ে তুলবে। আমি যখন সি ++ 11 থেকে সি ++ 03 তে স্যুইচ করি তখন কেবল অটো কীওয়ার্ডটি আমি খুব মিস করি of অন্যান্য বৈশিষ্ট্য যেমন ভ্যারিয়্যাডিক টেম্পলেটগুলি খুব শক্তিশালী এবং অবশ্যই কোডটি উন্নত করতে পারে তবে আমরা এটি না করেই করতে পারি (এবং এখনও ভিসি ++ কম্পাইলার দ্বারা প্রয়োগ করা হয় না)।
সমুরসা

কাইলোটন যা মন্তব্য করেছে তাতে যুক্ত করে আমি তার মতামতের সাথে পুরোপুরি একমত এবং এমনকি আমার অভিজ্ঞতার মধ্যে একটি বিশেষ উদাহরণ যুক্ত করছি। আপনি যদি সেই ইঞ্জিনটি অ্যান্ড্রয়েড প্ল্যাটফর্মে প্রসারিত করতে যাচ্ছেন, যা সি ++ ব্যবহার করে করা যেতে পারে, আপনি সিডি ++ বৈশিষ্ট্যগুলি এনডিকেতে অসম্পূর্ণ থাকায় আপনার খারাপ সময় আসবে। আপনি নতুন মান ব্যবহার করতে পারবেন না এবং এমনকি আগের কিছু জিনিস ত্রুটিযুক্ত হবে।
গ্রিমশো

1
@ ডেভিলউইথিন, আমি কোনও সমস্যা ছাড়াই অ্যান্ড্রয়েড এনডিকে বেশ কয়েকটি সি ++ ১১ টি বৈশিষ্ট্য ব্যবহার করছি।
notlesh

উত্তর:


19

যদি আপনি খাদ্য এবং আশ্রয়ের জন্য অর্থ প্রদানের জন্য আপনার কোডের উপর নির্ভর করেন এবং আপনার অজানা ভবিষ্যতের প্ল্যাটফর্মগুলিতে ক্রস-প্ল্যাটফর্ম সমর্থন করা প্রয়োজন (বা ভবিষ্যতে ক্রস-প্ল্যাটফর্ম সমর্থন করতে পারে) তবে তার উপর নির্ভর করে আপনার কোডটি ডিজাইন করে অজানা সংকলক লেখকদের গুচ্ছ রক্তপাতের প্রান্তের ভাষার মানগুলির যথাযথ আনুগত্য বিপজ্জনক (এবং আমি যুক্তিযুক্ত, দায়িত্বজ্ঞানহীন)। এটি আপনার পক্ষে বিপজ্জনক এবং তাই আপনার নির্ভরশীলদের পক্ষেও বিপজ্জনক।

আপনি যদি এই ধরণের ঝুঁকি নিতে চান autoতবে সর্বদা এটির জন্য যান। তবে আমি আপনাকে এটি করার পরামর্শ দিচ্ছি না।

কারণ আমার অভিজ্ঞতা হিসাবে, বিশেষত কনসোলগুলিতে ক্রস প্ল্যাটফর্মে যাওয়া সর্বনিম্ন সাধারণ ডিনোমিনেটরকে লক্ষ্য করে সর্বাধিকভাবে সম্পাদন করা যায় যা আপনি নিশ্চিত হতে পারেন যে সর্বশেষতম হুইস-ব্যাং ভাষার বৈশিষ্ট্যগুলির উপর নির্ভর করে নয় virt যদি কোনও দিন আপনাকে এমন প্ল্যাটফর্মে পোর্ট করতে হয় যা তাদের সমর্থন করে না, আপনি আপনার সিস্টেমগুলি স্ক্র্যাচ থেকে পুনরায় লিখতে হবে। এমনটি হওয়ার সময় আপনি কি মজুরি / ভাড়া দিতে পারবেন?


4
এটির জন্য +1 (এবং পোস্টটির বাকী অংশ, তবে এটি): "অজানা সংকলক লেখকদের একগুচ্ছের উপর নির্ভর করুন [রক্ত] রক্তপাতের প্রান্তের ভাষার মানগুলির যথাযথ আনুগত্য বিপদজনক"। সর্বশেষতম খেলনাগুলির সাথে পরীক্ষা করা সবসময় মজাদার, তাদের উপর এতটা নির্ভর করে না।
NoobsArePeople2

2
আমি এই "সতর্ক থাকুন" উত্তরগুলি দেওয়ার বিষয়ে সত্যই উদ্বিগ্ন, বিশেষত যখন তারা স্পষ্টভাবে মূল পোস্টারটি শুনতে চায় না। তবে আমি ক্রস প্ল্যাটফর্ম প্রকল্পে নতুন ভাষার মানের উপরে ঝাঁপিয়ে পড়তে স্বাচ্ছন্দ্য বোধ করার জন্য আমার কেরিয়ারে অনেক সময় কনসোলগুলিতে বড় সংকলক বাগগুলি দেখেছি। সংকলকটিতে ইস্যুগুলি ঘুরে দেখার জন্য আপনার কোডটি পুনরায় লেখার প্রয়োজন কখনও মজাদার নয়, বিশেষত যখন আপনি একটি সময়সীমার অধীনে থাকেন।
ট্রেভর পাওয়েল

আমি এটিকে কম করে তুলতে যাচ্ছি না তবে নতুন সি ++ স্ট্যান্ডার্ডটি অটো কীওয়ার্ডের মতো সিনট্যাকটিক চিনির চেয়ে অনেক বেশি।
vdaras

1
@ ট্রেভরপওয়েল, আপনি বলেছিলেন যে নতুন সি ++ স্ট্যান্ডার্ডে আরও অনেক গুরুত্বপূর্ণ এবং মৌলিক বৈশিষ্ট্য উপস্থিত থাকলে তিনি অটো কীওয়ার্ডের জন্য যে ঝুঁকি নেবেন তা ছিল। ঝুঁকি নিয়ে চিন্তা করার সময় তাদের মধ্যে কিছু, মূলসূত্র উল্লেখের মতো গুরুত্বপূর্ণ বিবেচনায় নিতে হবে।
vdaras

2
@ ট্রেভরপওয়েল এজন্যই আমি বলেছিলাম যে পোস্টটি সম্পর্কে আমার যে কোনও যুক্তি সত্ত্বেও ডাউন ডাউন নয়। আমি বিশ্বাস করি যে এটি একটি ভাল পোস্ট, আমি কেবল স্পষ্ট করে বলতে চেয়েছিলাম যে নতুন সি ++ স্ট্যান্ডার্ডের কয়েকটি খুব গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে এবং এটি ব্যবহার করার বিষয়টি বিবেচনা করে কেবল অটো-এর মতো কোনও ছোটখাটো জিনিস নয়।
vdaras

6

যদি আপনি আরও কিছু কাজ করতে ইচ্ছুক হন তবে আপনি রিফ্র্যাক্টরিং সমাধানগুলিতে সন্ধান করতে পারেন। ঝনঝনানি নিয়ে বর্তমানে সেই অঞ্চলে কিছু আকর্ষণীয় জিনিস রয়েছে। অটো কীওয়ার্ডটি ব্যবহার করা, রিফ্যাক্টোরারের মাধ্যমে এটি চালানো সম্ভব হবে যা এর সমস্ত ব্যবহার খুঁজে পাবে, আপনার জন্য তাদের সমাধান করুন এবং কোড আউটপুট করুন তারপরে যা চান তা সংকলন করুন।

তবে এর অর্থ আপনার গেমটিতে কাজ করার জন্য কম সময়।

কিছু অতিরিক্ত বৈশিষ্ট্যগুলির সম্ভাবনাও রয়েছে, উদাহরণস্বরূপ প্রতিফলন। আপনি একটি ক্লাস তৈরি করতে এবং রানটাইম পরিদর্শন করতে সমস্ত বৈশিষ্ট্যের একটি তালিকা স্বয়ংক্রিয়ভাবে তৈরি করতে পারেন। স্ক্রিপ্টিং, গেম এডিটর তৈরি এবং এ জাতীয় জন্য খুব কার্যকর হতে পারে। সম্পাদনা: ক্রেফ্লেক্ট পরীক্ষা করে দেখুন

http://cppnow.org/session/refactoring-c-with-clang/

http://www.youtube.com/watch?v=mVbDzTM21BQ

http://clang.llvm.org/docs/Tooling.html

http://clang.llvm.org/docs/RAVFrontendAction.html


অত্যন্ত আকর্ষণীয়; আপনি কি এই (বা অনুরূপ) উদ্দেশ্যে নিজে চেষ্টা করেছেন?
জোনাস বাইস্টর্ম

এখনও না, এটি আরও উন্নত না হওয়া পর্যন্ত অপেক্ষা করার সিদ্ধান্ত নিয়েছে তবে শেষবারের দিকে আমি সত্যিই এটি দেখেছি, এটি কেবল এসএনএন-এ ছিল।
ডেভিড সি বিশপ

খুব আকর্ষণীয় (+1)
সমুরসা

এটি আমাকে পাইথনের মতো 2to3বিপরীতে এবং বিপরীতে এবং আরও অনেক ভয়ঙ্কর তবে সম্ভবত ব্যবহার করা আরও কঠিন something মানুষ, আরও কত ভাল autoপেতে পারেন ?
স্টিভেন লু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.