Skip to content

Commit be84912

Browse files
committed
Update libraries, update texts
1 parent 8eac1bb commit be84912

File tree

7 files changed

+1335
-860
lines changed

7 files changed

+1335
-860
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ Versioning info:
66
- second number indicates a week (1 for the first week)
77
- third number indicates minor changes, such as hotfixes and updates
88

9-
## [6.2.2] - 2024-12-23
9+
## [6.2.3] - 2024-04-01
10+
### Added
11+
- Readjusted courses section
12+
13+
### Changed
14+
- libcurl version
15+
16+
## [6.2.2] - 2024-02-12
1017
### Added
1118
- Linked new semestral projects
1219

docs/courses/aph.md

Lines changed: 8 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -1,159 +1,16 @@
11
---
2-
title: APH course
3-
description: Requirements for finishing the NI-APH course
2+
title: APH course - materials
3+
description: Materials for the APH course
4+
exclude_en: true
45
---
56

67
import useBaseUrl from '@docusaurus/useBaseUrl';
78
import Lectures from '@site/docs/courses/aph_lectures.tsx'
89

9-
10-
## Requirements for successful course completion:
11-
1. Submit a game mechanics concept.
12-
2. Present your progress.
13-
3. Submit the semester project.
14-
4. Pass an oral examination.
15-
5. Acquire at least 50 points throughout the semester.
10+
## Course info
11+
- The course ran from 2017 to 2023 at FIT CTU.
12+
- The main goal was to introduce the students to the basics of video game development (game-engine agnostic) and to create a semester project.
13+
/ Submitted semester projects can be found in the <a href={useBaseUrl('gallery')}>gallery</a> section.
1614

1715
## Slides
18-
<Lectures />
19-
20-
## Important Dates
21-
- 11/5 - Finalize project requirements.
22-
- 11/21 and 11/28 - Progress presentations.
23-
- 12/19 - minitest during the last lecture
24-
- 1/11 - Deadline for submitting semester projects.
25-
- 2/18 - End of the semester (all points must be earned by then).
26-
27-
## Grading
28-
- **Semester Project**: 60 points, minimum 30 required.
29-
- **Exam**: 30 points, minimum 15 required.
30-
- **Minitest**: 10 points (ABCD answers), no minimum requirement, attendance not mandatory.
31-
- Quiz: a maximum of 10 points (2 points for the top 3 scores, 1 point otherwise).
32-
- The quiz will be randomly held during lectures.
33-
- Questions will cover material from previous lectures.
34-
- Technical blog article: 10 points (in CZ, EN, or both), optional.
35-
- Bonus points if your semester project runs on the ggBlaster arcade - 10 points.
36-
37-
### Rewards
38-
- For 95 points and above - APH swag (t-shirt, mug, etc.).
39-
40-
### Penalties
41-
- **-5 points** - late submission of project requirements beyond November 5th.
42-
- **-20 points** - late submission of semester project beyond January 11th.
43-
- **-10 points** - unexcused absence during progress presentations.
44-
45-
## Semester Project
46-
### Requirements
47-
- The game must run on the web.
48-
- Students must work on the game individually or in pairs.
49-
- The game concept must be approved by the instructor (during the "Finalization of Project Requirements" phase).
50-
- Game assets must be taken from the Public Domain (including assets generated by AI).
51-
- The game must include at least one non-trivial **technical** mechanic.
52-
- The game can be developed using a game engine or graphic library. For educational purposes, the COLFIO library was created [COLFIO](https://colf.io/).
53-
- In the case of using the COLFIO library (or an engine with ECS architecture), the game must fully utilize the ECS pattern (Entity-Component-System).
54-
55-
### Assignment
56-
- must be submit until 5.11. to the lecturer on Discord
57-
- the assignment should have the following structure:
58-
- whether you will be working on the game alone or in a pair of two
59-
- game genre
60-
- library/engine
61-
- space, objects, actions, rules, game objective (as described in <a href={useBaseUrl('slides/lecture01.html#24')} target="_blank">slides</a>)
62-
- the main mechanic, or a technical challenge
63-
64-
#### Assignment - Recommendations
65-
- if the game assignment cannot fit into the structure above, you have too complex assignment
66-
- usually, 5-10 objects, 2-5 actions, and 5-10 rules are sufficient
67-
- start with must-have elements without which the game wouldn't make sense
68-
- visuals and the story do not belong in the assignment; they can be developed during prototyping
69-
- the scope should be as small as possible, with an emphasis on technical implementation
70-
- if the game includes levels, 2-3 polished levels with increasing difficulty (if appropriate for the game) are enough
71-
- it is a good thing for the game to be understandable without a README or manual. The best option is an in-game tutorial
72-
- the library/engine used can be changed during prototyping, but this should be communicated with the instructor
73-
- if it turns out that some objects/actions/rules no longer make sense during prototyping, there is no need to force them into the game.
74-
75-
#### Assignment - Example
76-
From the game [Chicken Quest](https://gallery.aphgames.io/2021/chickenquest/)
77-
- Genre: Casual sports
78-
- Library: COLF.IO
79-
- Space: 2D, sidescroller
80-
- Objects: Animated player, power-ups, coins, traps, boost platforms
81-
- Actions:
82-
- Shooting the player into the air
83-
- Controlling the player during flight
84-
- Mid-air boost
85-
- Collecting coins and power-ups
86-
- Activating items in the inventory
87-
- Purchasing upgrades between rounds
88-
- Rules:
89-
- The player can choose the angle and power of the avatar's shot.
90-
- The round ends when the player lands on the ground and loses all speed.
91-
- The player receives in-game currency as a reward, which can be used to buy upgrades.
92-
- Coins, traps, and power-ups are randomly placed throughout the level and activate upon collision with the player.
93-
- Game Objective:
94-
- Reach a predetermined distance.
95-
- Main Mechanic:
96-
- Player physics after the shot.
97-
98-
### Technical Game Mechanics
99-
- Must involve a mechanic that is non-trivial from a programming perspective.
100-
- Examples include
101-
- Replay mechani in the game [Braid](https://store.steampowered.com/app/26800/Braid/)
102-
- Climbing on a rope
103-
- Procedurally generated objects
104-
- Guiding wind
105-
- Hierarchical loot
106-
107-
108-
### Additional Requirements
109-
- Create the game on the faculty's [GitLab](https://gitlab.fit.cvut.cz) with the name `NI-APH`, accessible via `gitlab.fit.cvut.cz/<username>/NI-APH`.
110-
- In addition to the game itself, the repository should include:
111-
- README with a brief description of the game and installation instructions.
112-
- Architecture diagram (as a PNG/JPG image).
113-
- **Clear and regular commits**.
114-
- Author's name in `package.json`, if using JavaScript/TypeScript, or in other manifest files.
115-
- Author's name in the license file.
116-
- The game must have a title displayed in both the HTML header and the game itself.
117-
- The repository should not contain any redundant data (especially `node_modules`, `.unitypackage`, `Obj/`, `Temp/`, etc.). Use `.gitignore`.
118-
119-
120-
### COLF.IO
121-
- Originally ECSLite and previously APHLib.
122-
- [Library](https://colf.io) created for the study and teaching of component-based architecture.
123-
- It is an extension of the PixiJS graphics library, adding a component architecture following the ECS pattern.
124-
- It is available as an external npm package `colfio` or as a boilerplate project [ecs-template](https://github.com/APHGames/ecs-template).
125-
126-
### ggBlaster
127-
- If the game runs on **ggBlaster**, it is possible to earn up to 10 bonus points.
128-
- To have your semester project run on the arcade machine `ggBlaster`, it must meet the following requirements:
129-
- The game is controlled only by the keyboard, mapped to the arcade machine's buttons.
130-
- The arcade machine includes a joystick (4 positions) and 8 game buttons for each of the two players, as well as two additional functional buttons (e.g., menu/back).
131-
- The game is designed for two players.
132-
- The gamepads will be mapped to the following keyboard layout:
133-
- Player #1:
134-
- movement: ↑ ↓ ← →
135-
- action buttons: 1 4 2 5 3 6
136-
- start/select: 7 8
137-
- Player #2:
138-
- movement: W S A D
139-
- action buttons: G Y H U J I
140-
- start/select: O P
141-
- The style and genre match the arcade gaming style (e.g., adventure games are not suitable).
142-
- The game is optimized for a resolution of 720x480 and 50 frames per second.
143-
- The game runs smoothly on Raspberry 4 (overclocked to 1800 MHz), using the Chromium browser platform.
144-
145-
## Oral Examination
146-
- There will be no fixed date for the oral examination; it will be conducted individually based on students' availability in room TH-A:1455 in January and February.
147-
- The examination will involve discussions on various topics from the lectures, especially those marked with orange and red lightbulbs in the slides.
148-
149-
## Evaluation table
150-
- according to the Study and Examination Rules for Students of CTU
151-
152-
| Grande | Range | Meaning |
153-
| ------ | ------ | ------ |
154-
| A | 90+ | excellent |
155-
| B | 80-89 | very good |
156-
| C | 70-79 | good |
157-
| D | 60-69 | fine |
158-
| E | 50-59 | satisfactory |
159-
| F | 0-49 | unsatisfactory |
16+
<Lectures />

docs/learning/01-intro.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import Lectures from '@site/docs/learning/lectures.tsx'
88

99
### Code examples
1010
- examples can be found on [github](https://github.com/APHGames/examples)
11-
- [COLF.IO webpage](https://colf.io)
12-
- template project for COLF.IO library with bundling wrapper can be found [here](https://github.com/APHGames/ecs-template)
11+
- web page of the COLFIO library in which all games in the gallery section were implemented, can be found on [colf.io](https://colf.io)
12+
- template project for COLF.IO library with bundling wrapper can be found [here](https://github.com/APHGames/ecs-template)
1313

1414
### General slides
1515
- slides can be found on [github](https://github.com/APHGames/slides)
Lines changed: 7 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,162 +1,16 @@
11
---
2-
title: APH kurz
3-
description: Požadavky na absolvování NI-APH předmětu
2+
title: APH kurz - materiály
3+
description: Materiály ke kurzu APH
44
exclude_en: true
55
---
66

77
import useBaseUrl from '@docusaurus/useBaseUrl';
88
import Lectures from '@site/docs/courses/aph_lectures.tsx'
99

10-
11-
## Požadavky na úspěšné absolvování předmětu:
12-
1. odevzdat koncept herní mechaniky
13-
2. odprezentovat progres
14-
3. odevzdat semestrální práci
15-
4. absolvovat ústní zkoušku
16-
5. získat alespoň 50 bodů za celý semestr
10+
## Informace o kurzu
11+
- kurz běžel v letech 2017-2023 na FIT ČVUT
12+
- hlavním cílem kurzu bylo seznamit se se základy programování počítačových her (nezávisle na konrétním enginu) a naprogramovat semestrální práci
13+
- odevzdané semestrální práce jsou k dispozici v sekci <a href={useBaseUrl('gallery')}>galerie</a>
1714

1815
## Slidy
19-
<Lectures />
20-
21-
## Důležité Termíny
22-
- 5.11. - finalizace zadání
23-
- 21.11. a 28.11. - prezentace progresu
24-
- 19.12. - poslední přednáška (minitest)
25-
- 11.1. - deadline pro odevzdání semestrálek
26-
- 18.2. - konec semestru (nutné do té doby získat všechny potřebné body)
27-
28-
## Bodování
29-
- **semestrálka**: 60 bodů, nutné minimum 30
30-
- **zkouška**: 30 bodů, nutné minimum 15
31-
- **minitest**: 10 bodů (ABCD odpovědi), není nutné minimum a není ani nutná účast
32-
- kvíz: max 10 bodů (2 body za první 3 místa, jinak 1 bod)
33-
- kvíz se bude pořádat náhodně během přednášek
34-
- otázky budou z čehokoliv, co na minulých přednáškách padlo
35-
- technický článek na blog - 10 bodů (v CZ, EN nebo obojí), nepovinné
36-
- bonus, pokud semestrálka poběží na ggBlasteru - 10 bodů
37-
38-
### Odměny
39-
- za 95 bodů a více - APH swag (tričko, hrníček,...)
40-
41-
### Penalizace
42-
- **-5 bodů** - odevzdání zadání později než 5.11.
43-
- **-20 bodů** - odevzdání semestrální práce později než 11.1.
44-
- **-10 bodů** - neomluvená účast na prezentaci
45-
46-
## Semestrální projekt
47-
### Požadavky
48-
- hra musí běžet na webu
49-
- na hře musí pracovat studenti sami nebo ve dvojicích
50-
- námět hry musí být schválen cvičícím (v rámci fáze "Finalizace zadání")
51-
- herní assety musí být z Public Domain (do ní spadají i assety generované AIčkem)
52-
- hra musí obsahovat alespoň jednu netriviální **technickou** mechaniku
53-
- hra může být využita s použitím herního enginu či grafické knihovny. Pro potřeby výuky vznikla knihovna [COLFIO](https://colf.io/)
54-
- v případě využití knihovny COLFIO (či enginu s ECS architekturou), musí hra plně využívat ECS pattern (Entity-Component-System)
55-
56-
### Zadání
57-
- zadání hry je potřeba odevzdat do 5.11. cvičícímu na Discord
58-
- zadání by mělo mít následující strukturu:
59-
- zda budete na hře pracovat sami nebo ve dvojici
60-
- žánr hry
61-
- knihovna/engine
62-
- prostor, objekty, akce, pravidla, cíl hry (podobná struktura jako ve <a href={useBaseUrl('slides/lecture01_cs.html#24')} target="_blank">slidech</a>)
63-
- hlavní mechanika, případně technická challenge
64-
65-
#### Zadání - doporučení
66-
- pokud zadání hry není možné vměstnat do struktury výše, máte příliš složité zadání
67-
- obvykle stačí 5-10 objektů, 2-5 akcí, 5-10 pravidel
68-
- začněte must-have elementy, bez kterých by hra nedávala smysl
69-
- vizuál a příběh do zadání nepatří, ten může vznikat během prototypování
70-
- scope by měl být co nejmenší, s důrazem na technickou realizaci
71-
- pokud hra obsahuje levely, stačí 2-3 dobře odladěné levely s narůstající složitostí (pokud se pro daný žánr vybízí)
72-
- je vhodné, aby hru bylo možno pochopit bez README či manuálu. Nejlepší variantou je in-game tutoriál
73-
- použitou knihovnu/engine je možno v průběhu prototypování měnit, toto je však vhodné nahlásit cvičícímu
74-
- pokud se ukáže, že některé objekty/akce/pravidla přestanou při prototypování dávat smysl, není vůbec nutné je do hry zapracovávat "na sílu"
75-
76-
77-
#### Zadání - příklad
78-
Ze hry [Chicken Quest](https://gallery.aphgames.io/2021/chickenquest/)
79-
80-
- **Žánr**: casual sportovní
81-
- **Knihovna**: COLF.IO
82-
- **Prostor**: 2D, sidescroller
83-
- **Objekty**: animovaný hráč, power-upy, mince, pasti, boost platformy
84-
- **Akce**:
85-
- vystřelení hráče do vzduchu
86-
- ovládání hráče během letu
87-
- boost během letu
88-
- sběr mincí a power-upů
89-
- aktivace předmětů v inventáři
90-
- nákup vylepšení mezi jednotlivými koly
91-
- **Pravidla**:
92-
- hráč si může zvolit úhel a sílu výstřelu avatara
93-
- kolo končí, jakmile hráč dopadne na zem a ztratí veškerou rychlost
94-
- hráč dostane odměnu v podobě herní měny, za kterou si může nakoupit vylepšení
95-
- mince, pasti a power-upy budou náhodně rozmístěné po celém levelu a aktivují se při kolizi s hráčem
96-
- **Cíl hry**:
97-
- dosáhnout předem určenou vzdálenost
98-
- **Hlavní mechanika**:
99-
- fyzika hráče po výstřelu
100-
101-
### Technická mechanika hry
102-
- musí se jednat o mechaniku, která je netriviální z programátorského hlediska. Nemusí to být mechanika v pravém slova smyslu (např. pokročilý pathfinding není mechanika, ale jeho použití bude mít vliv na všechny mechaniky týkající se pohybu po mapě)
103-
- příklady
104-
- replay ve hře [Braid](https://store.steampowered.com/app/26800/Braid/)
105-
- šplhání po laně
106-
- procedurálně generované objekty
107-
- guiding wind
108-
- hierarchický loot
109-
110-
111-
### Další požadavky
112-
- hru vytvořte na fakultním [gitlabu](https://gitlab.fit.cvut.cz) s názvem `NI-APH`, aby byl dostupný přes `gitlab.fit.cvut.cz/<username>/NI-APH`
113-
- repozitář by mimo samotné hry měl obsahovat:
114-
- README s krátkým popisem samotné hry a instrukcí k instalaci
115-
- diagram architektury (jako PNG/JPG obrázek)
116-
- **srozumitelné a pravidelné commity**
117-
- jméno autora v `package.json`, pokud použijete JavaScript/TypeScript, případně v jiném manifestovém souboru
118-
- jméno autora v licenčním souboru
119-
- hra musí mít nějaký název který se zobrazí jak v HTML hlavičce tak v samotné hře
120-
- repozitář by neměl obsahovat žádná redundantní data (především `node_modules`, `.unitypackage`, `Obj/`, `Temp/`) atd. Použijte `.gitignore`
121-
122-
123-
### COLF.IO
124-
- původně ECSLite a předtím APHLib
125-
- [knihovna](https://colf.io), která vznikla pro potřeby studia a výuky komponentové architektury
126-
- je to nadstavba grafické knihovny [PixiJS](https://pixijs.com/), ke které přidává komponentovou architekturu dle ECS patternu
127-
- k dispozici je buďto jako externí npm balíček `colfio` nebo jako boilerplate projekt [ecs-template](https://github.com/APHGames/ecs-template)
128-
129-
### ggBlaster
130-
- pokud hra poběží na **ggBlasteru**, je možné dostat až 10 bodů bonus
131-
- aby semestrální práce běžela na arkádovém automatu `ggBlaster`, je potřeba, aby splnila následující požadavky:
132-
- hra se ovládá pouze klávesnicí namapovanou na tlačítka arkádovky
133-
- arkádovka obsahuje pro každého ze dvou hráčů joystick (4 pozice), 8 herních tlačítek a dvě funkční (např. menu/zpět)
134-
- hra je pro dva hráče
135-
- gamepady budou namapovány na následující klávesy:
136-
- Player #1:
137-
- movement: ↑ ↓ ← →
138-
- action buttons: 1 4 2 5 3 6
139-
- start/select: 7 8
140-
- Player #2:
141-
- movement: W S A D
142-
- action buttons: G Y H U J I
143-
- start/select: O P
144-
- styl a žánr odpovídá arkádovému způsobu hraní (např. adventura se sem nehodí)
145-
- hra je optimalizovaná pro rozlišení 720x480 a 50 snímků za vteřinu
146-
- hra běží plynule na Raspberry 4 (přetaktované na 1800 MHz), platformou je prohlížeč Chromium
147-
148-
## Ústní zkouška
149-
- nebude mít pevný termín, bude probíhat individuálně dle časových možností studentů v místnosti TH-A:1455 v lednu a v únoru
150-
- předmětem bude diskuse nad různými tématy z přednášek (především těmi, které jsou ve slidech označeny oranžovou a červenou žárovičkou)
151-
152-
## Tabulka hodnocení
153-
- dle klasifikační stupnice studijního a zkušebního řádu ČVUT
154-
155-
| Známka | Rozsah | Význam |
156-
| ------ | ------ | ------ |
157-
| A | 90+ | výborně |
158-
| B | 80-89 | velmi dobře |
159-
| C | 70-79 | dobře |
160-
| D | 60-69 | uspokojivě |
161-
| E | 50-59 | dostatečně |
162-
| F | 0-49 | nedostatečně |
16+
<Lectures />

i18n/cs/docusaurus-plugin-content-docs/current/learning/01-intro.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ import Lectures from '@site/docs/learning/lectures.tsx'
88

99
### Příklady
1010
- všechny příklady jsou umístěny na [githubu](https://github.com/APHGames/examples)
11-
- [COLF.IO webpage](https://colf.io)
12-
- šablonový projekt pro COLF.IO knihovnu včetně budling wrapperu je k dispozici [zde](https://github.com/APHGames/ecs-template)
11+
- webová stránka knihovny COLFIO, ve které byly vytvářeny hry v galerii, je k dispozici na [colf.io](https://colf.io)
12+
- šablonový projekt pro COLF.IO knihovnu včetně budling wrapperu je k dispozici [zde](https://github.com/APHGames/ecs-template)
1313

1414
### Obecné slidy
1515
- slidy je možno nalézt na [githubu](https://github.com/APHGames/slides)
1616
- krátký návod jak pracovat s RevealJS slidy je k dispozici <a href="./misc/slides">zde</a>
1717

1818
:::info
1919

20-
Pro materiály týkající se jednotlivých kurzů, přejděte na příslušné sekce v nabídce Kurzy
20+
Pro materiály týkající se kurzu Architektura Počítačových Her, přejděte na příslušné sekce v nabídce Kurzy
2121

2222
:::
2323

0 commit comments

Comments
 (0)