Nowe posty

Autor Wątek: [Python] Jak długo uczyliście się Pythona - pytanie dla zainteresowanych  (Przeczytany 918 razy)

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • Zobacz profil
Pytanie dla zainteresowanych tematem. Jak długo uczyliście się Pythona, żeby w miare go ogarnąć. Do tej pory przerobiłem zmienne, operatory, instrukcje, pętle, wyjątki. Na jakim jestem etapie, żeby napisać własną grę typu szubienica lub kółko i krzyżyk?
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2538
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Jak długo uczyliście się Pythona, żeby w miare go ogarnąć.
[...]
Na jakim jestem etapie, żeby napisać własną grę typu szubienica lub kółko i krzyżyk?

Z całym szacunkiem, pytanie bez sensu. Znajomość języka stanowi może z 1% potrzebnej wiedzy. Następne 1% to wiedza zależna od konkretnego OS-a (jak czytać mysz/klawiaturę, jak wyświetlać grafikę) - często sprowadzająca się do znajomości jakiegoś toolkita typu GTK, WxWidgets czy inne SDL i znalezienia bindingów do danego języka. Ostatnie 98% to metodologie, algorytmy oraz struktury danych - wiedza ogólna, niezależna od języka i systemu.

Jak to działa? W ogóle nie znam języka D, poza tym, że wiem, że jest podobny trochę do C++, trochę do Go. Graficzne kółko i krzyżyk w GTK (zaznaczam - nie pisałem też nic w GTK, 99% czasu piszę oprogramowanie sieciowo/serwerowo/daemonowe, czasami z jakimś CLI albo interfejsem przez WWW) - pewnie bym napisał w jakieś 2 dni... Po których absolutnie nie uważałbym się za choć trochę ogarniętego w D. Podobny czas zakładam dla większości języków imperatywnych, których nie znam (Fortran, Ada, Crystal i pierdylion innych). Powiedzmy, jak miałbym to zrobić w jakiejś egzotyce - np. Haskellu czy Prologu - to zajęłoby mi to 4-5 dni, może tydzień - na zmianę sposobu myślenia i "widzenia" algorytmów.

Także znajomość języka (gramatyka, składnia, typy) to ogólnie rzecz biorąc najmniejszy problem.
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • Zobacz profil
Dzięki za wyjaśnienie - dużo nauki przede mną a ja dąże do perfekcji ;) https://www.youtube.com/watch?v=rbasThWVb-c
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2538
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
https://www.youtube.com/watch?v=rbasThWVb-c

Tyle, że facet zna Pythona, bibliotekę standardową i curses-a na pamięć.
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • Zobacz profil
Cytuj
Tyle, że facet zna Pythona, bibliotekę standardową i curses-a na pamięć.

A to źle?
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2538
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Absolutnie nie, ale tylko wtedy da się zrobić węża w 10 minut :)


To nie tak, że jakoś mega kozaczę z wiedzą. To tak, jak z językami obcymi. Są tysiące osób, które znają perfekcyjnie wszystkie czasy, słówka i wyjątki w angielskim, a nie potrafiłyby kupić bułki w spożywczym w centrum Londynu. I są miliony osób, które mówią na poziomie "Kali mieć, Kali być", mimo tego swobodnie żyją i się rozwijają w angielskojęzycznym środowisku.

« Ostatnia zmiana: 2019-05-08, 12:05:43 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2280
  • 1709
    • Zobacz profil
Z ksiazki pod  tytulem"ja sie nie znam, ale sie wypowiem".
Poniewaz kiedys troche probowalem sie uczyc.

Python jest dość topornym jezykiem do gier, poniewaz nie wiele w nim samym mozna bylo kiedys zrobic.
Byc moze wynika to z jego przeznaczenia.
Jeśli przejrzysz kody zrodlowe ( lub sam kod gotowy) popularnych gier, to moze zauwazysz ze python jest bardziej do ustawien gier, konfiguracji i korzystania z polaczen internetowych,
poniewaz latwo mozna konfigurowac pliki bez koniecznosci ponownej kompilacji kodu.
Jego mozliwosci wzrastaly dopiero z czasem kiedy zaczeto dodawac
- "programowanie obiektowe",
-  nowe biblioteki / wtyczki pozwalajace pisac w innych jezykach zeby wykorzystac ich mozliwosci  https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages
-  nowe biblioteki / wtyczki pozwalajace / moduly / silniki ubugacajace mozliwosci pythona  https://wiki.python.org/moin/UsefulModules
I jak sie dobrze przypatrzysz, to dla gier znajdziesz tam PyGame
( po czytaj o PyGame troche, to jest troche jak proteza, mimo ze costam mozna w nim zrobic )

Dla poczatkujacych,
polecam znalesc fora, nawet jesli beda po angielsku i w nich poradniki jak uczyc sie danego jezyka.
Podstawa nauki powinna byc przedewszystkich dokumentacja jezyka programowania, ale z tym tu bywa rożnie.
- Po pierwsze jest cos takiego jak podstwawy w danym jezyku.
Czyli wspomniane wczesniej " zmienne, operatory, instrukcje, pętle, wyjątki ... "
- Po drugie jak korzystać z danej biblioteki, czy języka.
Bo sa "sprytni" ktorzy zapamietaja ze tak sie wyraze wszystkie opcje danej biblioteki.
A sa tacy ktorzy potrafia efektywnie wyszukiwac tego czego potrzebuja w danej chwili lub podpowiedzi.
( pomijajac ze IDE czasami tez potrafi uzupelnic poczatkej wpisywanej nazwy )
- Nie wiem czy warto tez wspomniec o " gramatyce " , jezeli mozna to tak nazwac.
( lub bardziej chodzi o skladnie / budowe skryptow )
Jedni uzywaja bardziej " jezyka obiektowego " , inni bardziej typu " listy zadan " , albo uzywaja skrótów.
Na tym sie nie znam wcale, moze to kwestia przyzwyczajenia, moze kwestia sprawnosci pisania, a moze cos innego ...
Nie wiem, jak ktos zobaczy, nauczy sie, niech sam zdecyduje lub skorzysta z rad bardziej doswiadczonych uzytkownikow, jak jest lepiej pisac.
« Ostatnia zmiana: 2019-05-08, 14:26:13 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2280
  • 1709
    • Zobacz profil
Moze jednak odrobine wyjasnie ...
PyGame jest gotowym silnikiem 3D https://pl.wikipedia.org/wiki/Pygame
i jak tam doczytasz https://pl.wikipedia.org/wiki/Simple_DirectMedia_Layer
dlatego nazwałem to protezą.
Czyli musisz wybrać czy chcesz korzystać z gotowych silników gier, czy chcesz tworzyć własne silniki gier.
Z czego to drugie nie zawsze jest proste, ponieważ często są tam wykorzystane rożne techniki tworzenia np. światła i matematyka. ( macierze, wzory )
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2280
  • 1709
    • Zobacz profil
Z nazwaniem tego gotowym silnikiem chyba przesadziłem.
Znalazlem cos takiego o programowaniu  w pygame https://www.academia.edu/4902929/Beginning_Game_Development_with_Python_and_Pygame
I cos takiego o fizyce w pygame http://www.petercollingridge.co.uk/tutorials/pygame-physics-simulation/
Cos takiego o matematyce https://www.youtube.com/watch?v=GpsKrAipXm8
I cos takiego o swietle https://gamedev.stackexchange.com/questions/59481/adding-lighting-pygame
https://stackoverflow.com/questions/31038285/python-pygame-game-lighting
Żałuje ze nie moge znalesc filmiku o rozwijaniu sie gier,
jak ludzie byli błyskotliwi tworząc np. wzory tak aby efekt światła był bardzo realistyczny przy jak najmniejszej liczbie obliczeń.

Mam nadzieje ze sie przyda.
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • Zobacz profil
Cytuj
Mam nadzieje ze sie przyda.

Przyda się, ale w późniejszym czasie, bo z angielskim to u mnie mizernie. Przeczytałem troche, coś zrozumiałem, a narazie to dzięki za Wasz czas i poświęcenie. Czeka mnie dużo nauki. Widziałem tworzenie gry w PyGame i jest proste. Będę również korzystał z Unreal Engine, bo to darmówka. Także jeszcze raz dzięki.
« Ostatnia zmiana: 2019-05-10, 10:14:52 wysłana przez Zdzisław Knop »
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline mackeire

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 221
    • Zobacz profil
Co prawda nie pyton ale w javascripcie musiałem coś sobie kiedyś napisać to powiem , że najważniejszy język w kodowaniu to język angielski :)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2280
  • 1709
    • Zobacz profil
Od czegos te translatory jezykow obcych sa, a czasami tekst nawet przeczytają.
Z tym  Unreal Engine to mnie zaskoczyles, bo wydawalo mi sie ze obsluguje tylko C lub C++
https://docs.unrealengine.com/en-US/Programming/QuickStart
a jednak przez wtyczke, czyli przez cos w rodzaju protezy da sie takze uzywac Pythona

Cytat: translator
Python VM stara się zapewnić łatwy dostęp do wszystkich wewnętrznych urządzeń api + UE4 i ich odbicia systemu.
... Nie jest to sposób na uniknięcie  " blueprints " lub c ++, ale jako dobry towarzysz dla nich (choć zmniejszenie ilości c ++ wymaganej do kodowania gry może być ciekawą rzeczą;). Jeśli twój program rozwoju jest już oparty na pythonie (Maya, Blender, ...), wtyczka ta mogłaby z łatwością pomóc w zintegrowaniu w unreal.
https://github.com/20tab/UnrealEnginePython

lub tez https://docs.unrealengine.com/en-us/Editor/ScriptingAndAutomation/Python
« Ostatnia zmiana: 2019-05-10, 13:30:04 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • Zobacz profil
Cytuj
Z tym  Unreal Engine to mnie zaskoczyles, bo wydawalo mi sie ze obsluguje tylko C lub C++

Wiem ;) dlatego ucze się też C++
Windows for playing - Linux for programming - Hobby: Haiku OS