Please sign in to access this page

Minecraft++

Minecraft++

37 devlogs
170h
•  Ship certified
Created by bober

Minecraft clone written in C++ without game engine just OpenGL and my poor skills :D

Timeline

Ship 2

This ship is currently being voted on by the community. Check back later!

bober

2 days ago

bober Covers 20 devlogs and 75h 23m
Earned sticker
bober
bober
1h 30m 2 days ago

I fixed web viewport and framebuffer handling inside canvas and game so now when game renders in web it isn't pixelized _

Update attachment
Earned sticker
bober
bober
8h 10m 5 days ago

I got transparency working on web!!!
Also I added fog ()_()...

Update attachment
ingobeans ingobeans 5 days ago

herobrine creepypasta coming your way

Earned sticker

Working on nice transparent faces rendering currently I got code to compile but not to work rly XDD. (img of website bc why not)

Update attachment
bober
bober
5h 55m 13 days ago

I fixed bug from previous devlog I gotta say it was kinda wierd I still don't know why it was behaving like this BUT i know what caused it so that got fixed

Update attachment
bober
bober
1h 49m 25 days ago

I am fixing bugs that happen when you walk to gen new chunk and then backwards to remove it.
For some reason it seems like chunks aren't properly deleted which doesn't really make sens to me ()_()

Update attachment

I fixed annoying aahhhh block placing issues

Update attachment
bober
bober
1h 45m 28 days ago

I fixed all issues with dynamic idBuffer and merged all branches to main now game runs nicely on web and desktop.

Update attachment
bober
bober
7h 57m 29 days ago

I have made optimized idBuffer to work in web but now desktop version isn't quite working..... (Idk what image to give for not running app)

Update attachment

I think I found the problem for these wierd atrifacts on map while moving. I believe it is caused by currupted idBuffer. Rn I will be trying to fix it

Update attachment

Just as most of the time I am DEBUGGING. Rn trying to implement optimized idBuffer filling for the web version (As always web just causes problems) :(((

Update attachment

I changed tree leaf texture so now trees don't look ugly. Also I added optimized IdChunkBuffer so now web runs slightly smoothly. (Water on web still looks ugly)

Update attachment

I've got infinite chunks working in WEB !!
It took quite a while mostly due to me just code rushing without proper thinking :)
Ik, Ik it looks like we are taking step backwards but desktop look good, works good, web is a different story still...

Update attachment
Bailey Bailey about 1 month ago
Looks good!

Now I have come against big hill. My optimized buffer setup isn't really that suitable for webGL :(((.
SO I need to find new way to make it work...
THANKFULLLY I've got one but not quite working now...

Update attachment

I just merged branch feat/optimized-buffer-handler to main and we have a working game now.
<><><><><><><><><><><><><><><><><><><><><><><><>
FOR NERDS
<><><><><><><><><><><><><><><><><><><><><><><><>

For the past 2h I have also found a reason why it wasn't running as fast as it should. Turned out it was due to me declaring Chunk class empty destructor which made compiler unable to use some optimizations on objects free'ing

Update attachment

Okay now I can say it with clear heart: I have buffer handler working
It took a while but we got there.
...................................
FOR NERDS
...................................
Main reason it wasn't working is due to me using wrong math on unsigned ints...
I had ifs like this: if (zoneSize - dataSize > 0){ do smth} that was supposed to do smth when zone was to big for the data BUT what is dataSize is bigger than zoneSize. Then due to unsigned int dataSize, zoneSize int would rollover and this condition will in fact true

I still need to add delay reducers what I mean by that is some sort of guard that will not allow me to insert to many chunks into buffer at single frame. It will put it to job list on another frame. This should reduce lag spikes.

Update attachment

I debugged all of the optimized buffer handler code and now it works.
All that is left now to do is fully implement those classes to the rest of the game.'

I also updated css on the website so now bottom buttons aren't annoying ()_()

Update attachment

🥳! FINALLY !🥳

I got optimized buffer handler working !

For nerds...
Turned out that I was adding chunk buffer space padding in a wrong way....
I was just calculating amount of bytes to add by % of the original size which was wrong since I was using INDIRECT BUFFER which does not take as its base byte offset but baseInstance so num of instance you want to start to draw from.
So when I had my chunk space defined by calculated % then CHUNKSIZE / CHUNK_DATATYPE_SIZE could end up not pointing to actual data start.

F u N f A c T:
glfwSwapBuffers() was then putting my linux mint back to log screen (gpu full reset xDDDD)

Update attachment

I made better webReadme for website game and still debugging this new buffer handler :((((((((

Update attachment

😩Last 10h were really exhausting😩 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ I have been working on optimized buffer handler and let me tell you THIS IS HARDER THAN I EXPECTED. I am still w o r k i n g on it. I also updated website and now you can play this game in web BUT not full version due to performance reasons

Update attachment

I added working sun light and added i button (info) to project website

Update attachment

Ship 1

1 payout of shell 2082.0 shells

bober

about 2 months ago

bober Covers 17 devlogs and 91h 5m

I made project website so that you can download game yourself and play it!

Update attachment

I restructured repo and made game ready for SHIP. Keep in mind its not perfect and still lacks a lot of performance on web so you will need to download it.

Update attachment

I got working chunk rendering with multithreading!

Update attachment

After very long time I finally got infinite world working now chunks render as you walk. However it is so slow that 10 chunks create big lag because it is not multithreaded. But before I put chunk gen in seperate thread I must optimize single chunk generation functions as much as I can. Idk what img to post

Update attachment

Added render distance to the game but it still does not generate new chunks

Update attachment

I optimized my game even further by compressing every draw call into one :).
Right now game runs at 40-50 fps with 64 chunks render distance(2048x2048 world)

Update attachment

I made my game work in web! ________________________________________________________ Using WASM I was able to put it in browser. For now without custom website just default emscripten one. I found out that it is not optimized in any way 4 chunks were going on 40fps but on desktop on 40fps was going 4096 chunks (1024x1024 world) So I will need to fight for every frame in this web version

Update attachment

After loong 6h I added basic player movement- and optimized mesh generation

Update attachment

Now this game kinda looks like minecraft 😂

                 🤔 Why 🤔

Well now we have Ground, Mountains, oceans and FORESTS😁

Update attachment

After making so many changes to chunk rendering and positioning I finally got block placing/destroying mechanics to work again. And also I made water work as it is supposed to work.

Update attachment
bober
bober
12h 30m 2 months ago

After loong loong time and several mental breakdowns...
I FINALLY GOT WATER WORKING
It is not perfect because I still need to add opaque and transparent faces sorting to remove these white edges everywhere where water intersects with regular blocks.

Update attachment

I improved block destroying accuracy AND added block placing!
I also added crosshair just because I thought it is needed.

Update attachment

Added block destroying mechanics and now I am working on block placing.
This was pretty tricky to make it work because I had to restructure my entire chunk block storing mechanism.

Update attachment

I just added terrain generation with chunk system. MAAN that was hard I mean chunks were. Terrain generation was easy because I used FastNoise library. HOWEVER it still took me 1 - 2h due to my error.... it was one function parameter.... .
Regardless I managed to do it

Update attachment

Instancing and texture offseting. I made adjustments to the code so that it chooses one of two textures randomly and creates flat 100block world of them

Update attachment

Added a lot of useful classes when working with OpenGL.

Update attachment

Right now only camera movement and cube in the center of the world.

Update attachment