Autor Wątek: Serializacja - tworzenie gry na PC i uruchomienie jej na Androidzie  (Przeczytany 8746 razy)

Offline revo

  • Użytkownik

# Luty 23, 2013, 16:44:00
Nie wiem czy się do końca zrozumieliśmy: chodziło mi o to żeby całą grę zserializować po czym na androidzie zdeserializować i odpalić.

Jeśli dobrze Cię zrozumiałem, to chciałbyś zserializować całą grę, żeby po stronie Androida (bez żadnych dodatkowych bibliotek) wywołać coś w stylu:

Runnable deserialized = Deserialize("serialized.dat");
deserialized.run();

Serializacja to zapisanie stanu obiektów w pewnej formie i deserializacja to proces odwrotny. Podczas standardowej serializacji nie zapisujesz implementacji klas, więc muszą one być dostępne po obu stronach (PC / Android). Nic nie stoi na przeszkodzie, żeby współdzielić te klasy między oboma platformami.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Veldrin

  • Użytkownik

# Luty 23, 2013, 16:48:03
Tylko zastanów się po co chcesz to robić.

Serializować całą grę? Jaki w tym cel i jaki problem ma to rozwiązać?

Offline St4rKiller070

  • Użytkownik

# Luty 23, 2013, 16:55:17
Skoro faktycznie, tak jak mówicie biblioteki OpenGL na Androidzie i PC'tach nie różnią się niczym (do tej pory byłem przekonany że jednak się różnią, bo kiedyś liznąłem co nieco LWJGL i nie miało to zbyt wiele wspólego z tym co teraz jest na Androidzie jeśli chodzi o budowę kodu).
Tworząc ten temat chciałem rozwiązać problem uruchamiania mojej gry na wielu platformach. Tzn. piszę grę na PC i mogę ją uruchomić też równie dobrze na Androidach, iPhone'ach, Linuxach, Mac'ach i co tam jeszcze jest.
Dyskusja się nieco rozwinęła i ze wstydem przyznaję że nieco się gubię ;)

Offline ShadowDancer

  • Redaktor

# Luty 23, 2013, 17:11:42
Serializacja pozwala zrzucić jakieś dane (np. stan gry) do pliku. Problem może być przy wczytywaniu tych danych na różnych platformach z powodu innych bibliotek, języka itp.

Natomiast przenośność programu to co innego.

Offline deadeye

  • Użytkownik

# Luty 23, 2013, 17:17:29
Skoro faktycznie, tak jak mówicie biblioteki OpenGL na Androidzie i PC'tach nie różnią się niczym (do tej pory byłem przekonany że jednak się różnią, bo kiedyś liznąłem co nieco LWJGL i nie miało to zbyt wiele wspólego z tym co teraz jest na Androidzie jeśli chodzi o budowę kodu).
Tworząc ten temat chciałem rozwiązać problem uruchamiania mojej gry na wielu platformach. Tzn. piszę grę na PC i mogę ją uruchomić też równie dobrze na Androidach, iPhone'ach, Linuxach, Mac'ach i co tam jeszcze jest.
Dyskusja się nieco rozwinęła i ze wstydem przyznaję że nieco się gubię ;)
pisząć w tym wątku zrozumiałem że chcesz serializować opis rzeczy wygenerowanych w edytorze (np levelu), bo tak napisałeś w pierwszym poście. Samego kodu (logiki) gry nie zserializujesz. Jak sobie wyobrażasz taki edytor?

Offline St4rKiller070

  • Użytkownik

# Luty 23, 2013, 17:21:59
poczytałem więcej o tym json'ie i faktycznie przeniesienie całej gry nie miałoby sensu.
W takim razie temat uważam za zamknięty ;) Dzięki.
PS: Faktycznie, to Q&A to dobra rzecz. Na forum straszny bajzel sie robi.

Offline pawelek

  • Użytkownik

# Luty 26, 2013, 22:32:37
Dlaczego nie zapisze do pliku logiki gry? Zależy jak ją zapisze w klasach.

Offline Xender

  • Użytkownik

# Luty 26, 2013, 23:25:42
@up - kodu nie zserializujesz, co najwyżej skrypt. Zresztą chodzi bardziej o to, że sama idea serializacji logiki kodu jest po prostu błędna.
« Ostatnia zmiana: Luty 27, 2013, 00:12:27 wysłana przez olo16 »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +1
# Luty 26, 2013, 23:52:42
Cytuj
@up - kodu nie zserializujesz, co najwyżej skrypt
Jak to nie? Jak masz kod działający równolegle, ale nagminnie korzystający z mutexów, to ci się może kod zserializować. No ale to nieco inna serializacja. ;)

A jeżeli chodzi o przesyłanie kodu/logiki, to nie musi być skrypt - może być cokolwiek co jest rozumiane przez obie strony: skrypt, byte code jakiegoś VM (chociażby prostego własnego), zestaw triggerów, drzewka decyzyjne... itd.

Cytuj
Zresztą chodzi bardziej o to, że sama idea serializacji logiki, jest po prostu błędna.
Jeżeli robisz edytor do gry to ja dla mnie jest to idea jak najbardziej na miejscu.

Offline Xender

  • Użytkownik

# Luty 27, 2013, 00:10:54
@up - Racja, jako skrypt miałem na myśli uogólnienie tego, co wymieniasz (jest na to jakaś dobra nazwa? W Perełkach 1 było "Sterowanie danymi").

Z "serializacją logiki" użyłem złego słowa, mój błąd.
Co do edytora (to nie przypadek OP, ale mniejsza z tym), to serializacja "danych sterujących" jest jak najbardziej OK, ale serializacja kodu jako takiego już nie bardzo.

Przy czym to, czy coś jeszcze jest danymi, czy już kodem, to rzecz zależna od sytuacji i często rozmyta - w końcu u samych podstaw mamy architektury von Neumanna, poziom abstrakcji wyżej bytecode itd... Upraszczanie tej kwestii do decyzji binarnej byłoby poważnym błędem logicznym (który już udało mi się we wcześniejszym poście pochopnie popełnić).

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 27, 2013, 00:31:49
Cytuj
Co do edytora (to nie przypadek OP, ale mniejsza z tym)
Jak to nie ten przypadek? To dokładnie ten przypadek.

"Witam,
wpadł mi do głowy pewien pomysł:
napisałem sobie silnik do gier na Androida i chciałbym teraz zrobić do niego graficzny interfejs - tak żeby można było grę "wyklikać"."
    -- autor wątku


Offline Xender

  • Użytkownik

# Luty 27, 2013, 01:22:58
Niby tak, ale dyskusja pogubiła się na tyle, że sam OP nie do końca wiedział, czego dokładnie chce, co wygląda na typowy objaw "robisz coś źle".