Categories: App

Hướng dẫn tự học lập trình game cho người mới bắt đầu

Published by

Dù bạn ở bất kỳ cấp độ nào, bạn cũng có thể trở thành lập trình viên game. Hai năm trước, tôi đã nghĩ rằng điều đó là không thể, nhưng tôi đã thử và thành công. Việc học lập trình game không dễ dàng, nhưng kết quả xứng đáng. Giờ đây, tôi nhận ra rằng làm game giống như bất kỳ kỹ năng nào khác – bạn phải thử, thất bại, và cải thiện.

Tôi đã tự học mọi thứ mình biết và giờ tôi sẽ hướng dẫn lại cho bạn. Dưới đây là chia sẻ về kiến thức để tự học lập trình game hay ho như thế nào nhé!

Để phát triển một trò chơi, bạn phải trải qua 6 giai đoạn: Design, Art, Code, Audio, hoàn thiện, quảng cáo

1. Design

Lời khuyên

Bạn đã có một ý tưởng tuyệt vời. Nhưng làm thế nào để bạn có thể viết nó lên giấy? Mỗi người có cách riêng để thực hiện điều này. Một số soạn tài liệu lên đến 60 trang. Một số khác, giống như tôi, chỉ viết một trang ghi chú cẩu thả, chỉ có một mình hiểu. Thực tế là tôi không biết điều gì là tốt nhất cho bạn, nhưng tôi có thể đưa ra một số gợi ý về những gì bạn 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? Đây là điều quan trọng nhất để viết ra. Một khi bạn nắm bắt được điều này, bạn có thể viết xuống ba điểm tiếp theo dễ dàng hơn. Trò chơi của bạn có thể kích thích tư duy? Gây tranh cãi? Có kết cục bất ngờ? Hoặc, nó đang làm điều gì đó chưa bao giờ được thực hiện trước đây?

  • Mechanic – Cách chơi: Người chơi của bạn cần phải làm gì? Và vì mục đích gì? Đây chính là phần gameplay của bạn. Nó có thể đơn giản như cách nhấn QWOP để di chuyển trong trò chơi QWOP, hay bấm các nút để trò chuyện trong Mystic Messenger, tới hàng tấn combo wombo nút bấm trong 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ó thể là những con số trong 2048, hay xây dựng một quốc gia trong Civilization, hoặc những tương tác thầm lặng trong Monument Valley. Hãy nghĩ về câu chuyện sẽ được người chơi cảm nhận trong trò chơi của bạn.

  • Mood – Cảm xúc: Trò chơi của bạn tạo ấn tượng gì? Hình ảnh? Âm thanh? Ấn tượng đầu tiên rất là quan trọng. Ấn tượng đầu tiên sẽ cuốn người chơi vào trò chơi. Có thể 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 phải là người duy nhất… Hãy tham gia game hackathon/jam. Bạn và những người tham gia khác sẽ được giao nhiệm vụ tạo ra trò chơi trong một khoảng thời gian ngắn. Trong suốt quá trình đó, 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 và sáng tạo cứ thế tuôn ra thôi. Nếu không biết bắt đầu từ đâu? Hãy thử Ludum Dare, 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 cách đó, chúng ta có thể tham khảo 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 và viết ý tưởng đó xuống.

Resources

  • Để làm việc:
    • Google Drive
    • GitHub (Cần có git và Unity .gitignore)
    • Unity Collab (Dễ nhất trong cả ba nhưng phiên bản free 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 bạn đã lên kế hoạch cho ý tưởng của mình, xin chúc mừng, bạn đã làm được khá tuyệt vời! Bây giờ, bạn có thể phát triển trò chơi thực sự. (Nếu bạn không biết cách viết code, tôi khuyên bạn nên thực hiện bước 3, Code, trước Art).

Không biết làm thế nào để vẽ? Đừng sợ. Bất cứ ai cũng có thể vẽ ra một thứ đẹp đẽ với 3 nguyên tắc hình ảnh cơ bản: màu sắc, hình dạng, không gian.

UI

Hãy suy nghĩ về cách bạn có thể làm 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à biểu tượng – nhưng vẫn thực tiễn. Thông tin quan trọng có thể đọc rõ và dễ hiểu hay không? Có gặp phải vấn đề phân tâm do màu sắc / phông chữ / biểu tượng?

2D animation

Bạn có hai lựa chọn:

  • Bone-based: Vẽ từng khung hình của animation. Sử dụng sprite sheet với TexturePacker (hoặc nếu bạn đang sử dụng Unity, thì xài Sprite Packer).
  • Boneless-based: Vẽ từng chi tiết động, sau đó tạo hiệu ứng cho vị trí. Có thể nhanh hơn, dễ dàng hơn và tiết kiệm bộ nhớ. Nếu bạn đang thực hiện 2D và 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 số mẹo miscellaneous art tip áp dụng không chỉ trong trò chơi mà còn trong các phần mềm khác.

  • Tile patterned asset để tạo hình ảnh lát gạch và tiết kiệm bộ nhớ.
  • 9-patch/9-slice asset với các đường viền không thể mở rộng được nhưng bên trong thì có thể mở rộng để tạo các hình ảnh có thể mở rộng và giúp tiết kiệm 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 để tiết kiệm bộ nhớ. Điều này phụ thuộc vào cách bạn đang nén asset.
  • Nếu bạn đang sử dụng Photoshop, hãy sử dụng “File > Export > Layers to Files” để xuất nhanh mỗi layer dưới dạng tệp (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

Tạo 2D assets

  • Photoshop
  • Gimp
  • Paint Tool SAI (Nếu bạn thích phong cách smooth/anime)

Tạo 3D assets

  • Blender (Cực kì 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 các tài nguyê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 cứ ai)
  • itch.io (Những indie game tuyệt vời)

3. Code


Debug.Log("Oh boy! Time to code!! ^_^");

Bước đầu tiên của bạn? Quyết định về một game engine và một IDE (Integrated Development Environment - về cơ bản, nó là một ứng dụng cho phép bạn viết mã).

Bước thứ hai? Lập trình.

Bạn không biết cách viết code? Đừng lo lắng. Bạn có thể học.

Những nguyên tắc cơ bản của CS này là đủ để bắt đầu. 
Ở đây là một số ví dụ cơ bản trong C++ (ngôn ngữ chính mà framework phát triển game Unity 3D sử dụng):

1) Kiểu dữ liệu (Data type) và biến (variable): Bản chất của Code chính là Data. Data đó được lưu trữ trong các biến. Một số kiểu dữ liệu phổ biến: int và long là số nguyên, float và double là số thập phân, và chuỗi (string) là bất kỳ câu nào.

2) If statement: Nếu câu lệnh đánh giá nếu một điều kiện nhất định là đúng, thì code bên trong câu lệnh if sẽ được chạy. Nếu điều kiện không đúng, sẽ chuyển qua đánh giá các điều kiện else if khác nếu có.

3) For/while loop: Trong khi vòng lặp code tiếp tục khi một điều kiện nhất định vẫn đúng, khi điều kiện là sai, vòng lặp while loop sẽ thoát.

4) Cấu trúc dữ liệu cơ bản: Arrays, lists, queues, stacks, và sets.

5) Functions và exceptions: Functions là một dòng mã nhỏ mô tả một chuỗi mã lớn. Exceptions là những lỗi giận dữ màu đỏ để cho bạn biết hãy revise lại nó.

6) Ngôn 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ó cú pháp và khả năng khác nhau.

7) API (Giao diện lập trình ứng dụng): Khi bạn biết những điều cơ bản, bạn sẽ phải tìm hiểu API cụ thể của công cụ trò chơi của mình. API giúp cuộc sống dễ dàng hơn.

8) Nhìn 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ể tham khảo. Điều này sẽ cho phép bạn khám phá cách mọi thứ kết hợp với nhau. Ngoài ra, bạn có thể xây dựng ý tưởng trò chơi của riêng mình.

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 những rào cản liên tục thất bại. Nhưng đừng lo, đó không có nghĩa là bạn dở code, đó chỉ là một thách thức. Bạn sẽ thất bại để có được thành công.

Nhưng nó cũng như bất kỳ kỹ năng nào khác, bạn sẽ tốn thời gian để học hỏi và thuần thục.

TopDev Blog sẽ còn cập nhật thêm thông tin về tự học lập trình game cho các bạn sau nhé! Còn nếu muốn tham khảo thêm các bài viết liên quan về Game nè:

- Trong thế giới lập trình game, sáng tạo là điều không…
- Mẫu bảng mô tả công việc lập trình Game
- Top 5 Ngôn Ngữ Lập Trình Game Để Học Hiện nay

Đừng bỏ lỡ qua các việc làm lập trình Game mới nhất cho bạn tại TopDev nhé!

This post was last modified on Tháng Năm 7, 2024 2:57 chiều

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

5 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

5 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

5 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

5 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

5 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

5 ngày ago