Update, March 4: Game is now live here.
This really is a triumph. Playable tomorrow on ROBLOX -- follow the creator’s Twitter for updates -- “Tunneler” is a full-fledged, fully functional tribute to Valve’s classic game Portal, including the original’s groundbreaking physics and teleporting mechanic. (Watch above if you don’t believe me, or watch the VR version below.)
While it’s fair to say most people in the game industry tend to dismiss ROBLOX as an amateur platform, I suspect demos like Tunneler may change that bias. For one thing, I first saw it on Twitter being commented on by Chet Faliszek… who was a developer on the original Portal games.
“When people think of Roblox, they typically think of a game where a bunch of kids play with simple basic blocks,” as Tunneler’s creator puts it to me. “[But recently] more and more new and modern features from other game engines have been added onto the platform. Nowadays, the quality of the games on Roblox depend entirely on the developer.”
So the typical Roblox developer (i.e. a kid) could not make a game like Tunneler out of the box. It was created by ROBLOX user “Homemade Meal”, who in his day job, works part-time as an effects artist for a game studio.
“There's a lot of technical things beneath the surface that I had to do for Tunneler,” Mr. Meal explains, “like using tricks with physics to be able to pass through them while maintaining collisions with the rest of the environment.” (More on that below.)
As Mr. Meal already works in the game industry, he didn’t create this to make money from ROBLOX users:
“Tunneler will be 100% free upon release. I’ve always loved to see people enjoy my games and creations. People come together and create a community because they all like the same thing, and I’m very appreciative that I can be the reason such a community exists!”
But then again, Tunneler might also be a message for his game industry colleagues:
“Roblox has the potential to create amazing games, however not enough people are putting the time and effort into trying because of the negative connotations about Roblox developers,” Mr. Meal tells me. “[It] never will until more experienced developers give it a chance.”
As for how Mr. Meal made the Portal teleport effect in Roblox? Very roughly summarized, the Tunneler portals don’t actually connect to the same 3D space, but into copies of the original space. I think. But here’s his highly technical explanation I’ll just quote in full below:
There was a new addition to Roblox back in 2018 named "viewportframes."
Viewportframes allowed you to render 3d models as a flat image, identically to how the main camera in a video game creates a flat image on your screen.
While viewportframes are a great method for creating portals, it isn't very easy since they don't do anything except for creating those flat images. In order to make the viewportframes look like actual portals, I had to duplicate the environment and place it into each portal's viewportframe.
However the issue with that is everything in the environment would appear static. Every frame, the game has to check every duplicate object and then try to sync every duplicate object's position to the actual part's position. This may be hard to follow, but an easier way is to think of the portals as alternate worlds trying to mimic the actual world you're playing in.
Even with all these fixes, there still is another problem with the viewportframes because of camera projection. i haven't studied too much on camera matrixes yet because they're so complicated, but luckily an excellent programmer named EgoMoose created a public resource which helps translate camera view to a surface.
Using that combined with the tricks i mentioned before, we can create a fancy-looking portal.
More from Mr. Meal on his Twitter.
Hat tip (via Chet): Intel game dev exec and Xbox team veteran Kim Pallister, who notes: "That this was made in Roblox is amazeballs. Trajectory of what's possible on that platform is being underestimated by many, especially in 'AAA'."
Comments