Hello friends, I am back with another new project Smile

About a month ago, I was looking at my Terrain CE project and thought, what if I made this in C? With C I could use sprites, add more features, and even potentially make a playable sandbox game on the CE. And thus, a new project was created! For about a month now I've actually been posting some updates on my project in the discord, but I figured it's time to actually create a topic for it.

And so, I introduce to you, Isometric Minecraft on the CE!







It is still very much in the early stages of development, but I'm really happy with how it's looking so far. I actually wasn't even planning to make minecraft initially, but when you're drawing an isometric world like this, you can't NOT go in that direction Razz


Current Features include:
  • Block lighting (torches, lava, and fire currently give off light)
  • Shadows (goes along with the lighting effects)
  • Night time and day time
  • Breaking and placing blocks
  • Map rotation
  • Block gravity (for sand and gravel)
  • Steven character
  • Dynamic, random terrain
  • Starting to try out some animated blocks such as the fire, but needs optimization


Some Planned Features:
  • Add gradual day/night cycle
  • Add main menu, settings, pause menu etc
  • Add map saving/loading
  • Add world generation customization / world presets
  • Add inventory/hotbar
  • Try 75% transparent blocks, for viewing what's behind them
  • Create Lexi character
  • Create walking animations
  • Create dynamic block hitboxes so the character can walk up blocks such as stairs
  • Add flowing water/lava
  • Add more blocks to the game, including slabs and stairs
  • Rotatable blocks (when map is rotated 90 degrees, an east facing stair would instead be displayed as a south facing stair)
  • Fix lighting so that it doesn't pass through blocks
  • Organize controls (make it less confusing and more user friendly) (maybe make controls customizable?)
  • Add redstone
  • Add block tags
  • Add f3 (debug) screen
  • Procedural generation or just a bigger map in general


I hope you all like it! You can also check out the repository here: https://github.com/Michael2-3B/Isometric-Minecraft-CE
one word. wow Surprised
Why does no one read the coding guidelines.

Nice work regardless Smile
Looks amazing! What's the max world size?

The lighting and shadows is particularly impressive Very Happy.
tr1p1ea wrote:
Looks amazing! What's the max world size?

The lighting and shadows is particularly impressive Very Happy.

Thank you! And theoretically, the max world size is probably as big as your available memory... but I'll definitely limit it.

One of the things I forgot to mention is that you can also scroll the map left/right/up/down already too, to reveal more of the world, but it will need some optimizing.
Holy crud this is by far one of the coolest things I've seen on a CE. Up there with V3D and tr1p's oiramkart thing. This is really cool.

Maybe add a "rotate view" feature of some sort at some point? If you're bored?
darkwater4213 wrote:
Holy crud this is by far one of the coolest things I've seen on a CE. Up there with V3D and tr1p's oiramkart thing. This is really cool.

Maybe add a "rotate view" feature of some sort at some point? If you're bored?

Thanks!

Rotating the view is already a feature, see the second image in the original post. The map can be rendered from all 4 angles.
Awesome work, I agree with tr1p1ea on the lighting and shadows, that's my favorite part as well. Have you decided yet on whether you want this to cover the whole screen or just be a little floating island in the middle?

Also, PSA that this project has been extremely active in the c-on-the-ce channel in the Cemetech Discord server, so join that if you want to (probably, assuming things continue as they've been going) see more updates on the project.

Looking forward to more updates!
epsilon5 wrote:
Have you decided yet on whether you want this to cover the whole screen or just be a little floating island in the middle?

Also, PSA that this project has been extremely active in the c-on-the-ce channel in the Cemetech Discord server, so join that if you want to (probably, assuming things continue as they've been going) see more updates on the project.

I'll have the world size customizable, so if you want it to cover the whole screen you can just make a bigger world.

Also, I'll probably be posting more of my updates in this topic from now on, instead of the C channel. But I'll definitely still be active in the discord.
Michael2_3B wrote:
The map can be rendered from all 4 angles.


Oh, I thought that was just moving around. That's really cool!

And yes, scalability for worlds would be awesome.

I wonder what's next, Mindustry for the CE?
Looks great indeed, keep up the good work Smile
Awesome, I love the lighting!
This looks really great!

My only concern is that I don't see "Remove Herobrine" in the planned features...
Glad to see this got out of the discord gulag. Great job so far!
I've gone ahead and attempted a 75% transparent stone block, just to see what it would look like. The idea for this is that you would still be able to see the player when they're behind a block, or inside a room, but you'd also know that there's a wall. Eventually this could be expanded to include all other blocks of course.

I've also changed the lighting so that instead of each shadow being drawn on an entire block according to what it's light value is, the shadows are drawn on each face of a block individually, according to the light value is of their neighboring air or non-solid block. Solid blocks are no longer assigned any light (or rather, are assigned 0 light).

You can change the brightness settings up and down now too, so if you want, anything that's pitch black can be bright as day.

Light still actually travels through blocks though, so I need to figure out a lighting algorithm that dynamically adapts to the world.

----

Here is an example of an underground room, with see through stone blocks on the front corner. Also I should note that I am only drawing the non-obstructed faces of the transparent stone. Still a work-in-progress, and only really a test feature for now.


The same thing, but the front corner is completely open, instead of being transparent stone.


Broad daylight. Transparent stone on the front corner and up in the sky.
Whoa, extremely impressive indeed! I'm glad that playing Minecraft has not reduce your time for making cool programs, as it has done for a few of us. I'm particularly excited to see what the day/night cycle and flowing liquids look like.
I never saw shadow/lightning effects this complex on a calculator Shock. Very nice work and the rendering seems very fast too. I like how it can rotate 90.
KermMartian wrote:
Whoa, extremely impressive indeed! I'm glad that playing Minecraft has not reduce your time for making cool programs, as it has done for a few of us. I'm particularly excited to see what the day/night cycle and flowing liquids look like.

Thank you very much Kerm! And yeah I'm definitely excited to see about the flowing liquids too, when I get around to it.

DJ Omnimaga wrote:
I never saw shadow/lighting effects this complex on a calculator Shock. Very nice work and the rendering seems very fast too. I like how it can rotate 90.

Thank you DJ. The rendering is indeed pretty fast, but could be faster. I have a culling algorithm of course that doesn't draw any obstructed blocks, but there's definitely more optimizations to be had.

Also, I'm glad you like the shadow effects. Different checkerboard sprites work well for simulating a darker or lighter block face.


At the moment, I am attempting to make the light values adapt to the world, such that light doesn't travel through solid blocks. Currently I'm only assigning light values to non-solid blocks within the cubic range around a light source, but what I need to be doing is determining the shortest path between an air block and a light source (or determine if there is no path), and how far away it is, and assigning light from there. This is basically what minecraft does.

I'm also thinking I'll treat air blocks that are exposed to the sky as light sources, and their light value can change depending on the world time.

Anyway, I'm not quite sure how to go about this, so any algorithm suggestions are welcome.


EDIT: I think I might have just thought of a possible solution for the lighting, without having to do path finding to light sources or any fancy stuff like that. Im going to try it and well see. Suggetions are still welcome, though.
Alright, so it's time for the latest update!

I've completely redone the light code, so the light will no longer travel through blocks. It's a bit slow, and will need some optimizing, but it works. The light map is separated into sky light and block light, that way changing the brightness setting of the world will brighten/darken anything lit by the sky and not by the light blocks (e.g. torches, lava, etc).

I've also added a day/night gradient, so the world time can be anything from 0-8 (because that's also the maximum light range). World time affects the brightness of the terrain, but of course you can also adjust the general brightness settings to make night look like day.

Finally, the sky color now has a gradient too. You won't be able to see the sky if the world is bigger, but it's still pretty great for a smaller world.

Enjoy these screenshots!

Light wrapping around walls:


Dynamic ground shadow:


This is a bit of a longer screenshot, but I wanted to show me putting the light in a tunnel (also, I started creating the main menu):


I hope you all like this, let me know your thoughts!
Looking good! It's nice to see that you got the day/night cycle working, that's a great addition. Lighting also looks much more realistic, and the speed is reasonable as far as I can see.

How is the performance currently? Does a world of that size allow for a playable framerate? Anything over 10 or so FPS would probably be enough, as long as it's consistent.

Again, it's great to see such fast progress on this, and I'm looking forward to seeing the final product.
  
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