KHÓA HỌC

Kiến Trúc Phần Mềm & Thiết Kế Engine

THÔNG TIN CƠ BẢN
  • people SĨ SỐ
    6
    / lớp
  • access_time THỜI LƯỢNG
    3
    tháng
  • credit_card HỌC PHÍ
    9,000,000₫
    3,000,000₫/tháng
  • ĐĂNG KÝ HỌC
*Mức học phí 9,000,000₫ dành cho học viên học tại trung tâm (offline), học phí dành cho học viên online là 13,500,000₫
  • Bạn biết bao nhiêu Game Engine?

    Nếu xem Game là 1 sản phẩm, ta học cách sử dụng Game Engine để tạo ra nó.
    Nếu Game Engine là 1 sản phẩm thì phương pháp nào tạo ra chúng?
    Phương pháp tạo ra các Engine này là 1 học phần trong các khóa học dài hạn của STDIO Training.

  • Sử dụng công nghệ hay chế tạo công nghệ?

    Sử dụng công nghệ của bên thứ 3 (C#.NET, Xamarin, Java) để tạo ra phần mềm? Hay bạn muốn làm điều lớn lao hơn đó là tạo ra 1 công nghệ mới mang dấu ấn của bạn?

  • Sử dụng chính Game Engine của bạn để phát triển Games

    Khóa học còn mang đến khả năng phát triển games cho học viên, tự tạo ra các sản phẩm giải trí cho chính mình và khách hàng.

  • Phần thưởng cho sự nỗ lực và khác biệt

    Khả năng chế tạo Game Engine và xây dựng công nghệ làm cho học viên STDIO trở nên linh động, mang 2 khả năng: tạo ra công nghệ mới giải quyết các vấn đề chuyên sâu khi các công nghệ hiện tại không phù hợp, thích nghi với mọi yêu cầu từ khách hàng và có khả năng tự học bất kỳ công nghệ mới như Android, iOS hoặc phát triển ứng dụng, web, games.

Các thành phần trong Engine

  • 1

    Tiếp cận - Tổng quan phần mềm & games

    Giới thiệu các khái niệm trong khóa học.

    • Hướng dẫn học viên tiếp cận các tài nguyên miễn phí của STDIO và chương trình.
    • Thống nhất cách gọi chung về phần mềm & game → chương trình.

    Các khái niệm cơ bản.

    • Phần mềm và Games - Sự tương quan và khác biệt.
    • Môi trường thực thi chương trình.
    • Chương trình đa nền tảng.
      • Web (JavaScript, HTML, CSS, ...), C#, Java, Android, iOS là gì?
      • Python là gì?
      • Phần mềm và game là gì?
      • Hướng hiện thực đa nền tảng và cuộc chơi lớn nhất của C/C++.
    • Phương pháp sáng tạo ra ngôn ngữ lập trình mới và công nghệ mới.
    • Cách thức kiến tạo ngôn ngữ lập trình và công nghệ.
    • Vòng đời của chương trình (lựa chọn).

    Thực hành game SNAKE.

    • Giới thiệu game SNAKE và các tính năng cơ bản ở phần tiếp cận.
    CHỦ ĐỀ
    1
    THỜI LƯỢNG
    schedule 3 giờ
  • 2

    Tiếp cận - Vòng lặp trong chương trình

    Giới thiệu và hiện thực vòng lặp chính trong chương trình.

    • Hiện thực đầu vào chương trình.
    • Hiện thực vòng lặp chương trình.

    Thực hành game SNAKE.

    • Nhắc lại danh sách liên kết tự hiện thực.
    • STL và danh sách liên kết std::list trong C++.
    • Thực hành hiện thực SNAKE.
    CHỦ ĐỀ
    2
    THỜI LƯỢNG
    schedule 6 giờ
  • 3

    Tiếp cận - Xử lý nhập xuất trong chương trình

    Lý thuyết xử lý các nhập xuất trong chương trình.

    • Nhập xuất từ các thiết bị khác như gamepad, joy-stick, ...
    • Nhập xuất từ keyboard, mouse.
    • Thực hành điều khiển đối tượng thông qua keyboard.

    Lý thuyết mở rộng.

    • Nhập xuất từ các thiết bị điện tử (thông qua serial port).
    • Demo cho học viên về 1 thiết bị điện tử tự thiết kế điều khiển mouse trên Windows thông qua Driver tích hợp trong STDIO Core D.

    Thực hành game SNAKE.

    • Hoàn chỉnh game SNAKE với điều khiển keyboard.
    • Mở rộng thêm tư duy (lựa chọn).
      • Điều khiển game SNAKE với thiết bị điện tử đơn giản và Driver của STDIO Core D.
    CHỦ ĐỀ
    3
    THỜI LƯỢNG
    schedule 6 giờ
  • 4

    Tiếp cận - Bổ sung kiến thức

    Các thư viện liên kết.

    • Giới thiệu về Memory Layout.
    • Linux vs Windows.
    • Thư viện liên kết tĩnh và động.
    • Hiện thực và sử dụng thư viện liên kết tĩnh và động.

    Tổ chức project - source code (dự án - mã nguồn).

    • Build Script.
    • Build Script của Visual Studio v14+ (C++).
    • Mở rộng (lựa chọn).
      • Build Script dành cho các project của các nền tảng khác: Android, iOS, Customize...

    Cấu hình cho Visual Studio projects.

    Thực hành.

    CHỦ ĐỀ
    4
    THỜI LƯỢNG
    schedule 6 giờ
  • 5

    Kiến trúc - Kiến trúc game engine & kiến trúc phần mềm

    Giới thiệu kiến trúc game engine và kiến trúc phần mềm cần hiện thực trong khóa học.

    • Nhắc lại việc đồng nhất tên gọi game engine và kiến trúc phần mềm → chương trình.
    • Ý nghĩa của chương trình.
      • Tổng quan về game engine, framework phát triển phần mềm, web engine.
      • Game engine, framework, web engine được hiện thực như thế nào?

    Giới thiệu mô hình kiến trúc tổng quan chương trình.

    • Kiến trúc đa tầng.
      • Minh họa bằng kiến trúc của Cocos2d-x, Unity và C# Windows Form Application (.NET Framework).
    • Các module cốt lõi.
    • Các đối tượng hỗ trợ dịch vụ.
    • Các module tính năng.

    Giới thiệu game/ứng dụng dùng để thử nghiệm chương trình (Engine) được tạo ra trong khóa học.

    • Giảng viên giới thiệu sự lựa chọn 1 sản phẩm game/ứng dụng để học viên dùng để thử nghiệm Engine được tạo ra trong khóa học này.
    CHỦ ĐỀ
    5
    THỜI LƯỢNG
    schedule 3 giờ
  • 6

    Kiến trúc - Module lõi - Application & FPS

    Đối tượng Application.

    • Vai trò của Application độc lập hóa chương trình và nền tảng.
    • Minh họa 3 kiến trúc tiêu biểu.
      • Unity.
      • Cocos2d-x.
      • Windows Form Application (C#.NET Framework).
    • Thực hành.

    Giới hạn FPS.

    • FPS và giới hạn FPS trong các ứng dụng.
      • FPS và thị giác.
      • Tần số quét của phần cứng (lựa chọn).
      • Hiện thực việc giới hạn FPS theo phương pháp đơn giản.
      • Module hóa giới hạn FPS.
    • Thực hành.
    CHỦ ĐỀ
    6
    THỜI LƯỢNG
    schedule 6 giờ
  • 7

    Kiến trúc - Module lõi - Scene & SceneManager

    Scene và SceneManager (hay Form và FormManager).

    • Thiết kế Scene.
      • Vai trò phân cảnh/chia nhỏ ứng dụng theo từng cảnh (form).
    • Chuyển đổi các Scene theo cách thông thường.
      • Ưu điểm và nhược điểm.
    • Thiết kế SceneManager.
      • Từ nhược điểm chuyển đổi Scene thông thường, thiết kế SceneManager.
      • Nhắc lại tính đa hình trong lập trình hướng đối tượng.
      • Bổ sung kiến thức về Design Pattern - State Pattern và Singleton Pattern.
      • Thiết kế SceneManager theo phương pháp đơn giản.
      • Phát triển theo đặc tính duy nhất của SceneManager.
    CHỦ ĐỀ
    7
    THỜI LƯỢNG
    schedule 6 giờ
  • 8

    Kiến trúc - Module lõi - Profiles

    Giới thiệu về module Profiles (ApplicationProfiles hay GameProfiles).

    • Lưu trữ trạng thái của chương trình.
    • Nhắc lại kiến thức.
      • Xử lý tính toán trên nhị phân.
      • Xử lý file nhị phân.
    • Hiện thực Profiles (đảm bảo tính duy nhất của đối tượng).

    Mã hóa dữ liệu, chống hack dữ liệu lưu trữ (lựa chọn).

    CHỦ ĐỀ
    8
    THỜI LƯỢNG
    schedule 6 giờ
  • 9

    Kiến trúc - Module lõi - Pause và Resume

    Schedule & Unschedule (Pause).

    • Nhắc lại vòng lặp chính.
    • Vòng lặp chính và cập nhật trạng thái.
    • Tạm dừng và khôi phục cập nhật trạng thái của đối tượng.
      • Scene, Object.
    CHỦ ĐỀ
    9
    THỜI LƯỢNG
    schedule 6 giờ
  • 10

    Kiến trúc - Module dịch vụ - Đồ họa

    Thư viện hỗ trợ đồ họa.

    • Đường nét cơ bản: điểm, đường thẳng, tam giác, đường tròn...
    • Đồ họa với hình ảnh.
    • Đồ họa với các phép biến đổi hình học.
    CHỦ ĐỀ
    10
    THỜI LƯỢNG
    schedule 3 giờ
  • 11

    Kiến trúc - Module dịch vụ - Âm thanh

    Quản lý âm thanh.

    • Các chuẩn âm thanh thường dùng.
    • Phân loại âm thanh.
      • Nhạc nền và hiệu ứng âm thanh.
      • Quản lý nhạc nền và hiệu ứng âm thanh.
    • Pre-load hay JIT?

    Thực hành tạo SoundPlayer quản lý âm thanh trong chương trình.

    CHỦ ĐỀ
    11
    THỜI LƯỢNG
    schedule 3 giờ
  • 12

    Kiến trúc - Module dịch vụ - Nhận tương tác

    Các tương tác từ ngoại vi chương trình.

    • Tương tác từ hệ thống.
    • Tương tác từ thiết bị như keyboard, mouse hoặc các thiết bị như joy-stick, gamepad, ...

    Thực hành xây dựng lớp quản lý nhận tín hiệu từ keyboard và mouse điều khiển các thành phần trong chương trình.

    Trừu tượng hóa lớp keyboard và mouse → lớp control (lựa chọn).

    CHỦ ĐỀ
    12
    THỜI LƯỢNG
    schedule 3 giờ
  • 13

    Kiến trúc - Module tính năng - Image & Sprite

    Giới thiệu về Image và Sprite.

    • Các lợi ích của Image cơ bản.
    • Sprite là gì?
    • Các lợi ích khi sử dụng mô hình lưu trữ Sprite.
    CHỦ ĐỀ
    13
    THỜI LƯỢNG
    schedule 3 giờ
  • 14

    Kiến trúc - Module tính năng - Background

    Background và Background Image.

    • Giới thiệu về Background và Background Image.
    • Thiết kế lớp Background - Background Image.
    • Hướng mở rộng tính năng cho Background.

    Bổ sung kiến thức về lớp trừu tượng Object.

    • Nhắc lại khái niệm lớp trừu tượng trong C++ OOP.
    • Thiết kế lớp trừu tượng Object (GameObject) hỗ trợ cây Objects.
    • Trừu tượng hóa Background Image.
      • Sự thuận lợi của trừu tượng hóa các đối tượng.
    CHỦ ĐỀ
    14
    THỜI LƯỢNG
    schedule 3 giờ
  • 15

    Kiến trúc - Module tính năng - Bitmap font & Label

    Từ image sprite cho đến Bitmap font.

    • Bitmap font là gì?
    • Vector font là gì và Font Engine?
    • Bitmap font vs Vector font.
    • Hiện thực Bitmap font và Label.
    • Trừu tượng hóa Label.
    CHỦ ĐỀ
    15
    THỜI LƯỢNG
    schedule 3 giờ
  • 16

    Kiến trúc - Module tính năng - Animation

    Thiết kế animation cho chương trình.

    • Giới thiệu về Animation.
      • Frame và Animation.
      • Đồng bộ FPS Animation và FPS chương trình.
    • Hiện thực Animation theo phương pháp đơn giản.
    • Áp dụng Sprite hiện thực Animation.

    Trừu tượng hóa lớp Animation.

    CHỦ ĐỀ
    16
    THỜI LƯỢNG
    schedule 3 giờ
  • 17

    Kiến trúc - Module tính năng - Button

    Bổ sung kiến thức.

    • Nhắc lại con trỏ hàm.
    • Bổ sung hình học va chạm cơ bản.
      • Điểm trong đường tròn, hình chữ nhật, tam giác.
      • Xét vùng giao giữa các hình học cơ bản.

    Button và Screen Touch.

    • Các trạng thái cơ bản của button.
    • Hiện thực button với các trạng thái cơ bản.
    CHỦ ĐỀ
    17
    THỜI LƯỢNG
    schedule 3 giờ

Phát triển game trên Engine

  • 18

    Giới thiệu Tanks

    STDIO Game Engine Tanks

    Áp dụng chương trình (Engine) đã khởi tạo để phát triển ứng dụng giải trí Tanks. </>

    Giới thiệu các tính năng của Tanks.

    • Giới thiệu các tính năng của Tanks.
    • Giới thiệu và chuyển giao bộ tài nguyên (hình ảnh, âm thanh) dành cho Tanks từ giảng viên.
    • Học viên trao đổi về ý tưởng hiện thực.

    Hiện thực các Scene cần thiết cho Tanks.

    Bổ sung cho học viên công cụ quản lý dự án, mã nguồn thông qua SVN hoặc GIT (lựa chọn).

    CHỦ ĐỀ
    18
    THỜI LƯỢNG
    schedule 3 giờ
  • 19

    Hiện thực logic

    Phân tích và hiện thực các nhân tố (actors) và logic của Tanks.

    • Phân tích hướng đối tượng cho các nhân tố.
      • Trừu tượng hóa với Objects.
    • Hiện thực vật lý trong Tanks.

    Quản lý tương tác từ các thiết bị.

    • Xử lý các sự kiện từ bàn phím.

    Mở rộng tư duy (không bắt buộc).

    • Xử lý sự kiện từ thiết bị điện tử khác thông qua serial port (lựa chọn).
    CHỦ ĐỀ
    19
    THỜI LƯỢNG
    schedule 6 giờ
  • 20

    Lưu trữ trạng thái ứng dụng & bảo mật thông tin

    Lưu trữ trạng thái cho ứng dụng (Save - Load).

    • Lưu trữ trạng thái thông qua file (hoặc sqlite, cơ sở dữ liệu).
    • Hiện thực tính năng kiểm tra khả năng "chơi tiếp" khi gián đoạn ở lần chơi trước.

    Bảo mật chống hack dữ liệu.

    • Chống hack dữ liệu trên bộ nhớ.
    • Chống hack dữ liệu trên file lưu trữ.
    CHỦ ĐỀ
    20
    THỜI LƯỢNG
    schedule 3 giờ
event LỊCH KHAI GIẢNG
THÁNG 08
06
Thứ 2
&
Thứ 4
LỚP TỐI: 18h00-21h00
THÁNG 08
06
Thứ 2
&
Thứ 6
LỚP TỐI: 18h00-21h00
THÁNG 08
07
Thứ 3
&
Thứ 5
LỚP TỐI: 18h00-21h00
THÁNG 08
07
Thứ 3
&
Thứ 7
LỚP TỐI: 18h00-21h00
THÁNG 08
01
Thứ 4
&
Thứ 6
LỚP TỐI: 18h00-21h00
THÁNG 08
02
Thứ 5
&
Thứ 7
LỚP TỐI: 18h00-21h00
THÁNG 08
04
Thứ 7
&
Chủ nhật
LỚP SÁNG: 9h00-12h00
LỚP CHIỀU: 14h30-17h30
Không tìm được lịch học phù hợp hoặc cần thêm thông tin, vui lòng gọi 028.36205514 hoặc 0942.111.912
ĐÓNG
ĐĂNG KÝ
ĐỐI TÁC
©STDIO, 2013-2018