Rubik's Cube

Custom
10

Map Description

  1. Littlemonk5
    Ever thought to yourself, "wow, I totally wish I could do difficult things using an avatar in a world where that thing is just so much harder"? Well, now you can. Some of you may remember me from a while back when I made a big ol' Toilet. Since those days, I took a break from Halo and now I have returned and everything has changed (and luckily, for the better). I wanted to take some time with the new scripting features and play with joints. First idea that came to my head was making a Rubik's Cube that had full functionality, the ultimate test.

    [​IMG]

    I am happy to say I've exceeded even my own expectations with this map. Not only can you solve the Rubik's Cube with a Wasp, but it can solve the Rubik's Cube automatically with the click of a button. I basically developed an efficient way to store data in Halo which to my knowledge, is untouched territory. There are tons of features loaded into this cube that I will definitely touch on later in this post for the curious, but for now, here is how you play.

    [​IMG]

    The game starts you (and up to 1 friend) far off and below the cube. Only reason I did that is because the cube takes time to mix and I don't want you hooligans getting bored in your Wasps so instead you get to be bored in an elevator watching the cube mix. Once at the top of the elevator, you reach a platform with some terminals and two Wasps.

    When you here "Play Ball", the fun begins. To turn the cube, you must first select a face to turn. To do this, shoot the reticle marker associated with the face you want to turn from any of the adjacent faces.

    [​IMG]

    You will then get three arrows. The ones pointing in opposite directions are the direction options to turn the face, clockwise or counterclockwise. The other arrow is a back button in case you selected the wrong face to turn.

    [​IMG]

    The reticles come back after 5 seconds for your next move input. You will notice that your score reflects how many moves you have made.

    Now say this just got way to hard for you or you screwed up an algorithm. That sucks, but this cube can fix it. If you just want to get back to a point where you know what you were doing, turn the black terminal on. This action starts to reverse the moves made until the cube is solved again. Whenever a turn is done, the terminal becomes interactable again for you to stop the auto solver. If you are just so done, end the round or watch it complete itself by leaving the solver on.

    [​IMG]

    Now, Monk, what if I'm color blind. This is a really color blind insensitive game, don't you think? Ha. No. I got you color blind people. The colored terminals activate markers on each face that are colored and say the name of the color. No more confusing orange and red. To turn markers off, hit any colored terminal.

    Overall, I am very pleased with the new scripting. It has its shortcomings, but nothing that I could't work around which felt great. Also, yes, the cube looks really crappy sometimes when it moves but I promise after a lot of testing it isn't breaking and your cubes are in the right spots. It also looks totally fine in theater mode *hint hint*

    Map Variant
    Gametype Variant

    Extra reading:

    How Did I Do It:
    Honestly, I had to make an Excel sheet to keep track of all this. It was a lot between scoring, rotation, the auto solver so I'll give the short version here but I am willing to talk to anyone in more detail over XBL.

    Rotation: Basically the thing that holds the cube in place is is also what rotates it. Each face has a shell and each middle has a band around it. When one side, let's say the top, is turned, the side shells despawn, the side bands despawn, and the middle band and bottom shell stay still. The cube pieces are actually hinged in multiple locations. If a single cubelet is associated with 2 sides it has two hinges, one connected to each middle cublet and same for a corner but with 3 hinges. When rotation starts, the barrels that aren't being used despawn to release the cube. I did try this all with ball joints for an easier build but it was actually too many degrees of movement which caused more issues so this was the best most consistent way with only one degree of freedom. Every turn has a number 1-12 which sends a signal alpha-foxtrot and a channel flip for CW or CCW. A lot of other stuff happens too...

    Score: Each piece has a ball joint welded to each of its faces. Used ball joints because they are small, invisible, and have no physics. These pieces double as the marker pieces if you use nav points. When 9 objects associated with a face eneter the boundary, a channel alpha-foxtrot is turned on and a +1 is added to the tracker global. This +1 is actually pulsed on and off with another channel to make sure I don't accidentally compound incrementation but that is too much to explain. There was also some very weird boundary stuff I discovered with normal groups (again too much for here) so I had to add in orientation checkers. These are boundaries welded to each corner that check to see when the right block is in their boundary (an invisible blocker near the cube corners). Those work just like the side checkers and turn on a channel mike-tango which add a +1 when on. Meaning when the total reaches 14, you win. And some other stuff...

    Targets: Honestly, just party up with me. Those targets are insane and I hate them and I semi ranted on Reddit already so yeah...

    Auto Solver: Honestly so happy about this. Basically what I did was took two invisible blocks, a reader and a writer, and overlapped them over 50 other invisible blocks (50 because the max a move script can move at once is 64 and 50 is easy math). Both reader and writer have boundary checks that do different things. When in write mode, the writer takes a random block it overlaps (not the reader) changes that objects local to the global it received, labels it, and moves all the blocks that don't have that label (including the reader). When in read mode, the reader moves on a set timer to the farthest block in its boundary (always the last written block). It takes its local and delivers it back to a the original global which tells the cube to move in the opposite direction it received before. When the reader moves, it only moves the writer so that data can be overwritten! To add more data points, I just added more chunks of 50 spaced out 150' apart. This way, I don't have to do a lot of work on spacing as the writer does most of the work for me. Hopefully that short description explains it well enough.


    Bug Reporting: See something, say something. The cube blows up, tell me what you did to blow it up. The cube shakes a lot, I don't care. If you want it to take 33% longer to mix and turn, I can make it look smoother but I'm not about it. The elevator takes too long and you hate it, I guess tell me but that honestly is so minor to the people that are gonna actually want to try this mini-game. The auto solver does not solve or kills your cube, tell me.

    Thank you all again for the help and support with testing and feedback!!
    BLOODxcrazer, iehann, fame28 and 3 others like this.

Recent Reviews

  1. Awesome

Discussion

  1. CaptainDireWolf

    CaptainDireWolf Forger of the Wild
    Staff Member Forge Critic Senior Member

    Messages:
    732
    Likes Received:
    1,323
    This is some damn good scripting to make all this work correctly. I have no doubt the amount of work that was put into this was tremendous, so well done!
     
  2. Littlemonk5

    Littlemonk5 Legendary

    Messages:
    80
    Likes Received:
    111
    Haha yeah definitely a huge chunk of this was the scripting. You can see the transition from "completely thought out" to "I hope this works" just by seeing the placement of my scripting brains. A beautiful disaster.
     
  3. fame28

    fame28 Forgotten Treasure
    Senior Member

    Messages:
    390
    Likes Received:
    478
    The amount of scripting in this is incredible. If you don't have an idea for a next project, may I suggest building prefabs for race game types. Far too often I see super nice race tracks, but they are just that. A racetrack, no thrills built in, so it would be cool to have a prefab people can use that would work like Mario kart options. A player can pick up an object and have it hit a player in front of them, create havoc behind them or hover explosives around the vehicle.

    A different game type I thought of would be a race mode where the mongooses are launched into a garbage factory conveyor belt and they have to dodge obstacles until the hill markers show up to gain points. The players that got caught up on debris get drug to the back of the belt, fall of and die. They respawn being dropped onto the launchers and shot back onto the conveyor belt. It would be fun due to the randomness of people gaining the lead. I would love to help build this if you wanted. I don't know scripting aside from a basic amount, but can help with the map portion.
     
  4. Zandril

    Zandril Promethean
    Forge Critic Senior Member

    Messages:
    958
    Likes Received:
    906
    Map download link doesn't work. Also can't see it in your files.
     
  5. Littlemonk5

    Littlemonk5 Legendary

    Messages:
    80
    Likes Received:
    111
    Odd. I changed its visibility for you like a while back ago on an early build I thought. Idk how this visibility **** works. I'll take a look at it soon to change it if it's off and repost this since apparently it's not visible to some. Oops
     
  6. Littlemonk5

    Littlemonk5 Legendary

    Messages:
    80
    Likes Received:
    111
    Littlemonk5 updated Rubik's Cube with a new update entry:

    Rubik's Cube

    Read the rest of this update entry...
     

Share This Page