I know its been a full year, but is there any progress on the floor update?
can someone please make this compatible with random tile placement? like, the extension?
Right, here is an extension to add a ceiling, it can also make the sky move like sky! Here it is: GitHub - The-Code-Zone/Raycasting-pxt-extension: AqeeAqeeās raycasting extension now with ceiling rendering and MrFrankoās floor rendering
It also adds a floor!
great job now A D D S T A I R S /j
yeah also combine it with 3d models /j
And Lighting.
*The Raycasting extension with lighting is very outdated now
Is it possible to make something like a minecraft tree? For instance like stacking tiles basicly
nope , u canāt bcz only work in some engine
you could try in @Brohannās 3d engine? Not in the raycasting engine, no. At least, i donāt think so.
yeah , but how does it work ?
Iām really fascinated by AqeeAqeeās raycasting extension. Itās over 700 lines, and Iām trying to understand how itās structured at an engine level. I know how to use the blocks, but Iām not just here to call functionsāI want to understand how all those lines work together efficiently.
Iām trying to build my own accurate isometric grid demo, and I want to understand the engine logic itself. Seeing the code helps, but just reading it doesnāt explain why certain patterns or structures were chosen. I want to learn how to organize hundreds of lines of engine-level logic so itās maintainable and scalable.
Specifically, Iām curious about:
- How geometry is generated and tiles are rendered efficiently.
- How movement and controls are handled while keeping everything flexible.
- How the engine separates core logic from game logic.
Iām not asking for a line-by-line explanationājust guidance on how someone approaches building an engine at this scale. I want to know what techniques or design patterns help move between functions without getting lost in hundreds of lines.
Iām also applying this to my own extension, like building a āWar 2ā engine. I often spend a long time planning before coding, but I feel thereās more to learn about efficient engine structure, multi-line functions, and deep integration with MakeCode Arcade.
Hereās the raycasting file Iām studying: engine_raycasting.ts
I donāt want to just use the functionsātheyāre useful, but I want to understand what makes them work behind the scenes. The Render class is especially confusing; it uses multi-line functions and internal state that isnāt obvious at first glance. I want to understand the āwhy,ā not just the āwhat.ā
Some specific questions I have:
- How does the engine efficiently loop through tiles to decide what to render each frame?
- How does it avoid duplicating work when multiple objects or tiles need updates?
- How is control input integrated without cluttering the rendering logic?
My goal isnāt to copy the engine. I want to design my own engine-level systems, like in War 2, where functions, classes, and rendering logic are deeply connected but still readable. Any advice on:
- Planning multi-line functions before coding
- Structuring a large engine for maintainability
- Moving between functions logically like MakeCode does
Hereās my War2 extension (still feels like a base class/skeleton): War2 on GitHub
Iām also trying to make a ātiles hopā render game, but scaling alone isnāt enough. I need an advanced structure so the ball can hop with actual depthānot just using sprite.z
, but true 2.5D Z. Hereās a screenshot of what I mean:
I tried scaling, but MakeCode only has width and height, so jumping with x and y is still 2D. I need true 3D vectors and structure to make the tiles hop properly.
Clarification on Z-depth:
When I say Z, Iām not talking about 2D layering (sprite.z
) or fanmade perspective tricks. I mean actual 3D depth. For examples:
- Gameplay demo: YouTube playlist
- Using Z-depth in MakeCode: Forum post
Iāve tried some constants and tricks, but I still donāt know what the proper engine structure would be to make it all work. Any guidance on engine-level structure, Z-depth handling, and tile hopping would be hugely appreciated.
How to use the Brohann 3D extension
- Import the extension
- Go to Brohann3214/arcade-brohann-3d
- Paste the link in Search or Enter Project URL.
- Click Import when you see the Brohann 3D option. Youāll now see new 3D dimension blocks.
- Rotating your model
- Use the Set/Change X, Y, Z Angle blocks to rotate your shape.
- SetMesh is required first; it assigns your variable so you can apply indices and properties.
- Set flag controls which property of the mesh youāre modifying.
- Mesh properties let you define indices and other characteristics of your shape.
- Sorting method
- Use Set Sorten to choose between
accurate
orfast
.- Fast: Sorts quicker but may be less precise.
- Accurate: Slower but precise for rendering.