MineCraft Boat Race Port Part 6

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am bringing you another part to the slowing saga of the boat race port. Let’s get started!

Well, I have all the features ready to hopefully impress anyone interested in seeing it. The two landmark objectives this week were getting the teleport commands just right, and getting the boats to spin as the level starts.

The spin was an interesting story. This project is sort of a semi-secret from the rest of the server, so when I need help, I ask how to get a related problem. In the case of the spinning boats entering the level, I asked about how to make a cow spin in a tornado. I adjusted the selector (more generally: stuff I understood) to ask about actually getting a cow [boat] to spin. I ended up coming up with and refining my own solution, which in turn was unsuitable for the spinning cow.

Overall, the project is as close to the original as it’s going to get, barring some changes to reduce unwanted behavior. From this point, I’m going to be introducing new elements, making the whole experience even better.

At this point, I just need to show it off for that blind reaction I mentioned last week. It may be a while, so I think I’m going to start another project next week. Besides, I could blog about half of all the little, uninteresting optimizations I keep doing, but I’d just get bogged down and things would forever get thinner.

This project has been good for me. I cannot recall all the lessons I’ve learned along the way, but one of the newer ones is a reminder not to stop looking for a solution just because you ask out for an answer.

Final Question: What lessons from long projects have you learned?

MineCraft Boat Race Port Part 5

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am excited to announce the near completion of my project. Let’s get started.

Who would have known, not more than 24 hours after writing my last post, 12 after it went live, I would finally have the last major chunk of code working for my demo? I even made my goal of finishing before MineCraft 1.13 launched!

This week was kind to me even after my breakthrough, as I not only finished that up, but I got the other two alcove/arena combos working. Jam was helpful with getting the /tellraw commands working when he told me to just change out the old selecters.

I also worked over the end of level win condition, patching a bug where you could import a boat and cheat your way to the end. It turns out the boat would sometimes get stuck on elevators and break apart, forcing the player out of the level and resetting their progress. I made the level require the use of the original boat by setting (and checking for) an invulnerable flag on the boat. Unfortunately, I have no way of testing the invulnerable flag on glitching boats.

As it is now, I think the experience is at about 99.9% of the original. The original boats spun in air as they were summoned, and I still need to nail the /teleport commands.

I showed my work off to a few people this week. Duke, the guy who built the levels and my first guest after the workable demo, came by and helped me with a potentially embarrassing bug for when Tango (the owner of the Patreon server I play on) eventually does a blind reaction. New players need a valid score before they can enter the level for the first time. I fixed that for him and when DropDaBass, the server’s head moderator, came by.

There are still a few minor bugs. Sometimes timings don’t work out the best and you take a little damage on the way to the arena. Once in a large while, the level unloads around you without returning you to the lobby. There’s trouble with FPS (Frames Per Second) when connected over the Internet and a level unloads. There will always be something to polish.

One of my major goals for this build is the flexibility to add more games. I brought another patron over called Pendl3, who is looking to help me with my random throw away idea of a golf course. Getting the code ready for running dual games will be interesting, but I will complete the challenge.

Final Question: Simple, what games should I add? I think it would be good for me to add a few a year and they can either players or moderators swap them out with a control panel.

MineCraft Boat Race Port Part 4

Good Morning, from my Robotics Lab! This is Shadow_8472, and today, I’m almost done with my port of 2Cubed’s boat race. Let’s get started!

This week felt like progress was made in spurts thanks to both jam and Grifter, the two people from my MineCraft server helping me. About all my major accomplishments this week are in part to their command proofreading. Early on, I was working on the code to start the level. The /tp command and its supporting code was challenging to get just right. I came up with the idea to use an identifier block no player could [normally] see and reference it from commands later and jam helped me get something working. I was able to tune it in from there.

Jam once again helped me understand how the scoreboard works so I could build a level select. Long story short, imagine a spreadsheet. You have objectives at the top and entities on the side. Each cell at the intersection has a score to edit. There are no “global” scores, as much as I’d like to think that would make it easier on the learning curve. Objectives are added without attachment to an entity, but scores in those objectives are. Once I had that, I could step on a pressure plate to set my next_level objective to some level and load it with the alcove pressure plates.

Then came a day or few where nothing much happened, but with MineCraft 1.13 almost out, I wanted a workable demo by its launch date. A friend showed interest in seeing my work so far, and part way through the week, I scheduled a viewing on Friday, but I didn’t make it.

The next major hurdle after the teleport was how to tell if there were any players in the arena outside their boat and outside the starting area. After tossing the old command to jam and back (without luck), I passed the problem to Grifter, and he was awesome. He isolated a targeting selector I needed, where I likely would have figured it out in another few hours.

My focus sort of drifted to the win condition. Sure, it took me a while, but I eventually realized I could do it with a single command. Getting that command was another topic. I did most of the work in assembling it, and jam got me a snippet that gave me a working theory. The commands were a bit stubborn, but after I got something almost working, another chat with jam and it’s working.

The most recent challenge was targeting “cheating” players. The old game used scoreboards for almost everything. Something about a cheater tag showed up if you stood up and you weren’t in the start area. I wrote a command, finished by Grifter after hours of me doing trial and error, that spammed the word “hi” at any “cheating” players in adventure mode. And that’s where I am now. The next step is to replace the /say command embedded within the /execute with a function command to clean up players who might be done with a level.

I guess I have been making more progress than I thought this week. Before those last two breakthroughs on Sunday evening, I was all ready to make a big speech on progress and how a lack of success doesn’t mean you aren’t making any. Thomas Edison comes to mind with his brute force work on the electric light bulb. Once you know something doesn’t work, you don’t try it anymore. My difference here is that I’m documenting my progress with personal messages.

Final Question: I’ve now doubled my original project estimation time. I don’t really care. I’m getting working results on a semi-regular basis, and I might just get my 1.13 deadline. Even if I don’t make that one, I’d still like to get it working before my server updates. Have you ever worked with multiple deadlines for the same project?

Minecraft Boat Race Port Part 3

Good Morning from my Robotics lab! This is Shadow_8472, and today, I am bringing you another short chapter in the history of my port project. Let’s get started.

Work is still slow. I have a fairly solid idea of what the structure of the final product is supposed to be, but it’s coming along. Jam and I weren’t exactly able to work on it constantly, but he did help me with a few ideas and get the teleport command for entering the level.

I really hope I can do a demo for next week encompassing the original experience for the boat race. In the meantime, I can finish fine tuning what I have and showing my progress off and comparing it to the last time I showed it off to someone. Early on, I showed it off to my self, playing the levels just for old memories’ sake. That was just the levels loaded into a field after aligning them correctly. Later, I had a friend over where I loaded each level half in manually. After that, I demonstrated how I only needed to load one half, and it would load the other automatically. Another step toward completion let me show someone else how I had the structure blocks correctly placed to load the five available levels. This week, I provided my mother with an experience one step closer to completion when I played interface between the pressure plate and loading the level; the level now teleports its players to its own starting point.

Right now, I can think of two remaining challenges: I need to do the interface between pressure plate and level loading, and I still need to do the level end functions. Other than that, I still haven’t even looked at the original celebration commands.

Final Question: The teleport command came to me after goofing off all day. Have you ever gotten a critical idea in a similar fashion?

MineCraft Boat Race Port Part 2

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am updating my progress on the boat race. Let’s get started.

The race still isn’t playable. I managed to get the levels loading correctly from the command block room, special effects and all. All I’m just waiting on the completed functions back from jam.

In the meantime, my vision of this project has expanded. I’m now calling it the “Modular Game Center.” Basically, someone will be able to come in, flip some switches and play one of a number of games. Let’s say I have the expanded boat race and a golf course packed in there as well. The hardest part was programming for that eventual possibility.

Other than that, I showed off my work for last week’s post to a lot of the people involved in making the original boat race as well as my server admins. There’s word of the server resetting soon, so I’m hoping it will be done by then.

Once again, team building is the lesson up for learning here. This is a non-paid position, so if I don’t hear back from jam within a few days, I’m going to start figuring out how to do the functions myself. It will likely take a bit longer, but I found a great tutorial on how to build the commands.

Final Question: It’s a lot harder to write about writing software than building hardware. I don’t have as much to say this time… MineCraft kept crashing… Have you dealt with the pre-releases?