You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
19 KiB
164 lines
19 KiB
# បង្កើតហ្គេមគំរូមួយ
|
|
|
|
## រូបមន្តការងារ
|
|
|
|
ឥឡូវនេះអ្នកបានឆ្លើយតបទៅនឹងលក្ខខ័ណ្ឌបញ្ចប់ហ្គេម និងមុខងារចាប់ផ្ដើមឡើងវិញក្នុងហ្គេមអាកាសរបស់អ្នករួចហើយ វានៅពេលដើម្បីអនុវត្តគំនិតទាំងនេះទៅនឹងបទពិសោធន៍ហ្គេមថ្មីមួយ។ អ្នកនឹងរចនានិងបង្កើតហ្គេមផ្ទាល់ខ្លួនរបស់អ្នកដែលបង្ហាញពីទំរង់លក្ខខ័ណ្ឌបញ្ចប់ផ្សេងៗ និងគ្រប់គ្រងចាប់ផ្ដើមឡើងវិញ។
|
|
|
|
ការងារនេះបង្ហាញឲ្យអ្នកគិតដោយច្នៃប្រឌិតអំពីការរចនាហ្គេម ខណៈដែលហ្វឹកហាត់ជំនាញបច្ចេកទេសដែលអ្នកបានរៀន។ អ្នកនឹងស្វែងយល់ពីស្ថានការណ៍ជ័យជំនះ និងការបរាជ័យផ្សេងៗ អនុវត្តន៍ការរីកចម្រើនរបស់អ្នកលេង និងបង្កើតបទពិសោធន៍ចាប់ផ្ដើមឡើងវិញដ៏ទាក់ទាញ។
|
|
|
|
## តម្រូវការប្រព្រឹត្តិ
|
|
|
|
### លក្ខណៈសម្បត្តិមូលដ្ឋានរបស់ហ្គេម
|
|
|
|
ហ្គេមរបស់អ្នកត្រូវមានធាតុដែលចាំបាច់ដូចតទៅ៖
|
|
|
|
**ចំបាំងលក្ខខ័ណ្ឌបញ្ចប់**៖ អនុវត្តយ៉ាងតិចពីរបៀបទាំងអស់ដែលហ្គេមអាចបញ្ចប់បាន៖
|
|
- **ជ័យជំនះដោយពិន្ទុ**៖ អ្នកលេងឈានដល់ពិន្ទុខលើកំណត់ ឬប្រមូលធាតុជាក់លាក់
|
|
- **បរាជ័យដោយជីវិត**៖ អ្នកលេងបាត់បង់ជីវិត ឬចំនួនសុខភាពទាំងអស់
|
|
- **បញ្ចប់បេសកកម្ម**៖ សម្លាប់សត្រូវទាំងអស់ ប្រមូលធាតុជាក់លាក់ ឬសម្រេចគោលបំណង
|
|
- **ពេលវេលាកំណត់**៖ ហ្គេមបញ្ចប់បន្ទាប់ពីរយៈពេល កំណត់ឬរាប់ថយដល់សូន្យ
|
|
|
|
**មុខងារចាប់ផ្ដើមឡើងវិញ**៖
|
|
- **សម្អាតស្ថានភាពហ្គេម**៖ លុបវត្ថុហ្គេមមុនទាំងអស់ និងកំណត់តម្លៃអថេរ
|
|
- **ចាប់ផ្ដើមឡើងវិញប្រព័ន្ធ**៖ ចាប់ផ្ដើមឡើងវិញជាមួយស្ថិតិសម្រាប់អ្នកលេង សត្រូវ និងបេសកកម្មថ្មី
|
|
- **គ្រប់គ្រងងាយស្រួលសម្រាប់អ្នកប្រើ**៖ ផ្តល់ជូននូវសេចក្ដីណែនាំច្បាស់លាស់សម្រាប់ចាប់ផ្ដើមឡើងវិញហ្គេម
|
|
|
|
**មតិប្រតិកម្មពីអ្នកលេង**៖
|
|
- **សារជ័យជំនះ**៖ អបអរសាទរជោគជ័យអ្នកលេងដោយមតិយោបល់វិជ្ជមាន
|
|
- **សារបរាជ័យ**៖ ផ្តល់សារចំរូងចំរាសដែលបង្កើនការចាប់ផ្តើមឡើងវិញ
|
|
- **សង្ខេបជំហាន**៖ បង្ហាញពិន្ទុ បរិមាណជីវិត ឬស្ថានភាពបេសកកម្មបច្ចុប្បន្ន
|
|
|
|
### គំនិតហ្គេម និងការបង្កើតចិត្តប្រហែល
|
|
|
|
ជ្រើសរើសពីគំនិតហ្គេមទាំងនេះ ឬបង្កើតមួយជាផ្ទាល់៖
|
|
|
|
#### ១. ហ្គេមការផ្សងព្រេងតាមកុងសូល
|
|
បង្កើតហ្គេមការផ្សងព្រេងផ្អែកលើអត្ថបទជាមួយប្រព័ន្ធប្រយុទ្ធ៖
|
|
|
|
```
|
|
Hero> Strikes with broadsword - orc takes 3p damage
|
|
Orc> Hits with club - hero takes 2p damage
|
|
Hero> Kicks - orc takes 1p damage
|
|
Game> Orc is defeated - Hero collects 2 coins
|
|
Game> ****No more monsters, you have conquered the evil fortress****
|
|
```
|
|
|
|
**លក្ខណៈសំខាន់ដែលត្រូវអនុវត្ត**៖
|
|
- **ប្រយុទ្ធតាមលំដាប់ជុំ** ជាមួយជម្រើសប្រយុទ្ធប្លែកៗ
|
|
- **ចំនួនសុខភាព** សម្រាប់អ្នកលេង និងសត្រូវ
|
|
- **ប្រព័ន្ធស្តុកទំនិញ** សម្រាប់ប្រមូលកាក់ ឬធាតុ
|
|
- **ប្រភេទសត្រូវច្រើន** មានកម្រិតគ្រប់គ្រាន់និងលំបាកខុសគ្នា
|
|
- **លក្ខណៈជ័យជំនះ** ពេលសម្លាប់សត្រូវទាំងអស់បានជោគជ័យ
|
|
|
|
#### ២. ហ្គេមប្រមូល
|
|
- **គោលបំណង**៖ ប្រមូលធាតុជាក់លាក់ ខណៈជៀសវាងឧបសគ្គ
|
|
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ ឈានដល់ចំនួនប្រមូលឬបាត់បង់ជីវិតទាំងអស់
|
|
- **ការរីកចម្រើន**៖ ធាតុពិបាកទទួលបានបន្ថែមឡើងទៅពេលហ្គេមដំណើរការ
|
|
|
|
#### ៣. ហ្គេមផាស់ខ្សែ
|
|
- **គោលបំណង**៖ ដោះស្រាយបញ្ហាពិបាកកាន់តែលំបាក
|
|
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ បញ្ចប់លំដាប់ទាំងអស់ឬឆ្ងាយច្បាស់ពីចលនាឬពេលវេលា
|
|
- **ចាប់ផ្ដើមឡើងវិញ**៖ កំណត់ឡើងវិញទៅលំដាប់ទីមួយជាមួយការសម្អាតជំហាន
|
|
|
|
#### ៤. ហ្គេមការពារ
|
|
- **គោលបំណង**៖ ការពារយកមូលដ្ឋានពីរលំនាំសត្រូវ
|
|
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ រស់រានមានជីវិតនៅរលំនាំទាំងអស់ (ជ័យជំនះ) ឬមូលដ្ឋានបំផ្លាញ (បរាជ័យ)
|
|
- **ការរីកចម្រើន**៖ រលំនាំសត្រូវមានកម្រិតលំបាក និងចំនួនកើនឡើង
|
|
|
|
## មគ្គុទេសក៍អនុវត្តន៍
|
|
|
|
### ការចាប់ផ្ដើម
|
|
|
|
1. **គ្រោងការរចនាហ្គេម**៖
|
|
- គំនូរស្ទាត់ចុះនូវរងចង្វាក់លំហាត់ហ្គេមមូលដ្ឋាន
|
|
- កំណត់លក្ខខ័ណ្ឌបញ្ចប់ឲ្យច្បាស់
|
|
- បញ្ជាក់ទិន្នន័យដែលត្រូវបំលែងនៅពេលចាប់ផ្ដើមឡើងវិញ
|
|
|
|
2. **រៀបចំរចនាសម្ព័ន្ធគម្រោង**៖
|
|
```
|
|
my-game/
|
|
├── index.html
|
|
├── style.css
|
|
├── game.js
|
|
└── README.md
|
|
```
|
|
|
|
3. **បង្កើតរងចង្វាក់ហ្គេមមូលដ្ឋាន**៖
|
|
- កំណត់ស្ថានភាពហ្គេម
|
|
- គ្រប់គ្រងការបញ្ចូលពីអ្នកប្រើ
|
|
- បច្ចុប្បន្នភាពលូហ្គិចហ្គេម
|
|
- ពិនិត្យលក្ខខ័ណ្ឌបញ្ចប់
|
|
- បង្ហាញស្ថានភាពបច្ចុប្បន្ន
|
|
|
|
### តម្រូវការបច្ចេកទេស
|
|
|
|
**ប្រើ JavaScript ទាន់សម័យ**៖
|
|
- ប្រើ `const` និង `let` សម្រាប់ការប្រកាសអថេរ
|
|
- ប្រើ arrow functions ដែលសមរម្យ
|
|
- អនុវត្តលក្ខណៈ ES6+ ដូចជារបៀបសរសេរសរសេរពាក្យប្លង់ និងផ្ទុកអថេរ
|
|
|
|
**ស្ថាបត្យកម្មបើកបរដោយព្រឹត្តិការណ៍**៖
|
|
- បង្កើតអ្នកដំណើរការព្រឹត្តិការណ៍សម្រាប់អន្តរកម្មអ្នកប្រើ
|
|
- អនុវត្តការផ្លាស់ប្តូរស្ថានភាពហ្គេមតាមព្រឹត្តិការណ៍
|
|
- ប្រើនរណាម្នាក់ស្តាប់ព្រឹត្តិការណ៍សម្រាប់មុខងារចាប់ផ្ដើមឡើងវិញ
|
|
|
|
**អនុវត្តទំនៀមទំលាប់កូដស្អាត**៖
|
|
- សរសេរតែម្ដងងាយយល់មុខងារ
|
|
- ប្រើឈ្មោះអថេរនិងមុខងារដែលពិពណ៌នាបានច្បាស់
|
|
- រួមបញ្ចូលមតិយោបល់ពន្យល់លទ្ធផលនិងច្បាប់ហ្គេម
|
|
- រៀបចំកូដជាផ្នែកមានរបៀប
|
|
|
|
## តម្រូវការដាក់ស្នើ
|
|
|
|
### ឯកសារដឹកនាំ
|
|
|
|
1. **ឯកសារហ្គេមពេញលេញ**៖ នេះរួមមានឯកសារ HTML, CSS និង JavaScript ទាំងអស់ដែលចាំបាច់ដើម្បីដំណើរការហ្គេម
|
|
2. **README.md**៖ ឯកសារពិពណ៌នាអំពី៖
|
|
- របៀបលេងហ្គេម
|
|
- លក្ខណៈបញ្ចប់ដែលបានអនុវត្ត
|
|
- សេចក្ដីណែនាំសម្រាប់ចាប់ផ្ដើមឡើងវិញ
|
|
- មុខងារពិសេស ឬមេកានិចបន្ថែម
|
|
3. **មតិពន្យល់កូដ**៖ ពន្យល់ច្បាស់លាស់អំពីលូហ្គិច និងalgorithm ក្នុងហ្គេមរបស់អ្នក
|
|
|
|
### បញ្ជីពិនិត្យសម្រាប់សាកល្បង
|
|
|
|
មុនដាក់ទៅ សូមធានាឲ្យហ្គេមរបស់អ្នក៖
|
|
|
|
- [ ] **ដំណើរការជោគជ័យដោយគ្មានកំហុស** នៅក្នុងកុងសូលកម្មវិធី
|
|
- [ ] **អនុវត្តលក្ខខ័ណ្ឌបញ្ចប់ច្រើនប្រភេទ** ដូចបានបញ្ជាក់
|
|
- [ ] **ចាប់ផ្ដើមឡើងវិញបានឡើងវិញ** ជាមួយស្ថានភាពស្អាត
|
|
- [ ] **ផ្តល់មតិច្បាស់លាស់** ទៅអ្នកលេងអំពីស្ថានភាពហ្គេម
|
|
- [ ] **ប្រើ JavaScript ទាន់សម័យ** និងការអនុវត្តល្អបំផុត
|
|
- [ ] **មានឯកសារពេញលេញ** ក្នុង README.md
|
|
|
|
## វិធីវាយតម្លៃ
|
|
|
|
| ការវាយតម្លៃ | ល្អឥតខ្ចោះ (4) | អាចទទួលយកបាន (3) | កំពុងអភិវឌ្ឍ (2) | ចាប់ផ្ដើម (1) |
|
|
|--------------|------------------|----------------------|-------------------|---------------|
|
|
| **មុខងារហ្គេម** | ហ្គេមពេញលេញមានលក្ខខណ្ឌបញ្ចប់ច្រើន ចាប់ផ្ដើមឡើងវិញរលូន និងបទពិសោធន៍លេងល្អ | ហ្គេមពេញលេញ មានលក្ខខណ្ឌបញ្ចប់មូលដ្ឋាននិងមុខងារចាប់ផ្ដើមឡើងវិញប្រើបាន | ហ្គេមមួយផ្នែក អនុវត្តលក្ខខណ្ឌបញ្ចប់ខ្លះៗ ចាប់ផ្ដើមឡើងវិញមានបញ្ហាខ្នាតតូច | ហ្គេមមិនពេញលេញមុខងារកំណត់ និងមានកំហុសធំ |
|
|
| **គុណភាពកូដ** | កូដស្អាត រៀបចំបានល្អ ប្រើ JavaScript ថ្មីៗ មានមតិយោបល់ពេញលេញ និងរចនាសម្ព័ន្ធល្អ | កូដរៀបចំបានល្អ ប្រើសំណុំរូបមន្តថ្មីៗ មតិត្រឹមត្រូវ និងរចនាសម្ព័ន្ធច្បាស់លាស់ | រៀបចំកូដមូលដ្ឋាន ប្រើរូបមន្តបច្ចុប្បន្នខ្លះៗ មតិតិច | រៀបចំកូដមិនបានល្អ សរសេរចាស់ មិនគ្រប់គ្រាន់មតិ និងរចនាសម្ព័ន្ធខ្សោយ |
|
|
| **បទពិសោធន៍អ្នកប្រើ** | លំហាត់លេងយ៉ាងស្រួល នឹងមានគោលការណ៍ច្បាស់ លទ្ធផលល្អ និងបញ្ចប់/ចាប់ផ្ដើមឡើងវិញទាក់ទាញ | លំហាត់លេងល្អ មានគោលការណ៍ និងមតិយោបល់គ្រប់គ្រាន់ ចាប់ផ្ដើមឡើងវិញប្រើបាន | លំហាត់លេងមូលដ្ឋាន មានគោលការណ៍តិច និងមតិយោបល់កំណត់ | លំហាត់លេងគ្រាន់តែច្របូកច្របល់ គ្មានគោលការណ៍ និងមតិអ្នកប្រើមិនល្អ |
|
|
| **ការអនុវត្តបច្ចេកទេស** | បង្ហាញជំនាញខ្ពស់ក្នុងការអភិវឌ្ឍហ្គេម ការគ្រប់គ្រងព្រឹត្តិការណ៍ និងស្ថានភាព | បង្ហាញការយល់ដឹងល្អ ក្នុងមូលដ្ឋានហ្គេម និងការអនុវត្តល្អ | យល់ដឹងមូលដ្ឋាន និងអនុវត្តបានត្រឹមត្រូវ | យល់ដឹងកំណត់ និងអនុវត្តខ្សោយ |
|
|
| **ឯកសារ** | README ពេញលេញ ជាមួយការណែនាំច្បាស់ កូដពន្យល់ល្អ និងបញ្ជាក់ការសាកល្បង | ឯកសារល្អ មានការណែនាំ និងពន្យល់គ្រប់គ្រាន់ | ឯកសារមូលដ្ឋាន មានការណែនាំតិច | ឯកសារខ្វះ ឬមិនមាន |
|
|
|
|
### កម្រិតពិន្ទុវាយតម្លៃ
|
|
- **ល្អឥតខ្ចោះ (16-20 ពិន្ទុ)**៖ លើសកំណត់ជាមួយលក្ខណៈច្នៃប្រឌិត និងការអនុវត្តល្អ
|
|
- **អាចទទួលយកបាន (12-15 ពិន្ទុ)**៖ ตรงตามทุกតម្រូវការជាមួយការអនុវត្តរឹងមាំ
|
|
- **កំពុងអភិវឌ្ឍ (8-11 ពិន្ទុ)**៖érielตรงភាពត្រូវបានដល់ភាគច្រើន បញ្ហាតិចតួច
|
|
- **ចាប់ផ្ដើម (4-7 ពិន្ទុ)**៖ ตรงความត្រូវการខ្លះ ប៉ុន្តែតំរូវការនៅឆ្ងាយទៅ
|
|
|
|
## ឧបករណ៍រៀនបន្ថែម
|
|
|
|
- [MDN គណបក្សអភិវឌ្ឍហ្គេម](https://developer.mozilla.org/en-US/docs/Games)
|
|
- [មេរៀនអភិវឌ្ឍហ្គេម JavaScript](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
|
|
- [ឯកសារ API ក្រឡាចត្រង្គ](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
|
|
- [គោលការណ៍រចនាហ្គេម](https://www.gamasutra.com/blogs/)
|
|
|
|
> 💡 **របៀបពិសេស**៖ ចាប់ផ្ដើមដោយសាមញ្ញ ហើយបន្ថែមលក្ខណៈដោយជំហាន។ ហ្គេមសាមញ្ញដែលបានផ្ដល់ប្រសិទ្ធភាពល្អលើសហ្គេមស្មុគស្មាញដែលមានខុសត្រូវ!
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ការបដិសេធ**៖
|
|
ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំនឹងភាពត្រឹមត្រូវ ក៏សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិកម្មអាចមានការខុសឆ្គង ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានគេចាត់ទុកជាដើមទិន្នន័យដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ អ្នកគួរជ្រើសរើសការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |