Game Studio
Liên kế mạng xã hội

Game Studio


Tạo một game 2D cần những gì?

Đây là một bài chia sẽ của Chad Ata về những thứ mà team của anh ấy cần để phát triển game 2D. Được thành lập vào năm 2010 bởi hai chàng trai và một cô gái, mục tiêu của họ là làm cho thế giới một nơi hạnh phúc hơn bằng  trò chơi của họ. Hãy cùng xem những chia sẽ hữu ích của họ nhé:

"Khi lần đầu tiên bạn bắt đầu phát triển một trò chơi, có thể bạn sẽ rất khó khăn khi quyết định lựa chọn các công cụ, ngôn ngữ, và frameworks để sử dụng cho mục đích của mình. Có hàng tấn sự lựa chọn cho điều đó, mặc dù có 10 năm kinh nghiệm lập trình và thiết kế trong các lĩnh vực khác, tôi cảm thấy giống như một newb khi tôi bắt đầu phát triển trò chơi. Dự án đầu tiên của chúng tôi, Furdiburb (một trò chơi phiêu lưu của vật nuôi ảo), được bắt đầu vào năm 2009, chỉ duy nhất cho Android tại thời điểm đó. Java là ngôn ngữ duy nhất mà chúng tôi có, vì vậy chúng tôi đã đi cùng với nó. Là một game 2D, chúng tôi (không chính xác) chọn cách phát triển mà không cần OpenGL. Khi Furdi trở nên nổi tiếng. Cuối cùng chúng tôi cũng đã nhận thấy những trở ngại trong việc đối phó với hiệu suất và tính di động....

Tìm một hướng tốt hơn

Sau khi hoàn thành Furdiburb và rất chậm khi porting trò chơi sang iOS (sử dụng playn), chúng tôi quyết định chuyển sang Game #2 (Eras of Alchemy). Chúng tôi muốn thoát khỏi Java với hy vọng lớn hơn- sử dụng các cross-platform để hỗ trợ cho những dự án trong tương lai.

Và vì vậy việc tìm kiếm bắt đầu. Tôi dành gần một tháng so sánh các frameworks, tools, engines, và cuối cùng, đội của tôi và tôi đã quyết định đi trên một con đường mới của sự phát triển mà giờ đay chúng tôi đang rất hạnh phúc. Tôi sẽ không đi sâu vào lý do tại sao chúng tôi chọn điều này. Bởi frameworks đều thay đổi liên tục, và lý do để đưa ra quyết định từ một năm trước đây có thể không còn giá trị tại thời điểm này. Thay vào đó, phần còn lại của bài viết sẽ chỉ đơn giản là mô tả những gì chúng tôi cần sử dụng và tại sao chúng tôi sử dụng nó.

1. Programming

Đây là những thứ mà chúng tôi sử dụng trong việc lập trình trò chơi của chúng tôi.

Frameworks

Trong tất cả những frameworks, chúng tôi đã chọn là một trong hai nguồn mở hoặc có code công bố công khai. Điều này là một trợ giúp lớn như chúng ta có thể tùy chỉnh và sửa lỗi khẩn cấp khi cần thiết.

Cocos2d-x - Nhìn chung, hiệu suất 2D của cocos2d-x là rất tốt và các tài liệu hướng dẫn cũng khá ổn. Tất nhiên bạn có thể chọn những engine cross-platform khác hợp với mình hơn, nhưng tốt nhất nó phải là một cross-platform đúng nghĩa, tức là có thể porting sang nhiều nền tảng khác càng tốt. 

Spine - Chúng tôi sử dụng Spine cho các anination của chúng tôi.

Box2D – Sử dụng cho các trường hợp cần physics.

Ngôn ngữ

C++ - cocos2d-x hỗ trợ nhiều ngôn ngữ, nhưng chúng tôi sử dụng C ++ vì chúng tôi cảm thấy nó là ngôn ngữ thân thiện với cross-platform nhất.

C - Thỉnh thoảng, bạn có thể muốn tích hợp một API mã nguồn mở. Một số trong số chúng được viết bằng C.

Java - Chúng tôi vẫn phải sử dụng Java, nhưng chỉ có trên Android cho việc tích hợp IAP, quảng cáo, và tính năng cụ thể của hệ điều hành. Giao tiếp giữa ngôn ngữ được thực hiện thông qua JNI.

Objective-C - Tương tự như với Java, chúng tôi sử dụng Objective-C cho những tính năng cụ thể của iOS.

Scripting - bao gồm shell scripting và ngôn ngữ scripting khác. Tất cả các nhà phát triển phải viết các scripts theo từng thời điểm, nhưng chúng tôi hiếm khi nói về nó. Nó cũng tương đối dễ dàng, nhưng nó thường tốn nhiều thời gian nếu bạn đang như tôi là không nhớ cú pháp do ít sử dụng. Chúng tôi viết scripts cho các compiling code, tự động chuyển đổi âm thanh, xây dựng level tự động, và texture packing.

Development Environment

Xcode - Mọi người nói với chúng tôi rằng Xcode là rất…khủng khiếp! Vì vậy, tôi đã thử nó, và tôi có thể nói, đó là môi trường phát triển yêu thích hiện nay của tôi. Tôi sẽ không nói lý do tại sao, vì tôi không muốn bắt đầu một cuộc tranh luận về IDE! Chúng tôi sử dụng Xcode cho nền tảng phát triển cũng như lập trình riêng cho Apple.

Eclipse – “Một con quái vật chậm chạp” về một IDE, nhưng có vài điểm trong khá tốt theo quan điểm của tôi. Chúng tôi sử dụng Eclipse cho những gì liên quan đến Java và Android bao gồm việc deployment and debugging.

Visual Studio - Cũng là một IDE tuyệt vời. Chúng tôi sử dụng nó để lập trình những gì liên quan đến Microsoft, debugging, và deployment.

Version Control

Thậm chí nếu bạn là một đội “một người”, bạn cũng nên sử dụng version control! Mọi người đều mắc sai lầm, và bất kỳ ổ cứng nào cũng có thể “chết” một cách bí ẩn. Chúng tôi là một đội ba người, và như vậy version control là cần thiết. Có một vài giải pháp khác, nhưng đó là những cái chúng tôi sử dụng:

SVN - Tôi thích SVN. Nó làm mọi thứ tôi cần nó làm như merging, syncing, history, vv…

Git – Có khá nhiều frameworks mã nguồn mở chúng tôi dựa vào việc sử dụng Git. Chúng tôi sử dụng Git để giử up-to-date cùng chúng và đôi khi chúng tôi cần sửa chửa nhanh những phần khác.

Computers!

Rõ ràng là bạn cần máy tính để làm các video game! Ban đầu tất cả những công đoạn đều được thực hiện trên các máy Linux (I <3 Kubuntu), nhưng cuối cùng nó trở nên rất kém hiệu quả khi xử lý với hai hoặc ba máy vi tính khi chúng tôi bắt đầu phát triển cho iOS. Vì vậy, chúng tôi đầu tư có một số iMac. May mắn thay, các dòng lệnh cơ bản là giống nhau trên OSX và rất nhiều script của chúng tôi làm vẫn không thay đổi.

2. Graphics Art

Adobe Creative Suite - Không có bất ngờ lớn ở đây. Artist của chúng tôi chủ yếu sử dụng Illustrator và Photoshop.

Spine - Skeletal animation giúp bạn tiết kiệm không gian ổ đĩa hơn khi thực hiện các animation truyền thống với frame-by-frame. Nó cũng giúp bạn tiết kiệm thời gian phát triển với các tính năng mạnh mẽ như animation mixing, character skinning, và deformable meshes. Nó cũng tăng hiệu năng cho thiết bị.

Texture Packer - Có thể bạn sẽ muốn để đóng gói các hình ảnh của bạn vào texture lớn hơn tạo hiệu suất tốt hơn. Chúng tôi đã chọn Texture Packer cho điều này, và chúng tôi sử dụng  command line để tự động hóa quá trình đóng gói.

bmGlyph - Nếu bạn có kế hoạch sử dụng font bitmap (chứ không phải là runtime Truetype Fonts) thì bạn sẽ cần một phần mềm bitmap. Chúng tôi đã chọn bmGlyph tương thích OSX, nó đã phục vụ chúng tôi tốt.

3. Level Editing

Các công cụ chúng tôi sử dụng để thiết kế các level hoặc layout graphics.

No Editor! – Chúng tôi có thể tạo ra nó mà không sử dụng một editor. Chúng tôi chỉ code nó! Nghe có vẻ điên rồ và không hiệu quả, nhưng nếu đội của bạn thực sự nhỏ, đôi khi bạn có thể tiết kiệm thời gian bằng cách không coding nó bằng editor trong một thời điểm nào đó.

Custom Editor - Đôi khi chúng tôi code lên một editor để bố trí các đồ họa hoặc thiết lập một level phức tạp.

R.U.B.E. - Viết tắt của Really Useful Box2D Editor. Công cụ siêu hữu ích này đã giúp chúng tôi tiếc kiệm rất nhiều thời gian.

4. Music and Audio

ffmpeg - Thật tuyệt vời! Chúng tôi chủ yếu sử dụng nó cùng với một script để chuyển đổi âm thanh của chúng tôi sang các định dạng phù hợp với từng nền tảng mục tiêu.

Cakewalk Sonar - Đây là một chương trình mạnh mẽ để tạo audio.

Garritan Personal Orchestra - Nếu bạn muốn orchestral VSTs (nhạc cụ), Garritan có âm thanh chất lượng cao. Chúng tôi sử dụng kết hợp với Sonar.

Audacity - Một trình biên tập và công cụ ghi âm tốt.

Những thứ sau đây chúng tôi không còn sử dụng, nhưng vẫn xin được khuyến cáo:

Anvil Studio - Đây là một chương trình tốt nếu bạn đã được đào tạo với một nhạc cụ cổ điển và thoải mái với việc đọc/ thao tác các notes, times, measures, và muốn tạo ra MIDIs.

Linux Multimedia Studio - LMMS là một chương trình đơn giản. Khi có nó, bạn có thể tạo ra những audio techno/electronic. Điều này không yêu cầu bạn phải biết làm thế nào để đọc nốt nhạc.

Kết luận

Ngày nay có rất nhiều cách để tạo ra một trò chơi. Và đây là những thứ mà chúng tôi đã chọn để tạo ra 2D games cross-platform của chúng tôi, và cho đến nay, chúng tôi khá hài lòng với nó. Trò chơi mới nhất của chúng tôi đã có mặt trên Android (Google Play, Kindle, Nook và), iOS và Windows Phone và kế hoạch tiếp theo là mở rộng sang PC, Mac, và Linux. Hi vọng những chia sẽ này sẽ giúp ích phần nào cho các bạn. Chúc các bạn thành công.

J.Black - gamestudio.vn

Chad Ata - gamasutra.com

Ảnh art.ngfiles.com

 

Xem thêm:

game 2D