Home Creators Posts Import Register Favorites Logout

Content

I've started writing documentation for the engine and it's publicly available at https://docs.vercidium.com/ve/Startup/Getting+Started.

My goal is for the engine to be intuitive to use, and provide plenty of examples to go with it. While this engine won't compete with Godot or Unreal, my hope is that it'll help you learn and experiment with OpenGL, multithreading, networking and much more.

Surprisingly I'm enjoying writing these docs. That might be because I'm cleaning up the code as I go, or because it feels like I'm making the code/engine 'official'.

I'm starting with the high level concepts (update loop, shaders, input, UI, etc) to cover the main features, and then I'll drill down into more specific features.

If you have any requests for what I document next, please let me know!

I'm also writing docs for Raytraced Audio here, if you haven't gained access to the demo or the Discord server yet, please sign up at https://vercidium.com/audio

Changelog

VE = Vercidium EngineRA = Raytraced Audio

July 1st

VE - mouse + keyboard input

RA - voices, interfaces

July 2nd

RA - Voice, SpatialisedVoice. Interfaces

July 3rd

VE - VertexBuffer, TypedVertexBuffer, Vertex buffers overview, vertex attribute strings, GL features

RA - voxel types, AudioContext, RaytracedAudioContext, bare minimum raytracing example code

July 4th

VE - animation example

RA - voxel data structure - AudioVoxel, AudioChunk, AudioMap, AudioVoxelType

July 5th

VE - screen recorder / animation rendering

RA - finished AudioVoxel/Chunk/Map data structure, fields and functions

July 9th:

VE - better docs for rendering to MP4

July 10th:

RA - revised startup docs, data-only mode, device selection, long sounds, leeching, Play3D arguments

July 24th:

RA - model to voxel conversion

Files

Comments

H3lix fire

This is a glorious day.

J19

A lot of your features are more advanced and performant than what Godot, Unreal and Unity have. It's probably just that they have a wider community support base (and/or more funding) that allows them to catch bugs and add new features more quickly... Which is to say they might have more features or it might be easier for the end user to set theirs up but the quality of the features you provide would be higher

The Idea Junkie

Great progress! I had a quick question for you, do you do this full time or is it just a hobby you do? If you work how do you manage your time? I know this is kind of a loaded question, but just thought I’d ask. Either way you are doing Phenomenal work!

vercidium

Thanks :) I have a full time job and work on this in the mornings/evenings/weekends. I see it more as a side gig than a hobby, I try to do at least something on it every day.

The Idea Junkie

Okay cool! That makes sense, only reason I ask if you do this full time is because of how well made it is, it would’ve made sense if you did this full time but that’s very inspiring that you do this on top of work as well. I will also ask you one more question and I promise this will be the last set! Do you have your focus sessions for long periods of time or do you do it in like 1-2 hour bursts? What would you say to someone that is trying to learn coding for fun as well? Also, I know you may not know me, but I just wanted to say sectors edge was a prominent part in my life as a broke 16 year old from 2020-2021, and I will forever thank you for the memories you gave me and many others . Your work was a inspiration to me and I’m sure many others. Thank you for taking the time to respond and hope to see many more years of the vercidium engine to come.💙

vercidium

It’s part time but over 6 years. All the small coding sessions add up! I don’t have any set rules, over the past few months I’d say it’s 30-60 mins each day after work, and then usually long sessions on the weekend. If you’re learning coding I’d say just spend as much time as you feel like it. Even when you step away from it, you’ll still be thinking about it. Don’t force yourself to work on it longer than you enjoy Wow that means a lot to hear, I’m glad it had a positive impact. I miss those days too.

Alex Ababei

What are some tips or insight for someone that wants to build their own game engine?

vercidium

I'd say you definitely need to enjoy programming as that's what you'll spend the most time on out of any game-dev-related activity. It'll be tedious but when you finally nail something it's incredibly rewarding. Figure out what kind of game you want to make and then start with those features. For myself it was 3D, learning OpenGL. Then it expanded to loading models from disk, animated models, shaders and postprocessing, UI and input, networking, etc etc. There's a lot involved with making a game engine!

Alex Ababei

Hi, i actually started making my engine and i do enjoy proggraming like i am also making a game in unity at the momenten, a fps one, and i am trying to make a very immersive camera inspired by real human biology

Alex Ababei

I started with opengl but i will switch to vulkan so it i can have more advanced features down the line, i know vulkan its harder tgan opengl but i will use libraries and such

Gustav Andersson

Regarding your insane optimization so far, do you think switching/supporting vulkan would help in any shape? Do you thinks its easier to support dx12/vulkan rather than opengl/vulkan due to the different paradigm? Currently using vulkan, but seeing your insane optimizations using opengl im wondering if you have mangaged to squeeze out every drop of optimization from the opengl stone. also, how do you think BOTW manages chunks? is it like your video? if so, your implem on yt didnt include textures, grass placements, etc, how would that be handled?

vercidium

For multithreaded rendering and scaling methods like DLSS yes Vulkan would be great, but I still don't think I've squeezed everything out of OpenGL yet. Every time I think I have, I learn of something new that OpenGL can do haha - most recently the compute frustum culling in my last Forest post. I'm not sure about DirectX / Direct3D as I haven't worked with it, but it's not that different from OpenGL / Vulkan (shares many of the same concepts) For BOTW I believe it uses a regular chunk system similar to my terrain video. It's a highly custom engine so many be different. Have a look at BOTW rendering analysis / glitch videos, e.g. this one shows a terrain rendering glitch: https://www.youtube.com/watch?v=M2n03kmJUE8, it looks like square chunks to me Grass placement is also chunked - generate a square chunk of grass for the nearby chunks and render it when the chunk is nearby and in view. For my forest project I render the grass as billboards / particles, max 2048 billboards per chunk. I'm still learning about textures for terrain, but the main approach seems to be Splat Maps and Stochastic Tiling, where you sample multiple textures to get a non-repeated-looking texture. Battlefield has a few talks on this: https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/chapter5-andersson-terrain-rendering-in-frostbite.pdf and https://www.gdcvault.com/play/1015676/Terrain-in-Battlefield-3-A. They also talk about chunking / grass generation