Minecraft Clone on the NES
Moderator: Moderators
Minecraft Clone on the NES
Is it possible to port a 2D Minecraft clone on the NES, with the limited number of Kilobytes available. If so, port the game to the NES and see the final results.
Since the NES has 2 Buttons (A/B), 2 Side-Buttons (Select, Start) and a D-PAD, we should limit 2D Minecraft in a big way, so that it would make use of the NES Controls.
Since the NES has limitations like 4 colors per sprite available, we should limit the Minecraft Textures/Sprites to only 4 colors.
Scrolling in Minecraft NES will be decent, as it reads every block data available per line (as several NES games do this, like Kirby's Adventure and Super Mario Bros/SMB2/SMB3)
Mobs in this Minecraft NES Clone may cause a bit of frame-rate slowdown with your player, but it's normal with the NES, in Creative Mode, we must limit the number of mobs that it will be placed (much like other Legacy Console/Handheld versions of Minecraft, like the New Nintendo 3DS Edition).
Creative Mode and Survival Mode will be decent enough, for Survival & Creative, Each world will be 256 high (up) by 256 low (bottom), as the NES can('t) really do infinite worlds, and a world border would be fine enough for this NES Clone.
After you lost all your health in this Clone and want to respawn, Respawning would read every single line of data for the NES and restore the data in where you were in previously.
Mining, Generating and Placing Blocks, well, Remove only one sprite and add back the same sprite without any issues with sprites, Generating Blocks when making a New World however, it must place every sprite without having issues with it.
Your player will move when a block is placed or generated automatically, but will fall when the block is not placed or generated (mostly mined)
Physics like Water and Lava may work out nice, but may take some time to get use to with NES Code, as we don't want to take up too much space for this NES Minecraft clone project.
We will NOT add in Multiplayer to this NES Minecraft clone, as it would take up more data in this NES Homebrew clone.
Since the NES has 2 Buttons (A/B), 2 Side-Buttons (Select, Start) and a D-PAD, we should limit 2D Minecraft in a big way, so that it would make use of the NES Controls.
Since the NES has limitations like 4 colors per sprite available, we should limit the Minecraft Textures/Sprites to only 4 colors.
Scrolling in Minecraft NES will be decent, as it reads every block data available per line (as several NES games do this, like Kirby's Adventure and Super Mario Bros/SMB2/SMB3)
Mobs in this Minecraft NES Clone may cause a bit of frame-rate slowdown with your player, but it's normal with the NES, in Creative Mode, we must limit the number of mobs that it will be placed (much like other Legacy Console/Handheld versions of Minecraft, like the New Nintendo 3DS Edition).
Creative Mode and Survival Mode will be decent enough, for Survival & Creative, Each world will be 256 high (up) by 256 low (bottom), as the NES can('t) really do infinite worlds, and a world border would be fine enough for this NES Clone.
After you lost all your health in this Clone and want to respawn, Respawning would read every single line of data for the NES and restore the data in where you were in previously.
Mining, Generating and Placing Blocks, well, Remove only one sprite and add back the same sprite without any issues with sprites, Generating Blocks when making a New World however, it must place every sprite without having issues with it.
Your player will move when a block is placed or generated automatically, but will fall when the block is not placed or generated (mostly mined)
Physics like Water and Lava may work out nice, but may take some time to get use to with NES Code, as we don't want to take up too much space for this NES Minecraft clone project.
We will NOT add in Multiplayer to this NES Minecraft clone, as it would take up more data in this NES Homebrew clone.
Re: Minecraft Clone on the NES
The biggest problem in making something like Minecraft on the NES is the large amount of RAM necessary to represent large modifiable worlds. If the world was 256x256 blocks, which's not particularly large IMO, you'd need 64KB of RAM, which's doable, although not common, on the NES.
Ideally we'd be able to make worlds much larger by implementing some form of compression on the fly, on the basis that's it's very unlikely that a player will modify every single block in the map.
Ideally we'd be able to make worlds much larger by implementing some form of compression on the fly, on the basis that's it's very unlikely that a player will modify every single block in the map.
Re: Minecraft Clone on the NES
Like, Angry Birds was able to run on the NES almost perfectly with a bootleg clone called Super Angry Birds (and an impressive one as well, with 386KB for this bootleg port alone): https://www.youtube.com/watch?v=FgxmtuEodDg
So, we may limit large worlds in a big way with this Minecraft NES Homebrew clone to save up Kilobytes and block data.
So, we may limit large worlds in a big way with this Minecraft NES Homebrew clone to save up Kilobytes and block data.
Re: Minecraft Clone on the NES
For a (long!) while I've been thinking about how FlashROM would be perfect for a large, editable, persistent world. There are some technical challenges though, the boards that are self-flashable I think typically don't include WRAM. UNROM-512 and GTROM are a couple low-cost boards with 512kB flash. One can write to FlashROM easily enough, but modifying a programmed byte requires erasing a 4kB sector. On GTROM at least, there is enough PPU RAM available for temporary storage when rewriting sectors. Or one could just swap between sectors directly, marking the old one as erasable/outdated.
Re: Minecraft Clone on the NES
Except that this Angry Birds clone killed one of the key aspects of the game, which was the structures crumbling and killing the pigs. Not only is the NES CPU too slow for complex physics calculations, but the sprite capabilities of the system make it impossible to draw structures made of many moving pieces.
Re: Minecraft Clone on the NES
I'm working on a Minecraft / Terreria style game. With SXROM and 32 kB SRAM.
https://youtu.be/8jakriB2Q-o
https://youtu.be/8jakriB2Q-o
nesdoug.com -- blog/tutorial on programming for the NES
Re: Minecraft Clone on the NES
I think someone using NESmaker already did something like this. It was called XIO or something. The controls were confusing at first but you mine blocks and then relocate them. Look up 2019 byte off games to find it.
Re: Minecraft Clone on the NES
Any chance you mean Momoc?
It's conspicuously lacking any kind of backtracking, so there's no persistent world. It looks like it's a puzzle game separated by grinding for resources.
It's conspicuously lacking any kind of backtracking, so there's no persistent world. It looks like it's a puzzle game separated by grinding for resources.
Re: Minecraft Clone on the NES
Didn't Notch make a NES-like Minecraft game, for Ludum Dare, a few years back?
Edit:
I found it: http://ludumdare.com/compo/ludum-dare-2 ... ew&uid=398
He had kept things simple, with each region split into different Overworld maps, separated by staircases. (Underground, Overworld, Sky)
Something like that seems like it'd be doable on the NES.
Edit:
I found it: http://ludumdare.com/compo/ludum-dare-2 ... ew&uid=398
He had kept things simple, with each region split into different Overworld maps, separated by staircases. (Underground, Overworld, Sky)
Something like that seems like it'd be doable on the NES.
Re: Minecraft Clone on the NES
And how many writes can unrom-512 and gtrom flash tolerate? The worst modern flash is only 100 writes, you'd kill it in half an hour of minecrafting.
Re: Minecraft Clone on the NES
Could something like Broke Studios' wifi adapter be used to store the data server side?
Re: Minecraft Clone on the NES
For SST39SF it's 100K per sector, 4kB in size, so there are 128 in total. I've noticed older versions of the datasheet say 1 million, but from what I've read, 100K was chosen as a trade-off for faster erase performance, and it's pretty good. IIRC, sector erase is on the scale of about 1 NES frame.
Re: Minecraft Clone on the NES
The most immediate problem to me with trying to store a massively mutable world in flash with a 4K erase size is that the NES only has 2K of RAM. And although SST flash (like most flash) supports partial burns (i.e. 1 can be changed to 0 at any time, regardless of whether the other bits in the same byte are already 0), you still have to hold the entire contents of the sector for re-programming when you erase it.
Some kind of log-structured filesystem will help too.
Some kind of log-structured filesystem will help too.
Re: Minecraft Clone on the NES
My 2 cents, you can fit a 30x256 map neatly into the 8KB WRAM and still have 512 (non-continuous) bytes for misc. save storage. Plus you could use the SMB3 "fake four-way" if you're into that sort of thing.
Re: Minecraft Clone on the NES
That'd be incredibly small for a customizable world... you wouldn't even be able to build a skyscraper! My 2 cents: if you want to accomplish something extraordinary on the NES, you can't do it using ordinary techniques. An uncompressed array of blocks in WRAM is the most straightforward thing a programmer could do when implementing large dynamic maps, but in the context of Minecraft, which's supposed to offer world-sized worlds, what you can implement that way isn't really that large.
I think it would be better to go for a dynamic memory allocation approach. You'd start with a seemingly infinite procedural map, without much detail, requiring little to no memory, and as the player modified it you'd allocate blocks of memory to hold the customized regions (preferably using some kind of compression). Drawing the world would require generating the procedural parts and then overlaying the customized regions. For better performance when scrolling, the area around the player could be cached, like in SMB. This approach would cause the memory to be used wherever it was needed, without limiting the player too much. The memory would eventually end, of course, and at that point you could either be honest about it and prevent the player from further modifying the map, or be a dick and silently destroy the customized regions that were farther away and claim the memory they were using.