В основному те, що ви хочете зробити, це складати списки у міру необхідності. Якщо ви перемальовуєте об’єкти місцевості за один раз, список лише їх може бути корисним. Але для цього варто, хоча вам знадобляться десятки тисяч та багато 10 000 речей, яких немає місцевими. В іншому випадку перегляд вашого списку всього та використання "якщо" для витягування місцевих об'єктів досить швидко.
Мені завжди потрібен був один головний список, незалежно від того, скільки я мав інших списків. Зазвичай я роблю з них якусь карту, таблицю з ключами або словник, щоб я міг випадково отримувати доступ до окремих елементів. Але простий список набагато простіший; якщо ви не випадково отримуєте доступ до ігрових об’єктів, вам не потрібна карта. І випадковий послідовний пошук через кілька тисяч записів, щоб знайти потрібний, не зайнять багато часу. Тому я б сказав, що б ви не робили, плануєте дотримуватися головного списку. Подумайте про використання карти, якщо вона стає великою. (Хоча якщо ви можете використовувати індекси замість ключів, ви можете дотримуватися масивів і мати щось набагато краще, ніж Map. Я завжди стикався з великими прогалинами між номерами індексу, тому мені довелося його відмовити.)
Слово про масиви: вони неймовірно швидкі. Але коли вони набирають близько 100 000 елементів, вони починають надавати колекціонерам сміття. Якщо ви можете виділити простір один раз і не торкатися його згодом, добре. Але якщо ви постійно розширюєте масив, ви постійно виділяєте та звільняєте великі шматки пам’яті і прагнете, щоб ваша гра зависла секунди за один раз і навіть виходила з ладу з помилкою пам’яті.
Так швидше і ефективніше? Звичайно. Карта для випадкового доступу. Для дійсно великих списків, пов'язаний список буде бити масив, якщо і коли вам не потрібен випадковий доступ. Кілька карт / списків для організації об'єктів різними способами, як вам потрібно. Ви можете багатопотоково оновити оновлення.
Але це все багато роботи. Цей єдиний масив швидкий і простий. Ви можете додавати інші списки та речі лише за потреби, і вони, ймовірно, не знадобляться. Просто пам’ятайте про те, що може піти не так, якщо ваша гра стане великою. Можливо, ви хочете мати тестову версію з 10 разів більшою кількістю об'єктів, ніж у реальній версії, щоб дати вам уявлення про те, коли вас чекають проблеми. (Тільки робити це , якщо гра є отримувати більшу.) (І не намагайтеся багатопоточність , не даючи їй багато думав. Все інше легко почати з , і ви можете зробити , як багато або як мало , як вам подобається і відступайте в будь-який час. Завдяки багаторядковій оплаті ви заплатите велику ціну, щоб потрапити, плата за перебування там висока, і важко повернутися.)
Іншими словами, просто продовжуйте робити те, що ви робите. Найбільше обмеження - це, мабуть, ваш власний час, і ви максимально використовуєте це.