← Quay lại portfolio

Dự án của tôi / Game

Pocket Planet

Chơi ngay / Play now

Máy tính & điện thoại · Chơi ngay trên trình duyệt

Xem cách chơi ↓

Sáu hòn đảo nhỏ, năm nhà thám hiểm và những cú nhảy tìm kho báu. Chọn màn chơi, nhặt ngọc, vượt bẫy và chạm cờ đích — một game đi cảnh 2D chơi ngay trên trình duyệt.

Vai trò
Thiết kế màn chơi · Lập trình gameplay · Giao diện và âm thanh
Thời gian
Tháng 10, 2026
Pocket Planet: chọn một trong sáu màn chơi và năm biến thể màu nhân vật.
Pocket Planet: chọn một trong sáu màn chơi và năm biến thể màu nhân vật.
map chọn tự do
06
nhà thám hiểm
05
tim mỗi lượt
03

TRẢI NGHIỆM

Sáu thế giới nhỏ. Một chuyến đi thật vui.

Chọn nhân vật, khám phá một hòn đảo và tới cờ vàng. Phải lấy đủ mọi coin và 3 ngọc mới hoàn thành; tim hồi máu không bắt buộc. Nhà máy cần công tắc, Mặt trăng tím cần chìa khóa.

Sáu hòn đảo để khám phá

Vườn xanh, hang đất, sa mạc lửa, đỉnh tuyết, nhà máy đá và mặt trăng tím. Chọn bất kỳ map nào ngay từ đầu.

Một cú nhảy, nhiều cách chơi

Thu đủ mọi xu và ba viên ngọc, giẫm slime và né quái có gai. Thang, lò xo, bệ di động, băng chuyền và cửa khóa tạo thử thách riêng.

Nhỏ, vui và có thể chơi lại

Năm màu nhân vật, ba tim, hai checkpoint mỗi map, nhạc tự soạn và tiếng Kenney vui nhộn. Lưu kỷ lục trong trình duyệt.

Cách chơi

Trên máy tính

← → / A D
Di chuyển
Space / W / ↑
Nhảy · giữ để nhảy cao
↑ / ↓
Leo thang · xuống / cúi
R / Esc
Về checkpoint · tạm dừng

Trên điện thoại

  1. Xoay ngang màn hình. Giữ Trái / Phải và chạm Nhảy cùng lúc.
  2. Dùng hai nút lên / xuống để leo thang hoặc xuống bệ.
  3. Chạm nút tạm dừng để chơi lại, chọn map hoặc điều chỉnh nhạc và hiệu ứng.

Chạm bẫy mất một tim; rơi xuống vực trở về checkpoint. Hết tim thì chơi lại map. Reset không hồi tim hoặc tạo lại vật phẩm. Trang game cần JavaScript và Canvas 2D; âm thanh bắt đầu sau thao tác của bạn.

Công nghệ làm nên sản phẩm

Ngôn ngữ và công nghệ sử dụng

  • TypeScript
  • Next.js
  • Canvas 2D API
  • Web Audio API

Câu chuyện sản phẩm

Pocket Planet

01 — 04

Bài toán

Làm thế nào để một bộ sprite trở thành một trò chơi có thể khám phá? Pocket Planet bắt đầu từ New Platformer Pack của Kenney: nhân vật phi hành gia, địa hình, quái và vật phẩm có cùng ngôn ngữ hình ảnh vui nhộn. Đây là tài nguyên 2D, không phải mô hình 3D. Mục tiêu là tạo sáu màn chơi có thể chọn ngay từ đầu, mỗi màn giới thiệu một cơ chế khác nhau. Người xem portfolio có thể vào chơi trực tiếp, bằng bàn phím hoặc màn hình cảm ứng, không cần tài khoản.

Phần tôi phụ trách

Tôi bố trí tuyến đường chính, vực, nhánh thưởng trên cao, quái và hai điểm lưu tiến trình cho từng màn. Người chơi phải lấy đủ mọi đồng xu và ba viên ngọc mỗi màn rồi tới đích; tim hồi máu không bắt buộc. Cửa khóa vẫn cần công tắc hoặc chìa khóa. Những màn sau thêm băng trơn, bệ di động, bệ rơi, lò xo, băng chuyền và cửa mở bằng công tắc hoặc chìa khóa. Tôi lập trình mô phỏng, va chạm, điều khiển nhiều ngón, giao diện Việt/Anh, lưu thành tích trong trình duyệt và vòng chơi từ chọn màn chơi đến kết quả. Sprite và hiệu ứng âm thanh gốc do Kenney tạo, sử dụng theo CC0. Giai điệu nền và nhạc chiến thắng được tổng hợp bằng Web Audio; tôi không nhận là tác giả bộ sprite.

Cách giải quyết

Mô phỏng chạy bước cố định 60 Hz, tách khỏi giao diện React. Canvas 2D vẽ các sprite atlas, nền chuyển động theo camera và vật thể trong vùng nhìn. Nhấn nhảy ngắn hoặc giữ lâu cho độ cao khác nhau; coyote time và jump buffering cho phép nhảy ngay sau khi rời bệ hoặc ghi nhớ lệnh nhảy trước khi tiếp đất. Bộ xử lý đầu vào theo dõi từng phím và từng ngón độc lập. Ẩn tab, tạm dừng hoặc xoay điện thoại dọc sẽ dừng game và âm thanh; người chơi chủ động tiếp tục. Nhạc và tiếng hiệu ứng có công tắc riêng. Nếu trình duyệt không lưu được thành tích hoặc không có âm thanh, game vẫn chơi được; nếu tải hình lỗi, giao diện cho phép thử lại. Trò chơi là một tính năng trong portfolio hiện có, không thêm backend hay tài khoản. Trang giới thiệu chỉ tải nội dung và ảnh; mô phỏng, atlas và âm thanh nằm ở trang chơi riêng.

Kết quả & bài học

Bản chơi local có sáu màn chơi mở sẵn, năm biến thể màu nhân vật, ba tim, điểm lưu tiến trình, đồng xu và ba viên ngọc mỗi màn. Thành tích lưu riêng theo màn, gồm thời gian tốt nhất và số xu/ngọc cao nhất. Người chơi có thể tạm dừng, chơi lại hoặc chuyển sang màn tiếp theo. Kiểm tra tự động bao phủ thu đủ xu/ngọc và tới đích cả sáu màn bằng mô phỏng thật, luật nhảy/va chạm, tim, điểm lưu tiến trình, vật phẩm, cửa khóa và lưu thành tích. Kiểm tra trình duyệt bao phủ điều khiển, chọn màn, tạm dừng, xoay màn hình và lỗi tải. Đây là game một người chơi; không có chế độ nhiều người chơi hay bảng xếp hạng trực tuyến. Kiểm tra giả lập không thay thế trải nghiệm trên từng điện thoại thực tế.

Dự án tiếp theoĐông Ngô — Hệ thống ERP trên Odoo