DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Năm nay chương trình xã hội và giáo dục IT SCHOOL SAMSUNG tròn 5 tuổi (đọc về IT SCHOOL đây), và nhân dịp này, chúng tôi đã mời các sinh viên tốt nghiệp nói về bản thân họ cũng như kinh nghiệm của họ trong việc tạo ra các ứng dụng di động. Chúng tôi tin rằng chỉ cần có nhiều khát khao thì mọi người đều có thể đạt được thành công!

Vị khách đầu tiên trong phần này là Shamil Magomedov, sinh viên tốt nghiệp năm 2017 của TRƯỜNG CNTT SAMSUNG, hiện là sinh viên MIEM NRU HSE. Shamil, cảm ơn bạn rất nhiều vì đã dành thời gian viết bài này, mặc dù lịch trình bận rộn của bạn!

Xin chào tất cả mọi người!
Hôm nay tôi muốn nói về việc tôi đã từ chỗ “được nhận vào có điều kiện” vào TRƯỜNG CNTT SAMSUNG như thế nào để lọt vào vòng chung kết cuộc thi phát triển di động toàn Nga nhờ trò chơi trống anh hùng.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

thời tiền sử

Tôi vào trường CNTT khi đang học lớp 10. Ngay từ những ngày đầu tiên đào tạo, tôi đã tụt hậu so với các bạn khác, và điều này có thể đoán trước được ngay cả trước khi khóa học bắt đầu (điều này được chứng minh bằng điểm thi đầu vào thấp khủng khiếp của tôi). Tất cả những nguyên tắc lập trình này, cấu trúc của nền tảng Android và ngôn ngữ Java, làm sao để hiểu hết được?

May mắn thay, tôi có mọi thứ cần thiết để thành công trong việc thành thạo các kỹ năng phát triển: khát vọng vô hạn để tiến về phía trước và không dừng lại.

Dành nhiều thời gian cho bài tập về nhà, thường xuyên về muộn sau giờ học với giáo viên Vladimir Vladimirovich Ilyin (tôi vô cùng may mắn với thầy), tôi bắt đầu thích nghi với tốc độ học tập nhanh chóng và suy nghĩ về đồ án tốt nghiệp của mình.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Với thầy - V.V. Ilyin

Tìm kiếm ý tưởng

Nhiều người nghĩ rằng khi tạo một dự án, dù là một dự án khởi nghiệp hay một dự án nhỏ nào đó để tích lũy kinh nghiệm, mọi khó khăn đều nằm ở quá trình phát triển: viết một đống code, học thư viện mới, liên tục thử nghiệm - thật kinh khủng! Hãy tin tôi, điều này không hề đúng chút nào. Tôi đã lý luận theo cách tương tự cho đến khi bản thân tôi phải đối mặt với nhu cầu lựa chọn và thực hiện một ý tưởng; đó hóa ra lại là một trong những giai đoạn khó khăn nhất.

Điều khó khăn nhất trong việc lựa chọn ý tưởng ở giai đoạn đầu học là xác định mức độ phức tạp của việc thực hiện: trong một thời gian dài, tôi không thể nghĩ ra một ứng dụng mà mình có thể làm và đồng thời thích.

Trên hết, tôi muốn viết một trò chơi âm nhạc, nhưng những nghi ngờ về khả năng của tôi thực sự đã cản trở tôi. Tưởng chừng như không thể hoàn thành công việc, và vì lý do này mà tôi đã hơn một lần thay đổi lựa chọn của mình: bida di động, bowling, chạy bộ, v.v. Cuối cùng, tôi đã học được một bài học từ điều này: khó khăn sẽ luôn nảy sinh, bất kể ý tưởng ứng dụng là gì, và do đó điều quan trọng nhất là chọn những gì bạn thích và đi đến cùng.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Tôi luôn thích trò chơi Guitar Hero

Triển khai logic trò chơi

Ý tưởng cơ bản đằng sau các ứng dụng như Guitar Hero là chạm vào màn hình theo nhịp nhạc.
Trước hết, tôi bắt đầu triển khai logic trò chơi:

  1. Đã tạo các lớp ghi chú, nút và sọc dọc theo đó các ghi chú sẽ di chuyển.
  2. Tôi đặt khung vẽ trên toàn bộ màn hình của ứng dụng và trên đó tôi đã mô tả vị trí của các đối tượng của các lớp đã tạo.
  3. Đã triển khai khởi chạy đồng thời tệp mp3 của bài hát và một loạt ghi chú thu được từ cơ sở dữ liệu và thì đấy! Bản nháp đầu tiên của trò chơi đã có trên điện thoại thông minh của tôi :)

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Phiên bản đầu tiên của trò chơi

Vâng, nhìn có vẻ “ấn tượng” nhưng gần như đủ để test game rồi! Bước cần thiết cuối cùng là danh sách các nốt nhạc cho bài hát và tôi đã phải mất rất nhiều thời gian để thực hiện nó.
Nguyên tắc khá đơn giản: sử dụng các giá trị của bảng cơ sở dữ liệu, chương trình sẽ tạo các đối tượng của lớp “Note” và thêm các ghi chú kết quả vào mảng. Bảng gồm có hai cột:

  • số dòng từ 1 đến 4 nơi ghi chú sẽ xuất hiện và
  • thời điểm nó sẽ xuất hiện trên màn hình.

Tại sao tôi lại mất nhiều thời gian nếu mọi thứ đều đơn giản như vậy? Để điền vào cơ sở dữ liệu này!
Thật không may, vào thời điểm đó tôi không thể tìm ra cách tự động hóa quá trình lấy bản nhạc ở định dạng tôi cần từ tệp mp3 của bài hát và vì vậy tôi phải tự điền vào các cột này theo cách thủ công.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Quá trình điền cơ sở dữ liệu bằng các ghi chú

Phương pháp này cho phép tôi bắt đầu phát triển và thử nghiệm trò chơi từ rất sớm, nhưng rõ ràng là tôi cần phải nghĩ ra thứ gì đó khác biệt. Ở đây, giáo viên của tôi, Ilyin Vladimir Vladimirovich, đã giúp đỡ tôi rất nhiều, người đã nói về sự tồn tại của định dạng MIDI, giải thích cấu trúc của nó và giúp tôi tìm ra thư viện mà tôi đã tìm thấy để làm việc với các tệp MIDI.

Cái hay của định dạng này là trong đó mỗi nhạc cụ đã có sẵn một bản nhạc riêng biệt chứa một số "nốt" nhất định. Bằng cách này, bạn có thể dễ dàng lặp qua tất cả các ghi chú và tùy theo bản nhạc và thời gian, tự động thêm chúng vào cơ sở dữ liệu. Đây là một đặc tính rất quan trọng, vì nhờ nó mà tôi đã có thể giải quyết được vấn đề của các trò chơi thuộc thể loại này: không thể thêm các bài hát của riêng mình. Đúng, định dạng MIDI có một nhược điểm lớn - âm thanh (tất cả chúng ta đều nhớ giai điệu trong các trò chơi cổ điển, phải không?).

Dần dần cải thiện lối chơi, tôi đưa chương trình về trạng thái hoạt động hoàn toàn, thêm nhiều “tính năng”: khả năng thêm bài hát của riêng bạn từ bộ nhớ thiết bị hoặc từ danh mục đám mây, lựa chọn mức độ khó, chế độ mới bắt đầu, v.v.
Và cuối cùng tôi đã đến với món “quả anh đào trên bánh”…

Thiết kế

Đây là nơi bắt đầu hiện thân của “tầm nhìn” của tôi về trò chơi. Trước hết, tôi bắt đầu chọn một chương trình vẽ. Tôi không có bất kỳ kinh nghiệm nào về thiết kế đồ họa, vì vậy tôi cần một chương trình dễ học (nhân tiện, Photoshop) nhưng cũng linh hoạt và tiện lợi (Paint, xin lỗi). Sự lựa chọn thuộc về Inkscape - một công cụ tốt để chỉnh sửa hình ảnh vector, chủ yếu ở định dạng svg.

Khi đã quen hơn một chút với chương trình này, tôi bắt đầu vẽ từng yếu tố của trò chơi và lưu nó ở các độ phân giải khác nhau, phù hợp với các kích thước màn hình thiết bị khác nhau. Cũng có những nỗ lực thực hiện hoạt ảnh về sự bùng nổ của các nốt nhạc, và mặc dù thiết kế kết quả không phù hợp nhưng tôi vẫn hài lòng. Tất nhiên, song song với việc hoàn thiện dự án, tôi tiếp tục thiết kế, bổ sung thêm màu sắc mới (gradient yêu “từ cái nhìn đầu tiên”).

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Phiên bản đầu tiên của thiết kế (hai màn hình, không có hình ảnh động, tên cũ)

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Phiên bản thứ hai của thiết kế (4 màn hình, màn hình ban đầu chuyển động mượt mà với các màu sắc khác nhau, độ dốc ở mọi nơi)

Em đã bảo vệ đồ án tốt nghiệp của mình và rất vui mừng khi biết mình đã vượt qua vòng loại và được mời vào vòng chung kết cuộc thi ứng tuyển TRƯỜNG CNTT. Tôi còn khoảng một tháng nữa là đến cuộc thi và tôi đã suy nghĩ nghiêm túc về việc thuê một người chuyên nghiệp hơn trong lĩnh vực thiết kế. Cuộc tìm kiếm không hề vô ích: hóa ra, người bạn thân của anh trai tôi là một nhà thiết kế xuất sắc! Cô ấy ngay lập tức đồng ý giúp tôi, và công việc thiết kế trò chơi hiện tại là công lao của cô ấy.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Thiết kế cuối cùng

Xuất bản

Sau khi hoàn thành công việc trên phiên bản phát hành, tôi ngay lập tức bắt tay vào chuẩn bị ứng dụng để xuất bản trên Google Play Market. Quy trình chuẩn: lấy tài khoản nhà phát triển, tạo trang ứng dụng, v.v. Nhưng phần này không nói về điều đó.

Điều đáng ngạc nhiên nhất trong câu chuyện này là số liệu thống kê về lượt tải xuống. Lúc đầu, số lượt tải xuống DrumHero tăng dần và gần như đồng đều ở một số quốc gia Châu Âu, Mỹ và các nước CIS, nhưng một tháng trôi qua và số lượt tải xuống đã lên tới 100 lượt tải xuống! Một sự thật thú vị là hầu hết lượt tải xuống đều đến từ Indonesia.

Kết luận

DrumHero là dự án nghiêm túc đầu tiên mà tôi học lập trình. Anh ấy không chỉ đưa tôi vào vòng chung kết toàn Nga của cuộc thi dự án SAMSUNG IT SCHOOL mà còn cho tôi nhiều kinh nghiệm về thiết kế đồ họa, GameDev, tương tác với dịch vụ Play Market và hơn thế nữa.

DrumHero: Cách tôi tạo ra trò chơi đầu tiên trong đời

Tất nhiên, bây giờ tôi thấy trò chơi còn nhiều thiếu sót, mặc dù ngày nay số lượt tải xuống đã lên tới gần 200. Kế hoạch của tôi là phát hành phiên bản mới, có những ý tưởng về cách tăng tính ổn định, cải thiện lối chơi và tăng số lượt tải xuống.

Thông tin khác:
SAMSUNG IT SCHOOL là chương trình giáo dục bổ sung toàn thời gian miễn phí dành cho học sinh trung học, hoạt động tại 25 thành phố của Nga.
Đồ án tốt nghiệp của sinh viên là một ứng dụng di động. Đó có thể là một trò chơi, một ứng dụng xã hội, một công cụ lập kế hoạch, bất cứ thứ gì họ muốn.
Bạn có thể đăng ký đào tạo từ tháng 2019 năm XNUMX tại website các chương trình.


Nguồn: www.habr.com

Thêm một lời nhận xét