Xây dựng giao diện ứng dụng trên linux

Bài viết này sẽ tìm hiểu quy trình phát triển game và các công cụ hỗ trợ cho game trên Linux. Tuy vậy nếu bạn muốn viết phần mềm chạy trên Linux, bạn cũng có thể tìm thấy nhiều thông tin bổ ích qua bài viết này.

(Nguồn gamedev. Các bạn có thể tham khảo bản tiếng Anh tại địa chỉ http://www.gamedev.net/reference/articles/article2372.asp )

Các vấn đề sẽ trình bày:

Phần 1: Giới thiệu

Phần 2: Phương pháp tạo file thực thi

Phần 3: Cài đặt

Phần 4: Kiểm thử

Phần 5: Tiếp thị và phân phối

Thế nào là Linux?

Linux là hệ điều hành miễn phí được sáng tạo bởi Linus Torvalds và được phát triển dưới sự giúp đỡ của các lập trình viên trên toàn thế giới. Linux là một sự thay thế cho các hệ điều hành khác đang phổ biến như Windows. Nói đến Linux, người ta nói đến sự ổn định, tin cậy và tính bảo mật hơn hẳn Windows. Linux cũng hỗ trợ nhiều hệ thống file khác nhau như ReiserFS và XFS, là những hệ thống file chạy nhanh hơn hẳn FAT32 và NTFS của Windows.

Nếu là người lần đầu tiên sử dụng Linux bạn có thể tham khảo: http://www.linux.org/lessons.

Tại sao lại phát triển phần mềm cho Linux?

Theo nghiên cứu gần đây của một số hãng nghiên cứu độc lập, bao gồm IDC và eMarketer, số người sử dụng chuyển sang dùng Linux đang ngày càng tăng lên. Người dùng Windows đã quá mệt mỏi với adware, spyware, viruses, phần mềm thiếu an toàn, và những bản vá lỗi phá đi luôn cả tính ổn định của hệ thống. Ngày càng nhiều người dùng tìm kiếm những hệ điều hành khác để thay thế windows. Đặc biệt, sự ra đời của Vista đã không mở ra đột phá cho Microsoft mà làm cho những tín đồ của Windows xa rời đức tin của họ để đến với Linux bởi vấn đề giá thành, yêu cầu cao về phần cứng và những đoạn mã chống sao chép quá ư phức tạp của Windows Vista.

Hai hệ điều hành dẫn đầu trong danh sách những hệ điều hành thay thế cho windows là MacOS và Linux. MacOS có nhiều ưu điểm vượt trội hơn so với Linux như: danh tiếng và nhiều phần mềm ứng dụng hỗ trợ có thể download dễ dàng. Tuy vậy một máy tính Mac thường đắt hơn một PC bình thường, chưa kể để tậu được một máy Mac bạn phải đặt hàng và sẽ phải tốn thời gian chờ đợi cho đến khi đơn đặt hàng đến nhà sản xuất và sản phẩm được chuyển đến cho bạn.

Ngược lại, Linux miễn phí và có thể cài đặt trên chính phần cứng hiện tại. Là một người sử dụng Windows, bạn sẽ thấy Linux dễ sử dụng hơn hẳn MacOS. KDesktop Environment (KDE) có trong nhiều bản phân phối đang sự dụng trông gần giống với giao diện Windows. Có rất nhiều ứng dụng chạy trên Linux và càng có nhiều ứng dụng được phát hành mỗi năm. Loại phần mềm duy nhất mà vẫn còn chưa phổ biến trên Linux là game, mà theo nhiều nhà phân tích là rào cản cho sự phát triển mạnh mẽ của Linux. Chính vì vậy các nhà phát triển game cần biết làm thế nào để viết ra những game cho Mac và Linux.

Bắt đầu với Linux

Đầu tiên bạn cần một bản phần phối Linux. Có hàng trăm bản phân phối để bạn có thể chọn, tuy vậy các bạn nên bắt đầu với

  • Ubuntu
  • Kubuntu (Phiên bản Ubuntu – KDE)
  • SUSE

Công cụ phát triển
Giả sự bạn đã lựa chọn một công cụ phát triển, đã download và cài đặt, và cũng đã biết làm thế nào để sử dụng. Bạn cũng đã cấu hình Linux như bạn muốn. Chúng ta sẽ bắt đầu với game trên Linux. Câu hỏi đặt ra, Có những công cụ phát triển nào?

Code::Blocks
Một môi trường phát triển (IDE) mã nguồn mở cho lập trình viên C/C++. Code::Blocks rất trực quan. Bạn nên sử dụng IDE này thay cho KDevelop hay bất cứ IDE phổ biến khác trên Linux.

Mono
Mono, tài trợ bởi Novell, cung cấp phần mềm cần thiết để chạy ứng dụng .NET client và server trên Linux và những hệ điều hành phi Windows khác. Nếu bạn là lập trình viên C#, đây là site dành cho bạn. Bạn có thể tìm thấy mọi thứ cần thiết từ trình biên dịch, trình gỡ lỗi, IDE, thư viện môi trường và tại liệu hướng dẫn.

Valgrind
Cung cấp các công cụ tuyệt hảo cho việc gỡ lỗi và gia công cho chương trình trên Linux. Nó là công cụ tuyệt vời phát hiện lỗi bộ nhớ, thread, v.v.

NEdit
Công cụ soạn thảo tuyệt vời cho những nhà phát triển không thích IDE.

Kate
Một trình soạn thảo khác. Chạy trên nền KDE.

Make
Với những lập trình viên người không sự dụng IDE, bạn nên sử dụng chương trình Make để biên dịch chương trình. Bạn có thể tìm thấy nhiều tài liệu về cách viết một Makefile tại http://www.eng.hawaii.edu/Tutor/Make. Đây là cách tôi thường link các object trên Linux.

Data Display debugger (DDD)
Một trình gỡ lỗi hoàn hảo cho những ai không dùng KDE

The GIMP
GIMP là một công cụ tuyệt hảo cho việc xử lý đồ họa game

SoniK
Công cụ chỉnh sửa âm thanh trên KDE, giống hệt Creative Wave Studio của Creative Labs. Bạn có thể ghi âm, xử lý file âm thanh.

Crossover Linux
Gói phần mêm cho phép chạy ứng dụng Windows trên Linux, bao gồm MS Office, MS Project, Visio, Quicken, iTunes, và những phần mềm thương mại không thể thiếu chạy trên Windows.

Enterprise Architect
Khác với nhiều nhà phát triển game không làm phần mềm theo thiết kế hướng đối tượng sử dụng Unified Modeling Language (UML), Tôi đã sử dụng UML trong nhiều năm. UML là công cụ tuyệt hảo cho thiết kế tương tác người dùng, mô hình dữ liệu, các class có thể thừa kế. Enterprise Architect là công cụ mạnh mẽ chạy trên Windows và Linux (Qua Crossover Linux)

Thư viên Game đa nền tảng

Boost
Thư viện cho phép tủy cập file hệ thống, quản lý bộ nhớ, cấu trúc dữ liệu, thực hiện phép toán.

FreeImage
Thư viện cho phép tải và lưu các định dạng file phổ biến trên nhiều hệ thống khác nhau.

Ogg Vorbis
Ogg Vorbis là thư viện mã hóa âm thanh và là sự thay thế cho MP3. Đây là công cụ nén file tuyệt ảo cho âm thanh trong game.

OpenAL
OpenAl là một 3D audio API, mô phỏng âm thanh của vật thể chuyển động trong không gian 3D đối với người nghe trong không gian đó. OpenAL có thể sử dụng trong games 2D.

OpenGL
3D graphics API.

SDL
Thư viện giúp đỡ việc truy cập mức thấp đến âm thanh, bàn phím, chuộc, joystick, và video.

Tổng kết
Hy vọng với những công cụ này, bạn có thể phát triển game trên Linux. Còn rất nhiều thông tin chờ bạn khám phá về game trên Linux.

Bài viết sau sẽ đề cập đến phương pháp xây dựng file thực thi chạy trên hầu hết các bản phân phối Linux.

I'm an unknown computer programmer with an dilapidated laptop. Not very long ago, I developed a program that is able to learn and installed in on a virtual machine called brain. The hardware is ramshackle and aging. It groans and creaks but is mine own. Fortunately, the AI program run on the hardware is good enough to continuously learn new things. However, because the hardisk isn't large enough, I was forced to store the output of the program "on the cloud". This blog is such a cloud. You can read about everything the program has learned recently. Xem tất cả bài viết bởi Akai