Please sign in to access this page
Minecraft clone written in C++ without game engine just OpenGL and my poor skills :D
Bailey
Check their project out: Zombie survival
pep
Check their project out: Open Housing
Basanta
Check their projects out: Personal Website, Terminal Spiel, PY DOS
Oliver
Check their projects out: Branch YSWS, CyberKit, CourseNotes, opott.uk, Gradient Club
BnaJns
Check their projects out: BnaJns Portfolio, BnaJns Portfolio v2, slack.fm, readmefm, limonaad - a C++ chess engine, roblox-outfit-finder, faucet - a c++ http server, visittallinn-waffles, ralseibot
JustZvan
Check their projects out: stupid login, osu.js, Motus - Motion for All, GWEM
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Ship 2
This ship is currently being voted on by the community. Check back later!
I fixed web viewport and framebuffer handling inside canvas and game so now when game renders in web it isn't pixelized _
Working on nice transparent faces rendering currently I got code to compile but not to work rly XDD. (img of website bc why not)
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
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 ()_()
I fixed all issues with dynamic idBuffer and merged all branches to main now game runs nicely on web and desktop.
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)
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
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) :(((
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)
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...
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...
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
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.
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 ()_()
🥳! FINALLY !🥳
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)
I made better webReadme for website game and still debugging this new buffer handler :((((((((
😩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
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.
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
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)
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
Now this game kinda looks like minecraft 😂
🤔 Why 🤔
Well now we have Ground, Mountains, oceans and FORESTS😁
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.
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.
I improved block destroying accuracy AND added block placing!
I also added crosshair just because I thought it is needed.
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.
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
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
herobrine creepypasta coming your way