1"""
2[Title/Звание]
3
4 'Agar.io'
5
6[Description/Обрисовка]
7
8 Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.
9
10[Functionalities/Надарености]
11
12 Стартиране
13 Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.
14 Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър
15 Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)
16
17 Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.
18
19 Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.
20 Игра
21 - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.
22 - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.
23 - Когато играч бъде погълнат, той се съживява автоматично
24 - Налично е класиране на играчите според големината им.
25 - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.
26
27 Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.
28
29 Изход
30 - всеки може да напусне играта, когато пожелае
31
32 Край на играта
33 - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва
34
35[Milestones/Възлови точки]
36
37 Клас, управляващ състояние на играта: GameState
38 Класове, които той композира пряко или непряко
39 Клас, управляващ състоянието на играч: Player
40 Клас, управляващ състоянието на храна: Food
41 Клас, управляващ кръгъл обект: Circle
42 Клас, управляващ наредена двойка: Vector
43 Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen
44 Интерфейс, управляващ възел в мрежа: Node
45 Интерфейс, управляващ клиентски възел в мрежа: client
46 Интерфейс, управляващ сървърен възел в мрежа: server
47 Клас, който менажира сървъра на играта: server
48 Клас, който менажира клиент(играч) в играта: client
49
50[Estimate in man-hours/Времеоценка в човекочасове]
51
52 47 часа
53
54[Usage of technologies/Потребление на технологии]
55 Интерфейс - Pygame
56 Комуникация между клиент/сървър - socket.io, pickle,
57 Многонишково програмиране - treading
58"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Никола Георгиев
28.11.2024 19:50ясно
класирането засега съм го замислил да е собственост на игра и съответно пази информация за активните играчи в тази игра, и когато играта приключва и спира да съществува, класирането спира да съществува заедно с нея.
Иначе идеята е много готина и ще си я сложа в списъка с неща които бих добавил след като реализирам версията съдържаща нещата по-горе. :)
|
Виктор Бечев
28.11.2024 18:34Понякога и аз не се разбирам.
Аз малко приех следната точка:
```
- Налично е класиране на играчите според големината им.
```
Сякаш ще има и някакъв persistent scoreboard, от всички игри. Ти никъде не си го намекнал, но аз поради някаква причина си го въобразих. Ако няма да има - коментарът ми отпада.
|
Никола Георгиев
28.11.2024 17:38Не съм сигурен че те разбрах
|
Виктор Бечев
28.11.2024 16:04С теб вече сме обсъждали темата и нямам какво да ти дам като допълнителна обратна връзка.
Единственото, което не съм сигурен, че сме засягали е това дали ще има някаква форма на persistency по отношение на класацията по точки. Смятам, че би било хубаво, да е така, а не би следвало да е безкрайно голяма инвестиция от време.
|
n | 1 | # """ | n | 1 | """ |
2 | # [Title/Звание] | 2 | [Title/Звание] | ||
3 | 3 | ||||
n | 4 | # 'Agar.io' | n | 4 | 'Agar.io' |
5 | 5 | ||||
n | 6 | # [Description/Обрисовка] | n | 6 | [Description/Обрисовка] |
7 | 7 | ||||
n | 8 | # Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели. | n | 8 | Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели. |
9 | 9 | ||||
n | 10 | # [Functionalities/Надарености] | n | 10 | [Functionalities/Надарености] |
11 | 11 | ||||
n | 12 | # Стартиране | n | 12 | Стартиране |
13 | # Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват. | 13 | Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват. | ||
14 | # Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър | 14 | Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър | ||
15 | # Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране) | 15 | Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране) | ||
16 | 16 | ||||
n | 17 | # Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата. | n | 17 | Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата. |
18 | 18 | ||||
n | 19 | # Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране. | n | 19 | Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране. |
20 | # Игра | 20 | Игра | ||
21 | # - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината. | 21 | - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината. | ||
22 | # - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни. | 22 | - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни. | ||
23 | # - Когато играч бъде погълнат, той се съживява автоматично | 23 | - Когато играч бъде погълнат, той се съживява автоматично | ||
24 | # - Налично е класиране на играчите според големината им. | 24 | - Налично е класиране на играчите според големината им. | ||
25 | # - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта. | 25 | - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта. | ||
26 | 26 | ||||
n | 27 | # Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства. | n | 27 | Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства. |
28 | 28 | ||||
n | 29 | # Изход | n | 29 | Изход |
30 | # - всеки може да напусне играта, когато пожелае | 30 | - всеки може да напусне играта, когато пожелае | ||
31 | 31 | ||||
n | 32 | # Край на играта | n | 32 | Край на играта |
33 | # - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва | 33 | - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва | ||
34 | 34 | ||||
n | 35 | # [Milestones/Възлови точки] | n | 35 | [Milestones/Възлови точки] |
36 | 36 | ||||
n | 37 | # Клас, управляващ състояние на играта: GameState | n | 37 | Клас, управляващ състояние на играта: GameState |
38 | # Класове, които той композира пряко или непряко | 38 | Класове, които той композира пряко или непряко | ||
39 | # Клас, управляващ състоянието на играч: Player | 39 | Клас, управляващ състоянието на играч: Player | ||
40 | # Клас, управляващ състоянието на храна: Food | 40 | Клас, управляващ състоянието на храна: Food | ||
41 | # Клас, управляващ кръгъл обект: Circle | 41 | Клас, управляващ кръгъл обект: Circle | ||
42 | # Клас, управляващ наредена двойка: Vector | 42 | Клас, управляващ наредена двойка: Vector | ||
43 | # Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen | 43 | Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen | ||
44 | # Интерфейс, управляващ възел в мрежа: Node | 44 | Интерфейс, управляващ възел в мрежа: Node | ||
45 | # Интерфейс, управляващ клиентски възел в мрежа: client | 45 | Интерфейс, управляващ клиентски възел в мрежа: client | ||
46 | # Интерфейс, управляващ сървърен възел в мрежа: server | 46 | Интерфейс, управляващ сървърен възел в мрежа: server | ||
47 | # Клас, който менажира сървъра на играта: server | 47 | Клас, който менажира сървъра на играта: server | ||
48 | # Клас, който менажира клиент(играч) в играта: client | 48 | Клас, който менажира клиент(играч) в играта: client | ||
49 | 49 | ||||
n | 50 | # [Estimate in man-hours/Времеоценка в човекочасове] | n | 50 | [Estimate in man-hours/Времеоценка в човекочасове] |
51 | 51 | ||||
n | 52 | # 47 часа | n | 52 | 47 часа |
53 | 53 | ||||
t | 54 | # [Usage of technologies/Потребление на технологии] | t | 54 | [Usage of technologies/Потребление на технологии] |
55 | # Интерфейс - Pygame | 55 | Интерфейс - Pygame | ||
56 | # Комуникация между клиент/сървър - socket.io, pickle, | 56 | Комуникация между клиент/сървър - socket.io, pickle, | ||
57 | # Многонишково програмиране - treading | 57 | Многонишково програмиране - treading | ||
58 | # """ | 58 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
n | 1 | """ | n | 1 | # """ |
2 | [Title/Звание] | 2 | # [Title/Звание] | ||
3 | 3 | ||||
n | 4 | 'Agar.io' | n | 4 | # 'Agar.io' |
5 | 5 | ||||
n | 6 | [Description/Обрисовка] | n | 6 | # [Description/Обрисовка] |
7 | 7 | ||||
n | 8 | Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели. | n | 8 | # Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели. |
9 | 9 | ||||
n | 10 | [Functionalities/Надарености] | n | 10 | # [Functionalities/Надарености] |
11 | 11 | ||||
n | 12 | Стартиране | n | 12 | # Стартиране |
13 | Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват. | 13 | # Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват. | ||
14 | Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър | 14 | # Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър | ||
15 | Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране) | 15 | # Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране) | ||
16 | 16 | ||||
n | 17 | Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата. | n | 17 | # Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата. |
18 | 18 | ||||
n | 19 | Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране. | n | 19 | # Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране. |
20 | Игра | 20 | # Игра | ||
21 | - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината. | 21 | # - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината. | ||
22 | - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни. | 22 | # - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни. | ||
23 | - Когато играч бъде погълнат, той се съживява автоматично | 23 | # - Когато играч бъде погълнат, той се съживява автоматично | ||
24 | - Налично е класиране на играчите според големината им. | 24 | # - Налично е класиране на играчите според големината им. | ||
25 | - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта. | 25 | # - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта. | ||
26 | 26 | ||||
n | 27 | Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства. | n | 27 | # Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства. |
28 | 28 | ||||
n | 29 | Изход | n | 29 | # Изход |
30 | - всеки може да напусне играта, когато пожелае | 30 | # - всеки може да напусне играта, когато пожелае | ||
31 | 31 | ||||
n | 32 | Край на играта | n | 32 | # Край на играта |
33 | - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва | 33 | # - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва | ||
34 | 34 | ||||
n | 35 | [Milestones/Възлови точки] | n | 35 | # [Milestones/Възлови точки] |
36 | 36 | ||||
n | 37 | Клас, управляващ състояние на играта: GameState | n | 37 | # Клас, управляващ състояние на играта: GameState |
38 | Класове, които той композира пряко или непряко | 38 | # Класове, които той композира пряко или непряко | ||
39 | Клас, управляващ състоянието на играч: Player | 39 | # Клас, управляващ състоянието на играч: Player | ||
40 | Клас, управляващ състоянието на храна: Food | 40 | # Клас, управляващ състоянието на храна: Food | ||
41 | Клас, управляващ кръгъл обект: Circle | 41 | # Клас, управляващ кръгъл обект: Circle | ||
42 | Клас, управляващ наредена двойка: Vector | 42 | # Клас, управляващ наредена двойка: Vector | ||
43 | Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen | 43 | # Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen | ||
44 | Интерфейс, управляващ възел в мрежа: Node | 44 | # Интерфейс, управляващ възел в мрежа: Node | ||
45 | Интерфейс, управляващ клиентски възел в мрежа: client | 45 | # Интерфейс, управляващ клиентски възел в мрежа: client | ||
46 | Интерфейс, управляващ сървърен възел в мрежа: server | 46 | # Интерфейс, управляващ сървърен възел в мрежа: server | ||
47 | Клас, който менажира сървъра на играта: server | 47 | # Клас, който менажира сървъра на играта: server | ||
48 | Клас, който менажира клиент(играч) в играта: client | 48 | # Клас, който менажира клиент(играч) в играта: client | ||
49 | 49 | ||||
n | 50 | [Estimate in man-hours/Времеоценка в човекочасове] | n | 50 | # [Estimate in man-hours/Времеоценка в човекочасове] |
51 | 51 | ||||
n | 52 | 47 часа | n | 52 | # 47 часа |
53 | 53 | ||||
t | 54 | [Usage of technologies/Потребление на технологии] | t | 54 | # [Usage of technologies/Потребление на технологии] |
55 | Интерфейс - Pygame | 55 | # Интерфейс - Pygame | ||
56 | Комуникация между клиент/сървър - socket.io, pickle, | 56 | # Комуникация между клиент/сървър - socket.io, pickle, | ||
57 | Многонишково програмиране - treading | 57 | # Многонишково програмиране - treading | ||
58 | """ | 58 | # """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|