Nowe posty

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

prezes.cc

  • Gość
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?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3047
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
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
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

prezes.cc

  • Gość
Dzięki za wyjaśnienie - dużo nauki przede mną a ja dąże do perfekcji ;) https://www.youtube.com/watch?v=rbasThWVb-c

Offline Paweł Kraszewski

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

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

prezes.cc

  • Gość
Cytuj
Tyle, że facet zna Pythona, bibliotekę standardową i curses-a na pamięć.

A to źle?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3047
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
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
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 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 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 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 )
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 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.
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

prezes.cc

  • Gość
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 »

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • 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: 2757
  • 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 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

prezes.cc

  • Gość
Cytuj
Z tym  Unreal Engine to mnie zaskoczyles, bo wydawalo mi sie ze obsluguje tylko C lub C++

Wiem ;) dlatego ucze się też C++