Jestem ciekawy, jakie rozwiązania wymyślili twórcy gier do szeregowania różnych rodzajów danych, z którymi mają do czynienia w swoich grach. Czy używacie jakiejś monolitycznej hierarchii GameObject, która zawiera interfejs serializacji dla typów pochodnych, używacie swego rodzaju niestandardowego rozwiązania opartego na RTTI, wykonujemy jawną serializację strumienia dla niektórych klas, czy też korzystacie z niektórych rozwiązań open source (boost :: seriization, s11n, itp).
c++
serialization
100%
źródło
źródło
Odpowiedzi:
Bufory protokołów od Google mogą być całkiem dobrym podejściem do serializacji obiektów c ++. Być może trzeba będzie utworzyć niektóre obiekty pośredniczące w ramach procesu serializacji, ale działa to również na wielu platformach i językach.
źródło
W naszej grze po prostu używamy boost.serilization , jest łatwy w użyciu i bardzo szybki, ale moim zdaniem jest po prostu przydatny do zapisywania gier. Jeśli próbujesz tworzyć znaki, polecam ci coś opartego na XML lub JSON, ponieważ są one łatwe do odczytania i edytowania, nawet jeśli nie masz edytora.
źródło
Wolę JSON do serializacji. Analizowanie jest bardzo proste, a dostępne są bezpłatne biblioteki, takie jak http://jsoncpp.sourceforge.net/. Nigdy nie byłem fanem ulepszeń lub RTTI w C ++. Tinyxml działa również dobrze w przypadku serializacji i deserializacji xml. http://www.grinninglizard.com/tinyxml/ Ostatecznie nie chcę poświęcać więcej czasu niż na serializację.
źródło
źródło
Pakiet wiadomości jest również świetną alternatywą! (http://msgpack.org)
źródło
XDS został zaprojektowany właśnie do tego celu, zapewnia korzyści XML podczas programowania i zalety kompaktowej reprezentacji binarnej w czasie dystrybucji.
źródło
Jeśli korzystasz z platformy Linux, możesz bezpośrednio użyć
json.h
biblioteki do serializacji. Oto przykładowy kod, z którym się zetknąłem. Źródło: Json Serializerźródło
Zarówno bufory jsonCpp, jak i bufory protokołów są dobrym rozwiązaniem. O ile mi wiadomo, oba pozwolą ci na szeregowe struktury drzewek po wyjęciu z pudełka (popraw mnie, jeśli się mylę). serializacja boost :: może obsługiwać dowolne wykresy, ale nie ma ładnego formatu tekstowego, takiego jak json (myślę, że istnieje format xml)
Osobiście uważam, że podejście serializacji json, które przyjęło Dojo, jest najlepsze
http://docs.dojocampus.org/dojox/json/ref
Stworzyłem własną wersję w c ++ przy użyciu jsoncpp, która również deserializuje wpisane obiekty (mam coś w rodzaju dużej fabryki dla wszystkich moich typów). Pozwala mi to zrobić scenę z kolekcji plików json, do których i tak mogę się odwoływać.
źródło