olc::PixelGameEngine 2.0
Вставка
- Опубліковано 29 вер 2024
- I've added some significantly performance enhancing features to the olc::PixelGameEngine, as well as make it easier to port to other platforms.
Source: github.com/One...
Patreon: / javidx9
UA-cam: / javidx9
/ javidx9extra
Discord: / discord
Twitter: / javidx9
Twitch: / javidx9
GitHub: www.github.com...
Homepage: www.onelonecod...
Community: community.onel...
Hello! And I'd like to extend my appreciation to SaladinAkara, Moros1138, Eremiell, MaGetzUb, Gorbit99, slavka, DragonEye, Tutas and joshinils for putting up with my questions and for helping with testing.
Just tried it on Linux, it compiles out-of-the-box. You're awesome dude
Just wow. :) another amazing production. I'm sure ppl will create wonderful applications with it.
Why do you have two monitors and does it help with visualisation of the program?
I have 3 main and two auxiliary monitors. You can never have enough monitors.
I'm not a developer, but I've spent countless hours watching your videos, with a great passion, and a 'healthy' jealousy , wishing I could go back in time, and learn how to code.
And because I'm not a developer, I was thinking,
Do you think, that one day, if you have some time and patience, in a future v5..v6... etc, of your pixel game engine, you could add some kind of wysiwyg interface, with some buttons, menus, etc, for the millions of guys like, that would love to play with such tools, but has no knowledge to even type some code to create a circle...?
The idea would be having a bunch of options and menus, for exemple, to create some 3d objects, texture them, transform them... apply movements, actions, etc, in some kind of timeline(like a piano roll.. ), apply some physics (like having a textured sphere bounce on other objects, with physics).... , create some animations (eg, we shot an arrow, a textured balloon explodes)... with the possibility to import sprites, define hitboxes, etc... and let us set attributes, etc... and let us see the current framerates, memory used, e.t.c...
If we were able to make a pong game, or any other simple thing, without having to type code (thought, we could always do it, if required), it would already be a success.
More than a game maker, it would be a great tool, to mess with simple polygons, textures, play with things like angles, directions, sizes..
Maybe such app already exists ... but if it was you who'd make it, it would be 1 million times better, and simple to use...
Do you think it would be too big and complex, for one single person to do it ?
Just imagine: a kid is using a coloring book, to color some static drawings. With your app, he could load a big 3d Sprite, pick a color or texture, and fill/colorize each triangle. He could make it bigger, rotate it... zoom in... make it jump... make it 3 times smaller, over 3 seconds (the famous timeline...each object could have its own timeline, and apply simple actions, like rotate, resize, tilt, etc, and interpolate it..we could then save it as an animation, and resuse it later)...
What a fantastic app it would be.
I'm far from rich, but I'm willing to donate a few bucks, to motivate you (even if you don't need any kind of motivation to do things, I guess :)
Ok ok... it's too complex to do, and too much work.
But hey, at least, we can still dream, right...
Thanks for all your videos, man.
I look forward to olc::PixelGameEngine 3.0, where I'll be able to render each individual grain of sand on a beach.
Hahahaha
Real time rendering of voxel environments with shader scripts, why not if you ask me.
Why did this make me actually laugh out loud
Dream small nerd, I'm holding out for olc::PixelGameEngine 4.0, which will be so powerful it will simulate a girlfriend for me.
in PGE 5.0 you can build a computer that's faster than the computer computing the game
Wow. It’s amazing how far the game engine has come since the console version. I can’t wait to have play with this.
Awsome !! can't wait to code it myself !!
Amazing Videos...thank you a lot❤❤
Could we get a video where you go through the code of that preview application you showed at the end? It looked amazing :)
This looks great!
Epic, gg.
Users Mockingly: "I cAn'T drAw BiG sPrITes"
OLC: here's 50k with transforms at ~60FPS
yeah, but can it run crysis?
javid: hold my beer
Aproape 50 de mii. Erau vreo 45 de mii.
Make them *BIGGER. I wont be satisfied until my sprite is the size of a galaxy and takes a billion years to load
"I WANT MY SPRITES TO USE 4K textures!" --PrOgRaMmEr writing a pixel art game
I'm hoping to be as smart as you when I grow up.
I'm 40 :(
I can relate to that:).
With confidence I can say that If you lower your bar to things like being able to code 2D games you will start to learn programming and have fun too. Follow your dreams
40 is a new 20 bro
It’s never to late to start dude
And Colonel Sanders founded KFC when he was 65.
UA-cam's compression algorithm didn't seem to break.
sad
I tried! I tried!
@@javidx9 it got a little jpeg-mushy though, so partial success?
I think they made some updates after slo mo guys went to 4k.
At 20k dynamic sprites and 100fps I raised my brow and demand someone buy this man a beer!
Video started to download so slow when demo started
Just leaked the new final fantasy VII remake was made with this engine
Please provide a download Link...
@@achtsekundenfurz7876 lol
45FPS to 3500FPS, ah yes, a small improvement there I see
It's the little steps. It all helps!
lt is good to see one lone coder these days. (With beard)
my lockdown beard...
there's a direct correlation between the success of a programming language and the length of the hair growing on the face of the man who built it. (With the exception of Bjarne Stroustrup)
@@javidx9 Starting to look like Robinson Crusoe!
My chin dropped at the demo in the end…
@Smattless you didn't?
That little tech demo was very impressive. I'd not mind a full RPG game done in that style.
remember Virtual Hydlide?
> Virtual Hydlide?
The game that's measured in seconds per frame?
ua-cam.com/video/mAbG8Oi-SvQ/v-deo.html
"… so I hope this update goes some way to addressing that problem." Understatement of the year?
Yes it is a understatement :D
Thank you so much for this!
I am a physics student and a beginner to programming. Recently I started to write simple physics simulations and was using python but it started to lag quickly, so I wanted to try out C++, but I couldnt find a beginner friendly tool for visualization ( for example: drawing bouncing balls). Thanks to your great work I can watch thousand of bouncing balls in their full glory and I am having an absolute blast!
I think your engine is a great tool for people who arent programming experts like me and I will definitly recommend your channel to everyone I know that is interested in this stuff!
Finally the olc Pixel Game Engine is the smallest, easiest to use and (now) good performing engine I've ever seen. No bloated stuff, no giant 500 file lib, nothing at all but a simple single file. Sure its more like a basement than a house, but now its a solid one :)
It may be possible to alter the triangle, line and rect code to get the work done on the GPU now :O
For starters one could use a single colored decal and transforming it to a triangle, rectangle or line (a line is just a thin rotated rectangle).
Too bad you will have to use 500mb lib anyway (boost) once you start doing anything serious with it because it's C++ and not C.
In 20 years of c++ programming ive never needed to use boost.
@@javidx9 it sure doesn't hurt that stuff like threading, regex, typeof made its way into the standard in a conveniently extremely similar way that it was implemented in boost. You may not know mr boost, but he sure fought to make it easier for you to write stuff nowadays.
@@alalala132whyisthishandletaken Newer versions of C++ support regex and multithreading in the standard library.
@@UltimatePerfection Boost is nice, but ever since the C++11 standard came out most of what made Boost really useful was already part of the standard library or the STL of C++ itself.
Beard: +10 wisdom
I spew my tea when Daggerfall started playing
yup me too
Absolutely stunning, I'm just starting out with C++, nice inspiration this! :)
Even though I know why the improvement in performance is so massive, it's still great to see it go from 40 to 3500 fps. Great job mate!
Hello!
I'm a second semester CS student and your channel made me love C++ and programming in general. I just want to say, never stop what you're doing!
Wish some day you would post a video explaining in depth the internals of PGE. Like how it does what it does. Thanks a lot you are by far one of thebest youtubers in yt!!!!
Most of the progression of PGE 1.0 is already on his channel - you can see how it got to where it got and the decisions made and why. You'd probably get more out of comparing the code of PGE 1.0 to PGE 2.0, to see what was changed or moved and why. Decals and Layers you can go straight to the code and see how he did it, and as for the reorganization into API + platform + renderer I think you'd get a lot more out of reading the code than a video could give you.
You're never going to get the code depth you want from a video, is basically what I'm saying, and code depth is what you need to understand the difference between 1.0 and 2.0.
Pardon my Australian but holy shit! You went from the console to an amazing Final Fantasy looking demo!
WOW, this engine has changed from a mini van to a rocket, incredible!!!
25:01 "Are you out of your Vulkan mind?!"
i was considering writing a game and im going to consider this a sign telling me yes
Thats the same with me, I'm now developing a game with olcPixelGameEngine and it's brilliant, what isn't brilliant though is my c++ skills :c Oh well practice makes perfect I guess.
@@KingJellyfishII You'll get there if you keep at it! In my mind, there are only so many mistakes you can make (forget a semicolon at end of line, forget header guards, putting template code in a cpp file), and once you've made all of them and fixed them, you won't make the same mistakes again (or if you do, finding out what's wrong and fixing it will be easy because you've already seen it).
Good luck figuring out where that SIGILL came from :]
Neet, at least one good thing about this pandemic, more time for videos and coding!
But this sun got HUGE at dusk.
I dont understand that one person who disliked this video...
Edit: its 16 now :(
misclick?
Probably some gamer that doesn’t appreciate the work of developers and kinda expected some awesome, over-the-top, ready for the next 10 years game engine announcement
I dont mind if people dislike it, that's their opinion. However, it frustrates me when its within 10 seconds of launching the video, because invariably thats people we've banned form the discord server XD
Certainly an important upgrade! First time seeing this, crazy to imagine it without any GPU support.
To be slightly pedantic, this is a graphics engine rather than a game engine like something such as Ogre3D
Is it correct, that in the end that was pseudo 3D? Like 100% 2D with faked 3D world aka 2.5D. That's just wow. Really cool.
The base terrain looks 3D. Everything else looks like sprites.
Very impressive, as always!
Will there be a way to limit the FPS or even have vsync? Rendering thousands of frames per second seems like a waste of resources.
It can be vsynced
@@javidx9 Oh, nice! I should give it a try
@@Sheevlord Just pass true for the vsync argument in the Construct() function.
I'm really impressed with the content in your channel. Thanks for your hard work!
dang guess I should work on porting this to C# then.
Amazing work, you should definitely have more views
Will you ever address GPU programming for beginners? It seems an interesting field
Just look at some OpenGL or WebGL tutorials :)
They are WAAAYYY less scary than Vulkan.
Keep up the good work! I love your channel! If I may make one suggestion... consider discussing performance in terms of time-per-frame instead of frames-per-second. I think novices especially are misled by changes in FPS, e.g. "I added a single decal and my FPS went from 8000 to 4000! What happened?"
Thanks Christopher. Believe me im an advocate of time per frame, and used to do that, but it caused so many questions I now default to FPS XD
@_@ I was going to spin up my own pixelly graphics engine myself....but this....this...is....GLORIOUS!
Header only! Do not need to link or build anything else. Works on windows and linux. 45k sprites - 50 fps. It is a magic! Waiting for olc::pixelGameEngine3.0 with ray tracing
Hi David, I just love your videos. 😀 Please also make a complete mathematics series for game devs. 🙏 Namaste 🙏
could you cover how to move the processing from the cpu to the gpu?
Plz make c++ full series from beginner to advance. I saw your video on pointers in c++ and that shook my mind. You have pretty solid knowledge and it would be bad if you just keep that knowledge within you.
That looks like a good fucking RPG man, you should hire someone and create something cool with it, people will buy it.
Now you have to move independently every single blade of grass in order to simulate wind to... Blow our minds. Again.
If the PixelGameEngine was so good, how come they didnt make PixelGameE.... oh..
Hi -i have a cMake library with mingw32
I can compile ordinary cpp-files in this environment
but i am unsure where your OLC.h need to be placed in the libraries
Is *mingw32* not sufficient for your OLC.h?
As editor i use notepad++ on windows10
mingw is sufficient, but you need an up to date version. PGE2.0 is tested with mingw. There are no libraries to install or link with as such, you just include the .h file. In the .h file are some instructions for how to get an up to date mingw compiler, and then how to configure it properly.
When I grow up I want to be a programmer like you. Bloody hell what a fucking nice effect
You LOOK like computer science
So, if we can warp decals, we can do 3d like on the saturn? Correct me if I'm wrong
Great video as always! Your coding videos make me feel like a young adult when watching porn for the first time in his life - he doesn't really understand how it works, but he's fascinated nevertheless...
Port it to Pi... I think there is now enough opensource stuff to run the VideoCore+CPU. I'm thinking something fully embedded without much of an OS, just some basics like loading from the SD-card and sound...
Loved the DOOM remake written with just ASM and CPU. PiZero and OLC and we would have some neat system to run games, full arcade cabinet ofcourse...
PGE1 used to work quite happily on a Pi, so I expect PGE2 will too
This is AWSOME body, what you are doing is beyond any understanding of almost anybody that doesnt apreciate your code.
Someone starts a Vulcan implementation.
They stop because their PC melts down trying to enumerate ∞ FPS.
It's brings me back: fully motivated (again). Thank you.
i have that same triangle rotating shape building fidget toy except red and white.
I am pygame developer and unity game dev..but i like those videos
Someone has to port DOOM to PGE
Any chance of getting a C# compatible version of this engine?
oooh i wonder if you could use DrawWarpedDecal to create quad based 3d environments, sega saturn style
We need a follow up video on that demo at the end, that just messed with my head, how it’s appearing to rotate in 3D
The gpu Sprite demo reminded me of a prototype I was working on my spare time. If I remember corretly I got to about 1 million sprites with smotth fps, but my solution was for a very specific range of hardware. Your video got me interested in picking it up again. BTW I hope to see in the future some cool particle generator vídeo using these new features. Keep up the good work o/
Thanks Demetrius, Ive not done a video on particles per se, but I have included them in plenty of other videos. I'll keep going!
Great videos and joyfull to look at all the source. Many thanks
WoW that's amazing! Would be nice if you could publish the benchmark code too (the thousand sprite thingy), so that I can check how fast my system is compared yo yours, so that I can set some expectations when I use it.
Thank you for your videos! Really motivational and inspiring. Hope I learn all this stuff well.
Hi, I'm from Brazil and I recently discovered your channel. Here I study computer engineering and, its content is incredible, congratulations to you. I'm sharing your channel with the whole computer and math department here at the university.
Hey thanks Gabriel, good luck with your studies!
Looking that sprites counter make my palm sweaty.
It's here! It's live! Get it now while stocks last!
Really cool! I really can't express how impressed I am!
Very good work with the engine
Hello! I want to become a game developper. I am learning C++ and until now I have done loops, arrays( 1d and 2d) and functions. I am now struggling with recursion. Do you want to recommend me some resources (free or paid) to learn game development in C++? Thank you!
I make sprites on Scratch. No need for all the hassle 😂 instant fan javidx9
I have no reason to make a game, but this video made me want to..:
One of the silver linings to the virus pandemic is people having more time to work on their own projects at home 😀
So the "source" link is just to the engine itself, not to the specific episode code? Would love to study the code from the final result.
You and the rest of the olc audience. Hands down the most requested source file! One day... One day...
This is really impressive.
I left programming for a while as I pursued other things in life for about 2 years now, but your videos just reminded why I fell in love with programming in the first place. I love the video format and it shows that you put a lot of effort into them, they are entertaining and extremely educational at the same time
it doesnt allow me to use some of the graphics stuff please help
Hi Javid,
I have an education channel devoted to C++ programming and it is completely in Brazilian Portuguese, my native language. I have two ongoing series, one in Scientific Programming and another in a very specific library used in High Energy Physics, which is Geant4. I've been cooking up a way to attract young programmers to C++ and gaming has been, and forever will be, a major selling point. Would you give me your blessing to use the PixelGameEngine as a background for that?
H- Gustavo, I have no problem with you using the olc::PGE providing its all within licence, which unmodified, it already is! Good luck and have fun!
@@javidx9 Thank you! I will send you a link when I publish the first one.
By the way, I'm a university professor and have no intention to monetize my videos. All I want is to help popularize C++ in Brazil.
you need a function OnUserSubscribe()
wondefull job improving the already great pge, what better way to endure the lockdown! a lot of ppl are going to have fun with it, i'm sure (me too). thanks for taking the time and effort to give something usefull and free, plus all the videos are very good.
ps. i don't remember much from the old days but are decals similar to ogl textures?
also who the hell downvoted?????
OMG I've just reached the end of the video... holly cow
I have never been so glad that I subscribed to an UA-cam channel.
I really like your work. It is very well explained.
Thanks Gilles!
Happy Easter! This video is a great thing to see in the middle of this pandemic 😁
Insted of passing parameters like rotation, perspective wrap anchors etc you should give us matrix object and function like getRotationMatrix. You can calculate complex transformations as rarely as possible (like in OpenCV, OpenGL, DirectX, SFML...) All in all, Why I explain it to you..
because that assumes the users know what matrices are, and how to compound them! Why limit people having creative programming fun if they haven't learnt about matrices yet?
@@javidx9 Understand. That make sense.
You should become a C++ teacher. You have a nice and pleasant voice and take time to explain details, I like that. I do believe that you're the one who could successfully teach C++ even someone like me lol
Very very good stuff! Ran your stress test myself and I had around 5000 decals before I saw spikes below 60 FPS. Can I ask about your hardware specs?
where you running in release mode? I have an 7 year old i7, GTX980, and it was recording the video at the time
javidx9 Ah yes. Well spotted! 😉Was typing in the code from you vid and gawping in awe at your engine as I went and left it in debug mode. I can confirm in release mode it’s at least double that. 👍🏻 I’m running on an aged laptop with i7 and GTX 850M so I guess that’s fair. Thanks!
Amazing work. I am speachless. I have fun with this engine, a real pleasure to learn C++ with graphics. Still some bugs or features not still implemented but really nice to play with. Thanks a lot. Really.
And then i wanted to send my 'work' to my cousin, but the graphics were missing in the result, had to add them manually. Right in the external ressources files but not in the release. Did you plan to make a video about building a full release version with graphics (and sound maybe..) with Visual Studio?
Thanks a lot again, keep on that way. Best Regards.
Thanks Denis - releasing software has nothing to do with visual studio. Its up to you to gather the release executable, libraries and assets into a package that will work together.
@@javidx9 Ok sorry i didnt know. And sorry for me to respond so late, my computer fan died. Had to order a new one, etc, etc... so well, you already made a 3D engine before implementing a 2D "fonts" solution? is it a joke? Really?!! (cf SMFL). Yes for example to print "Level 1" and score! Damn... (sorry i an french my english is not perfect).
That looks amazing, I can't wait to play around with it! keep safe over there David.
Thanks, you too!
Man I just love your videos. I'm a c# developer myself *hides* but I've done some basic borland c and c++ when I was young.
Your videos are amazing though and makes me wanna get back to c++ (in my spare time that is ;))
Lol thanks Johnny, you should get back into it!
I really should :)
Im really interested in getting into so graphical programming and c# isn't really that helpful for that ;)
0 _ 0 whooaAA!!! I've never been at a loss for words before, this is fantastically thought out and well put together. Thank you for all of the efforts and great job you've done!
This looks awesome! I think I found my new game engine! :)
Just started learning Godot as my Go-to game maker, now....
Looks...
awesome work!
Next module is a physics engine?
Sorry, such a question, but why not make a series using the DirectX or OpenGl or Vulkan API like a game. If this is possible
Its certainly possible, but simply - it's boring! I'd much rather work on interesting algorithms, demos, game clones and applications, than talk about vertex buffers and shaders. Lots of other channels do that sort of thing.
@@javidx9
It’s clear, but on the topic of gaming constructor or is it already
Now, I may not be as active as some on this channel, but I do watch every video.
I'm always fascinated by how much progress you've made. (even though, as I always say, I knew this channel would work !)
Well done !
Cheers! We go way back! XD
Damn this is cool, great work.
damn you are a genius! Love it
oh man, in another 18 months when version 3 releases, itll be feature enough complete for indie game releases.
That would be nice, its not far off I think!
@@javidx9 what's missing now, in your opinion, from indie game developers using PGE2.0 for small game development? I just found your channel (and subscribed), and from your demo's, it seems to me that everything needed for simple games is already there in PGE2.0 to create new indie games. Am I wrong?
@@traveling.down.the.road56 as you can see from the RPG demo at the end, it's more than enough for rendering. And all the game logic is done by the programmer anyway, so I think for small indie games PGE 2.0 is more than enough.