If you can't see these images, go to the GitHub page.

Recently, I challenged myself to make a better Minecraft port for the CE than has ever been done before. It's still in development, but I feel confident enough now to share my progress so far.
"Better" is subjective, but in some ways, my port has several advantages over existing ports, including things like
- a hotbar
- functional creative inventory
- more than 16 blocks (as of writing, there are currently 119 blocks/items)
- practical, intuitive controls (no clunky numpad controls)
- nice graphics (although there's no lighting like TheScienceElf's port, which is quite impressive)
- two-layer world system
- accurate colors (palette has been optimized for the graphics here)
If you would like to download the latest alpha or learn more about its features, go to its GitHub page at https://github.com/dozer8383/MinecraftCE .
The end goal of this project was to put a functional and playable survival mode on a calculator. Survival mode has not been implemented yet, but much of the foundation has been laid.
The one problem with my port is that it is extremely slow, especially when underground. Tell me what you guys think of it, and if it's still somewhat playable even underground. Thanks!
(Also, I am aware of the weird-looking enchantment table. I just need to change the obsidian color from black to almost-black)
EDIT: I should also mention that I am not afraid to use up every last byte of the 64-ish KB that's available to me. Suggest some things I could add, as well.
It would be really cool to have this since the original one for the ce is anti-climactic.
Calculatordream wrote:
It would be really cool to have this since the original one for the ce is anti-climactic.

Clarify: What's the "original one" that you're referring to? And what makes it anti-climactic?
https://www.cemetech.net/downloads/files/1827/x1827
It's well made but not what one is expecting.
Ah. I've seen that one before. Its major problem is the incredibly small world and the lack of smooth movement. Some of its more minor problems is that the cursor can go far beyond normal reach distance. The world in my port is around 210x150. I wanted to give a good balance of horizontal space for building stuff, and of vertical space, for all the people who spend most of their time mining for diamonds when they play Minecraft (i.e. my dad).
jasper7474 wrote:
Ah. I've seen that one before. Its major problem is the incredibly small world and the lack of smooth movement. Some of its more minor problems is that the cursor can go far beyond normal reach distance. The world in my port is around 210x150. I wanted to give a good balance of horizontal space for building stuff, and of vertical space, for all the people who spend most of their time mining for diamonds when they play Minecraft (i.e. my dad).

How is the world data organized?
Invalid_Jake wrote:
How is the world data organized?

It's one 2D array of block IDs for "world A", the front layer, and another 2D array for "world B", the back layer. There's a list of pointers to the textures of each block, where the ID corresponds to the index of the block in that list.
I suppose it's not super organized. I plan to add save files that can save a world bigger than 210x150, but that will be coming much later. Saving a world like that would require a chunk system, something I'm too lazy/busy to implement right now.
jasper7474 wrote:
Invalid_Jake wrote:
How is the world data organized?

It's one 2D array of block IDs for "world A", the front layer, and another 2D array for "world B", the back layer. There's a list of pointers to the textures of each block, where the ID corresponds to the index of the block in that list.
I suppose it's not super organized. I plan to add save files that can save a world bigger than 210x150, but that will be coming much later. Saving a world like that would require a chunk system, something I'm too lazy/busy to implement right now.

I see, when you say "2d array" what do you mean? Like a matrix? If so how is that actually organized.
So, for example, a 2D array in C would be something like:
uint8_t worlda[][] = [
[0,1,2,3,4,5,6],
[7,8,9,0,1,2,3],
[4,5,6,7,8,9,0]
];
So yes, a matrix like TI-BASIC. Another way to think of it is a list of lists.
This way, I can reference any block by just using worlda[x][y].
jasper7474 wrote:
So, for example, a 2D array in C would be something like:
uint8_t worlda[][] = [
[0,1,2,3,4,5,6],
[7,8,9,0,1,2,3],
[4,5,6,7,8,9,0]
];
So yes, a matrix like TI-BASIC. Another way to think of it is a list of lists.
This way, I can reference any block by just using worlda[x][y].

Oh nice, that's how I assumed you did it.
Current focus for next update (0.9.0):
- Ladder functionality (I already have a rough version of this on my calculator right now, it was surprisingly easy to implement)
- Better world generation (trees, correct Y levels for ore gen)
Biomes are probably going to be added sooner than I had thought initially (but not in this update). The end goal is, as I said previously, a working survival mode. Step one in survival mode is punching trees, so there needs to be trees to punch. All of the overworld tree types have been added already, excepting the blocks for their leaves. Oak leaves have been added, though.
Do you have any screenshots you can share?
Michael2_3B wrote:
Do you have any screenshots you can share?

All the screenshots are on GitHub. Putting images in my forum posts is a little inconvenient, since I have no idea if they're showing up for other people or not (I can't see any images in posts on my computer), but I can try putting in some of them here.
Nice, it's looking pretty good so far! Are you planning to host your source code on GitHub as well?
Looks really nice - I can see the screenshots in your first post.

Screenshots are a good way to draw people to your project thread.
TIny_Hacker wrote:
Nice, it's looking pretty good so far! Are you planning to host your source code on GitHub as well?

Yeah. One of the splash texts is "Open source!" after all, so I should stick to it.
Trivia: In official versions of Minecraft, the splash text reads "Closed source!", so I changed it. There's a few other splashes that I changed, like "Uses OpenGL ES!" to "Uses graphx.h!"
0.9.0 is released!
Most notably, you can climb ladders, trees generate in the world, and the renderer has been optimized! Go check it out on the GitHub page at https://github.com/dozer8383/MinecraftCE .
god a
Hey guys, I've been working on 0.10.0, which will be adding world saving/loading (although in a limited capacity initially). I realized that my game needs 130 KB of free RAM to run, and the world data takes 22 KB, just barely fits on a calculator with nothing else in RAM. How can I archive an open appvar without having to close it and reopen it with a different mode (i.e. read, write, append)? What I'm trying to accomplish is to write the world data to the appvar and then archive it. ti_SetArchiveStatus() doesn't work when it's in "w+" mode, and it runs out of memory even when I close the appvar and reopen it. Thanks in advance to anyone who has a solution to this. The reward would be: you get to play version 0.10.0 Smile
jasper7474 wrote:
Hey guys, I've been working on 0.10.0, which will be adding world saving/loading (although in a limited capacity initially). I realized that my game needs 130 KB of free RAM to run, and ...

Do you have the source code on github?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement