10. Minecraft, Coding and Teaching
Nội dung
10.1. Giới thiệu về Minecraft, Modding
10.2. Minecraft và giáo dục
10.3. Học lập trình với LearnToMod và Minecraft
10.3.1 Giới thiệu phần mềm LearnToMod
10.3.2 Xây dựng Mod
10.3.3 Các thư viện để xây dựng Mod
10.3.4. Cách chèn Mod vào Minecraft
10.4. Giảng Dạy Lập Trình với LearnToMod và Minecraft
10.4.1 Hướng dẫn khung hoạt động trong lớp học
10.4.2 Hướng dẫn Lập kế hoạch đào tạo
10.5. Tài liệu tham khảo
10.1. Giới thiệu về Minecraft, Modding
Minecraft là một trò chơi điện tử trong một thế giới mở 3D, được tạo ra bởi lập trình viên người Thụy Điển Markus và sau đó được phát triển và phát hành bởi Mojang. Thế giới ảo trong Minecraft được tạo từ các hình khối lập phương có kết cấu. Người chơi có thể tự do đi lại trong thế giới ảo, tự do trong việc quyết định làm thế nào để sinh tồn, hoàn thành nhiệm vụ. Minecraft cho phép người chơi xây dựng các công trình của mình bằng cách xây dựng các khối kết cấu. Các hoạt động trong game bao gồm: tìm kiếm, thu thập tài nguyên, chế tạo và chiến đấu. Có nhiều chế độ chơi có sẵn, như chế độ sinh tồn(người chơi cần kiếm ăn, sản xuất, sinh tồn trong thế giới), chế độ sáng tạo( người chơi tự tạo ra các vật thể trong thế giới của mình); hoặc người chơi có thể sử dụng các mod của bên thứ ba cho phép có thêm nhiều công cụ mới, nhân vật và nhiệm vụ mới cho trò chơi.
Modding hiểu đơn giản là sửa đổi. “Minecraft Mod” được lập trình bằng ngôn ngữ Java. Bằng cách sửa đổi các dòng lệnh, sau đó chèn vào trò chơi và cách chơi được thay đổi. Ví dụ ta viết Mod tạo ra một chiếc máy bay, khi Mod được sử dụng trong thế giới Minecraft của chúng ta, máy bay sẽ được tạo ra trong thế giới đó.
Có rất nhiều Mod có sẵn trên mạng, bạn có thể tải chúng về, chèn vào Minecraft của các bạn và trải nghiệm những cách chơi sáng tạo mới.
10.2. Minecraft và giáo dục
Minecraft là trò chơi khám phá và sáng tạo, ngoài tính giải trí, nó còn có tác dụng tăng cường nhận thức và khả năng tư duy suy luận của người chơi. Minecraft là công cụ khả thi giúp giảng viên có thể truyền cảm hứng cho học sinh theo phương pháp mới, đồng thời học sinh cũng dễ dàng tiếp cận bài giảng hơn. Từ việc khám phá, sáng tạo ra thế giới ảo, học sinh có thể tương tự khám phá ra thế giới thực.
Có nhiều mô hình lớp học sử dụng Minecraft trong giảng dạy. Với mô hình lớp học kiểu nhập vai, các bài học được trò chơi hóa, học sinh sẽ nhập vai, tham gia vào trò chơi, khám phá và tìm ra kiến thức được truyền tải trong trò chơi. Mô hình này được sử dụng cho việc giảng dạy các môn như toán, vật lý, tiếng anh ….. Đặc biệt hơn, với bộ môn khoa học máy tính, giáo viên có thể giảng dạy kỹ năng lập trình và kỹ thuật cơ bản cho học sinh thông qua Minecraft.
LearnToMod là một trong những phần mềm hỗ trợ học lập trình thông qua Minecraft.
10.3. Học lập trình với LearnToMod và Minecraft
10.3.1 Giới thiệu phần mềm LearnToMod
Ý tưởng của phần mềm LearnToMod là giúp cho những người chưa có kiến thức về lập trình có thể dễ dàng tiếp cận, làm quen với những khái niệm cơ bản, tư duy trong lập trình thông qua việc viết các Mod chạy trong Minecraft. Các Mod cho Minecraft được viết bằng Java, đòi hỏi người viết Mod phải thành thạo kỹ năng lập trình. Nhưng khi mới bắt đầu, đôi khi lập trình tất cả những điều đó có thể là gánh nặng. Vì vậy Thought Stem đã phát triển ứng dụng LearnToMod để người học dễ dàng mã hóa các Mod.
Các dòng lệnh đã được dựng sẵn thành các khối, người dùng chỉ cần kéo thả các khối, kết nối chúng với nhau để tạo ra một đoạn mã. Nó nhanh hơn và có thể quan sát mọi thứ một cách trực quan, làm cho ít lỗi hơn.
Để sử dụng LearnToMod chúng ta truy cập đường dẫnhttps://www.learntomod.com, và cần tài khoản để đăng nhập. Các bước đăng ký tài khoản trong LearnToMod như sau:
Bước 1: Truy cập https://login-thoughtstem.herokuapp.com/
Bước 2: Click “Create an Account” để đăng kí tài khoản
Bước 3: Bạn cần có mã lớp để bắt đầu sử dụng ứng dụng, nhập mã lớp “01f5dd49fcb”
Bước 4: Chọn nicknam, đây là tên công khai nên bận cần đảm bảo rằng nó phù hợp
Bước 5: Bây giờ bạn đã có thể bắt đầu trải nghiệm với ứng dụng LearnToMod
10.3.2 Xây dựng Mod
Bước 1: Chọn Play -> Mods
Bước 2: Đặt tên cho Mod và chọn ngôn ngữ để viết Mod ( trong bài viết này, chọn Blockly(Multiplayer) ): Blockly – ngôn ngữ kéo thả các khối mã nguồn, JS – ngôn ngữ Java Script
Bước 3: Chọn vào “Code” trong Mod đã được tạo
Bước 4: Bạn đã có thể kéo thả các khối mã nguồn trên giao diện LearnToMod để tạo ra Minecraft Mod của riêng mình. Ví dụ như:
10.3.3 Các thư viện để xây dựng Mod
a. Function
- Mục tiêu:
Thực hiện một mod với một số hàm thực hiện những việc khác nhau như cung cấp vũ khí, sinh ra thực thể, hoặc hàm comment...
- Định nghĩa:
Trong mỗi mod luôn cần một và chỉ một hàm main. Chúng ta phải đảm bảo nó luôn luôn được viết bằng chữ thường. Đây là vị trí bắt đầu cho chương trình của chúng ta. Nếu không có hàm main hay không đặt bất cứ câu lệnh nào vào trong nó sẽ báo lỗi khi cố gắng chạy mod. Bên cạnh hàm main chúng ta có một số hàm khác thực hiện những chức năng khác nhau trong mod.
Để tạo ra một hàm mới, chúng ta cần phải định nghĩa nó trước, sử dụng khối mã lớn màu tím. Đặt tên hàm tùy ý, nhưng bạn nên cho nó một cái tên có ý nghĩa. Ví dụ nếu bạn cần một hàm cung cấp vũ khí cho nhân vật của mình, bạn có thể đặt tên cho nó là "give_weapons" thay vì "cool_function". Bằng cách đó bạn có thể dễ dàng nhớ được chức năng của hàm.
b. Drone
Mục tiêu: Thực hiện một mod xây dựng một cấu trúc và sinh ra các thực thể
Định nghĩa:
Một drone giống như một con robot vô hình giúp bạn trong Minecraft. Drone nhận được hướng dẫn từng bước cho biết nó ở đâu và làm thế nào để di chuyển hay đặt ở vị trí nào. Nó rất hữu ích khi cố gắng để xây dựng một cái gì đó, hoặc cố gắng thực thi mobs tại một địa điểm cụ thể.
Bạn có thể lập trình drones để di chuyển theo bất kỳ hướng nào trong sáu hướng sau: lên, xuống, phía trước, ngược lại, sang trái hoặc phải trên bất kỳ khoảng cách nào. Khoảng cách trong Minecraft là một khối, do đó nếu bạn làm điều gì đó như thế này:
Drones sẽ di chuyển 6 khối về bên trái
- Cách sử dụng:
Trước khi sử dụng một drone trong mod chúng ta phải khai báo nó bên trong một biến. Để thực hiện việc này, chúng ta vào menu "Variables" và lấy lệnh khai báo biến chung:
Sau đó nhấp vào mũi tên chọn “New Variable…”
Sau đó một cửa sổ nhỏ sẽ mở ra yêu cầu nhập vào một tên. Tên mặc định của Drones chỉ đơn giản là "d", hoặc bạn có thể đặt bất cứ cái tên bạn muốn. Mỗi lần đặt tên, chúng ta phải lấy khối "new Drone" từ menu Drones và gán vào biến.
c. Event
Mục tiêu: Thực hiện một mod mà thực hiện gửi tin nhắn, đánh tia sét hoặc sinh ra một thực thể mỗi lần người chơi phá vỡ một khối
Định nghĩa:
Trong Minecraft có thể có hàng trăm sự kiện khác nhau xảy ra. Trò chơi cài đặt rất nhiều loại sự kiện khi chúng ta chơi. Phần mềm LearnToMod có một số sự kiện đã được mã hoá thành khối sự kiện sau:
Ví dụ, khi chọn sự kiện "block_break" phải đính kèm đường dẫn tham chiếu sự kiện, để chương trình chạy một chức năng cụ thể sau khi sự kiện block_break đó được kích hoạt
Sau đó chúng ta phải tạo ra một hàm "something_broke" và lập trình chức năng hàm thực hiện
d. Variable
Mục tiêu: Tạo ra một vài biến trong main, sử dụng các biến này để gán các giá trị cho đối tượng
Định nghĩa: Giống như trong toán học, vật lý, hoặc bất kỳ môn khoa học nào khác, chúng ta có thứ gì đó gọi là "biến". Trong lập trình một biến là một giá trị có thể thay đổi tùy thuộc vào điều kiện hoặc thông tin được truyền đến chương trình. Tôi thích nghĩ rằng một biến là một hộp, và rằng máy tính được làm đầy với hàng triệu hộp rất nhỏ này. Mỗi hộp có hai thuộc tính: tên, và nội dung. Các lập trình viên có thể chọn cả hai tùy thuộc vào những gì các mod cần
Khi lập trình với các biến điều đầu tiên chúng ta phải làm để sử dụng nó là khai báo biến
e. Loop
Mục tiêu: Tạo một Mod sử dụng vòng lặp và drones để xây dựng một phác thảo hình vuông kích thước 10x10
Cách dùng:
Chúng ta sẽ tạo ra một mod xây dựng một phác thảo hình vuông 10x10 sử dụng các vòng lặp. Vì chúng ta biết rằng drone phải di chuyển lên 10 lần trong khi đặt mỗi khối, và sau đó 10 lần bên phải, 10 lần xuống, và cuối cùng là 10 lần bên trái. Sử dụng thông tin đó chúng ta có thể sử dụng một vòng lặp cho mỗi hướng
f. Locations
Mục tiêu: Sử dụng vị trí của drones để xây dựng cấu trúc, tấn công sét đánh, hoặc sinh ra các thực thể
Cách dùng:
Chúng ta đã sử dụng các drones để xây dựng các cấu trúc. Qua việc kiểm soát vị trí của chúng, ta có thể sinh ra các thực thể ở nhiều vị trí cùng một lúc. Bất cứ khi nào một drones sinh ra thực thể ở bất kì vị trí nào của nhân vật trong trò chơi, đó sẽ trở thành vị trí bắt đầu.
Thử tưởng tượng chúng ta muốn tạo ra sét đánh ở vị trí năm khối phía trước nhân vật, đầu tiên tạo ra drone, sau đó di chuyển drone năm khối về phía trước, cuối cùng tạo lệnh sét đánh tại vị trí drone.
Hay một ví dụ khác: Chúng ta sẽ tạo ra sét đánh ở ba vị trí khác nhau và sau đó sinh ra ba thực thể khác nhau tại vị trí của tia sét
g. Events and Logicals Statements
Mục đích: Tạo một mod kiểm tra để nhận biết loại khối bị phá hủy và từ đó thực hiện các sự kiện cụ thể
Sử dụng biểu thức điều kiện:
Vì chúng ta đã biết làm thế nào để lấy được loại khối đã bị phá vỡ từ một sự kiện. Bây giờ ta có thể kiểm tra giá trị của biến đó với một loại khối. Đây là mod hiển thị message loại khối bị phá hủy:
Một ví dụ khác: Chúng ta viết một đoạn mod mà bất kì khi nào người chơi phá vỡ một khối gỗ, nhân vật sẽ nhận được một thanh kiếm gỗ. Đầu tiên ta sử dụng biểu thức điều kiện như sau:
Nếu biểu thức đúng thì nhân vật sẽ nhận được một thanh kiếm gỗ và đưa ra message thông báo:
h. Functions with Parameters
Mục tiêu:
Tạo một hàm tổng quát nhận dữ liệu đầu vào sau đó sử dụng thông tin đó thực hiện một nhiệm vụ cụ thể.
Hoạt động thông qua các hàm và tham số
Sử dụng tham số:
Một hàm có thể được gán thêm các giá trị khi nó được gọi, các giá trị này được gọi là các tham số, và chúng được lưu trữ trong các biến. Hãy tưởng tượng ta muốn sử dụng một drone để xây dựng một tòa tháp bằng kim cương cao năm khối như sau:
i. Inner Loop
Mục tiêu: Tạo drone dùng để xây dựng một bức tường
Cách dùng: Giả sử ta muốn xây dựng một bức tường kích thước 10x10.
Cách 1: Đầu tiên ta xây dựng cấu trúc drone tạo ra cột đầu tiên của bức tường
Tương tự cột đầu tiên ta tạo ra cột thứ 2 của bức tường
Lặp lại các bước trên ta viết thêm 8 vòng lặp để tạo ra bức tường kích thước 10x10.
Cách 2: Trong phần trước của báo cáo, ta đã có mã để xây dựng một tháp. Một bức tường đơn giản là một loạt các tháp đặt cạnh nhau .Do đó về cơ bản có thể sử dụng mã đó và lặp lại nó nhiều lần như chúng ta muốn.
10.3.4. Cách chèn Mod vào Minecraft
Bạn có thể nâng cấp tài khoản LearnToMod để sử dụng đầy đủ các chức năng. Với tài khoản nâng cấp này, bạn có thể tạo Server Minecraft của riêng mình sau đó cài đặt Mod mà bạn viết trực tiếp trên server.
Do giới hạn về mặt tài khoản, nên tài liệu này sẽ hướng dẫn các bạn chèn Mod vào Minecraft chạy trên server offline.
a. Cài đặt Minecraft Client
Yêu cầu: Windows 7 trở lên, Java JRE 8
Bước 1. Cài đặt Minecraft Launcher
Bước 2. Vào trang http://mod.learntomod.com/page/client-download/ tải bản LearnToMod Mod mới nhất
Bước 3: Chạy file LearnToMod Mod jar vừa tải về
Bước 4: Mở Minecraft Launcher và chọn Minecraft Proflie là “Forge”
b. Cài đặt Minecraft Server
Bước 1: Truy cập http://mod.learntomod.com/page/client-download/ tải bản mới nhất của ScriptCraft Server về máy.
Bước 2: Giải nén fileàcó thư mục scriptcraft-server
Bước 3. Vào trong thư mục scriptcraft-server/scripts tạo một thư mục có tên là tài khoản Minecraft của bạn. Ví dụ: tạo thư mục scriptcraft-server/scripts/netacad cho tài khoản netacad
Bước 4: Vào trang mod.learntomod.com, chép mã nguồn Mod của bạn dưới dạng JS và lưu nó vào file định dạng .js trong đường dẫn scriptcraft-server/scripts/username ( ví dụ scriptcraft-server/scripts/netacad)
Vào Mod -> Chọn JS ở góc cuối màn hình Mod
Chép toàn bộ nội dung JS vào file định dạng .js trong đường dẫn scriptcraft-server/scripts/username ( ví dụ scriptcraft-server/scripts/netacad)
Bước 5: Khởi động ScriptCraft Server
Chạy Command Prompt
cd ~/Downloads/scriptcraft_server/
Chạy lệnh: java -jar spigot.jar
Ghi nhớ con số sau đoạn log Starting Minecraft server on *:
ScriptCraft Server của bạn đã khởi động thành công
c. Chạy Mod của bạn
Bước 1: Quay trở lại Minecraft Client ở phần a
Bước 2. Chọn chế độ “Multiplayer” -> Chọn “Direct Connect” -> Gõ localhost: con số ở bước b5 -> “Join Server” ( bạn đã tham gia vào server của mình)
Bước 3: Để chạy Mod gõ/
để truy cập chế độ điều khiển dòng lệnh trong trò chơi, sau đó gõjs <username>.<name of your mod>.main()
. Ví dụ/js netacad.test.main()
Bước 4: Chơi và cảm nhận Mod của bạn
10.4. Giảng Dạy Lập Trình với LearnToMod và Minecraft
Nhiều giảng viên nghĩ rằng nếu bạn trở thành giảng viên về Minecraft và sử dụng nó trong lớp học, có nghĩa là bạn phải làm tất cả mọi thứ trong Minecraft. Mỗi học viên có một tài khoản Minecraft và cần nhiều máy tính để chạy trò chơi cho cả lớp học. Điều đó đúng nhưng cũng có thể sai. Có rất nhiều cách để sử dụng Minecraft và LearnToMod trong lớp học. Bạn có thể yêu cầu học viên xây dựng các mod của mình trên giấy nháp, sau đó đưa ra các yêu cầu, thử thách và quan sát học viên giải quyết các vấn đề trên giấy. Cuối cùng mới yêu cầu thực hiện bài học của mình trên Minecraft. Tùy thuộc vào giới hạn của cá nhân học viên, công nghệ, ngân sách và những thứ tương tự, ta có thể giảng dạy Minecraft theo những cách thú vị và sáng tạo thay vì chỉ chơi trò chơi đó.
Tương tự với LearnToMod, bạn cũng có thể tích hợp nó vào các bài học theo cách sáng tạo. Thay vì luôn yêu cầu học viên lập trình trong LearnToMod, và sau đó kiểm tra trong Minecraft, bạn có thể yêu cầu họ viết giả mã trên giấy. Giả sử, nếu ta muốn sử dụng một drone để xây dựng một số loại nhà, cấu trúc hoặc sinh ra cái gì đó, trước tiên yêu cầu học viên vẽ các đối tượng đó trên giấy, sau đó viết giả mã. Cuối cùng mới lập trình trên LearnToMod và kiểm tra trong Minecraft. Nếu bạn có một bài tập lớn, học viên có thể thực hiện những phần khác nhau. Theo thời gian học viên thực hành mà giảng viên sẽ chia nhóm để kiểm tra mã của họ trên Minecraft.
10.4.1 Hướng dẫn khung hoạt động trong lớp học
Dưới đây là khung hoạt động được đưa ra để giúp các giáo viên có thể thiết kế lớp học của mình một cách hiệu quả hơn:
Các giáo viên trước tiên nên nắm được các kiến thức về Minecraft, Mod và lập trình, họ nên trải nghiệm trước với LearnToMod
Lập một kế hoạch giảng dạy cụ thể: áp dụng LearnToMod và Minecraft vào lớp học như thế nào, các bài học có những nội dung gì….
Bài học đầu tiên và giới thiệu: giáo viên nên giới thiệu về LearnToMod và ngôn ngữ LearnToMod một cách dễ hiểu, ko quá đi sâu vào lập trình, hãy giới thiệu để gây sự tò mò và hứng thú cho học sinh
Tạo ra các hoạt động trong lớp học: ngoài các bài học, giáo viên cũng nên tổ chức các hoạt động để học sinh có cơ hội thể hiện, trao đổi kiến thức, tự bổ sung kiến thức cho nhau
Tạo ra các thách thức: giáo viên đưa ra các thách thức tạo ra Mod, học sinh cần thực hiện đạt thách thức này và sau đó tự tạo ra thách thức của riêng mình, chia sẻ kết quả và kiến thức cho mọi người .
10.4.2 Hướng dẫn Lập kế hoạch đào tạo
Chương trình giảng dạy được chia thành nhiều ngày. Mỗi ngày khoảng 1 giờ, nhưng bạn có thể kéo dài hơn hoặc ngắn hơn một chút nếu cần thiết.
Không có bài tập về nhà cho lớp này, tuy nhiên học viên được khuyến khích tiếp tục tìm hiểu và thực hành với phần mềm ở nhà. Có 3 bài quizzes, 1 bài kiểm tra cuối kì. Cả khóa học các học viên sẽ cùng nhau xây dựng 4 dự án và nộp trước khi làm bài kiểm tra cuối kì.
Day Lesson | Lesson Name | Content |
---|---|---|
1 | Introduction | - Giới thiệu khóa học - Hướng dẫn học viên đăng kí tài khoản và giới thiệu các chức năng của phần mềm LearnToMod |
2 | Function | - Giới thiệu khái niệm và mục đích sử dụng các hàm - Trình bày cách dùng hàm main cùng các hàm trong LearnToMod |
3 | World Edit and Combat Arena | - Giới thiệu tác dụng của câu lệnh command - Trình bày cấu trúc, ý nghĩa một số câu lệnh cơ bản - Giới thiệu với học học về dự án đấu trường “Combat Arena” |
4 | Drones | - Giới thiệu khái niệm và mục đích sử dụng Drones - Trình bày cách dùng Drones - Nêu các lỗi thông thường gặp khi lập trình Drones |
5 | Using Drones | - Đưa ra ví dụ cụ thể để mô tả cách drones hoạt động |
6 | Enemies | - Hướng dẫn cách tạo ra các kẻ địch |
7 | Variable, Quiz 1 | - Yêu cầu học viên làm bài kiểm tra 10 – 15 phút- Mô tả khái niệm và cách sử dụng các biến |
8 | Events | - Giới thiệu mục đích sử dụng event - Hướng dẫn gán các tham số vào sự kiện |
9 | Logic | - Giới thiệu mục đích sử dụng và cách dùng biểu thức điều kiện |
10 | Complete the Arena | - Hoàn thiện dự án đấu trường |
11 | Functions and Inputs | - Hướng dẫn sử dụng các hàm có biến đầu vào |
12 | Building the Calculator | - Hướng dẫn sử dụng function, event, variable, biểu thức điều kiện để lập trình hàm tính toán |
13 | Completing Calculator | - Hoàn thành mod máy tính cầm tay -- Thực hành sử dụng hàm, sự kiện, biến |
14 | Quiz 2 | - Yêu cầu học viên làm bài kiểm tra 10 – 15 phút |
15 | Loops and Legibility | - Hướng dẫn học viên sử dụng message để code dễ sử dụng đối với người dùng thông thường - Giới thiệu vòng lặp và đưa ra ví dụ mô tả cách sử dụng |
16 | Loop Squared | - Hướng dẫn các bước sử dụng vòng lặp để tạo ra hình vuông |
17 | Loop Cube | - Hướng dẫn các bước sử dụng vòng lặp để tạo ra khối lập phương |
18 | Conditionals and Logic | - Hướng dẫn chi tiết cách sử dụng biểu thức điều kiện |
19 | Completing the Cube | - Hướng dẫn cách kết hợp vòng lặp với biểu thức điều kiện để lập trình mod khối lập phương |
20 | Quiz 3 | - Yêu cầu học viên làm bài kiểm tra 10 – 15 phút |
21 | Final Exercise 1: Build Your Initials | - Yêu cầu học viên làm bài tập thực hành sử dụng Variables, Drones và Functions |
22 | Final Exercise 2: Dr. Sonny’s Game | - Yêu cầu học viên làm bài tập thực hành |
23 | Final Exercise 3A: Block Break Events and Conditionals | - Yêu cầu học viên làm bài tập thực hành sử dụng Events |
24 | Final Exercise 3B: Conditionals Continued | - Yêu cầu học viên làm bài tập thực hành sử dụng biểu thức điều kiện |
25 | Final Exercise 4: Player Input | - Yêu cầu học viên làm bài tập thực hành |
26 | Review | - Tổng kết khóa học |
27 | Final and Class Survey | - Yêu cầu học viên làm bài kiểm tra cuối kì |
10.5. Tài liệu tham khảo
1.https://courses.edx.org/courses/course-v1:UCSanDiegoX+LTM1x+3T2016/info