A attempt of trying to recreate game

okey so im going to attempt to recreate minecraft not like in 3d version but in ASCCI GRAPHICS or just normal sprites so it would have inventory health building

1 Like

I found this ‘simple’ C clone of Minecraft (MIT License). It’s targeted for Windows/OSX/Linux and uses OpenGL for rendering, but it might contain some valuable code and insights for a much simpler version that can run on Ringo. I bet the multiplayer aspects can be ripped right out to shrink the base single player code significantly.

As a fellow Minecraft lover, I look forward to trying this out when you have the first build ready!

2 Likes

the thing is with limited amount of memory and i dont know if the ringo board supports openGL i havent seen any game on ringo that is 3d or that uses openGL and if it requires 1mb of ram at minimum then it wont work perfectly

1 Like

Oh yeah, this code would never be directly portable. However, even if you just reference/re-purpose the more “common” game functions/routines, like handlers for enemies, world block generation, etc, you could save yourself a lot of hassle versus trying to reinvent the wheel every step of the way. As far as ports/clones go, this was one of the simplest I could find already out there in the wild.

1 Like

well im not thinking about it now bec im stuck at planning phase of my console i still dont know what type of cpu to use arduino or esp32 my last resort would be the rpi zero with the vulkan driver or the p8x32a-dip40 chip

Oh! Speaking of (and this may totally influence your decision hehe)…have you seen this yet? Just came across my news feed yesterday.

You won’t get nearly that performance on a zero, of course, but wow! I bet it would still perform well for your console project. It’s not the same as the open-source Vulkan project; it’s specifically for Pi devices and written by an Nvidia engineer as a personal project…spent 2 years on it! :open_mouth:

yea im thinking to resort to rpi so i dont have to do more hassle

thewebmachine do you have a discord account ? :]

Sorry…been crazy busy working this week. I don’t mess with discord or most other social media, tho. I don’t even use Facebook. haha

oh well im switching to the hp compaq tc1100

1 Like

Switching to…for??

With MMOs, the server often renders the complete processes, and the computer renders the local main object and remaining local available processes. It only processes what it needs locally.
We’re only talking about two devices… plus, a lot less space is used. Minecraft is much bigger.
If the blocks are smaller, they could fit more than the mobile version.

I wonder if we could run a server for it though. It might have to run over LAN.

That might be the breaking point.
Even scaled down, 1mb is barely enough to build the images displayed on screen…

ASCCI is a good idea…

You think so? I mean, the Ringo’s small resolution means we don’t have to devote much to graphics, especially static objects. In fact, one would argue that, on a platform such as this, using a vector graphics engine might be ideal in both size and performance.

https://forum.arduino.cc/index.php?topic=140111.0

1 Like

That is a very strange concept. I only had a small amount of training in visual arts. I don’t remember much about things like Vector vs Raster…no hands on training with anything we do.
I can say though…by the maths, we can deduce all logical variables associated by screen size. It may be possible to cut corners and build simple short cuts. However, we must bear in mind our screen size. If for example, the screen we’re working with is a flat 400 screen size. That is close to our dimensions. We can easily divide 400 with binary fractions. 2^(any number) will equal any known square. 400 is divisible by a square. I am pretty sure we are going by 180x120 right now?
That is 21,600 pixels with individual 8bits.
(Notice - This example in general doesn’t really explain the Vector engine and I am simply pointing out the average logical calculation.)
21,600x8=172,800/1,000,000bits
The average Arduino sketch is about 20kb. 20,000/1,000,000
With a game example drawing from our (idk 1gb)storage folder on our 4gb storage card, we should be able to draw and place 20kb of main, 40kb of blocks, 40kb of characters, 40kb of items and get 140kb. 140,000 bits / 1,000,000 bits
172.8kb + 140kb is about .32mb/1mb
We can still render the program from the SD card.
We have .7mb left and we only need .3mb for performance tbh… another .3mb to be safe.

An example of what to emulate.
You can’t run a word processor on an Arduino with only 32kb. This article speculates what must be accomplished to build an eink Arduino word processing typewriter.
I chose this project because it’s a simple illustration with pics vs a long page of physical research.

What I mean is that it shouldn’t be resized to fit our device.
It should be rewritten from scratch to fit Arduino.

It is possible with or without extra storage. We should do it ergonomically as possible. Minecraft has its own 1x1 dimensional blocks. That cube renders at a specific size - the screen size. So the screen of the device is irrelevant and also the game playing it. It runs on any JVM device.
Java -> Machine -> Device
The second build is a basic algorithm and architecture. An algorithm known as a random seed decides the environment most likely to appear. The nature of these blocks is placed around the center block. The last nature of the architecture is the location of the blocks. The location adheres after the known object has been rendered. The surrounding land is place within the decided depth with a predetermined height. You will see ground blocks < lava < diamond, so forth until ground blocks, tree objects < the sky, etc.
The first object to render is an object. The objects are trees/mobs/other land objects. The player is called onto a predetermined POV called DOF (depth). It tells the computer how much to process at once. With only 21.6kb, we should only see as far as a Minecraft house (desktop/laptop/tablet).
Any more than our immediate area should be placed onto storage.
Controls may resemble the Tamagotchi with a layout of Pokemon. However, we can have an options button. Looking around will be uncomfortable. We must see through the eyes of the Doom '93 player. Looking up or down by force. Crouching will be a chore. Hunters of diamond will be master arcade players…

Game dev is far from my forte, so you probably have a much better understanding than I do of that concept. haha

As an aside…the IEEE Spectrum website is such a mess. Early 2000’s era full screen ad with “Continue to site” button, menus and headers jitter around like a caffeine addict while scrolling, just a mess. For a body that develops standards, they sure do come up short on their own website. “Physician heal thyself!” :laughing:

1 Like

I don’t understand game dev tbh. I’m a very practical Roboticist.
I’ve heard and read about these guys who use triangles like ternary…as if that makes sense.
I’m talking about using the individual pixels and forming squares to build objects.
We can mathematically build an object and then move it around on screen using coordinates.
I have never actually tried. I’m much less interested in the cyber world than some. Circuitmess is something like me. We prefer the circuit part for a crucial reason. 1 because proper training is important. 2 being able to apply that training. 3 adequately adapt that training in the future. You(being the qualified example) would not like it very much if you took ‘civilians’ on an exploration mission of the outer Sol system and take test liquid caps of Pluto. It would be a long journey with ‘dumb’ people. They would be no actual help. I would expect Starfleet minimum. :confused:
Your profile says “Software Developer”? What do you do? I know a lot of people who write websites. It sounds expensive/annoying though. I had a friend who was so busy, he deleted his facebook to make up time for lost employees. He couldn’t pay them eventually…had a hard time finding clients.

I’m in the telecom space, so this was right up my alley…tho I also very much enjoy tinkering with all sorts of things, including Bed Eater’s 6502 project.

1 Like