crafti
minecraft-casio
crafti | minecraft-casio | |
---|---|---|
2 | 2 | |
74 | 6 | |
- | - | |
6.3 | 5.4 | |
4 months ago | 8 months ago | |
C | C | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
crafti
-
Casio fx-CG50 calculator comes with Python built-in
I also made a Minecraft clone for a graphical calculator (https://github.com/Vogtinator/crafti), but the TI nspire has more resources available (esp. RAM) than the CG50.
I'm wondering how you do rendering: Usual rasterization per scanline per triangle or some other technique (s buffers)? Depth sorting or Z buffer? Any other tricks?
-
I wonder what does PolyDumper doing?
Well crafti is open source so you can (should) work from that rather 😅
minecraft-casio
-
Casio fx-CG50 calculator comes with Python built-in
> Initially I planned for the game to be flat shaded and added textures as an experiment, then realised the performance wasn't as horrible as I expected,
Heh, same!
> so it's mostly just a leftover from that. I did end up writing a scanline renderer for the flat shaded triangles, I think for those the bottleneck was transforming the vertices though.
IME vertex transformation is not expensive at all, compared to actually drawing on screen, at least if there is HW support for multiplication. Optimizations like merging identical block faces next to each other also reduce the total number of vertices, but this makes the texture distortions more apparent.
> Maybe I can deal with z-sorting entities by splitting them on voxel boundaries, and I guess dividing them again at any boundaries within non-full blocks (is this similar to https://en.wikipedia.org/wiki/Binary_space_partitioning?)
Kind of, yeah. With the structure of blocks in a chunk there is basically already a layer of partitioning that can be used, though it might not help sorting that much. Is there enough RAM for a Z buffer? If so, it might just be fast enough...
> For the affine texture splitting, as far as I can tell your game is more focused on creative mode/building whereas I might also want to add a survival mode so for that you're more likely to be up close to the blocks (e.g. in thin underground tunnels) and then the artifacts get much worse so I guess it matters more for me.
I never really bothered with that also because in tunnels/caves there is a bigger issue: There is no hidden surface elimination, which results in overdraw and due to the rather low effective fillrate in FPS drops. I couldn't come up with a good way to implement that properly without hurting performance itself.
> The code is at https://github.com/Heath123/minecraft-casio if you want to look at it (textures are in a branch) but it is quite messy
I had a look, it's really not. The asm is also readable. Is it currently memory or CPU bound?
What are some alternatives?
Upsilon - Upsilon, an OS forked from Omega for your Numworks calculator