Cách lập trình game là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề cách lập trình game . Trong bài viết này, coder.com.vn sẽ viết bài Hướng dẫn cách lập trình game đơn giản cho người mới bắt đầu 2020
1. Design
Lời khuyên
Bạn đã có một ý tưởng tuyệt vời*
tuy nhiên làm cách nào để bạn có khả năng viết nó lên giấy?
mỗi người sẽ có một cách riêng. một vài có khả năng soạn tài liệu lên đến 6 trang. những người xung quanh, giống như tôi, chỉ viết một trang ghi chú khá cẩu thả, chỉ có khả năng một mình hiểu. Thành thật thì tôi không biết điều gì tối ưu cho người dùng tuy nhiên tôi có thể đưa rõ ra gợi ý về những cái gì cần viết:
- Hook – mồi câu: Điều gì làm cho ý tưởng trò chơi của bạn tuyệt vời? Đối với tôi, đây là điều tối quan trọng để viết ra. Một khi bạn cầm bắt được điều này, bạn có khả năng viết xuống ba điểm tiếp theo dễ dàng hơn nhiều. Trò chơi của bạn có phải là thứ thúc đẩy tư duy không? Hay gây tranh cãi? Là nó có một kết cục bất ngờ? Hoặc, nó đang làm điều gì đó chưa bao giờ được hành động trước đây?
- Mechanic – cách chơi: người chơi của bạn cần phải làm gì? , vì mục đích gì? đây là phần gameplay của bạn. Nó có thể giản đơn như cách nhấn QWOP để di chuyển tại trò chơi QWOP, hay bấm những nút để nói chuyện tại Mystic Messenger, tới hàng tấn combo wombo nút bấm tại Dwarf Fortress.
- Story – Cốt chuyện: người chơi nên nhớ về cốt chuyện của trò chơi như thế nào? những cảm xúc nào họ nên có khi hoàn thành trò chơi của bạn? Mỗi trò chơi đều có một câu chuyện. có khả năng là những con số tại 2048, hay xây dựng một đất nước trong Civilization, hoặc các tương tác lặng thầm tại Monument Valley. Hãy nghĩ về câu chuyện sẽ được người chơi nhận thấy tại trò chơi của bạn.
- Mood – cảm xúc: Trò chơi của bạn xây dựng ấn tượng gì? Hình ảnh? Âm thanh? ấn tượng trước tiên cực kì là quan trọng. tuyệt hảo đầu tiên sẽ cuốn game thủ vào trò chơi. Có lẽ, bạn sẽ cung cấp cho trò chơi của bạn một sự rung cảm retro với đồ họa pixel và âm nhạc chiptune.
Bạn gặp khó khăn để nghĩ ra một ý tưởng hay ho, đừng lo bạn không đơn giản là người độc nhất
Hãy nhập cuộc game hackathon/jam. Bạn , những người nhập cuộc khác sẽ được giao nhiệm vụ tạo ra trò chơi tại một khoảng thời gian nhanh chóng. tại suốt các bước đấy, bạn sẽ được hỗ trợ từ những jammer khác. Bạn sẽ cảm thấy vô cùng phấn khích , sáng xây dựng cứ thế tuôn ra thôi. nếu không biết bắt đầu từ đâu? Hãy thử Ludum Darevà một trong những game hackathon/jam lớn nhất.
- Giữ một danh sách các ý tưởng. Tôi và các nhà phát triển khác luôn ghi lại ý tưởng của mình. bằng việc đấy, chúng ta có khả năng xem xét thêm lại khi bị bí ý tưởng mới.
- Khi nảy ra ý tưởng mới, hãy dừng Mọi thứ bạn đang làm , viết ý tưởng đó xuống.
Resources
Để ghi Note:
- Notes for Mac (
)
- Google Docs (
)
- Trello
Để làm việc:
- Google Drive
- GitHub (
) cần có git , Unity .gitignore.
- Unity Collab. Dễ nhất trong cả ba nhưng phiên bản miễn phí có nhiều giới hạn.
Game design:
- The Art of Game Design bởi Jesse Schell
- Gamasutra
2. Art
Lời khuyên
nếu như bạn đã lên chiến lược cho ý tưởng của mình; xin chúc mừng, bạn đã thực hiện được khá tuyệt vời! hiện nay, bạn có thể phát triển trò chơi thực sự.
(Nếu bạn không biết bí quyết viết code, tôi chỉ bạn nên hành động bước 3. Code, trước Art)
chẳng rõ làm sao để vẽ? Đừng lo lắng. bất cứ ai cũng có thể vẽ ra một thứ xinh tươi với 3. luật lệ hình ảnh căn bản: sắc màu, hình dạng, không gian.
Xem thêm: Phương pháp để học một ngôn ngữ lập trình mới hiệu quả mới nhất 2020
UI
Hãy suy nghĩ về bí quyết bạn có thể giúp cho nó trở nên độc đáo – có một bảng phối màu riêng biệt, phông chữ, hình dạng và (các) biểu tượng – nhưng vẫn thực tiễn. những thông tin đặc biệt có thể đọc rõ và dễ hiểu hay không? Có mắc phải vấn đề phân tâm do màu sắc / phông chữ / biểu tượng?
2 Animation
Bạn có hai lựa chọn:
- Bone-based. Vẽ ra từng khung hình của animation. Đối với điều này, bạn cần phải dùng các sprite sheet với TexturePacker (hoặc nếu bạn đang sử dụng Unity, thì xài Sprite Packer).
- Bone-based. Vẽ từng chi tiết động, sau đó tạo hiệu ứng cho vị trí. có thể nhanh hơn, đơn giản hơn và để dành bộ nhớ. nếu như bạn đang hành động 2. , sử dụng Unity, hãy thử chỉnh sửa các trục sprites hoặc Anima2D.
Misc
dưới đây là một vài bí kíp miscellaneous art tip ứng dụng không chỉ trong trò chơi mà còn tại những phần mềm khác.
Tile patterned asset để xây dựng hình ảnh lát gạch và lưu bộ nhớ.
Xem thêm: Bảng xếp hạng mức độ ảnh hưởng của các ngôn ngữ lập trình 2020
9-patch/9-slice asset với các đường viền chẳng thể mở rộng rãi được nhưng bên trong thì có khả năng mở rộng rãi để xây dựng các hình ảnh có thể mở bát ngát và giúp để dành bộ nhớ.
Đặt kích thước của từng asset là bội số của 4 hoặc lũy thừa là 2. để để dành bộ nhớ. việc làm này tùy thuộc vào cách bạn đang nén asset.
nếu như bạn đang sử dụng Photoshop, hãy dùng “File > Export > Layers to Files” để xuất nhanh mỗi layer dưới dạng file (ví dụ: PNG, JPEG).
Resources
Tạo UI:
- Photoshop (
).
- Sketch.
Cách để tạo UI đẹp:
- Google Material Design (
).
- Apple’s UI Do’s and Don’ts.
Xây dựng 2 assets:
- Photoshop (
).
- Gimp.
- Paint Tool SAI. nếu bạn thích phong cách smooth/anime.
Tạo 3. assets:
- Blender (
). rất mạnh nhưng khó học
- Maya. Tốt cho animation.
- Max. Tốt cho rendering.
Các asset miễn phí:
- Behance (
). Fonts + icons + các design khác.
- KennyNL. HQ, UI/2D/3D art.
- Open Game Dev Art. library cực lớn những khoáng sản art của user.
Cảm hứng:
- Dribbble. các thiết kế từ designers.
- Behance (
). các thiết kế từ bất kỳ ai.
- itch.io (
). các indie game xuất sắc.
3 Code
1 2 3 | Debug.Log(“Oh boy! Time to code!! ^_^”); |
Bước thứ nhất của bạn? Quyết định về một game engine và một IDE (Integrated Development Environment – về căn bản, nó là một áp dụng cho phép bạn viết mã).
Bước thứ hai? Lập trình.
Bạn chẳng rõ cách viết code? Đừng lo lắng. Bạn có khả năng học.
các nguyên tắc căn bản của CS này là đủ để khởi đầu. (Tất cả các ví dụ code ở đây là tại C ++, một trong các ngôn ngữ chủ đạo mà framework tăng trưởng game Unity 3. sử dụng.)
1) Kiểu dữ liệu (Data type) , biến (variable). thực chất của Code chủ đạo là Data. Data đó được lưu giữ trong các biến. Bạn có khả năng khai báo một biến như sau:
1 2 3 | int i = 0; |
trong số đó, int
là kiểu dữ liệu. i
là tên biến. , = 0
gán 0 là giá trị biến.
Vậy đây chính là gì?
1 2 3 | string s = “pusheen is best cat”; |
string
là kiểu dữ liệu. s
là tên biến. và“pusheen is best cat”
là giá trị biến.
một số kiểu dữ liệu phổ biến: int
, long
là số nguyên. `float
, double
là số thập phân. và chuỗi (string) là bất kỳ câu nào.
Bạn muốn biết thêm? Hãy tham khảo thêm tại đây.
2 If statement. nếu như câu lệnh bình chọn nếu một điều kiện nhất định là đúng. nếu như có, thì code bên trong câu lệnh if
sẽ được chạy:
1 2. 3. 4 5 | if (true) //true is always true! doThings(); //I’m inside the if statement’s brackets; run me! |
nếu điều khiếu nại không đúng, sẽ chuyển qua đánh giá những điều kiện else if
khác nếu có:
1 2 3. 4. 5. 6. 7 8. 9. 10 11 12 13 14 15 | int i = 1; if (i == 0) doThings(); else if (i == 1) doOtherThings(); //I’m gonna be run! |
Hoặc, chỉ cần chạy một số mã khác với else
:
1 2. 3 4. 5 6. 7. 8 9 10 11 12 13 | int i = 60000; if (i == 0) doThings(); else doOtherThings(); //I’m still gonna be run. |
3 For/while loop. trong khi những vòng lặp code tiếp tục khi một điều khiếu nại chắc chắn vẫn đúng, khi điều khiếu nại là sai, vòng lặp while loop sẽ thoát.
1 2. 3 4 5. 6 7 | while (someBool == true) //condition doThings(); //We’ll keep doing things until someBool is false |
Vòng lặp while loop này sẽ chạy trong bao lâu?
1 2. 3. 4 5 6. 7 | while (true) doThings(); |
Đối với vòng lập là while loop trong đó:
1 2. 3 4. 5 6. 7. 8. 9 10 11 | int i = 0; while (i < condition) doThings(); i++; //increment after doing things |
Điều đấy tương tự với:
1 2. 3. 4. 5. 6 7. | for (int i = 0; i < condition; i++) doThings(); |
4 Cấu trúc dữ liệu cơ bản: Chúng ta có dữ liệu , giờ thì cần phải đánh giá , dùng dữ liệu đó. bên cạnh đó, ta cũng có thể lưu giữ dữ liệu đấy thành một dạng cấu trúc – hay thường được gọi là cấu trúc dữ liệu. Cấu trúc dữ liệu bạn cần phải biết là arrays, listsvà queues, stacksvà và sets.
ví dụ nhanh về Arrays:
1 2 3. 4. 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* Say you have numbers 0 through 9. that you want to store somewhere. You can store it in an array! */ int[]arr=newint[10]; /* The [] brackets declare an array. We assign a new array to arr of size 10 – that means it can hold 10 elements. Arr now looks like this: arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for (int i=0; i<10; i++) arr[i]=i; //We assign whatever i is to the the ith index of arr. //Did you know data structures’ indices start at 0? /* After the for loop, our array data structure should look like this! arr = [ 0 1 2. 3 4. 5. 6 7. 8. 9. ] */ |
5 Functions và exceptions: các Function về cơ bản là một dòng mã nhỏ dại miêu tả một chuỗi mã lớn. Ví dụ: nếu bạn call:
1 2 3 | EatBread(); |
, EatBread() trông như thế này:
1 2 3. 4 5 6. 7 8 9 | void EatBread() //<—this is a function. breadAte=true; printf(“I CAN FEEL THE CARBS COURSING THROUGH MY BODY”); |
Sau đó, lệnh gọi EatBread()
thực sự là một cuộc gọi đến hai câu lệnh tại EatBread()
function.
nếu như bạn làm điều gì đấy không đúng, exception sẽ xuất hiện. Chúng là các lỗi màu đỏ bức xúc ở đấy để cho người dùng biết hãy revise lại nó.
Để nghiên cứu thêm về những function, hãy vào đây; cho trường hợp exception, hãy vào đây.
Sau đấy, có những thứ khác bạn cần phải biết:
6. phương ngữ lập trình. Bạn sẽ viết code bằng ngôn ngữ nào? C ++? Javascript? C #? Mỗi ngôn ngữ được viết hơi khác nhau , có thể cho phép bạn làm các việc không giống nhau.
7. API (Giao diện lập trình ứng dụng). khi bạn biết các điều cơ bản, bạn sẽ cần tìm hiểu API chi tiết của công cụ trò chơi của mình. Về căn bản, các API là một loạt các công cụ mạnh mẽ được bao vây trong những lớp , công dụng giản đơn mà bạn có khả năng gọi. API giúp cuộc sống dễ dàng hơn. cách dễ dàng hơn.
8 Quan sát vào một dự án có sử dụng game engine mà bạn đã chọn. Unreal và Unity đều có rất nhiều dự án miễn phí mà bạn có thể tìm đọc. việc làm này sẽ cho phép bạn tìm hiểu cách Tất cả mọi thứ cùng với nhau. bên cạnh đó, bạn có thể lên ý tưởng trò chơi của riêng mình.
1 2 3 4. 5. 6 7. 8. 9. | if (you.getThisFar()==true) veryProud=true; you.didIt(); //CURRENT MOOD: THE SHKEST |
Lời khuyến khích: Tôi biết việc viết code là đáng sợ lúc đầu khi bạn gặp phải các rào cản liên tục thất bại. Nó không phải là bạn dở code mà đấy là một thử thách, bạn sẽ phải thất bại để sở hữu thắng lợi.
tuy nhiên nó cũng giống như bất kỳ khả năng nào khác khi mà bạn sẽ tốn thời gian để học hỏi , nhuần nhuyễn.
Có thể bạn quan tâm: Các ngôn ngữ lập trình đáng học nhất trong năm 2020
Nguồn: https://techtalk.vn/