It's been a while since my last blog, just wanted to make sure you guys knew that I'll still continue to blog. Schools been going really good this year, just homework continues to keep steady. Hopefully that will end soon. Last day of school is before the end of May, so we got ourselves a decent time of summer to get Multiplayer and MBP done for you guys. Trust me, I know you guys have been waiting very patiently, and HiGuy and I have been trying to find time to code MBP for you whenever we can. It is hard to coordinate the Multiplayer with two people who need to code/bug test/test/play/code (repeats in a cyclic fashion ). We do want you guys to not go through another whole summer again without Multiplayer or MBP update. I know some of you guys have gotten impatient with us over the past couple of years, with being slow, to stopping for a few months to whatnot.
[Get ready for mega history, from my own memory]
The reason why Multiplayer takes forever is because it’s simple:
When you rewrite the same code over 7 times in order to make it more efficient and have fewer bugs....it can get cumbersome. I started out coding Multiplayer with 4 months of TOTAL programming experience, a task that seemed unreal and irresponsible for me with my knowledge of the computer programing world at that time.
We had attempted to do it in marble blast gold. HiGuy and I were determined that Multiplayer was possible, and that it could be done as spy47 had started it a long time ago in 2007. We had ended up using the inspiration from Spy47. We had contacted Seizure22 over MSN one day to help us with the basic network connect that we could establish. It had taken us a while to figure out why we kept timing out to our servers…neither of us had been port forwarded. Yes, the host of a match MUST have their port open in order to accept connections.
One day, Mato and I had tried and we got Multiplayer to work. Then, over the next few weeks, we had ended up giving up on Multiplayer and told the community that it was impossible, just a random occurrence. However, a few weeks later, HiGuy had announced to the community that we got the marbles to move in multiplayer. By then, we knew it was on.
HiGuy and I had decided to move multiplayer in Marble Blast Emerald Beta 1.00 in a hidden form. We had seizure22, HiGuy, Ian Cordle, BlazerYo, and myself who had been first testing Multiplayer back in the summer of 2011. We were able to get marble movement working between us, and seizure22 had helped HiGuy write up a basic chat system so that we could talk to each other in game. That was the coolest thing I had ever seen in marble blast to this point. Entering a command in the console that could send it to the server and relay it back to all the clients (players)…it just amazed me.
Whenever we had decided to continue working on it, I remember asking HiGuy what the heck a “commandToServer()” and a “commandToClient()” functions were and what they heck they even did…I had no idea I mean at this point, I had coded for 5 months. I had no idea how a server to client and client to server architecture worked. I had no idea how to process these “network commands” as I found out that were a vital part of the Torque Script-based networking system.
We continued to code, and then Marble Blast Emerald 2 came up. We were going to have Multiplayer in MBE2. However, as most of you know what happened to that mod, a few days after the fall of MBE2, HiGuy and myself would end up starting the modification that we had always wanted, our own mod led by us two, as a team, with a working Multiplayer. We had no idea what to call it, and Project Revolution came to mind because we felt that the Multiplayer aspect would be revolutionary for Marble Blast as a whole. We would be the first mod to have a working multiplayer, a first mod to have multiplayer released to the community, the first mod to have been led by us two. However, Project Revolution, soon known as PR for short, had ended up falling through too with bad leadership and lack of motivation to continue working on it.
We then decided that it would be best to just create Marble Blast Gold Multiplayer. This had ended up going on for a while. Then, Marble Blast Elite wanted to have Multiplayer. Because I was in it, and HiGuy was in it, we pretty much gave the old “what the heck, why not” kind of attitude towards Multiplayer and we rolled. We created the marble movement twice as fast for smoother updates, and with this we did this as the first protocol of Multiplayer movement that had better integration of code. We had Whirligig helping us at this time. However, we decided to drop this eventually as MBElite wasn’t getting anywhere with it. We removed all of the Multiplayer code, and we decided to not use whirligig’s algorithm in the future incase if the project was to ever be reborn again.
What do you think happens next? We decide once again MBG. So we decide to code Multiplayer in MBG again, saying this would be the final time…except not really. Let’s explain further. At this time, we had asked a third programmer to help us with the coding so that it would move the project along. To make a long story short in this, as I don’t want to talk about this too much, we had to drop the project and throw away the code…not going into detail on that one.
We decided then, for a FINAL time, that we would end up creating Multiplayer again in MBG. So we had ended up asking Matan this time if he could help us test with Multiplayer, and he gladly accepted. However, shortly after, something happened to this version, where it had ended up having to get deleted. So, ONCE AGAIN, we had to RE-DO IT AGAIN (This is THE most current version now), however this time, it is now run through HiGuy and myself mainly, except with the Platinum Team.
MBG Multiplayer will come soon guys, thanks to the Platinum Team for the support along the way, it’s been a long journey, but we are finally starting to come closer to the finish line.
~Jeff, HiGuy, and the Platinum Team
I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.