প্রথমে, আমি বলতে পারি যে 2 ডি আরপিজিগুলি আমার হৃদয়ের কাছাকাছি এবং প্রিয় এবং পুরানো ডিএক্স 7 ভিবি 6 এমওআরপিজি ইঞ্জিনগুলির সাথে কাজ করছে (হাসবেন না, এটি 8 বছর আগে ছিল, এখন :-)) যা প্রথম আমাকে গেম বিকাশে আগ্রহী করেছে । সাম্প্রতিককালে, আমি এক্সএনএ ব্যবহার করতে those ইঞ্জিনগুলির মধ্যে একটিতে কাজ করেছি এমন একটি গেমটি রূপান্তর করা শুরু করি।
এটি বলেছিল, আমার প্রস্তাবটি হ'ল আপনি আপনার মানচিত্রের লেয়ারিং সহ একটি টাইল-ভিত্তিক কাঠামো ব্যবহার করুন। আপনি যে কোনও গ্রাফিক্স এপিআই ব্যবহার করেন না কেন, আপনি যে পরিমাণ টেক্সচারগুলি লোড করতে পারেন তার আকারের একটি সীমা থাকবে। গ্রাফিক্স কার্ড টেক্সচার মেমরি সীমা উল্লেখ না করে। সুতরাং, এটি বিবেচনা করে, আপনি যদি মেমরিতে লোড করা টেক্সচারের পরিমাণ এবং আকারকে কেবল হ্রাস না করে ব্যবহারকারীর হার্ড ড্রাইভ এবং লোডের সময়গুলিতে আপনার সম্পত্তির আকার হ্রাস করতে চান তবে আপনি যদি আপনার মানচিত্রের আকারকে সর্বাধিক করতে চান তবে আপনি অবশ্যই টাইলস সঙ্গে যেতে চান।
বাস্তবায়ন যতদূর যায়, আমি এখানে গেমডেভ.এসই এবং আমার ব্লগে (নীচে উভয় লিঙ্কযুক্ত) কয়েকটি প্রশ্নে এটি কীভাবে পরিচালনা করেছি সে সম্পর্কে আমি বিশদভাবে গিয়েছিলাম এবং আপনি ঠিক তাই বলছেন না তাই আমি ঠিক এখানে বেসিক মধ্যে যান। আমি টাইলগুলির বৈশিষ্ট্যগুলিও নোট করব যা সেগুলি বেশ কয়েকটি বৃহত প্রাক-রেন্ডার করা চিত্র লোড করার জন্য উপকারী করে তোলে। যদি কিছু পরিষ্কার না হয় তবে আমাকে জানান।
- আপনাকে প্রথমে যা করতে হবে তা হল একটি টাইলশীট তৈরি করা। এটি কেবলমাত্র একটি বৃহত চিত্র যা আপনার সমস্ত টাইল গ্রিডে প্রান্তিক করে রাখে। এটি (এবং টাইলসের সংখ্যার উপর নির্ভর করে অতিরিক্ত একটি) আপনার কেবলমাত্র লোড করার প্রয়োজন হবে। মাত্র 1 চিত্র! আপনি প্রতি মানচিত্রে 1 বা গেমের প্রতিটি টাইল সহ একটি লোড করতে পারেন; যাই হোক না কেন সংস্থা আপনার জন্য কাজ করে।
- এর পরে, আপনাকে কীভাবে সেই "শীট" নিতে হবে এবং প্রতিটি টাইলকে একটি সংখ্যায় অনুবাদ করতে হবে তা বুঝতে হবে। এটি কিছু সাধারণ গণিত সহ বেশ সোজা। নোট করুন যে এখানে বিভাগটি পূর্ণসংখ্যা বিভাগ , সুতরাং দশমিক স্থানগুলি বাদ পড়ে (অথবা আপনি যদি চান তবে বৃত্তাকার)।
ঠিক আছে, এখন আপনি টাইলসীটটি কোষের একটি সংখ্যা (সংখ্যার) মধ্যে ভেঙে ফেলেছেন, আপনি এই নম্বরগুলি নিতে এবং আপনার পছন্দসই ধারকটিতে প্লাগ করতে পারেন। সরলতার স্বার্থে আপনি কেবল একটি 2 ডি অ্যারে ব্যবহার করতে পারেন।
int[,] mapTiles = new int[100,100]; //Map is 100x100 tiles without much overhead
এর পরে, আপনি এগুলি আঁকতে চান। আপনি এটিকে আরও কার্যকর করার একটি উপায় (মানচিত্রের আকারের উপর নির্ভর করে) কেবল ক্যামেরা যা দেখছেন এবং সেগুলির মধ্য দিয়ে লুপ করছেন কেবল সেগুলি গণনা করা। আপনি ক্যামেরার শীর্ষ-বাম ( tl
) এবং নীচে-ডান ( br
) কোণগুলির মানচিত্র টাইল অ্যারের স্থানাঙ্কগুলি এনে এটি করতে পারেন । তারপরে এগুলি আঁকতে tl.X to br.X
, নেস্টেড লুপ থেকে এবং লুপ tl.Y to br.Y
করুন। নীচের উদাহরণ কোড:
for (int x = tl.X; x <= br.X;x++) {
for (int y = tl.Y; y <= br.Y;y++) {
//Assuming tileset setup from image
Vector2 tilesetCoordinate = new Vector2((mapTiles[x,y] % 8) * 32,(mapTiles[x,y] / 8) * 32);
//Draw 32x32 tile using tilesetCoordinate as the source x,y
}
}
- জ্যাকপট! এটি টাইল ইঞ্জিনের মূল কথা। আপনি দেখতে পাচ্ছেন যে খুব বেশি ওভারহেড না থাকলেও 1000x1000 মানচিত্র থাকা সহজ। এছাড়াও, যদি আপনার 255 টিরও কম টাইল থাকে তবে আপনি প্রতি ঘরে প্রতি বাইট 3 টি মেমরি কাটতে একটি বাইট অ্যারে ব্যবহার করতে পারেন। যদি বাইটটি খুব ছোট হয় তবে একটি উত্তরোত্তর সম্ভবত আপনার প্রয়োজনের জন্য যথেষ্ট হবে।
দ্রষ্টব্য: আমি ওয়ার্ল্ড কোঅর্ডিনেটের ধারণাটি ছেড়ে দিয়েছি (যা আপনার ক্যামেরার অবস্থানের ভিত্তিতে হবে) যেহেতু আমার ধারণা, এই উত্তরটির বাইরে নয়। আপনি এখানে গেমডেভ.এসইতে পড়তে পারেন।
আমার টাইল-ইঞ্জিন সংস্থানসমূহ
নোট: এগুলি সমস্ত এক্সএনএ-তে টার্গেট করা হয়েছে তবে এটি কোনও কিছুর ক্ষেত্রে প্রযোজ্য - আপনাকে কেবল ড্র কলগুলি পরিবর্তন করতে হবে।
- এই প্রশ্নের উত্তরের উত্তরটি কীভাবে আমি আমার গেমটিতে মানচিত্রের ঘরগুলি এবং স্তরগুলি পরিচালনা করি। (তৃতীয় লিঙ্কটি দেখুন))
- এই প্রশ্নের আমার উত্তরটি ব্যাখ্যা করে যে আমি কীভাবে ডেটা বাইনারি ফর্ম্যাটে ডেটা সঞ্চয় করি।
- এই প্রথম (ভাল, টেকনিক্যালি দ্বিতীয়, কিন্তু প্রথম "প্রযুক্তিগত") ব্লগ খেলা আমি কাজ ছিল উন্নয়নের পোস্ট। পুরো সিরিজে পিক্সেল শেডার, আলো, টাইলের আচরণ, চলাফেরার মতো সমস্ত জিনিস এবং মজাদার উপাদান সম্পর্কিত তথ্য রয়েছে। আমি উপরে পোস্ট করা প্রথম লিঙ্কটিতে আমার উত্তরটির বিষয়বস্তু অন্তর্ভুক্ত করার জন্য আমি পোস্টটি প্রকৃতপক্ষে আপডেট করেছি, সুতরাং আপনি এটি পরিবর্তে পড়তে চাইতে পারেন (আমি কিছু জিনিস যুক্ত করে থাকতে পারি)। আপনার যদি কোনও প্রশ্ন থাকে তবে আপনি সেখানে বা এখানে একটি মন্তব্য ফেলতে পারেন এবং আমি সাহায্য করে খুশি হব।
অন্যান্য টালি ইঞ্জিন সংস্থানসমূহ
- এই সাইট থেকে টাইল ইঞ্জিনের টিউটোরিয়াল আমাকে আমার মানচিত্র তৈরির জন্য যে ভিত্তিটি ব্যবহার করেছিল তা দিয়েছিল।
- আমি এই ভিডিও টিউটোরিয়ালগুলি এখনও দেখিনি কারণ আমার সময় নেই, তবে তারা সম্ভবত সহায়ক। :) আপনি যদিও এক্সএনএ ব্যবহার করছেন তবে এগুলি পুরানো হতে পারে।
- এই সাইটে আরও কয়েকটি টিউটোরিয়াল রয়েছে যা (আমার মনে হয়) উপরের ভিডিওগুলির উপর ভিত্তি করে। এটি চেক আউট মূল্য হতে পারে।