Tworzenie API

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 :)

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.

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.

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.

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.

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 :)

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).

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.

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)

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ę.

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.

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 ;)

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 ;)

0

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

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