O językach programowania 26172 38

O temacie

Autor Adanos

Zaczęty 3.05.2010 roku

Wyświetleń 26172

Odpowiedzi 38

TheWitcher

TheWitcher

Użytkownicy
posty49
Propsy24
  • Użytkownicy

TheWitcher

O językach programowania
#20 2011-02-01, 16:41(Ostatnia zmiana: 2011-02-01, 16:42)

 Aż wstyd ją dzisiaj pokazać...


Pokaż ją!
 
Warny co chwile...

majaczek

majaczek

DreamVader
The Dreamer
posty405
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer

majaczek
DreamVader

O językach programowania
#21 2011-02-02, 16:29(Ostatnia zmiana: 2011-02-02, 16:42)
hmm to ja coś napiszę

pierwszy język Basic 3.0 (nie qbasic nie Vbasic, i nie blitz) bo to było dostępne na moim amstradzie (8bitowiec) bez ładowania dyskietek/taśm (komputer jest z epoki gdy dysków jeszcze nie było, mój model to jeden z pierwszych z wbudowaną stacją dyskietek)
miałem wtedy 7 lat (SIC!), pisałem wtedy głównie pod api do trybu graficzno-tekstowego i dźwięku a także typowe programy konsolowe typu "wprowadz tekst a ja coś z tym zrobię"... też mi się podobało gdy dowiedziałem się co to pętla (zwykłe ify umiałem prawie od początku)

później próbowałem coś pisać pod pc-ta i trafiło oczywiście na basic-i (quick basic pod dosa, Visual basic na okienka, blitz basic do gier)
potem spróbowałem czegoś trudniejszego - C i assembler
program na 32KB? mój po skompilowaniu miał 13 bajtów i zapełniał cały ekran mrugającymi śmieszkami na niebieskim tle, a potem czekał na nacisniecie klawisza i kończył. dziś trudno napisać naprawdę chudy program, gdyż standardowy nagłówek exe to kilkaset kilobajtów, a większość kompilatorów ma swoje biblioteki które upiera się wcisnąć do każdego programu.
napisałem też grę pod C z wstawkami w assemblerze i wszystkie operacje wejścia wyjścia (prócz rezerwacji pamięci) były jako wstawki

nauczyłem się C++ i twierdzę że to dość pożądny język programowania - głównie z nim siędzę dziś

miałem przygodne spotkanie z delphi i pascalem ale jakoś za nimi nie przepadałem

trafiło mnie też trochę na języki skryptowe... PYTHON jest fajny i można w nim zrobić prawie wszystko
tcl jest fajny do prostych programów typu kalkulator, ma rozbudowane zarządzanie stringami... tk to odmiana tcl-a z interfejsem graficznym - bardzo dobry do pisania prostych programów z gui

w PHP coś próbowałem też pisać

obecnie mój największy SKOŃCZONY projekt to eksplorator labiryntu wielowymiarowego, napisany w c++ pod bibliotekę allegro (szukajcie allegro.cc nie allegro.pl :D  )
zrobiłem też nieukończoną platformówkę w c++, o ukończonej platformówce w BlitzBasicu nie wspomnę, bo BlitzBasic to język dla kretynów (kretyn będzie umiał w nim napisać niejeden program, zaawansowany programista nie spojrzy na niego bo nie można korzystać z żadnych niestandardowych bibliotek tzn. ma się tylko jedną dostępną i żadnej innej się nie da)
blitz porzucił blitzbasic i zrobił coś co się nazywa blitzplus, co skladnią bardziej przypomina język c, ale BB ma tyle dobrego że wersja testowa nie ma limtu czasowego (mogę komuś upchnąć plik), wersja testowa pozwala uruchamiać programy bezpośrednio z kodu, nie pozwala zrobić exe

z popularnych języków nie próbowałem jeszcze javy, Lua, i C#

EDIT: da się napisać okienkowy program poniżej 32kb ale trzeba pisać w assemblerze, funkcje biblioteczne wywoływać INVOKE'm żeby korzystać wyłącznie z bibliotek dynamicznych, i oczywiście trzeba zastosować skróconą formę nagłówka pliku EXE

co do staroci to mój amstrad miał aż 128kb pamięci... czemu aż? bo procek potrafił zaadresować do 64kb pamieći i potrzebny był bank-switcher żeby obsłużyć więcej. prawie każda gra zajmowała mniej niż 32 kb pamięci jeśli nie liczyć bufora obrazu który miał 16kb, a większość większych gier ładowała się w porcjach. moje wybryki w BASICU skończyły się marnie bo basic był interpretowany i trudno było zrobić grę w trybie znakowym żeby się nie zacinała, nie wspomnę że rysowanie loga w postaci tęczowego jabłka zajmowało programowi w basicu 16 sekund (za to zmieninie palety kolorów pozwalało szybko wykonać ciekawą animację na tym jabłku)... ponieważ nie miałem kompilatora pod amstrada wątpie że jeszcze pod amstrada coś napiszę, poza tym zje*ała mi się stacja dyskietek a amstrad korzysta z 3 calowych (nie 3.5 i nie 5.25 cala)
 

majaczek

majaczek

DreamVader
The Dreamer
posty405
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
wiem że to mały offtop, ale poruszono kwestie bardzo małych programów, więc chcę pokazać próbkę (nie, niestety nie ja zrobiłem te dema)
program < 4kb - muzyczka z odtwarzaczem
program < 64kb - demo video Z ELEMENTAMI 3d! (ma też muzykę w tle)

obydwa programy działają pod windows 7 64-bit poprawnie, co oznacza że nie są 16bitowe oraz że są przenośne między windowsami - więc są dobrym przykładem
 

Adanos

Adanos

Administrator
Szara eminencja
posty5223
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

O językach programowania
#23 2011-02-06, 18:25(Ostatnia zmiana: 2011-02-06, 18:26)
A ile u ciebie zżera pamięci każdy z tych programów? Primitive.exe wykorzystuje u mnie ~30 MB pamięci. Pisząc to:
Cytuj
Czy wyobrażasz sobie dzisiaj programowanie z użyciem 32 KB pamięci?
miałem na myśli programowanie, mając jedynie dostępne 32 KB pamięci. Nie chodziło mi tylko o rozmiar programu, ale też o wykorzystanie pamięci podczas tworzenia, jak i uruchamiania programów.

majaczek

majaczek

DreamVader
The Dreamer
posty405
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
rozumiem... ale trudno jest coś takiego zrobić POD WINDOWSEM, gdyż system nam wymaga dużo zasobów na samo działanie
to demo z muzyką chyba zajmuje mniej niż 32kb pamięci, aleto dlatego żeniewiele robi

za to pisanie pod 32kb pamięci dla programu (zakładając żę nie wliczamy w te 32KB tych 16kb na bufor ekranu i 16KB na system, mając łącznie 64kb na kompa) jest w miare proste jeśli się ma lekki system (coś lżejszego od dosa), no ale wtedy czegoś takiego nie uruchomimy na PC bez emulatora.

słyszałem jednak że ktoś w 64 kb programu exe wcisnął nie tylko swoje demo ale także emulator na którym je odpala (co oznacza że samo demo było naprawdę malutkie)

najprostszy sposób na obejście bariery kilkudziesięciu kilobajtów to podzielenie programu i danych na części - nie wszystkie będą załadowane na raz. oczywiście nie można zbytnio marzyć o grafice lepszej niż na CGA. dlatego współczesna demoscena skupia się głównie na wielkości programu anie naużytej pamięci (każdy współczesny komputer ma conajmniej 64MB dla takiego programu, które "nic nie kosztują" bo są przypisane tylko na czas działania programu)

warto też wspomnieć o technikach optymalizacji jakich się dokonywało kiedyś - a dziś prawienikt z tego nie korzysta. np. pisanie bezpośrednio do pamięci karty graficznej, odświeżanie-w-miejscu tzn. rysowanie tylko tych pikseli które się zmieniły jako że stare już są w pamięci, używanie NOPów do upłynięcia czasu (kiedyś procki były za wolne żeby dokładnie odmiezać czas programem), lub właśnie podzielenie programu na moduły które nie są załadowane jednocześnie

proszę zauważyć że stary Game-Boy chodził na zmodyfikowanym Z80 (zawierał zintegrowany niezły chip graficzny) więc takie rzeczy  robiło się jeszczenie tak dawno

tylko pisząc pod komputery z 64kb pamięci trzeba zapomnieć o interpreterach -trzeba wszystko skompilować i dopilnować żeby kompilator nie dowalił jakichś śmieci (o zgrozo spojrzeć na współczesne kompilatory microsoftu !)

jedynym problemem który jest poważny w pisaniu takich malusich programów to to że dzisiaj na pewne rzeczy już się nie zwraca uwagi. dlatego człowiekowi "z dzisiaj" trudno sobie takie rzeczy wyobrazić.

wyszło na 8bitowce mnóstwo dobrych gier, niektóre nawet z udawanym 3d (izometria)

chociaż można spotkać gry pisane pod 8086 które chodzą pod starym dosem i zajmują kilkadziesiąt kilo pamięci - a tonie tak dawne czasy

PS: ale się rozpisałem !
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
https://www.youtube.com/watch?v=XHosLhPEN3k
 

majaczek

majaczek

DreamVader
The Dreamer
posty405
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
https://www.youtube.com/watch?v=XHosLhPEN3k


GR8 VID-0
 

Skajlan

Skajlan

Użytkownicy
posty38
Propsy3
Profesjabrak
  • Użytkownicy
O, miałem pisać własny temat, ale znalazłem coś takiego.
Jeśli o mnie chodzi, to od czasów gimnazjum siłuje się z programowaniem. Teraz w technikum opanowałem "świetnie" HTML, C++, PHP (jaki to łatwy język jest :D ), i średnio Javę i JQuery. Tylko, że ja jakoś nigdy nie planowałem robić stron internetowych. Poza samym pisaniem skryptów, co mnie bardzo rajcuje, muszę znaleźć jakąś głupią grafikę na tło, czy odpowiedni kolor tekstu.
Już w czasach przed technikum informatycznych czytałem różne porady i zdecydowałem się na zachwalaną książkę "Symfonia C++". Nie będę się różnił od was, gdzieś wyczytałem, że to język podobny do języka Gothica :D Jakoś mi tak ciężko szło, wtedy nie znałem jeszcze niczego, do tego, przepisywałem skrypty znak w znak z książki, ale one były jakoś "nieaktualne" i mi nie działały. Miałem zaparcie, potrafiłem godzinami poprawiać je, żeby kompilator je przetrawił, ale ile można. Więc dałem sobie spokój. W końcu, mieli mnie uczyć tego języka w technikum.
No i teraz sobie jestem w 3 klasie technikum, ale niestety, od mojego rocznika wycofano programowanie, pierdziele się w domu z głupimi bazami danych (no dobra, zrobiłem bazę danych dla biblioteki szkolnej na zlecenie dyrektora, ale to nie znaczy, że to lubię :) ), albo robię projekty związane z tworzeniem stron internetowych, ale jakoś nie mam chęci dłubać tego samodzielnie. Cały czas siedzi we mnie chęć na C++, C# czy inne Pascale (szczerze, to przez te wszystkie lata myślałem, że oznaczenie C# oznacza Pascala, a w tym temacie odkryłem coś innego :) ). No i niedawno wróciłem do C++, znalazłem sobie przed tygodniem chyba popularny kurs (http://cpp0x.pl/kursy/Kurs-C++/1) i kończę poziom 2. Pytanie tylko, czy dobrze robię. Czy C++ na klatę to dobry pomysł, czy łatwiej mi będzie, gdy nauczę się najpierw np. Pascala, który jest jego ojcem? Przyznam się, że trochę się rozleniwiłem (mam strasznie chu***e technikum, najgorsza szkoła w mieście, ale tylko tu był mój kierunek. Opadł we mnie trochę zapał po zderzenie z Polską rzeczywistością) i coraz ciężej przysiadam do coraz trudniejszych zadań z C++ . Może gdybym miał "coś", np. grę do modowania w tym języku i widziałem efekty to byłoby lepiej, ale chyba takiej nie znam, wszystko jest w tych odnogach C++ typu Lua.
Jakieś rady?

Dodam jeszcze, że w międzyczasie "tworzę" w GIMPie, 3dsmaxie czy Blenderze. W sumie, to bardzo mi się to podoba, zarówno grafika 2D jak i 3D. Tylko tutaj przeszkodą jest to, że ja zawsze byłe straszną kaleką w sprawach...wyglądu? Nigdy nie umiałem niczego narysować (moje domki i pieski zawsze wyglądały jak rysunki 2-letnich dzieci. Nadal wyglądają.) i to samo przeniosło się na grafikę 2D/3D. Taki mój ciężki los...
#(Dostanę tytuł kopacza roku? :D )
 

Adanos

Adanos

Administrator
Szara eminencja
posty5223
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Czy C++ na klatę to dobry pomysł, czy łatwiej mi będzie, gdy nauczę się najpierw np. Pascala, który jest jego ojcem?
1. Pascal nie jest ojcem C++.
2. Pascal jest praktycznie nieużywany poza szkołami.
3. Opanuj podstawy jednego języka. Potem możesz się uczyć dwóch na zmianę.

Masz już określone po co chciałbyś się uczyć danego języka? W sensie jakie programy chciałbyś robić.

Skajlan

Skajlan

Użytkownicy
posty38
Propsy3
Profesjabrak
  • Użytkownicy
Ad.1 I tak można liczyć na internetowe mądrości.
Ad.3 Obawiam się, że jedyne czego jestem pewny, to to, że pisanie skryptów bardzo mnie interesuje. Co mam do wyboru? Gry, albo Programy. Do tej pory jedynie modowałem gry, poza tym jak się nie dostanę do jakiegoś lepszego studia, to można wydać swojego indyka, przez kickstarter czy steam greenlight. Ta droga jest chyba pewniejsza, więc powiedzmy, że gry.
 


Adanos

Adanos

Administrator
Szara eminencja
posty5223
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ad.3 Obawiam się, że jedyne czego jestem pewny, to to, że pisanie skryptów bardzo mnie interesuje. Co mam do wyboru? Gry, albo Programy. Do tej pory jedynie modowałem gry, poza tym jak się nie dostanę do jakiegoś lepszego studia, to można wydać swojego indyka, przez kickstarter czy steam greenlight. Ta droga jest chyba pewniejsza, więc powiedzmy, że gry.
To teraz skonkretyzuj o jakie gry chodzi. ;) Gry na PC, Androida, iOSa, fb? Chcesz napisać własny silnik czy użyć gotowego jak Unity 3D, CryEngine czy UE4?

Skajlan

Skajlan

Użytkownicy
posty38
Propsy3
Profesjabrak
  • Użytkownicy
Przez programowanie silników rozumiesz np. programowanie światła, czy jakichś torów lotu pocisku, a przez rozgrywki to czego używa się w grach czyli np. zakładanie/zdejmowanie broni czy trening umiejętności.
Tak łopatologicznie sobie tłumacząc :)
To i to by mnie ciekawiło, ale pewnie do programowania silników trzeba mieć łeb jak sklep. Ale ja jestem uparty.
Only PC. Wiem wiem, rynek gier na smartfony itd. jest bardziej przyszłościowy, rozwija się w ogromnym tempie. Ale to jakoś nie dla mnie, nigdy nic z tym nie robiłem, nie mam żadnego doświadczenia.
(Dzięki za taką szybko zorganizowaną grupę wsparcia! :D )
 

inż. Avallach

inż. Avallach

Administrator
posty7706
Propsy5229
NagrodyV
ProfesjaProgramista
  • Administrator
Programowanie silnika to na przykład programowanie tego jak wyświetlana jest scena (jak dane o modelach 3d są ładowane, przetwarzane, optymalizowane, renderowane itd), jak działają animacje, fizyka itd. Do tego trzeba języka w którym pisze się kod szybki (zwykle kosztem wygody i dodatkowej pracy programisty).

Rozgrywka to np postać gracza, sterowanie nią, ekwipunek itd. Do tego zwykle używa się o wiele wygodniejszych i bardziej przyjaznych języków - kod w nich tworzony jest nieco wolniejszy, ale w takich zastosowaniach nie robi to żadnej różnicy (bo nadal jest wystarczająco szybki).

Skajlan

Skajlan

Użytkownicy
posty38
Propsy3
Profesjabrak
  • Użytkownicy
Czyli tak jak ja to rozumiem. Napewno wolałbym zacząć od sterowania rozgrywką, niż tworzenia silnika. Zawsze można użyć gotowego silnika, rozgrywki nie da się pobrać :D 
 

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1486
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Jak dobrze, że na tym forum jest Adanos i Avallach, którzy oszczędzili mi pisania. Ja od siebie dodam, że jeśli znałbyś C++ "świetnie" to byś stwierdził, że nie ma co tego kursu czytać, bo nawet poziom X jest prosty. Ja szybko przejrzałem i stwierdziłem, że mógłbym poczytać co mają do powiedzenia o wskaźnikach na funkcje, bo ten ficzer jest strasznie problematyczny szczególnie przy metodach, oraz o wyrażeniach lambda bo póki co używałem ich tylko w C#. A uważam się za osobę która umie całkiem sprawnie pisać w C++, ale nadal jej do poziomu w którym będzie mogła powiedzieć, że jest dobra z tego języka. Krążący żart o C++'sie mówi, że nikt nie umie programować dobrze w C++, a ci co twierdzą inaczej kłamią ;).  Ale nie martw się. Ja pierwszy kontakt z programowaniem miałem dopiero na pierwszym roku licencjatu, więc się wyskillujesz jeszcze. Trochę ci nawet zazdroszczę tego, że już coś umiesz w momencie w którym ja nie umiałem jeszcze hello worda napisać :)
 
Popisuje się ciągle menda jedna...

Skajlan

Skajlan

Użytkownicy
posty38
Propsy3
Profesjabrak
  • Użytkownicy
Ta, z programowaniem jest jak z filozofią. Nie da się wiedzieć wszystkie o filozofii, prawda? :D
Podsumowując. Skoro chcę nauczyć się tworzenia gier, ale nie robienia silnika od zera, tylko kreowania rozgrywki, to powinienem przerzucić się na C#. Mogę to zrobić z rozpędu, nie będę miał problemów ze zrozumieniem, czy powinienem się nauczyć czegoś wcześniej?
 

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1486
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Jeśli umiesz programować już obiektowo w C++ lub Javie, to przesiadka na C# jest bezproblemowa.
 
Popisuje się ciągle menda jedna...

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1486
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
Ktoś może programował już w języku Rust?
 
Popisuje się ciągle menda jedna...


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry