Czy warto dzielić kod na wiele plików?

0

Cześć!
Od jakiegoś czasu piszę grę w pythonie z wykorzystaniem biblioteki pygame.
Z racji tego, że jest to gra click & point, oparłem się na scenach.
Każda scena to jedna pętla while w której znajduje się element gry np. tekst, zadanie, egzamin, gra zręcznościowa itd.
Wyjście z funkcji/sceny (pętli) jest na dwa sposoby:

  • Po kliknięciu myszką w wybrane pole np. 'Dalej', gra przechodzi do kolejnej funkcji (pętli)
  • Po kliknięciu myszkę w pole 'Cofnij', gra wychodzi z pętli (jest break) i wraca do poprzedniej funkcji
    Przykład:
def start():
   if click dalej_img:
     scena1()
  if click cofnij_img:
     break
def scena1():
   if click dalej_img:
     scena2()
  if click cofnij_img:
     break # <--- i wracam do sceny start()

No i tu pytanie. Mam w takim 1 pliku, bardzo dużo takich funkcji ze scenami a gra zajmuje mi już ponad 8000 wierszy kodu, bo wchodzą do tego zmienne (ponad 500) przechowujące grafiki (małe, duże, jpg, png) oraz dźwięki.
Czy w jakiś sposób wpływa to na ilość procesów wykonywanych rzez procesor? (1 wielki plik)
Czy warto jest dzielić kod na wiele modułów, czy nie ma to żadnego wpływu?

4

Tak, warto. Nie ze względu na wydajność, jak wybrałeś Pythona to i tak wydajność nie będzie rewelacyjna. Po prostu łatwiej się w tym połapać. Mam taką regułę, że 500 linijek kodu to jest absolutny max. Powyżej tego już powinno się to posiekać na kawałki. Jeśli na przykład masz w tym projekcie jakichś przeciwników to kod z nimi związany wsadź do jednego modułu. Jako moduł mam na myśli to, co Python rozumie jako moduł. Jeśli to sensownie się zmieści w jednym pliku to niech tak będzie, jeśli nie to zrób katalog i tam dziel dalej (np. AI przeciwników, rysowanie przeciwników itd.).

Wydajnościowo w przypadku Pythona to będzie gorzej, ale tak jak mówiłem, jeśli w tym piszesz to i tak wydajność nie powinna mieć znaczenia, bo to nie jest priorytetem tego języka.

2

W Pythonie powinieneś napisać kod realizujący mechanikę. Natomiast scenariusz gry odseparuj do zewnętrznego pliku (np. json), zapisz w nim tylko dane.

Dane są lepsze niż kod, bo łatwiej jest je zrozumieć i edytować.

0

Dobrze ale jednak nie zrozumieliśmy się.
Moje pytanie dotyczy wpływu na wydajność programu
To, że powinno się albo jest czytelne, mnie zbytnio nie interesuje :)

*Dzięki!

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