Gry - w jakich językach są pisane?

0

Witam ! Jestem totalnie początkujący , ale chciałbym się dowiedzieć w jakim języku programowania powstaje taka gra np. jak FIFA 14 ? Da się to jakoś identyfikować ?

0

Prawie na 100% C++. Plus jakieś lua do AI.

3

Brainfuck ofc!

Poważniejsze gry: C++, Objective C
Xbox: głównie C# oraz inne języki .net
Indie: róbta co chceta

0

Przeważnie c++, jest też kilka projektów np. w c# czy javie. Na tym rynku króluje c++, ze względu na swoją ogromną wydajność.
Kod napisany w c++ jest kompilowany do kodu maszynowego(binarnego), a c#/java do pośredniego(czy jakoś tak:)), który jest wykonywany na maszynie wirtualnej.
Jest on więc wolniejszy od c++.

0
Adam Programmer napisał(a)

Na tym rynku króluje c++, ze względu na swoją ogromną wydajność.

To porównanie nie ma sensu; to tak, jakby porównywać polski i angielski pod względem wydajności...

Adam Programmer napisał(a)

Kod napisany w c++ jest kompilowany do kodu maszynowego(binarnego), a c#/java do pośredniego(czy jakoś tak:)), który jest wykonywany na maszynie wirtualnej.
Jest on więc wolniejszy od c++.

*ekhm* Praktycznie każda "poważna" maszyna wirtualna posiada w sobie kompilator JIT. ekhm


davis napisał(a):

Witam ! Jestem totalnie początkujący , ale chciałbym się dowiedzieć w jakim języku programowania powstaje taka gra np. jak FIFA 14 ? Da się to jakoś identyfikować ?

To ma coś do rzeczy, skoro jesteś całkowicie początkujący?
Jeżeli chcesz się uczyć na zasadzie "pouczę się roku tego języka i napiszę własną FIFA-ę", muszę Cię (nie)stety uświadomić, że to tak nie działa.

Ale odpowiadając na pytanie: Java (np. Minecraft ), Unity (to chyba C#, JS, Boo - Outlast (...)), C++ (Penumbra, wszystkie Half-Life-y (...)), praktycznie każdy język - nawet Pascal się znajdzie :P

0

@davis Z programowaniem gier to ty poczekaj. Ja 14 lat temu też się napaliłem na pisanie gier i jakoś do tej pory nie mogę się żadną sensowną pochwalić. Wprawdzie winę że mi tak długo zeszło mogę zrzucić na to że jako 11-sto latek w bólach studiowałem książki od basica i Turbo Pascala (opisującą jeszcze tp 3.0) przystosowane dla studentów uczelni wyższych, więc ciężko było mi cokolwiek zrozumieć ale załapałem solidne podstawy. Pierwszą książkę jaką kupiłem w celu nauki programowania to wcale nie był jakiś podręcznik od jakiegoś języka tylko słownik angielsko-polski żebym mógł helpa zrozumieć. Dopiero po roku mama się zlitowała i kupiła mi książkę "Turbo Pascal i Delphi dla dzieci od 8 do 88 lat" xD i już jakoś poszło.

Także najpierw proponuję to: Kompendium (jesli interesuje cię pascal) albo jakikolwiek inny tutorial czy kurs jakiegoś języka. Potem jak już dobrze poznasz podstawy to w ramach praktyki i ćwiczenia algorytmów proponuję: http://pl.spoj.com i dopiero potem możesz poszukać czegoś na temat podstaw programowania grafiki poznać jakiś silnik i wziąć się za programowanie gier.
Jak jesteś kumaty to myślę że za jakiś rok czy dwa jakiegoś duck hunta czy tetrisa napiszesz.

A wracając do zadanego pytania to praktycznie w każdym języku programowania można napisać grę.

0

Gry na Androida to też w C++ się pisze?

0

Sam język nie odgrywa większej roli, najważniejsze są biblioteki, technologie, środowisko i umiejętność korzystania z istniejących rozwiązań. Każdy szanujący się silnik posiada background napisany w c++ i podpięte do niego skrypty. Dlatego pisanie w C# czy Lua nie wpływa drastycznie na wydajność ale pozwala przyśpieszyć i ułatwić pisanie gry.

0

Większość gier AAA jest pisana pod wiele platform i z tego powodu używanie takiego np C# nie wchodzi w grę, no chyba, że ktoś chce zaklepać dwie wersje gry. Obstawiam, że prawie zawsze używa się C++, gdyż języki zarządzane jednak nie są jakieś super oszczędne jeśli chodzi o pamięć, a na konsolach typu nawet PS3/X360 tej pamięci jest względnie mało. Do tego dochodzą inne niskopoziomowe optymalizacje, które są po prostu niedostępne w C#/ Javie/ Pythonie/ cokolwiek zarządzane. Silniki 3d mają jednak własne VMki/ interpretery do języków skryptowych, ale te skrypty są malutkie, a ich możliwości ograniczone do dostarczonego przez silnik gry API.

Tak ja to widzę :)

Można jednak klepać gierki w Javie czy C# i jeśli będą dobrze napisane to będą mieć akceptowalną wydajność, ale i tak nie wykorzystają zasobów tak jak dobrze napisane gry w C++.

1

Wydaje mi się że całkiem niesłusznie zakładasz że dla twórców gier AAA najważniejsza jest wydajność, bo mi wydaje się że dla takich twórców jak EA najważniejsze są dolary. Jak myślisz dlaczego takie gry jak seria NFS które łagodnie mówiąc nie są technologicznymi perełkami, są ciągnięte na podobnym poziomie już od paru lat, ano dlatego że się sprzedają, a jak kasa płynie to nie ma sensu dokładać do lepszej jakości.

0
davis napisał(a):

Witam ! Jestem totalnie początkujący , ale chciałbym się dowiedzieć w jakim języku programowania powstaje taka gra np. jak FIFA 14 ? Da się to jakoś identyfikować ?


To ma coś do rzeczy, skoro jesteś całkowicie początkujący?
Jeżeli chcesz się uczyć na zasadzie "pouczę się roku tego języka i napiszę własną FIFA-ę", muszę Cię (nie)stety uświadomić, że to tak nie działa.

Ale odpowiadając na pytanie: Java (np. Minecraft ), Unity (to chyba C#, JS, Boo - Outlast (...)), C++ (Penumbra, wszystkie Half-Life-y (...)), praktycznie każdy język - nawet Pascal się znajdzie :P


Racja , nie chcę pisać gier. W C++ w technikum jestem na etapie poznawania instrukcji i robienia prostych programów. Dlaczego pytałem akurat o FIFE ? Jestem wieloletnim graczem i chciałem się dowiedzieć czy trudno napisać program który ingeruje w gre. Np. jak ogólnodostępne programiki dodające wirtualne pieniądze w trybie kariery. Co trzeba znać aby zaingerować w pliki lokalne gry i modifkować to programem. To mnie bardziej interesowało.

0

Dlaczego pytałem akurat o FIFE ? Jestem wieloletnim graczem i chciałem się dowiedzieć czy trudno napisać program który ingeruje w gre. Np. jak ogólnodostępne programiki dodające wirtualne pieniądze w trybie kariery. Co trzeba znać aby zaingerować w pliki lokalne gry i modifkować to programem. To mnie bardziej interesowało.

To zadałeś złe pytanie. Zauważ ze nigdzie nie ma kodu źródłowego FIFY który mógłbyś sobie ściagnąć i modyfikować, więc nie ma znaczenia w czym ją napisano bo takiego kodu i tak nie zobaczysz. Ingerowanie w istniejące programy to Reverse Engineering i tutaj znajomość asemblera i C jest tym czego ci potrzeba.

1

Chamska reklama ;) Na moim blogu wprawdzie od dawna nic się nie dzieje, bo na nowe wpisy to nie mam weny. Ale masz tam stary art z kodem źródłowym do proatego trainera dla pierwszej części Maxa Payne'a. Wraz z opisem namierzania ważnych onszarów pamięci. Jest też zip z kodem źródłowym trainera w Delphi pod WinAPI. Może to się Tobie do czegoś przyda. Jednak pisanie trainerów czy "hacków' do starszych gier jest często w miarę łatwe.

Co do reverse engeneringu to na pewno jest to prostsze pod Windowsami niż napisanie Fify od zera. Uważam tak dlatego, że pisząc tak złożone gry, musimy znać DirectX'a, później zakodzić AI, znajomośc zagadnień raytrace'ingu i masa innych. Reversować zaś można ogarniając podstawy. Zobacz na mój trochę napakowany dymkami filmik na YT, bo kręciłem to bez montażu. Link jest na blogu. Ale jak widać zreversowanie niespakowanego programu, tak jak robię z tym WinRipperem, jest dość proste. Skoro taka lama jak ja jakoś to ogarneła. Trzeba tylko myśleć co się robi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1