Loved the video! I agree that the format may not please everybody but I watched it fully and it's very interesting to see how it works from the ground up from the point of view of somebody who will also get a Bachelor in Computer Science really soon. Looking forward to updates :)
This is so cool. I always was curious how to make an engine and how it's works. I want to understand more about ECS in games too, because looks good in theory but in the same time very chaotic, hard to optimize. I'm sure watching some of your content when possible! Thanks for sharing!
kangaroo engine, algo boost: sigma, fornite, surviving 100 days, wow this is so underrated! how has this channel not blown up yet!!! X situation is insane, those who know 💀
why a custom scripting language. thats so overkill especially for a personal engine. maintaining a programming language is just as much work as maintaining an engine. especially if its almost c++ anyway why not just stick with c++
So, I originally started with C# (hated dealing with mono), attempted to add C++, and landed on writing my own language. I will admit that some of my motivations for creating the language were to just learn how to write a compiler, but I did have other reasons: - One requirement of the language was to do compile time replacement of text (which I know you can do in C++ but the syntax is kind of a lot) - I really dislike the look of using macros to provide text replacement/function attributes like Unreal does. I find it annoying to have to remember to apply macros when I am doing basic engine things. - Providing text replacement via parsing is really complex for C++ since I would have needed to support the standard. - For my language, I just need to provide the functionality that I want, and that's it. I just need to make sure the output adheres to the C++ standard. - I do not intend to support complex data (like structs/object-hierarchy) inside the scripts. The engine is meant to be a scripting-lite engine where most of the functionality, complex algorithms, and data should exist inside the engine, not in the scripts. This way I can manage the performance as the engine developer better. - I realize the last part reduces the engine-user's ability to customize their game, but if I want new functionality, I'll just add an extension to the engine. And I mean, its my engine, so I can just add what I want whenever. TLDR: I didn't mean to type so much, but the tldr is that I ran into a lot of roadblocks when getting C++ to work and realized just supporting my language would be easier for myself with the requirements I had in mind.
@@ElPsyStreams hold on a second, does that make your language effectively just one giant macro haha, if it goes: kgscript -> C++ -> assembly? thats a pretty neat idea, big plus on performance (although not that it would really be needed in an engine's high-level language, especially since you've mentioned foregoing complex data)
So, the scripting language took a long time, but that was mostly my fault because I was using C# for scripting originally, so I had to transfer over the scripts which took a while as I was developing. To figure out the current scripting system, transfer over the scripts from C#, and modify the text editor to work with my language, took 5-7 months. I would image that if I didn't have to transfer the scripts from C#, it would have cut at least 2 months from that time. It was, by far, the hardest system to get right for my engine so far, since it is core to the rest of the engine functioning...
@@ElPsyStreams 5-7 months sounds reasonable, fast even. It took me the same amount of time to create my own shading language (a transpiler to HLSL,GLSL, MSL). The editor looks very nice, do you support breakpoints and debugging?
Ohhh nice. I want to write a linter for GLSL. That is really cool and not trivial! Oh, I did have some ideas for adding breakpoints. For now, I am just going to add basic timers and other smaller debugging tools.
Yee, the next dev logs should be more edited. This dev log just had a lot of information to cover, so I did it like this to save some time. Otherwise I think the video would have been like an hour long if I added a bunch of jokes and transitions haha.
Yes, I definitely have plans for adding animations. I am going to start with 2D animations and then move on to 3D animations. I already have most of the EditorUI tech ready for an image editor and I just need a sequencer. I think I am going to use this ImGui extension for the sequencer: gitlab.com/GroGy/im-neo-sequencer I'll give a little roadmap until I add animations: - Finish Pong Clone (just gotta finish working on UI system) - Create Snake Clone (fairly simple) - Create First Engine Release v0.1.0 (Clean up editor + add some better documentation) - Create Breakout Clone (Add 2D animations here) - ...at some point add 3D meshes along with 3D animations (not entirely sure when yet)
cats are getting smarter
I'm dead haha
Loved the video! I agree that the format may not please everybody but I watched it fully and it's very interesting to see how it works from the ground up from the point of view of somebody who will also get a Bachelor in Computer Science really soon. Looking forward to updates :)
You know, I really appreciate this comment! Thank you
this is really impressive, nice work!
This is so cool. I always was curious how to make an engine and how it's works. I want to understand more about ECS in games too, because looks good in theory but in the same time very chaotic, hard to optimize. I'm sure watching some of your content when possible! Thanks for sharing!
Gonna try this out soon looks great
Ayeee forsureee. Fair warning tho, it is still a work in progress. But I appreciate the interest!!
I like your scripting system setup, great editing tools too!
kangaroo engine, algo boost: sigma, fornite, surviving 100 days, wow this is so underrated! how has this channel not blown up yet!!! X situation is insane, those who know 💀
Nice video! :)
why a custom scripting language. thats so overkill especially for a personal engine. maintaining a programming language is just as much work as maintaining an engine.
especially if its almost c++ anyway why not just stick with c++
So, I originally started with C# (hated dealing with mono), attempted to add C++, and landed on writing my own language. I will admit that some of my motivations for creating the language were to just learn how to write a compiler, but I did have other reasons:
- One requirement of the language was to do compile time replacement of text (which I know you can do in C++ but the syntax is kind of a lot)
- I really dislike the look of using macros to provide text replacement/function attributes like Unreal does. I find it annoying to have to remember to apply macros when I am doing basic engine things.
- Providing text replacement via parsing is really complex for C++ since I would have needed to support the standard.
- For my language, I just need to provide the functionality that I want, and that's it. I just need to make sure the output adheres to the C++ standard.
- I do not intend to support complex data (like structs/object-hierarchy) inside the scripts. The engine is meant to be a scripting-lite engine where most of the functionality, complex algorithms, and data should exist inside the engine, not in the scripts. This way I can manage the performance as the engine developer better.
- I realize the last part reduces the engine-user's ability to customize their game, but if I want new functionality, I'll just add an extension to the engine. And I mean, its my engine, so I can just add what I want whenever.
TLDR:
I didn't mean to type so much, but the tldr is that I ran into a lot of roadblocks when getting C++ to work and realized just supporting my language would be easier for myself with the requirements I had in mind.
@@ElPsyStreams hold on a second, does that make your language effectively just one giant macro haha, if it goes: kgscript -> C++ -> assembly?
thats a pretty neat idea, big plus on performance (although not that it would really be needed in an engine's high-level language, especially since you've mentioned foregoing complex data)
@@ConnorJT I suppose you could say that. One big macro with a nice big bow haha.
My boy from sabrina black cat is talking ya'll 😮😮😮😮😮 look look
Haha, dang that takes me backkkkkk
How long did the scripting language and script editor took to make?
So, the scripting language took a long time, but that was mostly my fault because I was using C# for scripting originally, so I had to transfer over the scripts which took a while as I was developing.
To figure out the current scripting system, transfer over the scripts from C#, and modify the text editor to work with my language, took 5-7 months.
I would image that if I didn't have to transfer the scripts from C#, it would have cut at least 2 months from that time.
It was, by far, the hardest system to get right for my engine so far, since it is core to the rest of the engine functioning...
@@ElPsyStreams 5-7 months sounds reasonable, fast even. It took me the same amount of time to create my own shading language (a transpiler to HLSL,GLSL, MSL).
The editor looks very nice, do you support breakpoints and debugging?
Ohhh nice. I want to write a linter for GLSL. That is really cool and not trivial!
Oh, I did have some ideas for adding breakpoints. For now, I am just going to add basic timers and other smaller debugging tools.
This may be the best Engine ever but my TikTok brain cold not absorb this classroom presentation of a video
Yee, the next dev logs should be more edited.
This dev log just had a lot of information to cover, so I did it like this to save some time. Otherwise I think the video would have been like an hour long if I added a bunch of jokes and transitions haha.
@@ElPsyStreamsdo you havw discord? I wanna talk with you about your engine im also learning GDeveloo By Myself : )
@ElPsyStreams Please ignore these comments. I guarantee you most of the people watching actually care about engine development more than jokes.
@@n00bc0de7it’s all in jest. Sharing is its own skill that needs mastering too friend :)
Good luck, I couldnt do this lol
can u add animation in your engine ?
Yes, I definitely have plans for adding animations. I am going to start with 2D animations and then move on to 3D animations. I already have most of the EditorUI tech ready for an image editor and I just need a sequencer. I think I am going to use this ImGui extension for the sequencer: gitlab.com/GroGy/im-neo-sequencer
I'll give a little roadmap until I add animations:
- Finish Pong Clone (just gotta finish working on UI system)
- Create Snake Clone (fairly simple)
- Create First Engine Release v0.1.0 (Clean up editor + add some better documentation)
- Create Breakout Clone (Add 2D animations here)
- ...at some point add 3D meshes along with 3D animations (not entirely sure when yet)
@@ElPsyStreams when you make animation, can you make tutorial about it?
@godnona9570 Oh yea, that sounds like a cool video idea!I can't promise anything right now, but I'll consider it when I work on the system!
subbed just because you're a cat
try using like one those real time ai voice changer things
why
why? the voice fits the cat perfectly
Very sigma. Cat so 🔥 too