I plan on spending the weekdays of next week, working on a new project for Minecraft. The project will involve JavaScript, WebGL, Python, CherryPy, SQLAlchemy / Elixir, Mako and HTML5. The requirements will be on new browsers supporting the standards I’ll be using and provide hopefully as much cross-browser support as possible for the technologies. I believe all major browsers support many of the client side HTML5, JavaScript, and WebGL, so it would just leave browsers <ie9 , Firefox <4, and well people should be using the latest Chrome browsers anyway.
Purpose
To provide a tool to upload a Minecraft save file (multiplayer or single), move around the world and save schematics of buildings. They will then be able to copy the schematics and place the schematics in various places in the same map or upload a new map and copy buildings from old save files.
The reason for this is to allow creating new 1.8 save maps and moving old maps buildings and supplies to the new map without losing hours of work. Also, be able to take advantage of the new features in 1.8 in case a lot of the world has been explored already.
Design
The design will be simple.
- Users will be able to sign in using Facebook or Google, or OpenID.
- Users will be able to upload existing save maps.
- Users will be able to upload existing mcedit or previously downloaded web site schematics.
- Users might be able to choose existing save maps. (providing space isn’t too much, might be a premium feature.)
- Users will be able to view their save map using WebGL, JavaScript, and move around the world using their mouse and keyboard.
- Once they want to copy an area, the controls will change to allow clicking a block and moving the selected block around using the keyboard. The controls will also allow for rotating the view to choose other blocks. The number of blocks will require at least 2 selected blocks one at the top corner and another at the bottom corner. The interface will then allow selecting more blocks to change to air blocks. Once that is complete, the object will be saved to a mcedit schematic or custom schematic format.
- The user will also be able to place saved mcedit or custom schematic format to existing or new uploaded saved map. The controls for this will involved clicking on an area and choosing from the list of existing saved schematics. The user will be able to preview what the change will look like. Once the user has chosen the area, the software will guess as to the ground and convert air blocks to ground blocks and morph the area to allow for placing the schematic.
- The user will then be able to download the changed saved file.
Why Do This Instead of Projile?
The Python code will be diverse enough to increase my knowledge of Python and JavaScript. Also will focus my OpenGL knowledge and apply it to WebGL. This will benefit me when I finally get into online game development. I’ll want to have experience and knowledge of how WebGL works, so that it increases my motivation based on my previous working experience. Also will allow me to design the code around my mistakes with this project and with Projile. I don’t get enough chances to work with new JavaScript technology and I want to spend some more time gaining experience and understanding of the new HTML5 JavaScript APIs.
This project, I don’t believe will take more than 2 to 4 weeks. During that time I will have increased my understanding of Python and the technologies I’ll be using in Projile. I will also still be working on Projile during my off time.
Why Do This Instead of Playing Minecraft
When you invest over 60 hours mining, smelting and building a project, then maybe you’ll understand. Now spend over 150 hours. Now try to spend that again while wanting do to something else and most of your time goes away. If you only have 1 hour a day and you already spent over 100 hours, it would require that time and maybe less since you’ll be more experienced and you’ll be back to start again. For some people, they can do that and find enjoyment. Other people just want to play the game and live on with their life. Other people just want to cheat.
Also, it’ll be fun for me to do this. I’m confident I’ll be able to pull it off before 1.8 comes out, unless 1.8 comes out in 2 or 3 weeks from now and I’m still not finished.
Not Starting Until Monday 11th
I want to spend time at least starting the Projile project. I’ve been doing way too many things besides the project. Granted, much of it has been reading over Python books and the Python documentation, but much of it has been procrastinating (ie this post and the previous one). I want to at least get Projile to the point where working on it isn’t a chore and I’ll be able to visualize what I’m working on better. I already have a ton of motivation for this project and since it will use existing code and prior experience, I don’t see it taking even the estimated time. The JavaScript controls probably will take the most time and the converting mcedit schematics to existing maps might require a lot of testing as well. Still, I envision it being crazy fun.
Possibly Related Posts:
- Game Engine Development and Open Source
- Plans for Base CMS
- Project Plans
- Calibre Improvements Part 2
- Usability Testing Software Development
Comments are closed.