Mam grę 2D napisaną w C ++ przy użyciu SFML. Chcę, aby gra mogła być rozwijana w taki sposób, aby zawartość taka jak przedmioty lub byty mogła być łatwo dodana poprzez dodanie linii / wpisu / wiersza do pliku lub bazy danych.
Szukam czegoś, co nie musi być wkompilowane w program, ale zamiast tego można je odczytać i zapisać w czasie wykonywania. Kiedy byłoby właściwe korzystać z bazy danych?
Odpowiedzi:
Korzystaj z bazy danych tylko wtedy, gdy potrzebujesz bazy danych. To jest:
Jeśli dane gry spełniają którykolwiek z tych warunków, możesz skorzystać z bazy danych. Pamiętaj, że nie są one zbyt częste i prawdopodobnie nie spełniasz żadnej z nich. Jeśli tak, wybrałbym SQLite lub coś z podobnym pomysłem, że nie będzie wymagał działania serwera i bycia tylko biblioteką.
W przeciwnym razie podczas uruchamiania używaj plików i ładuj dane do pamięci. Jeśli chcesz, aby gra była modyfikowalna, załaduj te dane zarówno z katalogu gry, jak iz katalogów modów i określ sposób łączenia sprzecznych informacji.
Należy również pamiętać, że jeśli zrobić korzystać z bazy danych, to może skorzystać zarówno ty i deweloperzy modów to nadal używać plików do odczytu danych początkowych i zbudować bazę danych tylko wtedy, gdy gra się ładuje. O ile potencjalna wielkość tej bazy danych nie jest ogromna (tj. Kilkadziesiąt MiB), możesz chcieć użyć bazy danych w pamięci, co jest możliwe w SQLite, podając
:memory:
jako ścieżkę bazy danych .źródło
SQLite
, nawet jeśli twoje potrzeby NIE są „złożone” lub „ogromne”. Jest tak naprawdę wiele powodów, dla których z czymś takim małym i osadzonym w ten sposób możesz bardzo skorzystać z posiadania bazy danych na wyciągnięcie ręki.Bardzo podoba mi się MongoDB do rozwoju gier, ma naprawdę dobrą wydajność i jest naprawdę elastyczny, łatwy w użyciu i oparty na Json.
Możesz po prostu dodać dowolne pole, którego potrzebujesz w dowolnej kolekcji, ponieważ jest to NoSQL Arch, dzięki czemu pasuje naprawdę do każdego „dynamicznego” środowiska, takiego jak gry.
Rzuć okiem .
Jeśli tworzysz jakąś strategiczną grę MMO Turn, prawdopodobnie powinieneś przeczytać o CouchDB , jest to baza danych NoSQL, która ma naprawdę dobry system wersjonowania.
źródło
CastleDB to dobra opcja, ponieważ jest to po prostu edytor, który konwertuje bazę danych na plik JSON. Widziałem wiele odpowiedzi, w których najlepszy jest plik w postaci zwykłego tekstu, więc CastleDB jest prawdopodobnie najlepszym z obu światów.
źródło