Autor Wątek: Przenośność aplikacji Windows/Linux - czego użyć ?  (Przeczytany 4312 razy)

Offline tomaszwir

  • Użytkownik

# Czerwiec 08, 2013, 19:36:36
Witam!

Czego najlepiej "teraz" użyć żeby mieć przenośną aplikacją wprowadzając bardzo minimalne zmiany w kodzie ? Chodzi mi o Windowsa i Linuxa, WinAPI odpada z powodu działania tylko pod Windowsem, pozostaje tylko WxWidget ? Jest może coś innego godnego uwagi ?

Pozdrawiam

Offline Mr. Spam

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

Offline dynax

  • Użytkownik

  • +1
# Czerwiec 08, 2013, 19:39:24
Nie wprowadzając żadnych zmian w kodzie - HaXe. Gratisowo dostaniesz maca, flasha, androida, iosa, blackberry, webos, a od wersji 3.0 bytecode javy i c#

Offline tomaszwir

  • Użytkownik

# Czerwiec 08, 2013, 19:48:56
Aż takiej przenośności to nie potrzebuję, wystarczy mi Windows i Linux, ale zainteresuję się tym

Offline Avaj

  • Użytkownik

# Czerwiec 08, 2013, 19:55:02
Java - SWT, Swing, JavaFX
C++ - Qt, GTK+, wxWidgets

Offline Liosan

  • Redaktor

# Czerwiec 08, 2013, 20:58:27
Cokolwiek co chodzi natywnie na windows + wine? Sporo komercyjnych gier tak działa.

Liosan

Offline magik6000

  • Użytkownik

# Czerwiec 08, 2013, 21:13:24
w zasadzie zależy jaką chcesz pisać grę - ale jeśli o gry chodzi to bardziej patrz się w stronę SDL'a(albo SMFL SFML)
« Ostatnia zmiana: Czerwiec 09, 2013, 13:20:18 wysłana przez magik6000 »

Offline Xirdus

  • Redaktor

# Czerwiec 08, 2013, 23:14:43
Przede wszystkim określ, co ci będzie potrzebne. Native GUI? 3D? 2D?

Offline flexi

  • Użytkownik

  • +2
# Czerwiec 08, 2013, 23:34:30
w zasadzie zależy jaką chcesz pisać grę - ale jeśli o gry chodzi to bardziej patrz się w stronę SDL'a(albo SMFL)

Chyba SFML?

Offline Veldrin

  • Użytkownik

  • +1
# Czerwiec 09, 2013, 01:32:39
Przenośne powinno być wszystko co uniwersalne(za co się "płaci" pewne koszty) i takie też jest większość bibliotek, o których była mowa w temacie (sfml/sdl/qt itp.).

Tylko, że Twoje pytanie nie mówi, czy chcesz pisać przenośny system dla elektrowni atomowych, czy wizualny generator adnotacji w oparciu o jakiś magiczny język skryptowy typu JAPE.

Offline Xender

  • Użytkownik

  • +1
# Czerwiec 09, 2013, 11:39:18
Cokolwiek co chodzi natywnie na windows + wine? Sporo komercyjnych gier tak działa.
Bardzo odradzam takie podejście. Sporo komercyjnych gier niestety olewa przenośność, a Wine, będąc niezłym hackiem, jest jedynym sposobem, by odpalić je na Linuxie. Natomiast pisania programu z myślą o Wine to niezłe WTF.

Offline rastabaddon

  • Użytkownik

  • +4
# Czerwiec 09, 2013, 12:33:20
gcc

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

# Czerwiec 09, 2013, 15:33:17
Na razie największą przenośność projektów uzyskałem w języku Python :) W aplikacji z Qt musiałem tylko zmienić ładowanie czcionek (Windows nie pozwala na ładowanie z plików ttf nieznajdujących się w swoim katalogu fonts). Tworzenie gier w pygame (SDL) + OpenGL również działa idealnie jak dla mnie.

Bardzo odradzam takie podejście. Sporo komercyjnych gier niestety olewa przenośność, a Wine, będąc niezłym hackiem, jest jedynym sposobem, by odpalić je na Linuxie. Natomiast pisania programu z myślą o Wine to niezłe WTF.
Humble Bundle czasem stosuje taką taktykę. Miałem grę Limbo zrobioną jako jeden pakiet *.deb razem z Wine, a także ostatnio wstawili grę Dear Esther przygotowaną przez CodeWeavers, twórców CrossOver ( http://support.humblebundle.com/customer/portal/articles/1161428-dear-esther-linux-issues ). To są takie wyjątki. Wiadomo, że lepiej zrobić natywnie przenośną aplikację, ale zajmują się głównie niezależni twórcy gier.
« Ostatnia zmiana: Czerwiec 09, 2013, 15:39:16 wysłana przez JasonVoorhees »

Offline Xender

  • Użytkownik

# Czerwiec 09, 2013, 17:01:55
Humble Bundle czasem stosuje taką taktykę. Miałem grę Limbo zrobioną jako jeden pakiet *.deb razem z Wine
Jakbym był dystrybutorem, i chciałbym, żeby z gry mogli korzystać użytkownicy OSów innych, niż Windows, to też bym się brzytwy chwytał. Na szczęście jestem koderem i nie muszę, co też polecam każdemu innemu koderowi, który ma wybór.

gcc
Tylko bez dziwnych extensionów. Przenośny kod powinien się kompilować (i działać) wszystkim, co wspiera standard. Jak się kompiluje na różnych platformach różnymi kompilatorami na bieżąco, to jest łatwiej (spotkałem się z opinią, że robienie releasu na jednej platformie i portowanie/bugfixowanie do drugiej wychodzi słabiej. Brzmi logicznie).
« Ostatnia zmiana: Czerwiec 09, 2013, 17:07:56 wysłana przez Xender »

Offline Xirdus

  • Redaktor

# Czerwiec 09, 2013, 19:08:20
Przenośny kod powinien się kompilować (i działać) wszystkim, co wspiera standard.
Niekoniecznie. Jak robisz aplikację z zamkniętym źródłem, to obchodzi cię tylko, żeby paczka wynikowa się uruchamiała - jak do tego dojdziesz, twoja sprawa. A jak robisz open source, to możesz przyjąć podejście "niech się user martwi" - wcale nie jest to takie rzadkie.