Tworzenie API

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

Co powinienem wiedzieć o tworzeniu API ? Trzeba zrobić coś specjalnego czy tylko własnego jara ? Trzeba będzie jakoś ukrywać kod czy nie (pytam takm na wszelki wypadek ) ? Potrzebne mi to by zrobić własny silnik graficzny :) bo to będzie API.

PS: Wiem że pytanie trochę głupie :)

panryz
znajdę i urwę od internetu
DibbyDum
"własny silnik graficzny", "własną dystrybucję Linuxa" co będzie następne "własny język programowania"? "jak się tworzy złośliwe oprogramowanie"?
panryz
Nie pisz tego głośno
katelx
@DibbyDum wlasny jezyk programowania juz byl. tak samo ja wlasny shell w swingu... zastanawiam sie czemu jeszcze nie wpadl na zalozenie wlasnego forum o takich nietuzinkowych zagadnieniach
niezdecydowany
niezdecydowany
@katelx bo tu ma przynajmniej jakaś oglądalność, taki wiesz - pudelek.pl trochę :D
katelx
@niezdecydowany juz mu gdzies dawalam linka 'jak byc slawnym', ale chyba ma alergie na klikanie...
niezdecydowany
niezdecydowany
ma też alergię na pana Tadeusza :D ale to swoją drogą .
panryz
i na słownik języka polskiego też ma alergię
katelx
taa, no ale jak ktos robi tyle rzeczy na raz to sie nie dziwie ze moze niektore dziedziny zaniedbac
panryz
owszem, ale nie podstawy
katelx
jak do tej pory to ciezko mi zauwazyc aby opanowal podstawy w czymkolwiek (ok, nauczyl sie zakladac tematy)
panryz
też nie bardzo ;]
katelx
ilosc, nie jakosc! :)
panryz
o to ja chyba jakiś zacofany jestem. Ale te trendy się zmieniają
niezdecydowany
niezdecydowany
"Ilość jest jakością samą w sobie" Józef S. :D:D:D:D:D
katelx
nawet w microsofcie sa teamy gdzie sie mierzy wydajnosc na podstawie LoC ;)
katelx
@niezdecydowany jak zwykle niszczysz
panryz
@katelx ale Xix nie jest microsoftem. On na razie jest tylko mikro...
katelx
@panryz :D szkoda ze nie ma + na komentarze
panryz
też czasem żałuję że nie ma + na komenty. Niektóre są dużo wartościowsze niż posty :D
fourfour
Ech, ta opcja blokowania widoczności wątków/postów założonych przez wskazanego użytkownika jednak by się przydała...
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 6 godzin
  • Postów:8422
0

Co powinienem wiedzieć o tworzeniu API ? Trzeba zrobić coś specjalnego czy tylko własnego jara ? Trzeba będzie jakoś ukrywać kod czy nie (pytam takm na wszelki wypadek ) ?

API nie zależy od żadnych Jarów. API to sposób w jaki programy się komunikują z twoją biblioteką. Czyli funkcje są, jakie parametry do funkcji itp. Zaprojektować API możesz wstępnie na kartce papieru.

(Zaraz możemy się spodziewać wątków: "nie wiem w jaki sposób zaprojektować API na post-itach")

Potrzebne mi to by zrobić własny silnik graficzny :) bo to będzie API.

do silnika graficznego prędzej potrzebna ci będzie wiedza o macierzach, wektorach, przekształceniach, geometrii... bez tego choćbyś miał API nic nie zdziałasz.


XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

Chodzi właśnie o to by stworzyć coś co będzie dla innych by oni wywoływali np "crwindow()" i mieli okno. Więc właśnie chodzi o taką bibliotękę dla Java.

edytowany 1x, ostatnio: Xix
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 6 godzin
  • Postów:8422
2

Pisząc HelloWorldy i programy typu

  • podaj pierwszą liczbę... (użytkownik wpisuje: 10)
  • podaj drugą liczbę... (użytkownik wpisuje: 30)
    Podałeś 10 i 30. Suma wynosi 40.

lepiej byś się przyczynił do własnego rozwoju niż porywanie się z motyką na słońce i próby pisania rzeczy, które przerastają cię tysiąc razy. Rozumiem, że to ciekawsze, ale na serio - jak się zaczyna, to można robić HelloWorldy a o bardziej ambitnych rzeczach jedynie czytać. Nie ma w tym nic złego.

edit:
Ambicja okej, ale jak jest poparta wysiłkiem, dyscypliną i cierpliwością. Bo tego widać brak.


edytowany 1x, ostatnio: LukeJL
XI
no bo mam traume po C++ VCL
3

@Xix To jest odpowiedź na wszystkie Twoje tematy właściwie...

Bez urazy, ale wydaje mi się, że podchodzisz do tego od d... strony.

Jeśli będziesz starał się nauczyć programowania (czy czegokolwiek innego) dla sławy czy poklasku, to to jest zła droga. Wypalisz się od razu. A nawet jeśli nie, to i tak słynny prawdopodobnie nie zostaniesz, tylko ci frustracja będzie narastać.
Nie ta kolejność i nie ta motywacja. Zajmujesz się jakimś hobby dlatego, że je lubisz, że daje Ci to satysfakcję. Ewentualne uznanie przyjdzie później, albo i nie - to już jest najmniej istotne.

Dalej. Żeby się czymkolwiek (znowu - nie tylko programowaniem) zająć na poważniej, to trzeba jednak odrobinę wytrwałości, systematyczności i metody. Jak na razie - to się po prostu miotasz, skaczesz z kwiatka na kwiatek (niektóre Twoje pomysły są rozsądne, inne do nikąd Cię nie mogą zaprowadzić), zamęczasz wszystkich chaotycznymi pytaniami, z których i tak nic nie wynika.
Bez urazy, ale zachowujesz się jak dziecko, które bawi się w "Będę programistą!". Tak jak inne bawią się w strażaka, czy policjanta: bierze lizaka zabawkę i macha nim na inne dzieci. Albo w biuro: bierze stertę obojętnie jakich papierów, siada przy stole i z bardzo ważną miną je przerzuca.
Niby nie ma w tym nic złego, tyle że... W gimnazjum wypadałoby już chyba z tego zacząć wyrastać...?
Nie zauważyłeś, że ludzie na tym forum się trochę... z Ciebie śmieją? Smutna prawda, ale dostarczasz tu sporo rozrywki.

Jeśli byś chciał do tego podejść porządnie, to myślę, że wybrałbyś sobie jakiś jeden temat (wszystkiego naraz i tak nie ogarniesz), i jego zaczął się powoli uczyć, od podstaw. Ale trzymaj się go już, nie przeskakuj na inne, póki jako tako go nie ogarniesz. Kupiłbyś sobie jakąś książkę do nauki (taką, która nie wymaga zbyt dużej wiedzy początkowej), i ją zaczął powoli, ale systematycznie przerabiać. Jeśli cię to znudzi czy stracisz do tego serce - odpuść.
Jaki temat na początek? Podaruj sobie wszelkie ASM, języki specjalistyczne takie jak R, programowanie systemów operacyjnych, czy wynajdywanie koła na nowo (np. pisanie bibliotek dublujących funkcjonalność tych, które już są dostępne). To nie ma sensu. Najpierw naucz sie chodzić, potem biegać. Druga rzecz jest taka, że są to zajęcia niszowe, wymagające dużej, bardzo nakierowanej wiedzy i solidnych nakładów pracy. Oczywiście, jeśli ktoś lubi się konkretnie czymś takim zajmować, to czemu nie... Zacząłbym jednak bardziej ogólnie.
Nikt nie robi wszystkiego sam. Życia by na to nie starczyło. A właściwie już jedna biblioteka do obsługi grafiki 3D to raczej jest robota na zespół niż jednego człowieka wydaje mi się. Naprawdę ludzie zazwyczaj korzystają z już dostępnych materiałów.

Musisz też nauczyć się samemu szukać informacji i samodzielnie uczyć. Po co pytasz np. do czego służy R? Od czego jest Wikipedia, albo Google? Zamiast pytać "jaką książkę Javy" pójdź do księgarni, znajdź książkę i zapytaj, czy ta konkretnie jest godna uwagi.

A od czego bym zaczął? Wybierz dowolne: Java, C++, C#, i zacznij się tego powoli uczyć z książki. Są to języki nadające się do stosunkowo ogólne, wiele różnych rzeczy można w nich zrobić. Potem pokombinuj, co chcesz zrobić i jakich bibliotek do tego użyjesz (już dostępnych, nie pisanych od zera, bo się narobisz i nic nie zrobisz!)

Albo, jeśli chcesz zrobić jakąś grę: naucz się Flasha albo HTML5. Jak już się z tym porządnie ogarniesz, to będziesz mógł działać na Newgrounds, albo jak zrobisz coś naprawdę dobrego, to nawet na Armorgames.com. Jak najbardziej są amatorzy hobbyści, którzy z powodzeniem się tym zajmują. Ale: jeśli chcesz pójść w tym kierunku, to musisz wiedzieć, że właśnie tego chcesz. Bo do zrobienia gry przydałby trzeba mieć dobry pomysł i przydałoby się sporo wyobraźni. Jeśli nie umiesz rysować czy komponować muzyki, to będziesz musiał znaleźć kogoś, kto to zrobi za Ciebie. Przypuszczam, że na Newgrounds znajdziesz bez większych problemów, ale pod warunkiem, że projekt będzie wyglądał na poważnie, a nie słomiany zapał. Właściwie to najpierw się naucz, potem zrób wszystko co możesz, a na koniec poproś o załatanie dziur takich jak obrazki. W księgarni i w sieci na pewno znajdziesz jak nauczyć się Flasha i jak podejść do tematu zrobienia gry. Aha, i zacznij od gier 2D, nie 3D.

Wszystko to jednak wymaga wytrwałości, efekty nie przyjdą natychmiast. Naprawdę.

No i oczywiście przydałoby się znać trochę angielski. Możesz uczyć się z książki, ale nie obejdzie się raczej bez czytania dokumentacji, które są po angielsku. Więc jeśli np. wybierzesz Javę, to naprawdę nie powinieneś bronić się przed tutorialami Oracla

Tylko proszę, nie obraź się. Piszę to wszystko na poważnie, nie po to, by Cię poniżyć czy wyśmiać.

Pozdrawiam.

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

@Wybitny-Młot Jasne kupię sobie książkę i myślę że to załata większość moich problemów dotyczących takich głównych rzeczy.
Wybrałem Java. Tylko mam wątpliwości bo kto ma zainstalowaną Javę ?

Śilnik graficzny może mi zająć trochę czasu ale myślę że mgłoby się udać po 20 godzinach myślenia (one już mineły) i nawet jeśli nie od razu to tego nie porzuce bo to 20 godz. Mógłbym użyć LWJGL ale to kolejna książka... I ile mi zejdzie czasu żeby się tego nauczyć...
Gier 2D robić raczej nie będę bo to raczej za proste. Wystarczyłoby zdjęciami poruszać albo coś w tym stylu...

Mogę na początek zrobić prostą grę 2D żeby wam coś pokazać (np LOL też jest grą 2D no nie ? tylko się wydaje przez te wieże) ale potem i tak zrobię grę 3D bo to ma już jakiś sens...

Rzeczywiście nie wiem np jak stworzyć muzykę i dzwięk do gry (moja siostra by mogła ale ona to niestety tylko na pianinie :) ).

Ale właśnie chodzi o to by coś innym pokazać. Rozumiem że może to się zdawać przesadą. Są tacy którzy we mnie nie wierzą i właśnie uznałem że programowanie gier jest moją jedyną nadzieję i uznałem że jak przeczytam tę książkę to w końcu coś zrobie. Ale zanim to się stanie spróbuje zrobić jakąś grę na pokaz. Problemem może być to że rzadko rzeczywiście coś piszę.

Sorry za błędy bo z tym też mam problemy :)

:) Dzięki za rade :)

edytowany 2x, ostatnio: Xix
Zobacz pozostałe 4 komentarze
bogdans
@Xix, korzystaj z FF. FF sygnalizuje (podkreśla na czerwono) błędy ortograficzne.
XI
a tak <ort>ó</ort>ważnie wszystko sprawdziałem :(
XI
gdzie to znajdę ?
panryz
@bogdans poprawiłem, to chyba przez nieuwagę.
MK
Czekam na super-xix-game w 2D. (Nie wiem czy rozumiem, co tam nawypisywałeś o czasie potrzebnym na stworzenie silnika 3D, ale jestem pewien, że z 2D pójdzie przynajmniej 2x szybciej; zatem czas start!)
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 6 godzin
  • Postów:8422
3

Śilnik graficzny może mi zająć trochę czasu ale myślę że mgłoby się udać po 20 godzinach myślenia (one już mineły) i nawet jeśli nie od razu to tego nie porzuce bo to 20 godz. Mógłbym użyć LWJGL ale to kolejna książka... I ile mi zejdzie czasu żeby się tego nauczyć...
Gier 2D robić raczej nie będę bo to raczej za proste. Wystarczyłoby zdjęciami poruszać albo coś w tym stylu...

Powtórzę się.
Ambicja jest rzeczą dobrą, ale pod warunkiem, że jest to ambicja poparta wysiłkiem, dyscypliną i cierpliwością.

Co nie znaczy, że jak jesteś niecierpliwy, to nie możesz czegoś tworzyć. Ale polecałbym bardziej łatwe środowiska, ktore pozwolą ci małym wysiłkiem stworzyć coś co będzie miało pokaźny efekt (np. coś bardziej jak robienie gry w Unity3D), a nie zabieranie się za coś co wymaga mnóóóóstwo czasu(np. własny silnik), a i efekt będzie początkowo albo bardzo skromny, albo w ogóle ci się nie uda tego zrobić.

Ale właśnie chodzi o to by coś innym pokazać. Rozumiem że może to się zdawać przesadą. Są tacy którzy we mnie nie wierzą i właśnie uznałem że programowanie gier jest moją jedyną nadzieję i uznałem że jak przeczytam tę książkę to w końcu coś zrobie. Ale zanim to się stanie spróbuje zrobić jakąś grę na pokaz. Problemem może być to że rzadko rzeczywiście coś piszę.

Żeby "coś innym pokazać" albo zaimponować jakoś ludzie są zdolni poświęcić długie lata. Sportowcy, muzycy, pisarze, naukowcy, artyści - może zdarzają się jakieś samoistne talenty, ale zwykle ludzie żeby osiągnać jakikolwiek poziom i stworzyć coś wielkiego muszą do tego dążyć latami. Czemu w programowaniu miało być inaczej?

I czemu to właśnie w programowaniu chcesz coś osiągać, pokazać innym? Równie dobrze mógłbyś się nauczyć robić modele 3D w jakimś Blenderze i też miałbyś "coś innym pokazać" (jeśli już poruszamy tematykę grafiki 3D)

Rzeczywiście nie wiem np jak stworzyć muzykę i dzwięk do gry (moja siostra by mogła ale ona to niestety tylko na pianinie :)

A potem mógłbyś założyć zespół z siostrą, gdzie ona by grała, a ty byś robił do tego animacje 3D.

Whatever.

Sposobów na zaimponowanie/pokazanie czegoś innym jest od groma. Ale zwykle ludzie zaczynają od czegoś małego i uczą się jakiejś dziedziny, żeby osiągnąć w niej mistrzostwo. Przy czym zwykle tę dziedzinę się odkrywa przez przypadek albo naturalnie, a nie na zasadzie "zrobię coś wielkiego, żeby zaimponować innym" (motywacja dobra jak każda inna, tylko podejście do realizacji złe).


edytowany 2x, ostatnio: LukeJL
XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

@LukeJL I tak bym programował nawet jeśli nie dla sławy ale muszę mieć jakiś cel. Uważam że programowanie jest dobre.
Zależy mi na tym by gra była w Java, bo będę więcej mógł zrobić. No i chcę mieć jak najwięcej możliwości.
Myślałem o własnym silniku gdyż mógłbym mieć problemy z ustawianiem textury nieba i innych tego typu rzeczy.

edytowany 1x, ostatnio: Xix
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 6 godzin
  • Postów:8422
1

Myślałem o własnym silniku gdyż mógłbym mieć problemy z ustawianiem textury nieba i innych tego typu rzeczy.

Nie rozumiem. Nie umiesz ustawić nieba w gotowym silniku, więc chcesz zrobić własny? :O

Nie mogłem znaleźć wczoraj pewnego produktu w markecie, zakładam własny hipermarket.

A teksturę nieba można ustawić w ten sposób, że robi się wielką kulę albo wielki box z odwróconymi ściankami, i oplata się nim świat, jednocześnie aplikując do niego odpowiednią teksturę.
https://en.wikipedia.org/wiki/Skybox_(video_games)


XI
A jak jeszcze nie wiesz jaki ten świat duży bo się cały czas renderuje ? Ale o grafice 3D to jak książkę przeczytam (ma 850 stron więc trochę mi to zajmie)
XI
Zaczynają mi się podobać twoje posty ;p
ML
  • Rejestracja:ponad 19 lat
  • Ostatnio:5 dni
  • Postów:857
1
Xix napisał(a):

Gier 2D robić raczej nie będę bo to raczej za proste. Wystarczyłoby zdjęciami poruszać albo coś w tym stylu...

Padłem :)
Idź może pograj z kolegami w piłkę.

XI
nie gram w piłkę
ShookTea
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
1

No co? Najwyraźniej @Xix jest jednym z tych, co cenią grafikę ponad grywalność.

Jeśli jesteś początkujący, to powinieneś wybierać proste rzeczy. Skoro "2D jest za proste", to powinieneś zacząć właśnie od 2D, zanim będziesz się bawił funkcjami trygonometrycznymi etc.


XI
OK zrobię silnik do gier 2D (I może jakiś program do jego obsługi albo grę na pokaz :) )
LukeJL
w 2D też trzeba się bawić funkcjami trygonometrycznymi.
LukeJL
np. przy ruchu kołowym, jak chcesz coś zrobić co krąży. Albo przy obliczaniu kąta między jednym obiektem a drugim (np. masz wojownika, który musi się obrócić twarzą do wroga - wtedy atan2 przy chodzi z pomocą. Funkcje trygonometryczne przydają się też do symulowania czegoś co się płynnie zmienia. itp.
ShookTea
No, w sumie. Dziękuję.
saviolaa
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
2

@Xix skoro takie sprawy jak gra 2D są dla Ciebie bardzo proste to proszę pokaż nam cokolwiek co sam napisałeś zanim się zabierzesz za własny silnik, API itd co tam sobie jeszcze po drodze nie wymyślisz.

W tej chwili porywasz się z motyką na słońce nie znając w dobrym stopniu żadnego języka wliczając w to język polski, a chcesz napisać "projekt" za który zwykle nie biorą się pojedyncze osoby, tylko całe zespoły ;)

XI
Już zacząłem moje API do gier 2D ale nie pomogliście mi z Iage i Graphics więc czytm książkę i kiedyś to w niej znajdę. Mam pomysł ale jakoś obraz muszę renderować (i tak będę uŻywał LWJGL ale i tak muszę znać Graphics i Image oraz BufferedImage).
0
saviolaa napisał(a):

@Xix skoro takie sprawy jak gra 2D są dla Ciebie bardzo proste to proszę pokaż nam cokolwiek co sam napisałeś zanim się zabierzesz za własny silnik, API itd co tam sobie jeszcze po drodze nie wymyślisz.

W tej chwili porywasz się z motyką na słońce nie znając w dobrym stopniu żadnego języka wliczając w to język polski, a chcesz napisać "projekt" za który zwykle nie biorą się pojedyncze osoby, tylko całe zespoły ;)

Znające dobrze matematyczne podstawy tego co robią i mające spore doświadczenie ;)

XI
mam już moją książkę
SW
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:426
0

Ale wy ciągle uważacie, że to nie jest troll? Jak dla mnie zdradził się już kilka razy.

Zobacz pozostałe 5 komentarzy
ML
Czyja to strona?
XI
Chyba też mam ten zespół (a może to narmalne jak się ma numer 5 w enneagramie) . Kto to Hubot ?
LukeJL
takie klapki były kiedyś. Klapki Hubota. Albo Kubota. Whatever
XI
PS wcale nie troluje :) Wprowadzam szczęście przy okazji rozwiązywania moich problemów :) Jak o coś pytam to naprawdę tego nie wiem :)
panryz
A co jeśli xix i hubot to jedna osoba? Tylko na dodatek autyzmu ma też schizofrenie? I raz jest przemądrzałym dzieciakiem a raz jest pytającym o największe głupoty? Ok, idę wziąć tabletki, bo rano zapomniałem... A lekarz kazał. Ok Kuba idź już zabrać te tabletki.Ok, idę

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.