• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy da się zrobić aplikację do gry/programu w innym języku niż sama gra/aplikacja ?

+2 głosów
553 wizyt
pytanie zadane 1 lutego 2021 w Offtop przez Gowi Użytkownik (830 p.)
Witam,

nurtuje mnie pytanie czy da się stworzyć aplikację do jakiegoś większego programu czy gry, która jest napisana w innym języku?

Tzn. mając grę w C++ czy można zrobić do niej aplikację powiedzmy w Pythonie, Javie ? Jak to wygląda w teorii i jak to się przekłada w praktyce, gdzie mogą się pojawić problemy ze sprzętem czy OS'em ?
komentarz 1 lutego 2021 przez manjaro Nałogowiec (37,390 p.)
A co to jest aplikacja do gry? Bo nijak nie mogę sobie wyobrazić o co ci chodzi...
komentarz 4 lutego 2021 przez Gowi Użytkownik (830 p.)
Powiedzmy, że aplikacja do League of Legends czy Counter-Strike, która wyśle nam powiadomienie na telefon, że znalazło nam grę w poczekalni. Często się czeka na takie zjawisko nawet 10 minut, a możnaby ten czas spędzić inaczej, powiedzmy w innym pokoju, niekoniecznie siedzieć i pilnować komputera.

1 odpowiedź

+4 głosów
odpowiedź 1 lutego 2021 przez JAKUBW Nałogowiec (33,470 p.)
Tak, można mieszać wiele języków programowania w jednym projekcie. Wiele gier udostępnia możliwość modowania w innych językach niż zostały one napisane np. Factorio napisane w C++ pozwala na modyfikacje napisane w Lua. Są też gry jak Minecraft, w którym modyfikacje i pluginy pisze się w Javie (lub w innym języku kompilowanym na JVM np. kotlin)

W praktyce przekłada się to bardzo różnie, lecz często ma to negatywny wpływ na wydajność, gdyż zmienne z jednego języka programowania nie mogą być bezpośrednio przeniesione do innego, konwersja zajmuje czas oraz JIT nie może optymalizować dwóch różnych języków na raz. To oczywiście nie dotyczy gdy pisany kod jest w tym samym języku.

Jeśli chodzi o OS to mogą być problemy z uruchomieniem na różnych platformach tego samego kodu. Np. C++ musi być skompilowany na każdy system / sprzęt osobno podczas gdy Java już nie. W Java możesz wczytywać 'pluginy' czyli odseparowane fragmenty kodu dynamicznie i jest to wbudowane w JVM. W c++ np. nie ma natywnego mechanizmu i trzeba się wspomagać systemowym API co jest mniej praktyczne i wygodne.

Natomiast zamiast wczytywania 'pluginów' do działającej aplikacji to aplikacja może udostępniać API poprzez gniazdo Unix lub TCP, protokół HTTP itp. Tak działające programy są bardzo odseparowane od siebie i mogą być bez problemu pisane w innych językach a format wymiany może być wspólny dla wszystkich języków np. JSON. Wadą takiego podejścia jest bardzo niska wydajność, ale za to wysoka wygoda.

Podobne pytania

0 głosów
1 odpowiedź 1,024 wizyt
–5 głosów
0 odpowiedzi 918 wizyt
0 głosów
0 odpowiedzi 174 wizyt
pytanie zadane 2 września 2024 w Offtop przez distracted Użytkownik (540 p.)

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...