Warsztat.GD

Programowanie => Silniki => Wątek zaczęty przez: fallcoon w Sierpień 17, 2009, 01:36:24

Tytuł: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 17, 2009, 01:36:24
Witam!

Mam jedno małe pytanko, z czego składa się silnik do gry 2d i co minimalnie muszę wiedzieć żeby taki silnik napisać. A dodam, że zacząłem się uczyć języka c++, ale tylko od niecałego miesiąca, więc dużo o nim nie wiem, ale jakoś dobrze wchodzi do głowy, więc chce dalej pogłębiać swoją wiedzę na ten temat i przy okazji poznać coś nowego :)

Dziękuje Wszystkim z góry za pomoc i pozdrawiam!
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: nikon69 w Sierpień 17, 2009, 02:54:22
hmm..

ogolnie tez chce napisac silnik tylko ze do 3d..

a co do Twojego pytania to odsylam do http://en.wikipedia.org/wiki/Game_engine a zwlaszcza do linijkek:
"
The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, and a scene graph.

"
Pozdrawiam,
n.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Nazar w Sierpień 17, 2009, 03:13:16
Wszyscy teraz po kilku tygodniach nauki C++ chcą już silniki pisać, najlepiej od razu w 3D. Ależ mamy ambitną młodzież :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 17, 2009, 03:30:45
dzięki za odpowiedź - tylko troszkę angielski trzeba podszkolić :) ale tłumacz google nawet nie jest zły przynajmniej już mi to troszkę rozjaśniło :)

i życzę powodzenia w pisaniu silnika 3d, ja na razie się za te silniki nie zabieram, bo to dla mnie czarna magia, ale za silnik 2d bym mógł się zabrać i spróbować, nawet jak nie wyjdzie na razie to nic się przecież nie stanie, a nóż się uda i potem gra jakaś fajna wyjdzie, zwłaszcza że wczoraj mi się przyśniło kilka fajnych pomysłów i chciałbym je zrealizować :) tylko mam mały problem, że nie wiem zupełnie od czego zacząć, fajnie by było jak by ktoś mnie nakierował i powiedział zacznij od tego, poczytaj o tym, a potem już będzie z górki :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: rm-f w Sierpień 17, 2009, 03:34:10

tylko mam mały problem, że nie wiem zupełnie od czego zacząć, fajnie by było jak by ktoś mnie nakierował i powiedział zacznij od tego, poczytaj o tym, a potem już będzie z górki :)
Nie uważasz że jak nie wiesz od czego zacząć, ba nawet nie wiedziałeś co chcesz robić, to nie powinieneś tego robić?
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 17, 2009, 03:43:06
Nazar - no ambicja to podstawa mnie popycha do przodu i to właśnie dzięki niej zacząłem się uczyć c++ :)

rm-f - właśnie uważam, że chcę to robić, a początki są zawsze bardzo trudne, czasem długie, ale grunt to się nie poddawać :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: mwojt w Sierpień 17, 2009, 09:22:56
Ja bym do tego polecił nauczyć się podstaw opengl, zwykła grafika np. z SDL, winapi będzie za wolna chociaż czasami dobrze nadaje się do prostych gierek.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: ShadowDancer w Sierpień 17, 2009, 10:20:39
if(exp!=true)fail();
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Kuba D. w Sierpień 17, 2009, 10:36:23
Nie ma się czym przejmować że niewiele umiesz. Nauczysz się wszystkiego co trzeba w trakcie pisania silnika. Potem porzucisz projekt bo będą złe główne założenia i rozwiązania ale za to potem napiszesz od początku już dobry silnik. Oczywiście trochę to potrwa ale cóż. Nikt nie mówił że będzie łatwo.
A i czemu zaczynasz od silnika 2D ? W 3D masz praktycznie te same zagadnienia i problemy.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Wyszo w Sierpień 17, 2009, 11:51:28
Krótko: polecam zacząć od pisania prostych gierek. Bez napisania co najmniej kilku ja sam nie bardzo bym sobie potrafił wyobrazić, jak powinien wyglądać taki silniczek 2D. Pomysły na gry na początek: klon ponga, bombermana, diggera, arkanoida, gomoku, top down shooter, etc.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 17, 2009, 12:46:12
Dzięki Wszystkim za odpowiedzi.

A chciałem zacząć od silnika 2d bo pomyślałem, że jest on łatwiejszy i że na pierwszy raz będzie lepiej zacząć od takiego silnika.
A co do klonów ponga i innych to właśnie też myślałem żeby na początek napisać takie gry, jakby mi się udało to taka gra podniosła by mnie bardzo na duchu :)

No to teraz dodatkowo zacznę naukę podstaw openGL`a :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Nazar w Sierpień 17, 2009, 14:37:04
Bo często jest łatwiejszy. Najlepiej dla Ciebie chyba będzie skorzystać z jakiegoś gotowego silniczka - pokodzisz sobie trochę i zobaczysz, z czym to się je :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: artpoz w Sierpień 17, 2009, 16:04:14
fajnie by było jak by ktoś mnie nakierował i powiedział zacznij od tego, poczytaj o tym, a potem już będzie z górki :)

Zacznij od tego (http://www.gamedev.net/reference/design/features/makegames/), poczytaj o tym (http://www.warsztat.gd/articles.php?x=view&id=185), a potem już będzie pod górkę ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 17, 2009, 16:11:39
No właśnie mam gotowe silniki 3d na kompie (irrlicht i  ogre) ale na razie nie umiem z nich korzystać. Teraz zacząłem naukę SDL'a i nauka idzie do przodu :) Mimo, że same podstawy, w końcu to pierwszy dzień nauki, ale już mi się to podoba :) A silników 2d nie mogłem znaleźć - nawet nie znam ani jednej nazwy takiego silnika, a zawsze większą ochotę miałem napisać go sam :) zwłaszcza że teraz mam jeszcze wakacje to więcej czasu wolnego jest i można kodzić na okrągło :)

hehe ok poczytam o tym, tylko szkoda, że później pod górkę :) ale dam radę :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: C'mons w Sierpień 17, 2009, 19:20:40
To może i ja coś od siebie dopowiem. ;]

Nie wyobrażaj sobie silnika do gier 2D jako jakiegoś boskiego kodu(narzędzia) do tworzenia gier. To po prostu kod( różne funkcję, klasy, metody, własne typy danych ) który ma Ci ułatwić tworzenie gier. Innymi słowy silnik to kod ułatwiający pisać inny kod.

Przykładowo pewnie wiesz jak się wyświetla jakiś tekst w konsoli w c++. Załóżmy że nie pasuje Ci taki sposób że jest on dla Ciebie niewygodny ale masz pomysł jak byłoby lepiej i wygodniej wtedy właśnie piszesz swoją funkcję do wyświetlania tekstu w konsoli która Ci odpowiada.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Kuba D. w Sierpień 17, 2009, 19:30:19
To może i ja coś od siebie dopowiem. ;]

Nie wyobrażaj sobie silnika do gier 2D jako jakiegoś boskiego kodu(narzędzia) do tworzenia gier. To po prostu kod( różne funkcję, klasy, metody, własne typy danych ) który ma Ci ułatwić tworzenie gier. Innymi słowy silnik to kod ułatwiający pisać inny kod.
A to ciekawe co piszesz... Ja myślałem że to co opisałeś to framework ale co ja tam wiem.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: C'mons w Sierpień 17, 2009, 21:28:18
No przykład jaki podałem może nie był trafny ale to choćby dlatego, że dla mnie jest tutaj cienka granica. Coś co napędza coś można nazwać silnikiem. Gdzie słowo "napędza" można pojmować w różny sposób - głównie metaforycznie.

http://pl.wikipedia.org/wiki/Silnik_%28informatyka%29
http://pl.wikipedia.org/wiki/Silnik_graficzny
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: sobol w Sierpień 17, 2009, 21:34:26
Chodzi tylko o poziom abstrakcji. Jeśli tylko opakujemy funkcje OGLa w ten sposób, żeby zamiast glBegin / glEnd pisać drawRect to będzie framework, bo poziom abstrakcji się nie zmienia. Jeśli natomiast zamiast trójkątami zaczniemy się posługiwać modelami np. (tak MEGA uogólniając ;p) to będzie to silnik (aczkolwiek silnik silnikowi nie równy).
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Kuba D. w Sierpień 17, 2009, 22:34:18
Mając silnik gry możemy stworzyć grę praktycznie bez modyfikacji czy nawet zaglądania do kodu korzystając z dołączonych narzędzi czy edytorów. Aczkolwiek tak jak sobol napisał: "silnik silnikowi nierówny".
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: sobol w Sierpień 17, 2009, 22:54:39
Oj nie nie absolutnie to co mówisz nie jest prawdą. Żeby jakiś twór był silnikiem, nie musi w nim być zawartych żadnych edytorów ;> Jak grę można zrobić bez kodu to mamy do czynienia z klikiem :D
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: cybek w Sierpień 17, 2009, 22:55:23
Mając silnik gry możemy stworzyć grę praktycznie bez modyfikacji czy nawet zaglądania do kodu korzystając z dołączonych narzędzi czy edytorów. Aczkolwiek tak jak sobol napisał: "silnik silnikowi nierówny".
yyyy.. To co ty opisałeś to raczej modyfikowanie modeli i tworzenie etapów do gry, a nie tworzenie gry o.O
Silnik raczej nie posiada głównej pętli gry o.O
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Kuba D. w Sierpień 17, 2009, 23:14:19
yyyy.. To co ty opisałeś to raczej modyfikowanie modeli i tworzenie etapów do gry, a nie tworzenie gry o.O
Silnik raczej nie posiada głównej pętli gry o.O
A czy gra bez żadnych etapów jest grą ? Tworzenie etapów to też tworzenie gry.

I wątpię żeby gotowe silniki były bez żadnych narzędzi. Nie kupuje się chyba silnika bez żadnych narzędzi. A poza tym nie napisałem że silnik gry = edytor/klik jak mi tu koledzy zasugerowali ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 18, 2009, 16:01:42
Dzięki wszystkim za pomoc teraz już wiem co muszę zrobić żeby napisać silnik :) Pozdrawiam
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Nazar w Sierpień 19, 2009, 20:02:14
O ile dobrze pamiętam - Haaf'a Game Engine jest chyba sprzętowo wspomaganym silnikiem 2D.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: fallcoon w Sierpień 19, 2009, 22:46:39
No to jest silnik 2d

Dzięki może się kiedyś przyda :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: helghast15 w Sierpień 31, 2009, 21:36:17
WITAM!

Chce z trzema kolegami zrobić na początek grę platformową... Tylko że jest problem, ponieważ nic nie wiemy na temat silnika graficznego... Pomożecie?? Nie wiemy czy mamy napisać i jak się za to zabrać...
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: rm-f w Sierpień 31, 2009, 21:41:41
ponieważ nic nie wiemy na temat silnika graficznego... Pomożecie?? Nie wiemy czy mamy napisać i jak się za to zabrać...
1. Myślenie
2. Kombinowanie
3. Wyszukiwarka
4. Encyklopedie
5. Artykuły
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: RedHot w Wrzesień 01, 2009, 17:21:18
Zapewne Warsztatowe Wiki to miejsce gdzie powinniście się wybrać.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: counterClockWise w Wrzesień 01, 2009, 17:33:34
Chce z trzema kolegami zrobić na początek grę platformową... Tylko że jest problem, ponieważ nic nie wiemy na temat silnika graficznego... Pomożecie?? Nie wiemy czy mamy napisać i jak się za to zabrać...

To piszcie grę, a nie silnik :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 01, 2009, 17:41:11
WITAM!

Chce z trzema kolegami zrobić na początek grę platformową... Tylko że jest problem, ponieważ nic nie wiemy na temat silnika graficznego... Pomożecie?? Nie wiemy czy mamy napisać i jak się za to zabrać...
:o Projekt nie doczeka stadium gdzie ilość linii kodu będzie liczbą trzycyfrową. Lepiej przeczytaj megatoutarial i jeżeli zapał nie znikinie to jakieś kursy C'Mon'a nt. Allegro5. I możesz pisać grę... za ok. 6 miesięcy  :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: BrutalComputer w Wrzesień 01, 2009, 18:36:02
I możesz zacząc pisać grę... samodzielnie.

Na takim poziomie zaawansowania 2-ch dodatkowych nowicjuszy będzie ci tylko przeszkadzało.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 02, 2009, 00:47:59
wine,6 miechów ?.Bez przesady.Chyba że wliczając prawie kompletną naukę allegro < a w tym nie widzę sensu.Można się co najwyżej pobawić i napisać 1 gierce.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: BrutalComputer w Wrzesień 02, 2009, 12:36:29
Dokładnie. Założę się, że pierwsze 90 projektów updanie pierwszego dnia, a kolejne 10 w przeciągu tygodnia :-) ( przynajmniej tak wyglądała moja kariera )
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 02, 2009, 22:09:54
wine,6 miechów ?.Bez przesady.Chyba że wliczając prawie kompletną naukę allegro < a w tym nie widzę sensu.Można się co najwyżej pobawić i napisać 1 gierce.
Tak 6 miechów. Albo nawet więcej... ja siedzę i kodzę od 12 (ok. 1h dziennie) a i tak uważam że nie jestem dobrym koderem. A jak będę dobrym koderem to dopiero w tedy mogę uznać że mogę zacząć i skończyć jakikolwiek projekt.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: C'mons w Wrzesień 02, 2009, 23:20:54
Ja programuje od 6 roku życia ( commodore16 a potem 64 ) a do dzisiaj mając 16 lat żadnej gry nie ukończyłem. xD Nawet głupie kółko i krzyżyk nigdy nawet nie zacząłem pisać. :| W większości to uczę się ale raczej tak na ślepo. Aczkolwiek zamierzam to zmienić.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 03, 2009, 00:35:53
Cytuj
Tak 6 miechów. Albo nawet więcej... ja siedzę i kodzę od 12 (ok. 1h dziennie
No to prawie się nie uczysz.Nie chodzi mi tutaj że w 6 miechów będę pro tylko że ten czas spokojnie starczy do stworzenia pierwszej gry.Oczywiście nie będzie to jakieś ultra power coś...
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: rm-f w Wrzesień 03, 2009, 00:43:55
Cytuj
Tak 6 miechów. Albo nawet więcej... ja siedzę i kodzę od 12 (ok. 1h dziennie
No to prawie się nie uczysz.Nie chodzi mi tutaj że w 6 miechów będę pro tylko że ten czas spokojnie starczy do stworzenia pierwszej gry.Oczywiście nie będzie to jakieś ultra power coś...
A masz już kaiś dorobek, by poprzeć to co powiedziałeś własnym doświadczeniem?

@down I oto mi chodziło :-)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 03, 2009, 00:48:19
Cytuj
A masz już kaiś dorobek, by poprzeć to co powiedziałeś własnym doświadczeniem?
Tak.Wyszukaj użytkownika Joker na http://www.warsztat.gd/ i sobie przejrzyj.Co prawda dawno nic nie wrzucałem.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 03, 2009, 01:10:25
Cytuj
Tak 6 miechów. Albo nawet więcej... ja siedzę i kodzę od 12 (ok. 1h dziennie
No to prawie się nie uczysz.Nie chodzi mi tutaj że w 6 miechów będę pro tylko że ten czas spokojnie starczy do stworzenia pierwszej gry.Oczywiście nie będzie to jakieś ultra power coś...
Huh, czemu mówisz teraz że nie jesteś zaawansowany a później (o tu:
Cytuj
A masz już kaiś dorobek, by poprzeć to co powiedziałeś własnym doświadczeniem?
Tak.Wyszukaj użytkownika Joker na http://www.warsztat.gd/ i sobie przejrzyj.Co prawda dawno nic nie wrzucałem.
Mówisz jakbyś miał duże doświadczenie? Czy to aby nie podejrzane? Czyżby to nie było twoje konto?

Co do mojej nauki: i co z tego? Może lepszy jest wypoczęty trochę gorszy koder niż obrastający w piórka koleś który myśli że jeżeli siedzi 20/24h nad kompem to jest pro. Tacy nigdy nie ukończą żadnego projektu grupowego. Prawda jest taka że uczy się programowania przez całe życie. Ta jedna godzina to jest średnia (przecież są dni w których nie tykam się kompa... np. przed dni sprawdzianów, tudzież jakieś plenerowe wyjazdy) ale jestem pewien że 50% czasu spędzonego przy kompie to używanie Visual'a...

// Edit: w 6 miechów masz poznać C++ (dobrze), poznać StdC++Lib :P (stopień podstawowy), nauczyć się api graf. a przy tym mieć jakiś kontakt ze światem zewnętrznym?
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 03, 2009, 15:46:15
Cytuj
Mówisz jakbyś miał duże doświadczenie? Czy to aby nie podejrzane? Czyżby to nie było twoje konto?
Zmieniłem nick na koncie.Kiedyś było Thieft ale już go nie używam od dawna.
Zresztą jak chcesz to daj link do jakiegoś ss to coś napisze z tego konta ::)

Co do długiego siedzenia.1h to mało.Ale każdy się uczy jak chce ja uczę się różnie mam dni gdzie przeczytam masę tutoriali a czasem nic.Aha i w 6 miechów można się nauczyć tyle by zrobić swoją PIERWSZ¡, prostą grę.

A i tak ogólnie to dłużej siedzę w tym "fachu",lecz jak zaczynałem to po miechu nauki tworzyłem gry,co prawda słabe więc nawet się nie chwaliłem ...
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 03, 2009, 16:13:11
Zresztą jak chcesz to daj link do jakiegoś ss to coś napisze z tego konta ::)
To zmień nick na Thieft  :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 03, 2009, 16:20:17
Nie nie chce zmieniać na stary nick mogę najwyżej napisać w wybranym przez ciebie ss.Jeżeli da się na forum zmienić nick też to zrobię.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 03, 2009, 16:21:26
Nie nie chce zmieniać na stary nick
podejrzane  ::)
mogę najwyżej napisać w wybranym przez ciebie ss.Jeżeli da się na forum zmienić nick też to zrobię.
Jako niezalogowany user?  :D
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Joker w Wrzesień 03, 2009, 16:37:06
O ile dobrze pamiętam to niezalogowani nie mogą pisać.A ty po co się wykłócasz ?.Nie wierzysz do daj link do ss i daj mi już spokój.Napisze komentarz z konta Joker.A co ma być dziwnego że nie chce wracać do starego nicka ?.Ty jak zmienisz imię to też każesz mówić do siebie po staremu ?. ::)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 03, 2009, 16:48:14
A ty po co się wykłócasz ?
A ty po co się tym przejmujesz?
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 03, 2009, 18:46:42
// Edit: w 6 miechów masz poznać C++ (dobrze), poznać StdC++Lib :P (stopień podstawowy), nauczyć się api graf. a przy tym mieć jakiś kontakt ze światem zewnętrznym?
Dlaczego uważasz, że autor chciałby pisać grę 2D w tak niewygodnym, wolnym w programowaniu i topornym języku? :)

Poza tym raczej zakończyłbym offtop ze strony wine na temat nicka Jokera. Ludzie, są lepsze sposoby nabijania postów, jak już musicie. ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 18, 2009, 23:30:17
// Edit: w 6 miechów masz poznać C++ (dobrze), poznać StdC++Lib :P (stopień podstawowy), nauczyć się api graf. a przy tym mieć jakiś kontakt ze światem zewnętrznym?
Dlaczego uważasz, że autor chciałby pisać grę 2D w tak niewygodnym, wolnym w programowaniu i topornym języku? :)

Nie rozumiem dlaczego C++ nazywasz niewygodnym i topornym językiem  ;D
Zacznijmy od topornym ponieważ jest to zwrot bez sensu więc można go na start wyeliminować.
Programuję od około 8/9 lat, zetknąłem się z różnymi językami ( Visual Basic, Pascal, różne skryptowe i inne oparte na strukturze c++ ), teraz poznaję dogłębnie C++ i muszę stwierdzić, że jest to język, który poza dawaniem możliwości jest wygodny, przyjemny a na dodatek warto od niego zacząć, bo początek itak jest prosty ( chyba, że chcesz się kłócić o to ile zajmie Ci w innym linijek.. ) a dzięki temu od razu zyskasz możliwości a nie zbędną wiedzę ( np. Pascal ).
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: RedHot w Wrzesień 19, 2009, 02:43:16
Charibo zapewne żartował.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 19, 2009, 12:38:13
Oczywiście, że nie żartowałem. C++ jest czasem niezbędny, jeśli chodzi o wydajność, ale jeśli chodzi o wygodę programowania - jest lata świetlne w tyle za nowoczesnymi rozwiązaniami (dajmy, .NET czy Java). Ot, po kolei:
- Ręczne zarządzanie pamięcią. Przydaje się, jeśli zależy nam na każdym kilobajcie i na każdym cyklu, w duzych tytułach, które faktycznie używają sprzętu do granic. I własciwie tylko tam, a taki system trzeba napisać i utrzymywać. Albo mamy memleaki.
- Brak GC - w zasadzie wynika z poprzedniego.
- Podział na nagłówki i pliki cpp, wraz ze wszystkimi konsekwencjami (utrudniony design, zależności cykliczne, problemy z samym pojęciem "jednostka kompilacji"...)
- Brak czegoś, co można nazwać "dobrą biblioteką standardową".
- Brak IDE z designerem okienek - dobra, jest MFC, ale MFC nie zachwyca.
- Brak delegatów wbudowanych w język.
- Masa "ciemnych zaułków" - UB, nieścisłości w standardzie, różnice między kompilatorami...

Podsumowując IMO jest tak, że C++ jest potrzebny i nie zginie - bo pozwala na lowlevel optymalizacje, na wyciąganie maksa ze sprzętu. Ale główną wadą jest to, że wielu ułatwień nie ma out of the box. A to znaczy, że trzeba napisać je samemu. A to, idąc dalej, oznacza, że trzeba na to stracić czas. A czas jest najcenniejszy dla programisty, bo można spożytkować go na przykład na pisanie gameplayu, niż własnego zarządzania pamięcią (olewając 3%-owy spadek wydajności GC). :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 19, 2009, 16:52:19
Różnice między kompilatorami nie są ogromne, poza tym zazwyczaj przyzwyczajasz się do jednego.
Ciemne zaułki to tylko dodatki :p
MFC może nie jest genialne, ale MFC to nie wszystko. Masz wieloplatformowe Qt, masz nowoczesne wxWidgets.
Oddzielne nagłówki i pliki cpp to może być zaleta, gdy dobrze się to wykorzysta.
Ręczne zarządzanie pamięcią to też zaleta.

Narzekasz, na brak dobrej standardowej, a do c++ są setki dobrych bibliotek i miliony linijek kodu, napisanych przez ludzi z całego świata dla ułatwienia pracy.
Ponadto przez to, że język jest najpopularniejszy szybko się rozwija.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Dab w Wrzesień 19, 2009, 17:54:36
Ponadto przez to, że język jest najpopularniejszy szybko się rozwija.
WTF? C++ się szybko rozwija?
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 19, 2009, 17:59:42
Ponadto przez to, że język jest najpopularniejszy szybko się rozwija.
WTF? C++ się szybko rozwija?
Moim zdaniem arturooo3 chodziło o to że się więcej softu dla koderów pisze...
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 19, 2009, 19:13:45
Nagłówki, dllki, silniki.. Nie tylko rozwój "z góry" mam na myśli.
Także rozwój koderów ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 19, 2009, 19:14:59
Także rozwój koderów ;)
WTF? A co można w koderach rozwijać?
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 19, 2009, 19:24:23
Oddzielne nagłówki i pliki cpp to może być zaleta, gdy dobrze się to wykorzysta.
Podaj trzy zalety. :)
Ręczne zarządzanie pamięcią to też zaleta.
Jasne, czasem tak. Ale zazwyczaj wielka wada. Powiedz mi, ile projektów gier indie, robionych przez jednego, dwóch programistów może potrzebować takiej armaty na komara? :)
Narzekasz, na brak dobrej standardowej, a do c++ są setki dobrych bibliotek
To prawda. Ale każda nowa biblioteka wymaga nauki - strata czasu.
Ponadto przez to, że język jest najpopularniejszy szybko się rozwija.
No to ciekawe dlaczego C++0x jest na najlepszej drodze do bycia C++1x ;)
Nagłówki, dllki, silniki.. Nie tylko rozwój "z góry" mam na myśli.
Ile ostatnio powstało nowych silników? Przeznaczonych dla kogoś takiego jak ja, twórcy, który ma mało czasu i mało pieniędzy? :)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 19, 2009, 19:47:44
Także rozwój koderów ;)
WTF? A co można w koderach rozwijać?
Rozwój c++ przez koderów :P

Cytuj
Podaj trzy zalety. Smiley
1. Klasa jest przejrzysta, bo długie funkcje masz w pliku .cpp
2. ... przez co koderzy łatwiej mogą dostrzec składniki
3. Jest jakiś porządek (jeżeli programista go dochowa...) - cpp zawiera funkcje, kod, natomiast headery zawierają inkludowane biblioteki, definicje, klasy ( w tej postaci "krótkiej" jak pisałem wcześniej ).

Cytuj
Jasne, czasem tak. Ale zazwyczaj wielka wada. Powiedz mi, ile projektów gier indie, robionych przez jednego, dwóch programistów może potrzebować takiej armaty na komara? Smiley
Czyż programista zaczynając od małej gry nie kończy często w dużej firmie tworzącej gry? Pasja, to pasja.

Cytuj
To prawda. Ale każda nowa biblioteka wymaga nauki - strata czasu.
Czas najważniejszy dla programisty, ale nauka jeszcze ważniejsza. Idąc dalej Twoją filozofią dojdziemy do punktu, gdy zostaniemy jedynie projektantem gry, bo pisanie to strata czasu - komputer sam powinien wszystko zrobić. Poza tym.. prosta biblioteka napisana przez sprytnego programistę to nauka max. na dzień.

Cytuj
No to ciekawe dlaczego C++0x jest na najlepszej drodze do bycia C++1x
A czy dopracowanie to coś złego?
Poza tym mam na myśli także rozwój C++ przez programistów.

Cytuj
Ile ostatnio powstało nowych silników? Przeznaczonych dla kogoś takiego jak ja, twórcy, który ma mało czasu i mało pieniędzy?
Silników powstaje dużo, bo jak ktoś pisał dużo programistów gier jednak zaczyna się bawić nie w gry, a silniki. Dla mnie jednak ważniejszy jest rozwój już istniejących, bo co nam po ilości miast jakości Drogi Charibo?
Mało czasu to największy problem. I'm sorry..   8)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: ShadowDancer w Wrzesień 19, 2009, 19:52:50
Skoro masz mało czasu, to jak chcesz być programistą? :D
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 19, 2009, 20:08:29
Charibo jesteś skazany na niebycie programistą :P

Ale kończąc offtop.
fallconn myślałeś nad jakimś gotowym silnikiem?
2d także posiada ich wiele.
Znam całkiem fajny - HGE.
http://hge.relishgames.com (http://hge.relishgames.com)
Jest dostępny z kodem źródłowym - jeżeli zdecydujesz się na C++, polecam przyjrzeć się gdy już podszkolisz język :)
Wtedy zrozumiesz jak powinien takowy wyglądać ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Liosan w Wrzesień 19, 2009, 20:14:05
Jeszcze co do plików nagłówkowych:

Cytuj
Podaj trzy zalety. Smiley
1. Klasa jest przejrzysta, bo długie funkcje masz w pliku .cpp
2. ... przez co koderzy łatwiej mogą dostrzec składniki
3. Jest jakiś porządek (jeżeli programista go dochowa...) - cpp zawiera funkcje, kod, natomiast headery zawierają inkludowane biblioteki, definicje, klasy ( w tej postaci "krótkiej" jak pisałem wcześniej ).
To jest jedna zaleta - mniej czytania na raz przy przeglądaniu klasy. W językach z prostszą składnią taką funkcjonalność zapewnia IDE :)

Liosan
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Kos w Wrzesień 19, 2009, 20:15:02
1. Klasa jest przejrzysta, bo długie funkcje masz w pliku .cpp
2. ... przez co koderzy łatwiej mogą dostrzec składniki
3. Jest jakiś porządek (jeżeli programista go dochowa...) - cpp zawiera funkcje, kod, natomiast headery zawierają inkludowane biblioteki, definicje, klasy ( w tej postaci "krótkiej" jak pisałem wcześniej ).

Daj spokój, podział .h/.cpp to mój ulubiony grzech C++ :P Mam wrażenie, że wymieniłeś tu jedną zaletę trzykrotnie (że klasa jest przejrzysta, że jest w niej porządek i koderzy się z tego cieszą :P).
Może 20 lat temu byłaby to faktycznie zaleta, ale teraz każdy szanujący się edytor potrafi zwijać kod lub wyświetlić outline klasy z możliwością szybkiego skoku do dowolnego elementu.

Nie zmienia to faktu, że podział .h/.cpp to okrutny workaround wokół faktu, że C++ nie ma pojęcia modułu. Parę konsekwencje:
- Duplikacja kodu pomiędzy .h/.cpp, trzeba pisać to samo w 2 miejscach. IDE to w pewnym stopniu rekompensuje, ale i tak jest to irytujące.
- Wspomniany przez Ciebie podział logiczny, mimo że w miarę słuszny w idei, i tak bierze w łeb gdy musisz wrzucać kod do nagłówków z powodu ograniczeń kompilatora (szablony, funkcje inline).
- Kompilacja jest długa i nudna, bo kompilator zwykle kompiluje jeden nagłówek kilkukrotnie (konsekwencja kompilacji każdego .cpp osobno). Zmusza to programistów do przerabiania kodu, by móc przerzucić jak najwięcej #include z .h do .cpp, lub korzystania z średnio wygodnych półśrodków typu PCH.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 19, 2009, 20:24:45
W językach z prostszą składnią taką funkcjonalność zapewnia IDE :)
No i? To że kompilator XXX wspiera wstawki w Delphi nie znaczy że to główna zaleta by takowego używać. IDE wspiera -> OK. Ale IDE jest edytorem+debuggerem+kompilatorem wrzuconym do używania GUI bo jest bardziej przystępnie. Zauważ że w "nowoczesnych" językach jest tylko jedno poprawne według twórcy IDE (C#->Visual C#, Java->Netbeans) i inwestuje się grube miliony w ich rozwój. A C++ ma tą przejrzystość klas i funkcji w standardzie (mhm... albo inaczej mówiąc ją odziedziczył od C)  :)

- Duplikacja kodu pomiędzy .h/.cpp, trzeba pisać to samo w 2 miejscach. IDE to w pewnym stopniu rekompensuje, ale i tak jest to irytujące.
- Wspomniany przez Ciebie podział logiczny, mimo że w miarę słuszny w idei, i tak bierze w łeb gdy musisz wrzucać kod do nagłówków z powodu ograniczeń kompilatora (szablony, funkcje inline).
- Kompilacja jest długa i nudna, bo kompilator zwykle kompiluje jeden nagłówek kilkukrotnie (konsekwencja kompilacji każdego .cpp osobno). Zmusza to programistów do przerabiania kodu, by móc przerzucić jak najwięcej #include z .h do .cpp, lub korzystania z średnio wygodnych półśrodków typu PCH.
pierwszy - :  :(
drugi - : to jest wina kompilatora, liczy się idea  :D
trzeci - : albo korzystania z #pragma once lub #ifndef'ów
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: MadBonsai w Wrzesień 19, 2009, 20:33:30
Narzekasz, na brak dobrej standardowej, a do c++ są setki dobrych bibliotek i miliony linijek kodu, napisanych przez ludzi z całego świata dla ułatwienia pracy.
Ponadto przez to, że język jest najpopularniejszy szybko się rozwija.
Język sam w sobie żaden sposób się nie rozwija. Porównaj biblioteki standardowe Cepa i Javy.
Sprawdź, jak rozkłada się wykorzystanie konkretnych języków przez programistów na świecie. Sprawdź, ile innych języków posiada setki dobrych bibliotek (podpowiedź: dotyczy to również JavaScript). Sprawdź, w ilu językach wklepano "miliony linijek kodu" przez ludzi z całego świata.

Progerzy rozwijają oprogramowanie w danym języku, ew. biblioteki, nie sam język. No chyba, że pracują w SUN Microsystems (wstaw inną instytucją zaangażowaną w rozwijanie bądź tworzenie nowych języków).

Cytuj
Jasne, czasem tak. Ale zazwyczaj wielka wada. Powiedz mi, ile projektów gier indie, robionych przez jednego, dwóch programistów może potrzebować takiej armaty na komara? Smiley
Czyż programista zaczynając od małej gry nie kończy często w dużej firmie tworzącej gry? Pasja, to pasja.
Rzadko. Znacznie rzadziej niż byśmy chcieli. Poza tym proger rzadko kończy własną grę, by aplikować do studia, to nie jest nigdzie wymagane.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 19, 2009, 20:45:32
Cytuj
Podaj trzy zalety. Smiley
1. Klasa jest przejrzysta, bo długie funkcje masz w pliku .cpp
2. ... przez co koderzy łatwiej mogą dostrzec składniki
3. Jest jakiś porządek (jeżeli programista go dochowa...) - cpp zawiera funkcje, kod, natomiast headery zawierają inkludowane biblioteki, definicje, klasy ( w tej postaci "krótkiej" jak pisałem wcześniej ).
Doh. Homoseksualizm jest dobry, bo jest bardziej przejrzysty?

Cytuj
Jasne, czasem tak. Ale zazwyczaj wielka wada. Powiedz mi, ile projektów gier indie, robionych przez jednego, dwóch programistów może potrzebować takiej armaty na komara? Smiley
Czyż programista zaczynając od małej gry nie kończy często w dużej firmie tworzącej gry? Pasja, to pasja.
Dla mnie pasja to pasja, jeśli nie muszę klepać tysięcy sloc, żeby mieć ficzer który nigdy mi się nie przyda, lub który w innym rozwiązaniu już istnieje i jest dobry. Takie rzeczy trochę mi się już nudzą. :P

Czas najważniejszy dla programisty, ale nauka jeszcze ważniejsza.
Dla mnie nie. Dla mnie liczy się efekt. Jeśli mogę osiągnąć efekt, bez zbędnej nauki, to dlaczego nie?

Idąc dalej Twoją filozofią dojdziemy do punktu, gdy zostaniemy jedynie projektantem gry, bo pisanie to strata czasu - komputer sam powinien wszystko zrobić.
No i to byłby układ idealny. :) Jedyną rzeczą lepszą od pisania kodu jest niepisanie kodu. Ale niestety tak się nie da :|

Silników powstaje dużo, bo jak ktoś pisał dużo programistów gier jednak zaczyna się bawić nie w gry, a silniki.
Ok, call the shot - podaj mi trzy silniki zrobione w ten sposób, które są warte uwagi pod kątem pisania faktycznej gry, bez konieczności dopisywania toolsetów.

Mało czasu to największy problem. I'm sorry..   8)
Nie mało czasu, czasu mam dużo. Ale mi go żal na bzdety (czyli pisanie zbędnego kodu). :)

---
No i? To że kompilator XXX wspiera wstawki w Delphi nie znaczy że to główna zaleta by takowego używać.
Jeśli problem, który musisz rozwiązać osiągnie jakąś korzyść na używaniu wstawek w Delphi (i ograniczysz przy tym pisanie nadmiarowego kodu), to tak - jest to główna zaleta, żeby go używać. ;)

Zauważ że w "nowoczesnych" językach jest tylko jedno poprawne według twórcy IDE (C#->Visual C#, Java->Netbeans) i inwestuje się grube miliony w ich rozwój.
To jest dobre. Dzięki temu produkty te są dopracowane pod każdym szczegółem. A nawet darmowe. Czego chcieć więcej? Poza tym gadka, że "C++ jest wygodny, bo w Vimie można pisać tak samo wygodnie jak w IDE" mija się z celem. Po to są IDE, żeby pisało się wygodnie. A skoro są, to dlaczego ich nie używać? Tym bardziej, jeśli są to standardowe IDE od twórcy języka. ;)

- Kompilacja jest długa i nudna, bo kompilator zwykle kompiluje jeden nagłówek kilkukrotnie (konsekwencja kompilacji każdego .cpp osobno). Zmusza to programistów do przerabiania kodu, by móc przerzucić jak najwięcej #include z .h do .cpp, lub korzystania z średnio wygodnych półśrodków typu PCH.
trzeci - : albo korzystania z #pragma once lub #ifndef'ów
To trochę tak nie działa. No i przyznać trzeba - kompilacja C++ zajmuje żałośnie dużo czasu.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Liosan w Wrzesień 19, 2009, 20:51:43
Zauważ że w "nowoczesnych" językach jest tylko jedno poprawne według twórcy IDE (C#->Visual C#, Java->Netbeans) i inwestuje się grube miliony w ich rozwój.
To jest dobre. Dzięki temu produkty te są dopracowane pod każdym szczegółem. A nawet darmowe. Czego chcieć więcej? Poza tym gadka, że "C++ jest wygodny, bo w Vimie można pisać tak samo wygodnie jak w IDE" mija się z celem. Po to są IDE, żeby pisało się wygodnie. A skoro są, to dlaczego ich nie używać? Tym bardziej, jeśli są to standardowe IDE od twórcy języka. ;)
Żeby jeszcze dodać absurdalności Twojej uwadze, wine, dorzucę że od ponad roku kodzę głównie w Javie a w życiu nie odpaliłem NetBeansa :D Dobre IDE powstają do języków, które przewidziały istnienie IDE. Sorry.

Liosan
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: MadBonsai w Wrzesień 19, 2009, 21:22:01
A ja kocham NetBeans i pewnie w życiu nie odpalę Eclipse. Te IDE powstały dla Javy, a radzą sobie coraz lepiej z innymi środowiskami (przynajmniej NetBeans, nie wiem jak Eclipse). Kosztują $0. Pluginy znakomicie rozszerzające funkcjonalność kosztuje $0.
Niestety C# ma już mniej szczęścia ;)

C++ istnieje od dawna - to jego główna wada i zaleta ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 19, 2009, 21:57:18
Zacznę od tych zwijanych funkcji. Nie wiem jak Wy, ale u mnie w jednym z najlepszych IDE - MS Visual C++ 2008 średnio to działa. Zwijam a itak co chwilę się rozwijają :)
A uwierzcie iż klasa na 1000 linijek nie jest wygodna, gdy między 30 obiektami szukamy 40 funkcji, które nagle byłoby wszystkie w jednym module razem, brzydko nieswojo.
Naprawdę - życzę powodzenia osobom szukającym ;)
A mam na co dzień do czynienia z takimi modułami i klasami, bo kodzę także w Visual Basic 6.

IDE. No cóż.. tutaj można programistów podzielić na tych, którzy kodzą i projektantów designu. Oczywiście, łatwiej gdy wszystko na raz.. No ale czy to aż tak ważne dla programisty-kodera?
Tak czy siak można MFC zastąpić wieloma innymi dobrymi.

Jak wine napisał - dobry kod używa takiego znaczka jak "#" często, aby prekompilator sobie poukładał i nie powtarzał czytania wszystkiego. A PCH nie jest wcale takie złe ( u mnie działa dobrze, ktoś ma problemy? ).

Cytuj
Język sam w sobie żaden sposób się nie rozwija. Porównaj biblioteki standardowe Cepa i Javy.
Czy Ty wracasz do C ?  ;D ;D
Aktualizacja C++ była poprawka w 2003, aktualnie pracują nad C++0x, standard się zmienia widać to, a biblioteki itak bibliotekami.
Za chwilę Java Ci zrobi swoje całe WinApi tak? No bo.. bibliotek nie będziesz używał przecież!
Hm.. a od kiedy w Javie się robi duże gry, tak btw?

Charibo!
Cytuj
Doh. Homoseksualizm jest dobry, bo jest bardziej przejrzysty?
Nie będę komentować, ale brak argumentu daje takie skutki na "wysokim poziomie inteligencji" spod bloku.

Cytuj
Dla mnie pasja to pasja, jeśli nie muszę klepać tysięcy sloc, żeby mieć ficzer który nigdy mi się nie przyda, lub który w innym rozwiązaniu już istnieje i jest dobry. Takie rzeczy trochę mi się już nudzą. Tongue
Pisząc kod w C++ na pewno znajdziesz dużo całych darmowych gotowców i bibliotek.

Cytuj
Dla mnie nie. Dla mnie liczy się efekt. Jeśli mogę osiągnąć efekt, bez zbędnej nauki, to dlaczego nie?
Efekt jest pośrednim wynikiem. Co z tego, że wygląda super, skoro będzie pokaz slajdów miast płynnej gry?  ::)

Cytuj
No i to byłby układ idealny. Smiley Jedyną rzeczą lepszą od pisania kodu jest niepisanie kodu. Ale niestety tak się nie da :|
Tu się zgadzam. Lipa. Chyba, że zrobimy wspólnymi siłami całego GameDev profesjonalnego GameMakera? :D

Cytuj
Ok, call the shot - podaj mi trzy silniki zrobione w ten sposób, które są warte uwagi pod kątem pisania faktycznej gry, bez konieczności dopisywania toolsetów.
Co Ty masz z tą trójką?
1. Esenthel
2. Unreal Engine
3. Irrlicht ( nie wiem na jakim poziomie jest teraz ten toolset, ale niedawno nie było tak źle ).
Chyba, że lista 2d?

Cytuj
Nie mało czasu, czasu mam dużo. Ale mi go żal na bzdety (czyli pisanie zbędnego kodu). Smiley
Charibo! Zaprzeczasz sobie!

Cytuj
To jest dobre. Dzięki temu produkty te są dopracowane pod każdym szczegółem. A nawet darmowe. Czego chcieć więcej? Poza tym gadka, że "C++ jest wygodny, bo w Vimie można pisać tak samo wygodnie jak w IDE" mija się z celem. Po to są IDE, żeby pisało się wygodnie. A skoro są, to dlaczego ich nie używać? Tym bardziej, jeśli są to standardowe IDE od twórcy języka. Wink
Patrząc w drugą stronę, od góry, co Ci da, jeżeli będziesz się uczył języka ABC+++, który ma 1000 bibliotek, super IDE itd, skoro robota będzie itak najczęściej na C# albo C++ ?

Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Liosan w Wrzesień 19, 2009, 22:00:57
Zacznę od tych zwijanych funkcji.
Jeśli to było a propos mojego stwierdzenia, że IDE potrafi streścić listę funkcji w klasie - to miałem na myśli funkcję outline w Eclipse, a nie zwijanie.

Liosan
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: wine w Wrzesień 19, 2009, 22:02:51
Nie wiem jak Wy, ale u mnie w jednym z najlepszych IDE - MS Visual C++ 2008 średnio to działa. Zwijam a itak co chwilę się rozwijają :)
U mnie też...  :-\
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Dab w Wrzesień 19, 2009, 22:09:25
Dla mnie największą zaletą C jest relacja 1:1 z powstałym kodem. Funkcja to po prostu funkcja, adres funkcji do miejsce gdzie ta funkcja się znajduje. Obiekt to kupka bajtów. Myśląc w C można łatwo myśleć jak procesor. A C++? To przecież tylko parę dodatków do C, żeby było o czym gadać na rozmowie o pracę. ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: MadBonsai w Wrzesień 19, 2009, 23:09:47
@arturoo
Wystarczy nauczyć się szukać. Klasa na 1000 linijek jest wygodniejsza do przeszukania z Intellisense niż 10 klas na 100 linijek. Wystarczy, że ta klasa jest schludnie zaprojektowana. Jeśli programista nie ma pojęcia o czytelnym pisaniu kodu, to pewnie że klasa na 1000 linijek będzie bałaganem.
Zresztą, o czym my gadamy, co to jest klasa na 1000 linijek?

I co ty się tak czepiasz tych dużych gier? Ilość programistów tworzących gry w językach innych niż C++ rośnie niesamowicie szybko. Platformy mobilne, webowe to jest już olbrzymi rynek. Zdajesz sobie sprawę, że w Stanach powstają już studia tworzące jedynie gry na... Facebooka? Czy te gry są gorsze, bo inne?

Poza tym Techland korzystał z Javy dość mocno w Chrome Engine. Zmieniło się to, gdy zaczęli tworzyć również na konsole.
http://forum.warsztat.gd/index.php/topic,6430.msg94794.html#msg94794
I jakoś nie narzekali. To tylko przykład z naszego małego podwórka, przykłady inne sam możesz znaleźć goglując.

Dla każdego języka znajdziesz sporo frikowych komponentów. Widzę, że zagłębiłeś się już w C++ i lubisz go. Fajnie, ale daj oddychać. To, że w C++ dostępna jest masa bibliotek, wie każdy. Tak jak o dostępności bibliotek dla C, C#, Javy, JavaScriptu, PHP, AS, ...., [plus nieskończoność].
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 19, 2009, 23:49:05
Zacznę od tych zwijanych funkcji. Nie wiem jak Wy, ale u mnie w jednym z najlepszych IDE - MS Visual C++ 2008 średnio to działa. Zwijam a itak co chwilę się rozwijają :)
A uwierzcie iż klasa na 1000 linijek nie jest wygodna, gdy między 30 obiektami szukamy 40 funkcji, które nagle byłoby wszystkie w jednym module razem, brzydko nieswojo.
Naprawdę - życzę powodzenia osobom szukającym ;)
A mam na co dzień do czynienia z takimi modułami i klasami, bo kodzę także w Visual Basic 6.
RockScroll + VA:X, a jak nie to Class View z czystego Visuala. I już życie jest proste. ;)


Hm.. a od kiedy w Javie się robi duże gry, tak btw?
Ile dużych gier stworzyłeś? Ja nie stworzyłem żadnej dużej gry. I sam nie dam rady, zdaję sobię sprawę. Więc zupełnie nie mam kłopotów z poświeceniem tych 8, czy ilu, procent wydajności. ;)

Cytuj
Dla mnie nie. Dla mnie liczy się efekt. Jeśli mogę osiągnąć efekt, bez zbędnej nauki, to dlaczego nie?
Efekt jest pośrednim wynikiem. Co z tego, że wygląda super, skoro będzie pokaz slajdów miast płynnej gry?  ::)
Serio nie da rady wytłumaczyć prościej? To może obrazkiem:
DUŻA GRA (http://www.miastogier.pl/baza/Encyklopedia/gry/NeedforSpeedSHIFT_PS3/Galeria/NeedForSpeedSHIFT_PS3_001.jpg) versus MAŁA GRA (http://creators.xna.com/assets/cms/images/XNA_Racing-Game_02_large.jpg).
Teraz jak mówię - skoro robię Małą Grę, co mi robi kilkanaście procent wydajności? -_-

Cytuj
Ok, call the shot - podaj mi trzy silniki zrobione w ten sposób, które są warte uwagi pod kątem pisania faktycznej gry, bez konieczności dopisywania toolsetów.
Co Ty masz z tą trójką?
1. Esenthel
2. Unreal Engine
3. Irrlicht ( nie wiem na jakim poziomie jest teraz ten toolset, ale niedawno nie było tak źle ).
Unreal i Irrlicht nie są robione amatorsko (znaczy po godzinach). A Esenthel nadal nie jest zbyt znany (co nie zmienia faktu, że faktycznie jest dobry. Ok, jeden przykład podałeś). ;)

Cytuj
To jest dobre. Dzięki temu produkty te są dopracowane pod każdym szczegółem. A nawet darmowe. Czego chcieć więcej? Poza tym gadka, że "C++ jest wygodny, bo w Vimie można pisać tak samo wygodnie jak w IDE" mija się z celem. Po to są IDE, żeby pisało się wygodnie. A skoro są, to dlaczego ich nie używać? Tym bardziej, jeśli są to standardowe IDE od twórcy języka. Wink
Patrząc w drugą stronę, od góry, co Ci da, jeżeli będziesz się uczył języka ABC+++, który ma 1000 bibliotek, super IDE itd, skoro robota będzie itak najczęściej na C# albo C++ ?
Ej, halo, co oznacza "robota będzie"? Jeśli rozwiążę problem ABC+++ w 8k sloc, zamiast w 15 w innym języku, to wybiorę ABC+++. Jeśli ABC+++ z jakiegoś powodu będzie ssał, to wybiorę coś innego. Zero filozofii.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Liosan w Wrzesień 20, 2009, 00:02:57
Patrząc w drugą stronę, od góry, co Ci da, jeżeli będziesz się uczył języka ABC+++, który ma 1000 bibliotek, super IDE itd, skoro robota będzie itak najczęściej na C# albo C++ ?
Ej, halo, co oznacza "robota będzie"? Jeśli rozwiążę problem ABC+++ w 8k sloc, zamiast w 15 w innym języku, to wybiorę ABC+++. Jeśli ABC+++ z jakiegoś powodu będzie ssał, to wybiorę coś innego. Zero filozofii.
Mało jesteś skażony korporacyjnym światem, co ? :) Nie zawsze wybór należy do Ciebie - acz akurat w gamedev pod tym względem jest fajny ;)

Liosan
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 20, 2009, 00:29:41
Mam na myśli pracę. Tam zazwyczaj wymagają C++ / C#. Javę owszem, ale na telefony.
Drugi amatorski to może być nGene.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: Charibo w Wrzesień 20, 2009, 00:40:06
Patrząc w drugą stronę, od góry, co Ci da, jeżeli będziesz się uczył języka ABC+++, który ma 1000 bibliotek, super IDE itd, skoro robota będzie itak najczęściej na C# albo C++ ?
Ej, halo, co oznacza "robota będzie"? Jeśli rozwiążę problem ABC+++ w 8k sloc, zamiast w 15 w innym języku, to wybiorę ABC+++. Jeśli ABC+++ z jakiegoś powodu będzie ssał, to wybiorę coś innego. Zero filozofii.
Mało jesteś skażony korporacyjnym światem, co ? :) Nie zawsze wybór należy do Ciebie - acz akurat w gamedev pod tym względem jest fajny ;)

Liosan
Inaczej - ja cały czas mówię o sobie i o mojej robocie. Zdaję sobie sprawę, że w pracy będzie inaczej - ale w pracy nie będę pracował dla własnej frajdy. ;)

Mam na myśli pracę. Tam zazwyczaj wymagają C++ / C#. Javę owszem, ale na telefony.
Drugi amatorski to może być nGene.
Teraz się tłumaczysz. Od początku rozmawialiśmy o amatorskich projektach gier. ;) A nGENE afaik jeszcze nie jest w fazie productive/stable. ;)
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: MadBonsai w Wrzesień 20, 2009, 01:30:30
Mam na myśli pracę. Tam zazwyczaj wymagają C++ / C#. Javę owszem, ale na telefony.
Drugi amatorski to może być nGene.

Phi. Akurat ta brzydka Java byłaby świetną alternatywą dla silnika 2D amatorskiej gry.
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: arturooo3 w Wrzesień 20, 2009, 10:37:41
Tłumaczenie?
Przecież programista kiedyś z malych projektów prawdopodobnie przejdzie do dużych :P
Tytuł: Odp: Silnik 2d
Wiadomość wysłana przez: vashpan w Wrzesień 20, 2009, 11:44:39
Ehh, wystarczylo jedno zdanie i juz zaczyna sie kolejna wojna.

A wystarczy sobie uswiadomic ze jezyki programowania to jedynie narzedzie sluzace programistom. Ani C++ nie jest "ostatecznym rozwiazaniem", ani Java czy C#... Zaden jezyk nie jest uniwersalny. Sztuka jest odpowiednie dobieranie sobie jezyka w zaleznosci od potrzeb.