Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

dejot44

Chcę napisać grę 2D,ale nie wiem w czym...

Rekomendowane odpowiedzi

Witam!Chciałbym napisać grę 2D,jeśli chodzi o wygląd to coś typu tanki 1990 tylko bardziej rozbudowane i z ładniejszą grafiką.Gra musi być wieloplatfomowa(ma działać na linux'ie,IOS oraz windowsie)Usłyszałem jakiś rok temu(a może 8 miesięcy temu?Kto to wie :) ),że idealny do tego będzie C++.Więc się go nauczyłem i dosyć prosto mi szła nauka(co mnie zaskoczyło,bo słyszałem że C++ to trudny język raczej nie polecany na start) i po jakimś czasie gdy nauczyłem się wystarczająco dużo(tak mi się wydaje) to zapytałem się na jakimś forum jak stworzyć z tego czego się nauczyłem gierkę.Większośc osób podała mi SFML 2.0.Więc znowu zacząłem się uczyć(jakiś tydzień,góra dwa :P),napisałem kilka gierek(Pacman,Tic Tac Toe,Snake) ale nagle do mnie dotarło że wszystko wydaje się ok,ale ograniczenia SFML'a mi przeszkadzały i zapewna ta biblioteka nie wystarcza mi do napisania mojej wymarzonej gry.Ba,nawet usłyszałem,że C++ robi się językiem przestarzałym i żebym go zmienił.Więc mam takie pytanie:

-Zostać przy C++,a jeśli tak to jaką wybrać bibliotekę/silnik graficzny do niego,a jeśli nie to z czym kontynuować(pamiętajcie,że chodzi o grę 2D WIELOPLATFORMOWĄ)?

Dziękuje za pomoc i pozdrawiam :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Określenia łatwy/trudny, oraz Umiem to dobrze/bardzo dobrze są bardzo względne.

Pokaż kod, to ocenimy :) bo to mówi więcej niż w/w określenia.

Co do wieloplatformowości - to zależy od bibliotek, z których korzystasz.

 

Jeśli zależy Ci na szybkości pisania kodu, czytelności kodu, i wieloplatformowości, to polecam java z lwgl oraz c# - unity3d.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pisałeś obiektowo? Bo pisanie gierek strukturalie w SFMLu to jak wbijanie drzazg pod paznokcie, obiekty są piękne i dużo ułatwiają. Niestety większość takich bazowych bibliotek 2d jest ograniczona i albo się pisze własne biblioteki rozszerzające albo wyskakuje z armatą na muchę o odpala kombajny. Ja jako fanatyk będę forsował spróbowanie Unity, wspiera 2d, ma miliard tutoriali, wideotutoriali i kursów, używa C# który jest ewolucją C++ więc nie będzie dużego problemu z przesiadką. Jedyne co będzie problemem to jak ludzie zaczną krzyczeć, że w C# piszesz :E

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapomniałem napisać,że pracuję na linuxie,więc C# chyba odpada... Widziałem takie silniki graficzne jak AGS,czy Angel 2D... Nadadzą się(znaczy któryś z nich)?

PS: Warto się brać za javę?Słyszałem,że jest dosyć wolna...

PPS: Pisałem w SFML obiektowo

PPPS: Ta gra chcę napisać,jakby była efektem mojego życia to znaczy ma być dopracowana pod praktycznie każdym szczegółem.Do pracy zresztą wziąłem znajomego grafika,która ma mi pomóc.Myślę,że warto wziąć jakiś silnik graficzny,bo to nie będzie kolejny Pacman tylko gra którą będę pisał przez ok.1.5 roku(tak przewiduję)jeśli nie dłużej i naprawdę mam duży projekt(wciąż rozwijany) który mieści się na 20kartkach a4 przy czcionce 10.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
PS: Warto się brać za javę?Słyszałem,że jest dosyć wolna...

Raczej bym się tym nie przejmował.

Dużo by mówić na ten temat.

Po pierwsze, owe wolne działanie, to trochę mit z przeszłości. Maszyna wirtualna to jest jakiś narzut... ale także optymalizacja w locie ;)

Po drugie, nawet jeśli uda Ci się osiągnąć lepszą wydajność pisząc np. w c++, nie wydaje mi się, żeby to było warte czasu jaki musisz na to poświęcić. W javie pisze się szybciej, nie musisz martwić się np. o zwalnianie pamięci (brak problemów z wyciekami pamięci).

Po trzecie, nie wiem na ile optymalny kod piszesz. Ale wydaje mi się, że java wiele kodu zoptymalizuje lepiej, niż Ty sam pisząc w c++. Może się okazać, że Twój kod natywny będzie wolniej działał, niż w javie ;)

Po czwarte, piszesz kod na wiele platform. Kod optymalizuje się także z myślą o maszynie, na której ma działać, więc tutaj masz utrudnione zadanie.

Generalnie, w większości zastosowań, wydajność jvm / clr jest wystarczająca. Różnica w wydajności c++ i java aktualnie nie jest mocno znacząca, w zalezności od testów, java często okazuje się szybsza od c++ (dzięki optymalizacji w locie). Frameworki gier i tak korzystają z natywnych bibliotek.

Chcąc pisać bardzo optymalny kod musisz się pogodzić z tym, że będzie on brudniejszy :) Warstwy abstrakcji (mądrze wykorzystane) powodują, że kod jest czytelny, łatwo modyfikowalny, ale ma to też negatywne odzwierciedlenie w wydajności.

Osobiście, gdy mam wybór czytelność, czy szybkośc działania - częściej wybieram to pierwsze.

Wiadomo, że w grach wydajność ma duży priorytet, ale wydaje mi się, że nie zrobisz gry pokroju crysis'a, że aż tak ta wydajność jest ważna.

Pisałem w SFML obiektowo

Pokaż kawałek kodu, ocenimy ;)

Ta gra chcę napisać,jakby była efektem mojego życia to znaczy ma być dopracowana pod praktycznie każdym szczegółem

Obyś za miesiąc nadal miał taki zapał :) Poważnie Ci życzę.

 

Zakładam, że masz małe doświadczenie (biorąc pod uwagę Twoje pytania). W związku z tym, uczysz się. Za miesiąc będziesz lepszym programistą. Za pół roku jeszcze lepszym. Może okazać się po jakimś czasie, że Twój projekt ma kiepską architekturę, czy po prostu stwierdzisz, że teraz byś napisał to inaczej. Być może to spowoduje, że porzucisz projekt i wymyślisz sobie coś innego, aby napisać to od nowa, unikając błędów, które poprzednio popełniłeś.

 

Nie mówię, że to źle.. po prostu każdy następny projekt daje Ci doświadczenie i wiedzę ;)

 

Zapomniałem napisać,że pracuję na linuxie,więc C# chyba odpada.

SKoro chcesz pisać grę wieloplatformową, to zobacz ile platform "obsługuje" unity oraz porównaj to z konkurencją.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zapomniałem napisać,że pracuję na linuxie,więc C# chyba odpada... Widziałem takie silniki graficzne jak AGS,czy Angel 2D... Nadadzą się(znaczy któryś z nich)?

PS: Warto się brać za javę?Słyszałem,że jest dosyć wolna...

PPS: Pisałem w SFML obiektowo

PPPS: Ta gra chcę napisać,jakby była efektem mojego życia to znaczy ma być dopracowana pod praktycznie każdym szczegółem.Do pracy zresztą wziąłem znajomego grafika,która ma mi pomóc.Myślę,że warto wziąć jakiś silnik graficzny,bo to nie będzie kolejny Pacman tylko gra którą będę pisał przez ok.1.5 roku(tak przewiduję)jeśli nie dłużej i naprawdę mam duży projekt(wciąż rozwijany) który mieści się na 20kartkach a4 przy czcionce 10.

Unity wspiera też jave, ale nie wiem czy linux wspiera unity. Z takich duzych silników chyba OpenGL został :hmm:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Określenia łatwy/trudny, oraz Umiem to dobrze/bardzo dobrze są bardzo względne.

Chodziło mi raczej,że umiem wszystko z tego kursu.Jeśli chodzi o język to chyba wezmę javę z tego co słyszałem nie powinienem mieć problemów z przesiadką :) .Tylko jeszcze mam cztery pytania:

-Jakie środowisko wybrać do Javy?

-Czy 4 GB RAM'u na linuxie ubuntu 14.04 wystarczy?Słyszałem,że java jest pamięciożerna :P

-Czy Java potrzebuje oddzielnych silników/bibliotek do tworzenia gier 2D,jeśli tak to jakie mi polecacie oprócz wspomnianego OpenGL?Jeśli nie potrzebuje to warto korzystać z tego co ona oferuje,czy jednak mimo wszystko lepiej ściągnąć jakąś bibliotekę/silnik graficzny do niej?

-Jaką książkę polecacie do nauki Javy?

Dziękuje za pomoc,tak w ogóle :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@Pulpit. CO masz na myśli pisząć, że unity wspiera javę ?

 

Unity "wspiera" linuxa, w taki sposób, że możesz na niego skompilować program - uruchamiany jest na MONO.

 

Nie bardzo wiem też, po co pisałeś o openglu. Chyba temat dotyczy frameworków, a nie niskopoziomowych bibliotek. SKoro autor tematu chce pisać na linuxie, to będzie używał opengl'a - chociaż nie koniecznie bezpośrednio.

 

Chodziło mi raczej,że umiem wszystko z tego kursu.Jeśli chodzi o język to chyba wezmę javę z tego co słyszałem nie powinienem mieć problemów z przesiadką

Zapewne Twoja znajomość c++ jest na tyle duża, że nie będziesz miał problemów z nauką dowolnego języka.

Natomiast, przerobienie tego kursu nie oznacza nauczenie się pisania obiektowo.

 

Ja pisałem w javie dwie gry:

1. 2d - z użyciem silnika slick2d i silnikiem fizycznym jbox2d

2. 3d - z użyciem jMonkeyEngine (on w sobie ma silnik fizyczny jBullet).

 

Jednak do 2d raczej slicka nie polecam. Teraz jakbym miał pisać jakąś grę, to wybrałbym unity ;)

Gdyby unity nie istniało, to wybrałbym libgdx.

JMonkey do 3d jest ok.

 

 

Nie wiem skąd masz takie informacje o javie ;) że pamięciożerna, wolna :) Z nikąd się to nie wzieło, ale bez przesady.

Ja na netbooku z 1gb ramu, robiłem tą grę 2d w slicku. Sama gra zajmowała łacznie 100mb w ramie (łącznie w sensie serwer+klient, bo to online było). System zżerał jakieś 120mb, a Netbeans zżerał to co zostało.

Nie było to zbyt przyjemne doświadczenie, ten 1gb to takie minimum, żeby cokolwiek klepać w netbeansie. Ale da się ;) więc z 4gb wystarczy spokojnie.

W uproszczeniu można przyjąć, że java bierze sobie tyle ramu ile dostanie, więc im więcej masz ramu, tym więcej sobie weźmie (dzięki czemu gc nie będzie musiał sprzątać zbyt często).

 

Podejrzewam, że NetBeans mógłby zajmować mniej ramu, gdyby jeggo twórcom na tym zależało.

Jednak teraz pamięci są tanie, więc raczej niewiele wagi się przywiązuje do zużycia ramu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobrym sposobem na ogarnięcie dobrze OOP są wzorce projektowe. Po przerobieniu ich i przećwiczeniu zastowosań, można stwierdzić, że sie umie pisac obiektowo.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobrym sposobem na ogarnięcie dobrze OOP są wzorce projektowe. Po przerobieniu ich i przećwiczeniu zastowosań, można stwierdzić, że sie umie pisac obiektowo.

Po nauczeniu się rzeczy z tamtego kursy,brałem dodatkowe rzeczy stąd.Więc myślę że umiem obiektówkę.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jaką polecacie książkę do Javy,jakie środowisko?Znalazłem Geany na linux,ale może są jakieś lepsze

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Netbeans.

Skoro znasz c++, to być może wystarczy jak sobie w necie coś poczytasz.

Ja mam thinking in java oraz java 2 techniki zaawansowane.

Obie są dobre. Druga porusza ciekawsze tematy (ale ja mam w wersji 1.5).

 

Nie chcę mi się na siłę Cię uświadamiać.

Wiedza, co to jest klasa, co to obiekt, co to interfejs, co to dziedziczenie, to nie jest umiejętność programowania obiektowego.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki za pomoc :).Znalazłem sobie już fajny poradnik w Internecie i zaczynam naukę

PS: Dzięki za polecenie Netbeans :).Jest dużo lepszy od Geany :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...