আপনি যখন একটি খেলায় সংস্থান রাখেন, তখন আপনার খুব বেশি থাকে?


10

আমি সম্প্রতি অ্যালেগ্রো 5 ফ্রেমওয়ার্ক ব্যবহার করে সি ++ তে একটি বেসিক স্পেস ইনভাইডার্স ক্লোন তৈরি করেছি। আমি শেষ করার পরে, আমি বুঝতে পেরেছিলাম যে আমার প্রায় 10 টি স্প্রাইট রয়েছে, এবং 13 এমবি মূল্যের ডিএলএল রয়েছে; কিছু খেলোয়াড়ের এমনকি মিংডাব্লু ডিএলএলও ছিল না, যা খেলাটি খুব বিভ্রান্তিকর করে তুলেছিল।

আমি কীভাবে আমার সমস্ত সংস্থানগুলি এমনভাবে প্যাক করব যাতে আমি সহজেই আমার গেমটিতে ডেটা যুক্ত করতে এবং মুছে ফেলতে পারি, এবং উত্সটি গৃহীত আকার হ্রাস করতে, মূলত সেগুলিকে এক জায়গায় রেখে? আমি কোডব্লক ব্যবহার করছি।


1
আপনি কীভাবে শব্দ সংস্থান বুঝতে পারেন? চিত্র, শব্দ, ... এর মতো সম্পদ বা এই শব্দটিতে আপনি ডিএলএল অন্তর্ভুক্ত করবেন?
খ্রিস্টান আইভিসেভিচ

আমি যদি ডিএলএল ফিট করতে পারি তবে আমি পছন্দ করতাম কারণ আমার প্রচুর পরিমাণ আছে।
বাগস্টার

আমার প্রথম ধারণাটি হ'ল (বেশ পুরানো ...) এর মতো উপযুক্ত লাইব্রেরিটি সন্ধান zziplibকরতে হবে আমার সাধারণ সমস্ত সম্পদটি একটি জিপ ফাইলে সংরক্ষণ করা এবং তারপরে ইঞ্জিনের একটি কাস্টম সামগ্রী পাইপলাইনের মাধ্যমে সেগুলিকে আমার গেমটিতে লোড করুন। আপনি মূলত যা শুরুতে সন্ধান করছেন তা হ'ল একটি জিপ ফাইল থেকে মেমোরিতে ফাইলগুলি লোড করার একটি উপায় যা সেগুলিকে আপনার খেলায় ব্যবহার করতে সক্ষম করে। ডিএলএল এটা বেশ কঠিন বিষয়ে কারণ তারা সাধারণত এক্সিকিউটেবল বা হিসাবে একই দির হতে হবে Windowsবা System32Dir যা না বাঞ্ছনীয়! কীভাবে কোনও এসএফএক্স সংরক্ষণাগারটি TEMPসেখান থেকে উত্তোলন এবং চালানোর জন্য ?
খ্রিস্টান আইভিসিভিক

3
আপনি কীভাবে ইনস্টলার ব্যবহার করবেন সে সম্পর্কে জিজ্ঞাসা করছেন? কারণ ডিএলএলগুলি সম্পদ নয়।
নিকোল বোলাস

উত্তর:


13

দেখে মনে হচ্ছে আপনি এখানে দুটি চ্যালেঞ্জের মুখোমুখি হচ্ছেন: বিতরণ এবং সম্পদ প্যাকেজিং।

বিতরণ

আপনি উপযুক্ত দেখতে দেখতে আপনার পুরো অ্যাপ্লিকেশনটিকে ডিরেক্টরিতে প্যাকেজ করুন, তারপরে শীর্ষ-স্তরের ডিরেক্টরিটি একটি .zip ফাইলে রাখুন। .Zip ফাইলটি বিতরণ করুন। আপনার ব্যবহারকারীরা জিপটি বের করার সময়, তাদের কাছে গেমটি চালানোর জন্য প্রস্তুত সমস্ত কিছুর একটি ফোল্ডার থাকবে।

আপনি কিভাবে আপনার ফাইল স্থাপন করবেন?

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

আমি সাধারণত এটির মতো কিছু করি:

মাইগেম \ // শীর্ষ স্তরের ডিরেক্টরিতে সম্পূর্ণ প্রোগ্রাম রয়েছে
  বিন \ // ডেলগুলি সংকলিত উদাহরণ সহ এখানে যান
  রেজ \ // গেম রিসোর্স শীর্ষ স্তরের ডিরেক্টরি
    সঙ্গীত \
    শব্দের প্রভাব\   
    ভয়েস \
  সিএফজি \ // ডিফল্ট কনফিগারেশন ফাইলগুলি (ব্যবহারকারীর কনফিগারেশন ব্যবহারকারী ডিরেক্টরিতে যায়)
  মাইগেম.এলএনকে // সংকলিত এক্সের শর্টকাট

সম্পদ প্যাকেজিং

আপনি আপনার গেমের সমস্ত সংস্থান (উপরের রেস \ ডিরেক্টরি) একক ফাইলে সংকুচিত করতে কিছু ধরণের সংক্ষেপণ গ্রন্থাগার (zlib, lzo) ব্যবহার করতে পারেন। তারপরে আপনার গেমটিতে আপনার সম্পদগুলি লোড করার জন্য রিয়েল-টাইমে আপনার সংস্থানগুলির সামগ্রীগুলি বের করার জন্য আপনাকে একই সংকোচনের গ্রন্থাগার ব্যবহার করতে হবে।

তারপরে আপনি যখন নিজের সম্পদগুলি প্যাচ করতে চান তখন কী হয়? তারপরে আপনার একটি হয়: সম্পূর্ণ নতুন সম্পদ ফাইল সংকলন করুন এবং এটি আপনার ব্যবহারকারীদের কাছে বিতরণ করুন (সুতরাং তারা ইতিমধ্যে যা রয়েছে তা পুনরায় ডাউনলোড করছে, আরও কয়েকটি মুখ্য সংযোজন), বা আপনাকে একটি আপডেটেটর তৈরি করতে হবে (বজায় রাখার জন্য অন্য একটি প্রোগ্রাম) ) এবং জিনিসগুলি ভুল হতে পারে এবং আপনার সম্পদ ফাইলটি দুর্নীতিগ্রস্থ হয়ে উঠবে এই বিষয়টি নিয়ে কাজ করুন ...

সত্য, এটি কাজ করা ঠিক তুচ্ছ নয় এবং আপনার পরিস্থিতিতে আমি বেতনটি দেখতে পাচ্ছি না। একটি সাধারণ ডিরেক্টরি আপনার 10 টি স্প্রিটকে এম্পুলেট করার জন্য পর্যাপ্ত হওয়া উচিত এবং জিনিসগুলি যুক্ত করতে এবং প্যাচ করা পুরোপুরি সহজ: কেবল সেগুলি সঠিক ডিরেক্টরিতে ডাউনলোড করে শেষ করা দরকার।

ইনস্টলার তৈরি করা হচ্ছে

এটি ধরে নিচ্ছে আপনি উইন্ডোজকে টার্গেট করছেন ... একবার উপরেরটি নীচে নেমে গেলে আপনি আপনার গেমের জন্য ইনস্টলার তৈরির কাজ করতে পারেন। আমি ভিজ্যুয়াল স্টুডিও সমর্থন করে ক্লিকঅনস পদ্ধতিগুলি যে কোনও মূল্যে এড়াতে পারি। এটা না আপনার সাধারণত উইন্ডোজ ইনস্টলার এবং quirks তা নিজস্ব সেট দিয়ে আসে।

কটাক্ষপাত এই Stackoverflow প্রশ্ন - এটা ইনস্টলার প্যাকেজ আপনি ব্যবহার করতে পারেন সহায়ক লিঙ্ক একটি সেট রয়েছে। আজকাল প্রচুর লোকেরা ওয়াইএক্স পছন্দ করে । আমি নিজে কখনও এটি ব্যবহার করি নি। তদতিরিক্ত , অ্যাডভান্সড ইনস্টলার এবং ইনোসেটআপ দুটি জনপ্রিয় পছন্দ।


1
এই উত্তরের জন্য ধন্যবাদ, এখন আমার কীভাবে আমার গেমটি বিতরণ করা উচিত তা সম্পর্কে আমার কাছে একটি প্রাথমিক ধারণা রয়েছে।
বাগস্টার

1
ওয়াইএক্স ব্যবহার করবেন না। এটি আপনার মাথায় আঘাত করবে এবং আপনার পরিবারকে হত্যা করবে।
রে দে

1
আরও একটি বিকল্প রয়েছে - একাধিক সম্পদ প্যাকেজ থাকতে পারে। "রিসোর্স.পাক, প্যাচ 1.পাক, প্যাচ 1337.pak, .." এর মতো কিছু তখন প্যাচ ডেটা সংরক্ষণ করার উপায়। মূল প্যাকেজটি সংশোধন করার দরকার হবে না, কেবল ইঞ্জিনটিকে প্যাচ প্যাকেজগুলি সনাক্ত ও অর্ডার করতে সক্ষম করুন।
সাপ 5

0

আপনি dll এর পরিবর্তে কিছু লাইব্রেরি স্থিতিশীলভাবে লিঙ্ক করতে সক্ষম হতে পারেন। যদিও এবং কীভাবে প্রতিটি লাইব্রেরির জন্য আলাদা।


-1

আপনি আপনার ফাইলগুলি প্যাক করতে এবং সেগুলিকে একটি একক .ড্যাটে সংরক্ষণ করতে এনিগমার মতো একটি সফ্টওয়্যার ব্যবহার করতে পারেন। আপনার লঞ্চের ফোল্ডারটি পরিবর্তন করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.