Skip to content

Phát triển phần mềm trên Linux (Phần 1)

by on 1 Tháng Bảy, 2007

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.

12 phản hồi
  1. Cái nào hay free, mà cái `Enterprise Architect` là không free.😀

    Cảm ơn về bài viết này.

  2. 3do permalink

    tôi nghĩ đối với nhà phát triển game, người ta sẽ không nhắm đến thị phần của những người dùng linux bởi vì nó quá ít, mà việc phát triển 1 game chạy trên cả 2 HDH không đơn giản 1 tí nào, đặc biệt là những game lớn.

    Nếu những người chuyển qua linux chỉ vì phần cứng của họ không đủ để chạy vista thì chắc là cũng chẳng đủ để chạy những game đỉnh hiện giờ🙂

  3. haprog permalink

    Thực ra khi mà ngày càng nhiều người chuyển sang dùng Linux thì thị trường sẽ không phải chỉ có riếng windows. Lúc đó game trên linux có thể lại trở thành một ngành kinh doanh mới.

    Hiện nay đúng là các game hay thì đều yêu cầu đồ họa cao cấp, phần cứng mạnh. Tuy vậy sau này, nếu cả windows và Linux cùng chạy trên phần cứng ngang nhau, cả hai hệ điều hành mạnh như nhau (tất nhiên nếu windows cải thiện về bảo mật hơn nữa) thì lúc đó không ai sẵn sàng bỏ tiền ra để mua windows làm gì.

    Thực chất nhiều người bây giờ không sử dụng Linux vì thây Linux không có game. Nhưng nếu game phát triển hơn, sánh được với star, warcraft, thì người dùng chắc chắn sẽ dùng Linux. Vì vậy phát triển game trên Linux là sự đầu tư cho tương lai.

  4. afterlastangel permalink

    Starcraft Warcraft đánh Online ầm ầm trên Battle.net = Linux đó. Dĩ nhiên là xài bản xịn để chơi rồi. Crack không chạy được đâu😛

  5. sslazio permalink

    @3do chẳng tìm hiểu kĩ về Linux mà đưa ra những nhận xét gì đâu ko , hiện tại người ta xài Linux là về tinh thần , là chia sẻ free , là 1 công nghệ mới , là tìm 1 hướng đi khác chứ có ai xài linux vì tại phần cứng ko đáp ứng Vista đâu ??? tất cả các máy chạy linux mà người vn mình đang xài đều có phần cứng pro ko đó , ít cái máy 386 nào chạy linux ở vn lắm !!! ( điều này là tất nhiên , người vn mà , nghèo thì nghèo thiệt , nhưng đã mua là mua cho đáng : cpu 2 nhân , card màn hình chạy dual , màn hình LCD … , họ cài vista là dư xăng , nhưng họ muốn xài linux đó thôi

  6. haprog permalink

    Hì không hiểu lắm ý của afterastangel. Ý bạn là server của battle net chạy Linux hả. Hì. Theo mình biết đã làm gì có world với star trên Linux.

  7. Có chứ, sao lại không có😛 !

  8. 3do permalink

    hehe, tôi nói là nếu ai đó chọn linux vì phần cứng của họ kém, ko đủ để chạy windows (theo bài viết của dusyBee) thì còn nói đến chuyện chơi những game đỉnh làm gì nữa🙂

    Hiện giờ chỉ quanh quẩn 1 vài game lớn chạy đc trên linux thôi, chứ ko phải tất cả các game chạy đc trên windows thì chạy được trên linux. Nếu nhà sản xuất game ko nhúng tay vào, mà chỉ xài wine để giả lập thì tôi nghĩ cái đó ko thể gọi là phát triển game trên linux đc

  9. Achtung!: Mình không viết bài này😀 !

  10. ubuntuvn permalink

    Mình cũng thấy Linux dở một chỗ duy nhất là Game. Muốn chơi các game hay là phải đụng đến Windows.
    Còn ý kiến người ta sử dụng Linux vì máy không đủ mạnh để xài Vista cũng không đúng đâu, ví dụ như mình nè, chạy Vista ầm ầm, nhưng cũng chuyển sang Linux vì thấy nó mạnh hơn, không có quá nhiều đòi hỏi như Windows.

  11. maikhai permalink

    Sao ít khi thấy ai nói kiểu như “tui chuyển sang Linux vì tui không thích làm dân xài chùa” nhỉ?. Hay là mọi người xài Windows đều có mua bản quyền hết trơn rồi? Mình thì xin nói thành thực là chuyển qua xài Linux vì tự biết không thể nào có đủ tiền để mua lai-xần, và mặt khác, xài Windows chùa cứ có cảm tưởng như đang “trúng kế” lão Biêu. Chuyển qua xài Linux, hồi đầu thật vất vả, bây giờ thì mấy việc hàng ngày đều chọt bằng Linux được, nhẹ cái mình. Windows à? Xin đủ đi.

  12. Spider permalink

    xí, mình xài i 386 nè, mình đang sống ở VN, chắc mình là trường hợp đầu tiên trong đây không đủ cấu hình chạy Vista, nhưng mà linux, mình nói thiệt, đẹp hơn vista, máy mình chỉ P4 1.8, ram 768 mb, VGA 64mb thôi,😀

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s