Sorry to bring this up again, I'm sure you're all sick of hearing about my projects, but...I managed to get a small team of my closest local computer science and engineering friends together to work on this Minecraft CPU...which the plan is much larger then that now. But I'll go into that after the question I have.
Basically none of us own a server, and LAN is out of the question. So my question is are there any good private servers that can have locked worlds that require a password to get in (so that no one can come in and screw up our work) or will we have to resort to a VPN? A VPN wouldn't be so bad, but we were hoping to use a server that wasn't also being used as a client for one of us.
That aside here's the over all plan (schematics are being drawn up this coming weekend)
We are building a full computer with a 16 bit processor, 2KB of ram(32 Addresses of 64 bit ram, and a 16x16 grid of LED lights (being substituted by torches) for output. The 7 of us will be working on weekends during the rest of our respective semesters and on our own time during the summer (with a schedule to keep of course) We expect to be done by November of this year latest. But as none of us have taken on a project this massive it may not be finished till later. This will mostly be for gaining experience with hardware development, but it's also for bragging rights.
ALSO If we aren't completely drained by the end of all this, we will begin schematics for a Storage dive. If we decide against the drive we will put the save on the internet along with our schematics for those out there as stupid/insane as we are to go in and do as they wish with it.
If we do make the drive, we will release later, with the hopes that some one out there is daring enough to write a simple kernel in machine code. lol...probably wont ever happen, but hey we can dream can't we?
...It's REALLY refreshing to work on a team... especially one comprised of people much much more skilled then me...usually I'm working alone or with people who make me do all the work...
if any one here shows interest in this project I'll make a twitter account to keep you guys updated on how it progresses.
ONE LAST REMARK: Is this practical? no. Is this prosperous in any tangible way? probably not. Will this be fun? I sure hope so, if not this is going to die very quickly :P
ok, i lied, this is the real last remark: I will post schematics periodically asking for opinions for optimizations and for help with especially tricky circuits.
edit: LOL, Just did some math with some of the preliminary schematics. If my math was right and the prelims are equivalent to the final product, at an average of 120 FPS This emulated computer will be operating at a whopping 4Hz. With that kind of speed we can almost add numbers less than 3 in about 5 seconds! /massive_amounts_of_Sarcastic_Enthusiasm
I believe as developer we always like to a power of 2 for constants and maybe even to the number of LEDs. At the end of it all, it is all about 0 and 1 a binary digit.
Now if we can apply this concept to our spouse system it would be wonderful. The smallest is 0 and the next available is 2 ! :P
16:10 is a common aspect ratio for a monitor, which is what this LED array is substituting. Also for every new row we add...we have to make 16 more NOR latches, and we are some extremely lazy people. :P
Edit: What we are going to do with them is make it like a scrolling CLUI. the grid is placed in front of and a bit higher than the input switches , and what it will do is start on the bottom line. And with each new output it will push to last one up until it the oldest one on the grid reaches the top, where it is thrown out of the buffer when the next output is pushed on the bottom.
Edit 2: I really wish I had to tools/time/knowledge/money to build this for real on my own. :o
Will this be better than the 16 ALU that came up quite a while ago?
I have absolutely no experience on this terrain but I smell awesomeness in this project :P
Well with a 16Bit ALU you have no ability to program it, only preform operations. What we want to do is make it so that you can program it. So all we really need is a CPU complete with registers and a L1 cache, a single bit ALU, and some where to print the output. But we wanted a little more then that...at the cost of any reasonable amount of speed.
The final project in my current CS course is to make a simple game. The professor said we can use any API we want so long as it uses the java environment. Some one in that class suggested that I finish this in a week, and then make pong using machine code in it. technically I'm using the JVM, I've just really REALLY abstracted it :P
lol, if I could I so freakin would do that. but alas it won't be done in time...And I don't think she'll care about my loop hole :P
How serious is your CS course? Java is interpreted. It's paired with Information Technology. Computer Science is actually different. Java is more of an art -- like HTML and CSS (nearer to the "naturally developed skills" side of the competence spectrum). It's not a science. There's nothing wrong with that, it just depends on what kind of person you are.
The most pure science we have resides within the minds of people such as Kurt Godel, Albert Einstein, Alan Turing, Isaac Newton, and Claude Shannon (no order of importance). All of which are mathematicians who contributed much to the brilliant game of computing and physics.
God is a programmer. The universe is his brainchild.
So what if Java is interpreted? Lisp was interpreted-only for a long time and that certainly didn't make the guys at MIT feel it wasn't "pure" enough. Whether a language is interpreted or not has nothing to do with how expressive it is. I really don't like Java as a language, but it is a full programming language, and a very important one too. And the JVM was really an excellent idea, despite Java.
edit: ALSO Java isn't technically interpreted. It's only truly an interpreted language when you throw in JIT Compilation. Otherwise it's a doubly compiled language where it is first compiled to something the JVM can handle, and then compiled a second time to machine code for the JVM's host hardware. Not only that but it can be a single compilation language. There is a tool in the standard JDK that allows compiling it directly to machine code for your hardware.
edit edit: I think you have mistaken Java for Javascript. In which case that IS an interpreted language that is used side by side with html/css quite often. But that doesn't make it any less a real language. It has it's place.