منصوبے کے بارے میں
Mindustry ایک اوپن-سورس ریئل-ٹائم سٹریٹیجی گیم ہے جو ٹاور ڈیفنس کو آٹومیشن کے ساتھ جوڑتی ہے: کھلاڑی دفاع کو کھانا کھلانے کے لیے پروڈکشن چینز بناتے ہیں اور ان کو وائر کرتے ہیں، صرف ٹریٹس نہیں رکھتے۔ یہ Java میں لکھی گئی ہے اور GitHub پر اوپن میں تیار کی جاتی ہے، جہاں README اسے صرف "آٹومیشن ٹاور ڈیفنس RTS" کے طور پر بیان کرتا ہے۔
پلیٹ فارمز اور تقسیم
پروجیکٹ ایک ڈیسکtop کلائنٹ، ایک Android کلائنٹ اور ایک اسٹینڈالون سرور بلڈ میں کمپائل ہوتا ہے۔ پریبلٹ ریلیزز GitHub پر شائع ہوتے ہیں، اور README itch.io، Google Play، F-Droid اور Flathub پر ڈاؤنلوڈز کے لیے بھی لنکس فراہم کرتا ہے۔ ہر کمٹ کے لیے ایک الگ بلڈز ریپوزٹری میں آٹومیٹک بلیڈنگ-ایج بلڈز جنریٹ ہوتے ہیں، تاکہ ٹیسٹرز کمپائل کیے بغیر ترقی کی پیروی کر سکیں۔
سورس سے بلڈ کرنا
کنٹریبیوشن کے لیے JDK 17 کی ضرورت ہے، جسے README میں واضح طور پر بتایا گیا ہے (دیگر JDK ورژنز کام نہیں کریں گے)۔ بلڈ سسٹم Gradle ہے، جس کے لیے Windows اور Linux/Mac کے لیے ریپر اسکرپٹس موجود ہیں۔ عام کمانڈز ہیں `gradlew desktop:run` چلانے کے لیے، `gradlew desktop:dist` پیکڈ ڈیسکtop JAR بنانے کے لیے، `gradlew server:dist` سرور ریلیز کے لیے، اور `gradlew tools:pack` اسپرائٹ پیکنگ کے لیے۔ Android بلڈز Android SDK کمانڈ-لائن ٹولز کے ذریعے ہوتے ہیں، جن کے لیے `ANDROID_HOME`، sdkmanager کے ذریعے لائسنس کی منظوری اور ڈیوائس پر ڈیولپر موڈ کی ضرورت ہوتی ہے؛ `gradlew android:assembleDebug` ایک ان-سائنڈ APK بناتا ہے اور `gradlew android:installDebug android:run` ایک منسلک ڈیوائس پر انسٹال اور لانچ کرتا ہے۔ آؤٹ پٹ لوکیشنز `desktop/build/libs/Mindustry.jar` اور `server/build/libs/server-release.jar` کے طور پر documented ہیں۔ README میں ایک عام پرمیشن-ڈینائڈ فکس (`chmod +x ./gradlew`) بھی شامل ہے اور یہ خبردار کرتا ہے کہ پہلی Gradle رن میں ڈیپینڈنسز ڈاؤنلوڈ کرنے میں کئی منٹ لگ سکتے ہیں۔
کوڈ جنریشن اور آرکیٹیکچر
پروجیکٹ کا ایک قابل ذکر حصہ یہ ہے کہ `mindustry.gen` پیکج بلڈ ٹائم پر جنریٹ ہوتا ہے اور ریپوزٹری میں موجود نہیں ہے۔ README اس کے ذرائع کی وضاحت کرتا ہے: `Call` اور پیکٹ کلاسز `@Remote` کے ساتھ annotated طریقوں سے آتی ہیں؛ `Unit`، `EffectState` اور `Posc` جیسے entity کلاسز `mindustry.entities.comp` میں component کلاسز سے جنریٹ ہوتے ہیں اور `mindustry.content.UnitTypes` میں ڈیفینیشنز کے ذریعے جوڑے جاتے ہیں؛ اور `Sounds`، `Musics`، `Tex` اور `Icon` متعلقہ اثاثہ فولڈرز سے جنریٹ ہوتے ہیں۔ یہ جنریٹڈ پیکج دستاویزی طور پر ہاتھ سے ترمیم نہ کرنے کے لیے نشان زد ہے۔
کمیونٹی اور کنٹریبیوٹ کرنا
پروجیکٹ ایک کنٹریبیوٹنگ گائیڈ برقرار رکھتا ہے جو کوڈ اسٹائل اور پل ریکویسٹ کی توقعات کا احاطہ کرتا ہے۔ نئے کنٹریبیوٹرز کو Mindustry-Suggestions ریپوزٹری میں 'candidate' لیبل والے ایشوز کی طرف اشارہ کیا جاتا ہے، جہاں فیچر ریکویسٹس اور فیڈبیک بھی فائل کیے جاتے ہیں۔ README سے منسلک مزید وسائل میں ریلیز پلانز کے لیے ایک Trello بورڈ، ایک پروجیکٹ ویکی اور جنریٹڈ Javadoc، اور ایک فعال Discord کمیونٹی شامل ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.