গুরুতর গেম ডেভলপমেন্টের জন্য জাভা কি কার্যকর? [বন্ধ]


64

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

গুরুতর গেম বিকাশের জন্য জাভা কি গ্রহণযোগ্য ভাষা? গুরুতরভাবে, আমি উচ্চমানের গ্রাফিক্স বলতে চাইছি আধুনিক কম্পিউটারগুলিতে খুব বেশি পিছিয়ে নেই। আমি কনসোলগুলির জন্য গেমস তৈরির বিষয়টিও বিবেচনা করতে চাই।


25
জাভা দিয়ে মাইনক্রাফ্ট তৈরি হয় না? না মূলত ওপেনজিএল? ওহ এবং জাভাতে 100% সেট না থাকলে সি # পরীক্ষা করে দেখুন, এটি দুর্দান্ত।
অ্যারলাক্স

7
আপনি স্ট্যাক ওভারফ্লো সি ++ চ্যাটে কেন আসবেন না? আমরা সি ++ পছন্দ করি, আমরা মনে করি এটি একেবারে সঠিকভাবে ব্যবহার করা যেতে পারে এবং আমরা কীভাবে এটি করতে পারি তা আমরা জানি এবং ভাগ করে নিতে আমরা পুরোপুরি খুশি হব।
ডেড এমএমজি

12
মাইনক্রাফ্টটি জাভা + এলডাব্লুজেজিএল + নচের কোডিং দক্ষতা, তাই পারফরম্যান্স-ভিত্তিতে এটি মারাত্মক।
এমএলপ্রোগ্রামার-সিআইএম

3
আপনার কোডিং গেমস বা অন্য যে কোনও কিছু হোক না কেন, নিজেকে একক ভাষায় লক করা ভবিষ্যতে আপনাকে সাহায্য করবে না। কিছুটা শাখা, সি ++ অথবা পাইথনের মতো অন্য কিছু else এটি সময় নেয়, তবে এটি আপনাকে আরও ভাল দেব করে তোলে।
লগানফস্মিথ

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

উত্তর:


54

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

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

অন্যদিকে, জাভা দিয়ে আপনার বেশ কয়েকটি সমস্যা রয়েছে।

  1. আবর্জনা সংগ্রহকারী. অন্যরা যেমন বলেছে, অ-নিরস্তাত্মক মেমরি পরিচালনা একটি সমস্যা, এবং আপনার এটি মনে রাখা দরকার code
  2. তৃতীয় পক্ষের গ্রন্থাগারের অভাব। উপলব্ধ বেশিরভাগ গ্রন্থাগার জাভা সমর্থন করে না। অন্যদিকে আপনার কাছে সর্বদা জাভা থেকে এই স্থানীয় গ্রন্থাগারগুলি কল করার বিকল্প রয়েছে তবে এটি করা আরও কাজ। এছাড়াও রয়েছে জাভা পোর্ট বা রেডিমেড জনপ্রিয় লাইব্রেরির জন্য উপলব্ধ চাদরে, উদাহরণস্বরূপ আমি ব্যবহার করছি JBullet - বুলেট পদার্থবিদ্যা লাইব্রেরির জাভা বন্দর । অন্যদিকে জাভাতে একটি বিশাল শ্রেণিবদ্ধ গ্রন্থাগার রয়েছে যা গেম সম্পর্কিত নয় এমন তৃতীয় পক্ষের লাইব্রেরির প্রয়োজনীয়তা হ্রাস করে। লাইব্রেরির অভাব আমার পক্ষে সমস্যা হয়নি তবে আমি ভাবতে পারি যে এটি অন্যদের জন্যও হতে পারে।
  3. জাভা জনপ্রিয় গেম কনসোলগুলি দ্বারা সমর্থিত নয় এবং যতদূর আমি জানি জাভা থেকে তাদের পক্ষে কোনও সহজ স্যুইচ নেই। অন্যদিকে অ্যান্ড্রয়েড, যা একটি জনপ্রিয় মোবাইল প্ল্যাটফর্ম, জাভা কিছু ফর্ম ব্যবহার করে। এটিও একটি বিকল্প, তবে পিসি এবং অ্যান্ড্রয়েড ডিভাইসে উভয়ই একই জাভা কোড বাদে চলবেন না।
  4. ছোট সম্প্রদায় বেশিরভাগ গেম প্রোগ্রামাররা সি ++ ব্যবহার করে এবং আমার অভিজ্ঞতায় প্রায়শই জাভা অপছন্দ করে। অন্যের কাছ থেকে ততটা সহায়তা পাওয়ার আশা করবেন না। সি ++ দক্ষতা ছাড়াই গেম বিকাশে চাকরি পাওয়ার আশা করবেন না।

40

আসলে তা না. এখানে জিনিসটি রয়েছে - প্রথমত, জাভা জন্য বিদ্যমান লাইব্রেরিগুলির ক্ষেত্রে সি ++ এর জন্য কার্যত সমস্ত কিছুর তুলনায় খুব কম ।

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

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

এছাড়াও, আমি যদি এখনই জাভা শিখতে এবং উন্নত করতে থাকি এবং পরে দেখা যাচ্ছে যে পরে আমাকে সি ++ শিখতে হবে, তা কি সুইচটিকে অসুবিধে করবে?

হ্যাঁ, একেবারে এটি হবে। জাভা এবং সি ++ এর পর্যাপ্ত পরিমাণে সিনট্যাকটিক মিল রয়েছে সত্ত্বেও, একেবারে পৃথক। জাভা অভিজ্ঞতা সি ++ শিখার সময় কার্যত কিছুই বিবেচনা করে না।

গ্রাফিক্স উপর গেমপ্লের হয় একটি টেকসই পছন্দ, এবং আপনি Terarria এবং Minecraft মত গেম সাফল্যের এটা দেখতে পারেন। তবে আপনি যদি এসআরএস গ্রাফিক্স তৈরি করতে চান তবে জাভাতে এটি কার্যকর হবে না।


6
+1 যেহেতু তিনি ভারী গ্রাফিক্স নির্দিষ্ট করেছেন, দ্রুত গেমটি পিছনে ছাড়াই প্লে।
জোশুয়া ড্রেক

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

@ ডিএডএমজি লকড এবং আনলক করা ক্ষেত্রে কি আপনি কিছু ডাইরেক্টএক্স এপিআই কার্যকারিতা উল্লেখ করছেন? & আপনি কি আমাকে বলতে পারেন, অ-নিরস্তক জিসি থাকা সম্পর্কে কী খারাপ।
কাজী ইরফান

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

2
একটি শুরু আপনাকে সম্পূর্ণ পুনরায় লিখতে হবে।
ডেডএমজি

25

সুতরাং, আমি গেম ডেভলপমেন্ট সম্পর্কে সত্যই গুরুতর, জাভা কি এখনও একটি কার্যকর বিকল্প? আমি সি ++ শিখতে একাধিকবার চেষ্টা করেছি, তবে আমি আসলে ভাষা পছন্দ করি না। আমি কেন জানি না, তবে সাধারণত, যখনই আমি শেখার চেষ্টা করি, আমি কখনই বিষয়গুলি বুঝতে পারি না।

আপনার জাভা বেছে নেওয়ার কারণ যদি আপনি সি ++ বুঝতে না পারেন তবে আপনার জাভা প্রোগ্রামগুলি উচ্চ মানের গ্রাফিক্সের জন্য যথেষ্ট দ্রুততর হতে পারে না। উচ্চ স্তরের ভাষা ব্যবহার করা উচিত কারণ এটি আপনাকে আরও উত্পাদনশীল করে তোলে, এটি নয় যে আপনি নিম্ন স্তরের ভাষাটিকে কমিয়ে দিতে পারেন না।

জাভাতে কোনও গেম লেখার পক্ষে এটি সম্পূর্ণ খারাপ ধারণা বলে আমি মনে করি না, বিশেষত গেমটি যদি সহজ হয় তবে আপনি যদি তা ক্র্যাচ হিসাবে ব্যবহার করেন তবে আপনি অবিলম্বে জাভাতে পারফরম্যান্স সম্পর্কিত সমস্যার সমাধান করতে চলেছেন।

সুতরাং, সংক্ষেপে, জাভাটিকে গুরুতরভাবে নেওয়া যেতে পারে, গেমের গুরুতর বিকাশের জন্য। এর মধ্যে রয়েছে ভারী গ্রাফিক্স, ল্যাগ ছাড়াই দ্রুত গেম প্লে এবং সম্ভবত এবং কনসোলগুলিতে সহজ স্যুইচ?

  1. ভারী গ্রাফিক্স: সম্ভাব্য, তবে আপনি জাভা / এলডাব্লুজেজিএল একই জিনিস করতে যাচ্ছেন আপনি যেমন সি ++ / জিএল: জিপিইউ বাফারগুলিতে বাইট লেখার জন্য এবং / অথবা মিনক্রাফ্টের মতো অবহিত প্রদর্শন তালিকা ব্যবহার করছেন। আপনি যদি মেমরি পরিচালনাটি বুঝতে না পারেন তবে আপনি এটিও সঠিকভাবে করতে যাচ্ছেন না।

  2. দেরী না করে দ্রুত গেম খেলুন: কোনও ভাষায় সহজ কাজ নয় এবং আপনি এতে কোনও চিন্তা না করেই কোনওভাবে নিজেকে পায়ের কাছে গুলি করতে পারেন।

  3. না, জাভা কনসোলগুলিতে উপলব্ধ হবে না।


পার্শ্ব প্রশ্ন হিসাবে, ডিসপ্লে তালিকাগুলি হ্রাস করা হলে তারা কী প্রতিস্থাপন করেছিল?
সুডস

@ সুডস: প্রোগ্রামেবল পাইপলাইন, আমি বিশ্বাস করি।
ডেড এমএমজি

হা! ইতিমধ্যে এটি আবৃত। ভিবিওস: গেমদেব.স্ট্যাকেক্সেঞ্জার.কমিশনস / ২২২০70০/২
জিমি

মোবাইল প্ল্যাটফর্মগুলি কনসোল হিসাবে বিবেচিত হতে পারে। আমি বুঝতে পারি যে তিনি সম্ভবত বড় তিনটির কথা বলছিলেন, তবে অ্যান্ড্রয়েড জাভা ব্যবহার করে এবং প্রচুর গেমস এর জন্য তৈরি করা হয়েছে।
পরিবর্ধিত

1
@ এমপ্লিফাইটি91 হ্যাঁ অ্যান্ড্রয়েডের জন্য জাভাতে কয়েকটি গেমস লেখা আছে। তবে বেশিরভাগ ভাল গেমস এবং সম্ভবত সমস্ত গ্রাফিক নিবিড় বা মাল্টি প্ল্যাটফর্ম গেমগুলি অ্যান্ড্রয়েড এনডিকে ব্যবহার করে সি ++ এ লেখা হয়।
কো

15

একজন অভিজ্ঞ প্রোগ্রামার সাধারণত অনেকগুলি প্রোগ্রামিং ল্যাঙ্গুয়েজ জানবেন - আপনি একবার ভাল করে জানলে অতিরিক্ত প্রোগ্রামিং ভাষা শেখা খুব বেশি কঠিন নয়। তবে আমি দৃ strongly়ভাবে সুপারিশ করব যে সি ++ আপনার প্রথম ভাষা হওয়া উচিত নয় এবং সম্ভবত এটি দ্বিতীয়টিও নয়।

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

আমি আপনাকে আপাতত জাভা দিয়ে আটকে থাকার পরামর্শ দিচ্ছি (বা আপনি যদি এটি পছন্দ করেন তবে সি # এ স্যুইচ করুন)। এটি আপনাকে সি ++ ব্যবহারের চেয়ে দ্রুত কাজ শেষ করতে দেয় এবং পিসিতে পারফরম্যান্স কোনও সমস্যা হওয়া উচিত নয়।

সুরক্ষিত ভাষায় কয়েকটি প্রকল্প শেষ করার পরে সি ++ শেখার বিষয়ে চিন্তা করুন। সি ++ হ'ল আপনার বেশিরভাগ পেশাদার গেম ডেভলপমেন্ট কাজের জন্য যা প্রয়োজন।

মনে রাখবেন যে সি # / এক্সএনএ গেমটি বাদ দিয়ে আপনি একটি কনসোলে সর্বনিম্ন লিখিত একটি গেম পাওয়ার ব্যতীত আপনাকে একটি সংস্থা স্থাপন করতে হবে, একটি অফিস সহ, এবং বিকাশ হার্ডওয়্যার এবং অন্যান্য ব্যয়ের জন্য একটি বিশাল বাজেট উপলব্ধ রয়েছে।


এটিও ব্যতিক্রমী সত্য কারণ সি ++ এর বাইরে অন্যান্য ভাষা আপনাকে কৃতিত্বের অনুভূতি দেয়। কিছুই না বলে মনে হতে পারে তার জন্য সি ++ কয়েক ঘন্টা সময় নিতে পারে। প্রথমে অন্য ভাষা শেখা আপনাকে পা ভিজতে দেয়।
ডার্কেনর

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

9

দাবি অস্বীকার : এটি আপনার প্রশ্নের সঠিক উত্তর দেয় না। যাইহোক, আমি কয়েকটি বিষয় (সংক্ষেপে) উল্লেখ করার চেষ্টা করেছি যা আপনার পক্ষে আগ্রহী হতে পারে।

আপনি সি ++ সম্পর্কে এত বেশি কারণ দেখার কারণ হ'ল সি ++ এখনও শিল্পের মান - কনসোলগুলির জন্য সর্বাধিক সাধারণ ভাষা etc.

জাভা প্রায়শই ব্যবহার হয় না। মাইনক্রাফ্ট একটি দুর্দান্ত জনপ্রিয় গেম যা এটি জাভা দিয়ে বড় করেছে; তবে এটি গ্রাফিকভাবে এত দুর্দান্ত নয়। সর্পিল নাইটগুলি খারাপ নয় - জাভাতেও তৈরি হয়েছিল, উল্লেখযোগ্য গ্রাফিক্স সহ।

আপনি যদি জাভা পছন্দ করেন, সি # এর সিনট্যাক্সের সাথে খুব মিল, এই সুবিধাটি যে এটি সি ++ এর সাথে বিরতি দিতে পারে - তাই প্রয়োজনে নিম্ন স্তরের স্টাফগুলি সি ++ এ করা যেতে পারে। ইউনিটি স্ক্রিপ্টিংয়ের জন্য সি # ব্যবহার করতে পারে এবং এক্সএনএ একটি দুর্দান্ত পছন্দ।

আবার জাভাও বহুল ব্যবহৃত হয় না। আপনি যদি স্টাইল এবং বাক্য গঠনটি পছন্দ করেন তবে আমি মনে করি আপনি সি # কে একটি খুব অনুরূপ, খুব মনোরম কোডিংয়ের অভিজ্ঞতা হিসাবে পেয়ে যাবেন।

আমি আশা করি আপনার স্বপ্নগুলি এটি হয়ে যায়, পথে এটি অনেক মজাদার :)


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

2
@ এফইস: এটি আপনার কাছে ভাঙতে আমি ঘৃণা করি, তবে পরিচালিত স্মৃতি গেমসের জন্য ভয়ানক এবং এক্সএনএ-তে গেমস কোড করা লোকেরা সি ++ এ কোড করা লোকদের চেয়ে মেমরি পরিচালনায় বেশি সময় ব্যয় করতে হয়। জিসির অ-নিরপেক্ষ প্রকৃতির অর্থ আপনাকে ব্যবহারিকভাবে সমস্ত কিছু পুল করতে হবে এবং প্লেগের মতো বরাদ্দ এড়াতে হবে - ভাষাটি যেভাবে ব্যবহার করা হয়েছিল বলে মনে করা হত না।
ডেড এমএমজি

এই উত্তরটি 100% নির্ভুল হতে বোঝানো হয়নি; আমি কেবল উদাহরণগুলি উদ্ধৃত করেছি যার সম্পর্কে আমি অস্পষ্টভাবে জানি। ডিভি নির্দ্বিধায়।
ashes999

2
@ ডেড এমএমজি আমি জানি সি ++ যাওয়ার উপায়, আমি কেবল বোঝানোর চেষ্টা করছিলাম যে গেমসের জন্য জাভা চেয়ে সি # ভাল।
এমএলপ্রোগ্রামার-সিআইএম

5
দীর্ঘ সময় সি # বিকাশকারী হওয়া (গেম ডেভেলপারের ধারণা নয়) আমি বিশ্বাস করি যে কোনও খারাপভাবে ডিজাইন করা সিস্টেমের জন্য পুলিং এবং মেমরি ম্যানেজমেন্ট দুর্দান্ত সমস্যা। আমি জানি যে সি / সি ++ মানসিকতা এবং বিকাশের উপায়গুলি, পরিচালিত মেমোরি, নকশা এবং আর্কিটেকচার ধরণগুলিতে খুব কমই হাঁপিয়ে যায় যা অবশ্যই ব্যবহার করা উচিত এবং জাভা / সি # এর মতো ভাষায় তাদের সুবিধা গ্রহণ করতে হবে। আমি যেটি বলতে চাইছি, তা কি সি / সি ++ কৌশল বা পণ্যগুলি খারাপ নয়, তবে আপনি সিনট্যাক্সের ক্ষেত্রে সহজ ভাষা ব্যবহার করার পরেও (জাভা এবং সি # এর মতো) আপনার গেমটি সঠিকভাবে ডিজাইনের জন্য আপনার এখনও প্রচুর অভিজ্ঞতা দরকার উপায়।
Ivaylo স্লাভভ

3

এটি আপনার প্রশ্নের উত্তর দেয় না; গ্রাফিক্স এবং কনসোল সমস্যাগুলি এমন কিছু বলে মনে হচ্ছে যা আপনাকে খুব বিবেচনা করা উচিত। এছাড়াও জিসি কর্মক্ষমতা উপর প্রভাব ফেলে। তবে আমি যা লিখি:

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

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


3

দোস্ত দেখ, " গেম দেবের পক্ষে জাভা কার্যকর " এর সহজ উত্তরটি হ্যাঁ হ্যাঁ। গেমস তৈরি করতে আপনি যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন। এর অর্থ এই নয় যে আপনার উচিত

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

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

আমি বলি বুলেটটি ডড করা বন্ধ করুন, সি ++ শিখুন এবং এটি ব্যবহার করুন।


1

গেম ডিজাইনের উপর জোর দিয়ে কম্পিউটার সায়েন্সে একটি আনুষ্ঠানিক পড়াশুনা (স্নাতক বিজ্ঞান?) অর্জন না করা পর্যন্ত আপনার জানা ভাষাতে এটি করা উচিত। বৃত্তি পেতে আপনি সম্ভবত আপনার গেমটি ব্যবহার করতে পারেন, আপনি যদি বলতে পারেন "জাভাতে কোনও আনুষ্ঠানিক প্রশিক্ষণ ছাড়াই এটি আমি করেছি"

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

সমস্যাটি হ'ল আপনি সি ++ এর জাভা বেছে নিন বা না, আপনাকে কীভাবে সামঞ্জস্যভাবে সঠিকভাবে ব্যবহার করতে হবে এবং মেমরি পরিচালনা সম্পর্কে ভাল ধারণা থাকতে হবে। সর্বোপরি, আপনি যতটা সহজেই পারবেন তত সহজেই স্ক্রু আপ mallocকরতে পারেন new। সরঞ্জামগুলি সি ++ এর জন্য কী তা আমি জানি না, তবে জাভার জন্য প্রোফাইলিং সরঞ্জামগুলি আইডিইর সাথে ব্যবহার করা মোটামুটি সহজ, বিনামূল্যে এবং সংহত। পারফরম্যান্স সমস্যাগুলি ট্র্যাক করতে এবং শিখতে আপনি এগুলি ব্যবহার করতে পারেন ।


5
সিএসে সাধারণ শিক্ষার যেকোন অনুচ্ছেদে প্রকৃত প্রোগ্রামিং দক্ষতার জন্য জ্যাক ছিটে মূল্য। আমি জানতে পারি, আমি আমার তৃতীয় বর্ষে আছি।
ডেডএমজি

4
অবশ্যই ডেডএমজিএম এর সাথে একমত নন। আমার পছন্দসই কোর্সগুলি গ্র্যাজুয়েশন এবং বেছে নিয়ে সিএস আমার গেম ডেভেলপমেন্ট পাওয়ারগুলি 10% থেকে 100% এ নিয়েছে to এটি আমাকে ইউআই, আইকনোগ্রাফি ইত্যাদি শিখায়নি তবে আসল, আসল কোডিং।
ashes999

2
@ অ্যাশেজ৯৯৯: তারপরে আপনি ভাগ্যবান হলেন আমার কোর্সটি মূল্যহীন এবং আমি জানি যে আরও অনেকে আছেন যারা একই বোধ করেন।
ডেড এমএমজি

2
@ ডিড এমএমজি আপনি পড়াশুনা করছেন তা দেখতে শক্ত। একবার আপনি কয়েক বছর F / T কাজ করেন এবং অন্যান্য প্রশংসামূলক দক্ষতা শিখলে আপনি দেখতে পাবেন। আমি করেছিলাম. তবে আমি কেবল অনেক মনোযোগ দিয়েছি এবং আমার গেম ডে শখের সাথে সমস্ত কিছু প্রয়োগ করার চেষ্টা করেছি।
ashes999

1
আমি বলব যে এটি স্কুল এবং অধ্যাপকের উপর নির্ভর করে। আমার কয়েকটি দুর্দান্ত প্রোগ্রামিং ক্লাস ছিল যেখানে আমি একটি টন শিখেছি; এবং আমার এমন কয়েকটি ছিল যেখানে আমি অনুভব করেছি যে আমি উপস্থিত হয়ে জ্ঞান হারিয়েছি। সব কিছুই একজন ভাল অধ্যাপক থাকা বা না থাকা নিয়েই। আইএমও।
নট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.