Я погоджуюся з порадою, цитованою у відповіді Лефтія; спроектуйте його для створення мереж з самого початку, оскільки ви не зможете додати його пізніше .
Перший раз, коли я спробував зробити багатокористувацьку гру (я навіть не намагався зробити одиночну гру!), Я зрозумів, що спершу я зроблю роботу, а потім додаю мережу. Погана ідея. Мені залишився прототип по-справжньому нудної гри для одиночного гравця, і я не маю підказки, як перетворити це на багатокористувацьку гру. Я цілком виграв його і почав заново, на цей раз писав багатокористувацький мережевий код з самого початку. Все клацнуло.
Я впевнений, що це не неможливо почати з гри для одного гравця та додати багатокористувацьку функціональність. Якщо ви все продумаєте, сплануйте його правильно і переконайтеся, що знаєте свою стратегію, тоді спробуйте. Думаю, було б цікавою загадкою пропрацювати як мінімум. Але дійсно переконайтеся, що знаєте свій план щодо того, як ви збираєтеся додати мережу.
Я думаю, що є середина (хоча я ніколи цього не пробував). Ви можете написати кілька фіктивних класів для функцій мережевих / багатокористувацьких програм і бути уважними в їх використанні, коли ви пишете одиночну гру. Тоді пізніше, якщо ви вирішили впровадити багатокористувацьку програму, просто заповніть класи-манекени, і ви будете виконувати більшу частину шляху. Це дуже наближається до сервера / клієнтського методу, але ви, можливо, зможете піти з меншою роботою; врешті-решт, гру з одним гравцем простіше зробити, ніж гру для кількох гравців, тож якщо ви збираєтеся писати свою одиночну гру як багатокористувацьку, то чому б просто не зробити її багатокористувацькою?