Multiplayer Game Room

Ultra Spidey

New member
Multiplayer Game Room

יש לי משחק מולטיפלייר, ואני רוצה לרכז את כל השחקנים בשרת אחד. בניתי בנוסף גם תוכנה לשרת שאמורה לרוץ ספציפית עליו ולטפל בפניות השחקנים. כמובן שהאפשרות הכי פחות אידאלית היא השכרת שרת אמיתי והפעלת התוכנה מרחוק. אני מחפש משהו פחות יקר. רעיונות?
 

Ultra Spidey

New member
ניסוח מחדש

יש לי משחק מולטיפלייר, שכרגע אפשר לשחק בו רק דרך Direct IP, כלומר הזנה ידנית של הIP של המארח. אני רוצה ליצור רשימה של מארחים, כמו בכל משחק רשת, שתתן אינפורמציה על כל מארח בצורה נורמלית. בינתיים, בניתי תוכנה שהתפקיד שלה הוא לקבל הודעות אוטומטיות ממארחים ובסופו של דבר היא מייצאת קובץ טקסט שהקליינטים יכולים לתרגם. הבעיה היא ששרת כזה חייב לרוץ constantly - האם יש פתרון אחר לבעיה הזו? האם אפשרי ליצור דף ASP ולשלוח אליו את הנתונים?
 

someboddy

New member
אני מניח שאתה מדבר על טראקר

טראקר לא תופס הרבה רוחב פס, ואפשר להריץ אותו על שרת חינמי. הבעיה היא ששרתים חינמים בדרך כלל מאפשרים לך רק להריץ ASP או PHP, מה שלא יהיה יעיל במידה ואתה רוצה לבנות טראקר. אם אתה יודע JAVA, אתה יכול להכנס לhttp://www.myjavaserver.com . זהו פרוייקט שנותן לך לאכסן ולהריץ SERVLET של JAVA בחינם. גם אם המשחק שלך לא כתוב בJAVA, אין שום מניעה שהטראקר יהיה בJAVA. פתרון אחר הוא טראקר שאין לו IP קבוע, אבל הוא מעדכן דף ASP או PHP לגבי הIP שלו, ותכנות הלקוח יוכלו בצורה דומה לקבל את הכתובת של הטראקר. בצורה כזו אתה יכול להשתמש בכל שרת חינמי.
 

Terminal Frost

New member
servlet זה גם הפתרון שאני

הייתי הולך עליו. אפילו בקטע של יעילות בזמן ריצה אני חושב שSERVLET מהיר יותר מASP או PHP, ובטוח יכול לעמוד בLOAD גבוה יותר.
 

someboddy

New member
הנה מה שאני יודע על SERVLET

SERVLET זה תכנה שכתובה בJAVA ויש לה מאפיינים של שפת צד שרת ושל תכנת JAVA רגיל. SERVLET, כמו PHP וASP, יכול לקבל בקשות בפרוטוקול HTTP ולענות עליהם. ההבדל הוא שSERVELET לא חייב להסגר לאחר שהוא מסיים לענות על בקשה. הוא יכול להמשיך לרוץ כמו תכנה רגילה, ולתכנה הזאת יש את כל היכולות של תכנה רגילה. זה אומר שSERVLET יכול גם ליזום קשר עם הלקוח(בהנחה שהלקוח הוא תכנה שמאפשרת לשרת ליצור איתה קשר). היתרון של SERVLET על סתם תוכנות שרצות על שרת ומממשות SERVERSOCKET הוא שכל תכנה יכולה ליצור INSTANCE של SERVLET על השרת בעזרת HTTP. ברגע שSERVLET מקבל בקשה, אם אף INSTANCE שלו לא רץ על השרת, השרת יוצר INSTANCE. בקיצור, SELVLET זה תכנה שרצה על שרת, ואפשר לגשת אליה גם דרך הURL שלה בפרוטוקול HTTP(כמו שניגשים לדפי PHP/ASP), וגם דרך הIP שלה באיזה פרוטוקול שרוצים.
 

De-Panther

New member
עמוד ASP פשוט שכל..|זבנג|../images/Emo23.gif../images/Emo185.gif

אחד שפותח שרת למשחק שולח נתונים לעמוד הזה כשהבנאדם מתנתק אז הוא מוחק את עצמו מהרשימה וכשמישהו מתחבר הוא יכול לרענן את הרשימה כדי לבדוק מי מהשרתים באמת פעיל
 

yoniBLA

New member
למה שהתוכנה לא

תדבר http עם שרת web? הרי כל מה שאתה צריך בשרת זה לנהל רשימה של כתובות ip, אתה יכול לעשות את זה בקלות מכל שפת סקריפט.
 

De-Panther

New member
ועדיין השאלה הנשאלת|זבנג|../images/Emo23.gif../images/Emo185.gif

היא איך השרת יכול לדעת שהבנאדם התנתק אם נניח המחשב נתקע ונסגר כשהבנאדם יוצא נורמלי מהמשחק הוא יכול לשלוח לשרת שהוא לא מחובר יותר אבל כשהוא נתקע זה בעייתי... צריך ליצור פונקציה כלשהי שתבדוק את זה...
 

De-Panther

New member
ברור אבל איך אני...|זבנג|../images/Emo23.gif../images/Emo185.gif

יכול לומר לשרת חינמי רגיל לעשות את הפעולה הזו?? צריך נניח שכל פעם שמישהו מתחבר לעמוד עם הכתובות שיבדוק אם האייפי קיים
 

someboddy

New member
בגלל זה...

כותבים תוכנת שרת ולא משתמשים בסתם PHP/ASP. ככה אפשר לדעת מתי החיבור נסגר.
 

De-Panther

New member
אבל אנחנו מדברים על|זבנג|../images/Emo23.gif../images/Emo185.gif

שרתים חינמיים אי אפשר להריץ עליהם תוכנות
 

yoniBLA

New member
כבר הופיע פה הדיון הזה..

אפשר לגרום לשרת web לעשות את הבדיקות שלו (במקרה הזה ping/pong לשרתים) כאשר מישהו מתחבר אליו. ברור שזה פחות נוח/מהיר משרת נורמאלי, אבל אם מחפשים פיתרון זול ריאלי, זה יכול לעבוד יפה מאד (מנסיון).
 

De-Panther

New member
אבל איך אתה אומר...|זבנג|../images/Emo23.gif../images/Emo185.gif

לשרת חינמי פשוט לעשות כזה דבר?? יש איזושהי פקודה לזה שאפשר להשתמש בה בעמודי ASP??
 

yoniBLA

New member
אני לא מכיר asp,

בphp יש פונקציות לעבודה עם sockets, אני מניח שגם בasp. אפשר גם בלי זה, אם אתה מממש http, אבל אין כנראה סיבה לעשות את זה.
 

De-Panther

New member
אבל אתה מכיר VB והם|זבנג|../images/Emo23.gif../images/Emo185.gif

עובדים באותה דרך לפחות ברוב הפקודות
 
למעלה