{"id":2369,"edition":13,"categories":8,"features":1,"size":13311,"name":"Catway XR","authors":[{"name":"JackDesBwa","login":"JackDesBwa","gh":493717}],"description":"

For entering WebXR, please see the 3D mode button

\n

Goal

\n

The cat is living in a special world made of 2D and 3D elements.\nYour goal is to help it to find its way to its cozy pillow.

\n

Controls

\n

The cat can walk and jump. Action and direction keys should be pressed simultaneously.

\n

Keyboard uses direction arrows for directions and X and C keys for action.

\n

Gamepad use axes 0 and 1 for directions (usually joystick) and buttons 0 and 1 for action. I let you find where it is on yours.

\n

Mouse, touchscreen or laser controller in XR allows to designate a specific location in the 3D world, which can also be used to play.

\n

A click-drag on the screen moves the camera around. Grab in XR moves the world around. Wheel or two fingers pinch are used to zoom.

\n

Devices

\n

The game can be played on several devices: VR headset, PC, mobile…

\n

The cat can be controlled with several devices:

\n\n

The 3D can be displayed in a lot of ways:

\n\n

Note: there is no hand support in AR/VR, so a controller is necessary.

\n

I tested it with PC + {mouse only, keyboard + mouse, gamepad + mouse} ; VR headset in {Virtual Reality, Augmented Reality} mode with its controllers ; PC connected to a 3D TV ; Mobile with touchscreen ; and a few other combinations…

\n

Aim

\n

This small project was primary for me to learn to use A-FRAME. I actually learned quite a lot more in order to build this little game, like how to generate sound in browser to name only one.

\n

I also wanted to be able to display the 3D world on a variety of devices. It was quite challenging to interface with A-FRAME that is not made for it, but with a bit of hack, I managed to make it possible. In the same idea, I tried to support several controllers.

\n

13k is small to support so much use cases.

\n","source":"JackDesBwa/js13k2025_catway","stars":0,"dc":"https://catwayxr.desbwa.org/","yt":"4NF9XbDBE8Y","post":"https://github.com/JackDesBwa/js13k2025_catway/blob/main/postmortem.md","comments":[{"at":410354981,"author":"Teddy Chen","login":"teddychen1251","gh":20600583,"text":"

Played it in VR - I liked the concept of a 3D puzzle that you can hold in your hand to play, it’s something that you can’t really feel on desktop.

\n","games":["CatSlap"]},{"at":411116672,"author":"xem","login":"xem","gh":1225909,"text":"

Oh, it’s playable without a VR headset! Impressive visuals, sound, and technically too. Good idea.

\n","games":["I got up on the wrong foot"]},{"at":411263730,"author":"Andrew Higson-Smith","login":"ElementalSystems","gh":4255763,"url":"www.elementalsystems.co.za","text":"

Enjoyed the 3-d puzzle aspects - clever idea

\n","games":["Wake the Cat"]},{"at":411449878,"author":"Kev Etchells","login":"KevinEtchells","gh":1634605,"text":"

I really enjoyed playing this, and it worked great in VR where you could walk around the puzzles.

\n","games":["9 Lives: An Escape Room"]},{"typ":2,"at":411713304,"author":"Josh Marinacci","login":"joshmarinacci","gh":276938,"url":"http://joshondesign.com/","text":"

I got stuck on level 9. I love puzzle games and the VR controls were pretty intuitive once I realized I could move the board around. I think you should take this further with improved animation (a 3d cat if at all possible) and sound effects and more levels. My only complaint is that sometimes it was hard to tell if a cube was solid or hollow. I’m happy that it ran smoothly on a quest 1.

\n"},{"typ":1,"at":411882727,"re":411713304,"author":"JackDesBwa","login":"JackDesBwa","gh":493717,"text":"

Interesting to know that it runs well on a rather old VR headset model. I also got a feedback of it running on an old computer and displaying well on 3D glasses.

\n

The “director’s cut” version will allow you to try other levels, as I added a skip button in it. I wish I thought about this feature before submitting the game. Also, I published a video showing an example of a solution per level.

\n

I agree that the game would benefit from a 3D model for the cat and from some transition animations. I do not see how I could have added them in the 13k limit though, and now I think I won’t find time to improve the game significantly, unfortunately.

\n

Concerning the hollow/solid problem, if you have suggestions to improve the readability, don’t hesitate to give them. If it is short to implement, I could add it in the “director’s cut” too.

\n"},{"at":411762223,"author":"Mohammed Saud","login":"rottencandy","gh":20013884,"url":"saud.wtf","twitter":"rotttencandy","text":"

Played it on desktop but it was still fun. Pleasant ambient music, challenging puzzles, and overall great execution.

\n","games":["Non-Mewtonian Cat"]},{"at":411817690,"author":"Samuel van Egmond","login":"SamuelVanEgmond","gh":95985602,"text":"

I liked the simple but effective visuals. I found the desktop version more enjoyable because it was much easier to rotate the level there.

\n

Unfortunately already got stumped on level 7, LOL.

\n

Great little puzzle game (or perhaps big but like i said, only got to level 7!)

\n","games":["Kittens Crossing"]},{"typ":1,"at":411880952,"re":411817690,"author":"JackDesBwa","login":"JackDesBwa","gh":493717,"text":"\n"},{"at":411880718,"author":"Alex Swan","login":"BoldBigflank","gh":636964,"url":"https://alexswan.dev","text":"

I’m impressed by your many supported input methods, that takes a lot of thought and planning. I got stuck at level 7 unfortunately.

\n","games":["AL13YCAT"]},{"typ":1,"at":411885922,"re":411880718,"author":"JackDesBwa","login":"JackDesBwa","gh":493717,"text":"

The architecture for inputs is not particularly complex.

\n

Ultimately, there are 3 events that the user can generate: walk (with a direction), jump (with a direction or not), face (with coordinates).

\n

Downstream, the code translates those actions based on current position to check if the move is allowed, and moves the character if so.

\n

Upstream, each input is independent and generates those events accordingly.

\n

For mouse, touchscreen and laser, it is straightforward: click => face event. Most of the job is done by the library AFRAME that was allowed in the WebXR category. Under the hood, a raycaster tests each face and buttons.

\n

For keyboard, gamepad, VR controller’s buttons, their respective codes send an event when the state of relevant buttons change, and another code gather those states to trigger the action when a combination is detected. This allows to mix controllers, but they could have detected and sent events independently too.

\n

Hint for level 7: go down first, or watch spoiler video published today.

\n"},{"typ":2,"at":411902228,"author":"Fernando Serrano Garcia","login":"fernandojsg","gh":782511,"url":"http://fernandojsg.com","twitter":"fernandojsg","text":"

Very nice puzzle game! I would have loved to see some animations, or maybe have the cat and the pillow in 3D as well, but honestly it was really fun to play. The passthrough option was also a great touch — being able to play in the living room while watching TV was a big plus. 👏

\n"},{"typ":2,"at":411929748,"author":"Kieran Farr","login":"kfarr","gh":470477,"twitter":"kfarr","text":"

I think the core puzzle mechanics are great – this reminds me of monument valley style spatial puzzle mechanics. It did take me a little bit to get the game launched through the many options for xr and then orient myself around how to rotate the game area and control the cat, but once I figured it out I really liked the AR option to play the puzzle in my own room. Your grab controls for rotating the scene work smoothly once learned, and the clean aesthetic serves the puzzle-solving with the exception of the hollow cube which took a few tries to understand. My suggestion would be adding a clearer tutorial or initial easier levels to help players grasp the mechanics faster—I took some time to understand how everything worked. And perhaps make passthrough mode the default and get rid of all the other 3D options, it’s super nice to play a game like this with your own surroundings.

\n"},{"typ":1,"at":411971542,"re":411929748,"author":"JackDesBwa","login":"JackDesBwa","gh":493717,"text":"

Feedback implemented in the “Director’s cut” version: I simplified the page for 3D mode selection, hiding less common modes one page away + a special page suggesting to switch to XR after the start button is pressed if the device is capable but the session is not started + I added a message in the tip box to explicitly mention the grab button in XR.

\n

I felt that the 6 first levels were already simple enough to act as tutorials. I’m not sure how they can be simplified further. Also, the complain about the hollow cubes is shared between several comments, but I still don’t have any idea how to improve the situation.

\n

I agree that the Augmented Reality mode is really nice, especially with a 6dof VR headset, as having the game in your room is a very special experience. The other 3D display modes are useful for other devices though. For example, using another mode, I had the game going in and out of my 3D TV without the heavy VR headset which was another nice experience.

\n"},{"at":411951880,"author":"Jasper Renow-Clarke","login":"picosonic","gh":26137750,"twitter":"femtosonic","text":"

Hey this is a really fun game

\n

Although the sprites are 2D in a 3D world it actually works quite well

\n

I liked the background music and the duh-duh sound effect when I clicked the wrong level tile

\n

I got stuck on level 7

\n

My only suggestion would be that when rotating the world, once you complete a level the select level screen keeps the same rotation - maybe it could be reset?

\n","games":["Mochi and the midnight escape"]},{"typ":1,"at":411959191,"re":411951880,"author":"JackDesBwa","login":"JackDesBwa","gh":493717,"text":"

Your only suggestion is a good idea and easy to implement, therefore it will be in “Director’s cut” version.

\n

Hint for level 7: go down first, or watch spoiler video.

\n"},{"typ":2,"at":412014130,"author":"Diego Marcos","login":"dmarcos","gh":39342,"text":"

Controls need polish but very interesting use of space

\n"},{"typ":2,"at":412024687,"author":"Akbar Sultanov","login":"akbartus","gh":54757270,"text":"

This is a fun game with engaging and challenging logical tasks. It’s a great advantage that the game is available on different types of devices, which adds to its overall value. The controls are simple and intuitive, making it easy to play. I would suggest slightly improving the graphics, for example by adding more dynamic backgrounds that change depending on the level. Nevertheless, it’s a well-done and enjoyable game!

\n"}],"results":{"theme":{"rank":9,"min":2,"score":3.55,"max":4.53},"innovation":{"rank":4,"min":2,"score":3.7,"max":4.06},"gameplay":{"rank":3,"min":1.75,"score":3.5,"max":3.8},"graphics":{"rank":8,"min":1.73,"score":2.7,"max":4.68},"audio":{"rank":4,"min":1.81,"score":3.05,"max":4.41},"controls":{"rank":3,"min":1.31,"score":3.7,"max":4.2},"primary":{"rank":6,"min":9.67,"score":20.2,"max":23.88},"label":"WebXR"}}