מבוא לפיתוח משחקים מרובי-משתתפים
נכתב על ידי: אלעד כהן
תאריך: 20/08/10

למה לפתח משחק מרובה-משתתפים?
משחקים מרובי-משתתפים מורכבים יותר להכנה מאשר משחקים לשחקן אחד. בדרך כלל הסיכוי של משחק עם האפשרות לשחק נגד שחקנים אמיתים להצליח הוא גבוה יותר. לדוגמא: משחק פוקר בפייסבוק אשר פותח ע"י חברת זינגה העוסקת בתחום פיתוח אפליקציות לפייסבוק - לא היה מגיע למימדי הצלחה כאלו אם השחקנים האחרים לא היו אמיתיים. לפעמים אפשר להוסיף למשחק של שחקן אחד את האפשרות לשחק נגד שחקנים אחרים (לדוגמא: במשחק מירוץ מכוניות).

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

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

תקשורת במשחקים מרובי-משתתפים
במשחק מרובה-משתתפים כל שחקן שולח נתונים לגבי הפעולות שביצע במשחק ומקבל נתונים לגבי הפעולות שהשחקנים האחרים במשחק ביצעו.

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

אבטחת מידע במשחקים מרובי-משתתפים
על מנת לשמור על רמת אבטחה מידע גבוהה, כל פעולה שהשחקן מבצע צריכה להיבדק בצד-השרת בהתאם לחוקי המשחק והמצב הנוכחי של המשחק. שיטת התקשורת היחידה בה ניתן לממש זאת היא שיטת התקשורת המשלבת שרת. שיטות התקשורת האחרות לא מאובטחת מכיוון שבשיטת הקבוצה, שחקן שמשמש כנתב יכול לשנות את המהלך של שחקן אחר ובשיטת החיבור הישיר, הניצחון לא ודאי כי אין גורם אובייקטיבי (שרת) שיחליט מי ניצח.


 
אודות המחבר

המאמר נכתב ע"י אלעד כהן - מתכנת פלאש בחברת GAME DEV LTD.

המאמר הודפס מאתר portal-asakim.com - אתר מאמרים עסקיים ומקצועיים
http://www.portal-asakim.com/Articles/Article10365.aspx