NetworkCraft

From Mindworks
Jump to: navigation, search
[[File:
Network Craft Logo
|300px|center|alt=]]
Sponsors
Team Name NetworkCraft
Duration Fall 2018 - Spring 2019
Faculty Adviser
  • Bruce Bolden
Mentor
  • Mentor Names
Client
  • UI CS, Daniel Conte de Leon
Team Members
  • Adam Odell
  • Baylus Tunnicliff
  • Nick Avery

The NetworkCraft project is a mod for Minecraft built upon the OpenComputers mod. Our goal is to expand the networking capabilities of the existing mod to mirror real TCP/IP networks and to visualize these networks in a way that helps teach these concepts.

Problem Definition[edit]

Develop a Minecraft Mod that enables realistic modeling of TCP/IP networks and their control

Background[edit]

Minecraft is a 3D/VR game that enables the creation of complex virtual worlds. Mods enable modifying Minecraft. There are 1000s free of mods, i.e.: Animals, Armor, Sims-style, Mechanics, Flight Simulators. There are several mods for energy and mechanics, and a couple that simulate computing: Computer Craft and Open-Computers. However, these do not model computer networks and their control and security in a way that is realistic enough to enable quality research and education in TCP/IP based networks and cyber security using 3D worlds and VR

Deliverables[edit]

Value Proposition[edit]

Teaching and researching networking concepts can be a big investment. A person would need to buy the hardware required to create a test network and have the space to set it up. Our project will be able to make this process easier, by eliminating the need for hardware and simulating networks in the video game Minecraft. This is also an improvement, as it can be more approachable to students just starting to learn about computing, can also reduce the risk of security issues involving allowing students access to network security tools, and eliminates the need for a large physical space designated for the computer network.

Specifications[edit]

Product Requirements[edit]

Functional Requirements

  • The user shall not be required to install any mod other than NetworkCraft
  • The mod shall modify the OpenComputers mod to enable teaching/learning of TCP/IP Networking

Software Requirements

  • The mod shall be capable of being hosted on a Minecraft server
  • The mod shall simulate TCP/IP Network Configuration
  • The mod shall simulate Network visualization, including improper network configuration visualization.
  • The mod shall allow the user to use VR gear or mouse and keyboard to interact with the game

Regulatory Requirements

  • The mod shall be distributable with an MIT license
  • The mod shall be distributable under an open source mentality

Design Validation[edit]

Requirement Test
TCP/IP addresses for networking computers in the mod View that all UUID's have been changed to IP addresses
Usable for end users Ask people who have not used this mod to rate the difficulty of using the mod
Visualization of Networks Use a variety of test networks and verify they are properly visualized
Network switches are configurable Verify that all configurations are able to be used appropriately for network switches
Network routers are configurable Verify that all configurations are able to be used appropriately for network routers
Visualization of Network problems Use a variety of test networks with a certain problem and verify hat the problem is correctly found
Able to work with common VR devices Verify that our project does not interfere with the normal VR capabilities of Minecraft

Project Learning[edit]

OpenComputers[edit]

OpenComputers is a Minecraft mod that simulates computers in a very realistic way. The user can build their own computer and create programs to help them in game. This serves as a great starting point for our project, as it is detailed and has networking capabilities that our customer is looking for in our project.

A video showing a small example of a OpenComputers network can be seen here: https://www.youtube.com/watch?v=vCjmG1ZNWGo

Java, Scala, and Lua[edit]

The mod is currently written with 2 languages, Java and Scala, with Lua being the language that the user uses to program their computers. We will need to make sure we create our own code that inherits from the existing code, as to not create any new problems that could arise with other parts of the mod that we do not wish to change. The Java portions of code act as a way for Minecraft to interact with a mod, or an API. The Scala potion of code are what drives the actual content of the code. Lua scripts will also need to be created so that the user can program the computers with the new network capabilities.

Network Addressing[edit]

Currently, the mod uses a UUID network address for its computers.This format is alphanumeric, and is designed to always be unique, for example: 123e4567-e89b-12d3-a456-426655440000. This does not reflect what our client would like, as they want the mod to use the TCP/IP format, which looks like this: 192.168.0.1 This format is widely used in the real world, and if implemented will add greater realism to the current mod.

Minecraft Modding[edit]

Modding Minecraft is somewhat easy to do. A tool called Minecraft Forge allows anyone to add a compiled mod to Minecraft easily. Once we complete significant milestones in coding, we can test and make sure that our mod will continue to work with Forge.

Schedule[edit]

Team NetworkCraft is using the Agile development process for project scheduling. This means every week, the team meets and evaluates the current state of the project. The team will then set goals that should be completed by the next meeting.
NetCraftCurrentSchedule.PNG
Our plan for next semester is to start development on our programs needed for the mod and to keep a high level of documentation of all our programs and progress.

Team Information[edit]

Customer: UI CoE: Daniel Conte de Leon (CS)

Team Member Information
Odell A.jpg Adam Odell Hometown: Coeur d'Alene, ID

Major: Computer Science Graduation Date: December 2019 Future Goals: Adam plans on selling out and taking the job with the highest salary possible so he can afford a disgustingly expensive VR computer for Cyberpunk 2077 when it comes out. Email: odel6378@vandals.uidaho.edu

Tunnicliff B.jpg Baylus Tunnicliff Hometown: Moscow, ID

Major: Computer Science Graduation Date: July 2019 Future Goals: Hope to be working on a start-up upon graduating. Hope to work with Artificial Intelligence someday. Email: tunn4356@vandals.uidaho.edu

Avery N.jpg Nick Avery Hometown: Idaho Falls, ID

Major: Computer Science Graduation Date: May 2019 Future Goals: Would like to create interactive programs that help visualize data and teach concepts. Email: aver8754@vandals.uidaho.edu

Document Archive[edit]

Many documents will be hosted on a private GitHub repository. This can be found at: https://github.com/IrishTunn/NetworkCraft