100K Live Party! Code-It-Yourself: SHMUP

  Рет қаралды 72,799

javidx9

javidx9

Күн бұрын

Пікірлер: 134
@Akronymus_
@Akronymus_ 4 жыл бұрын
Does the video start 19 minutes in for anyone else?
@javidx9
@javidx9 4 жыл бұрын
it seems to at the moment, i just checked behind the scenes and the whole video is there, i suspect its still being processed by YT
@javidx9
@javidx9 4 жыл бұрын
Seems ok now :D
@Akronymus_
@Akronymus_ 4 жыл бұрын
Yeah, works now.
@Asdayasman
@Asdayasman 2 жыл бұрын
I like that this comment detailing an issue that lasted for a very short amount of time has been left pinned for two years. It's like a small simple "fuck you" to youtube. 10/10.
@weyo7928
@weyo7928 Жыл бұрын
​@@AsdayasmanaHAHAHA
@lemurza5236
@lemurza5236 4 жыл бұрын
This is by far my favourite development channel. Javid is the programmer I aim to be.
@javidx9
@javidx9 4 жыл бұрын
ooof, thanks, but aim higher XD
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
_hits blunt_ Does digital life use firewalls for birth control?
@frost-tm1rx
@frost-tm1rx 3 жыл бұрын
me too
@browaddup3289
@browaddup3289 4 жыл бұрын
At 200k you must do another livestream. When someone codes live it is obvious how experienced they are due to the way they think. You are a very experienced programmer and it is so satisfying seeing you use just basics of computation to give pixels life! Very good work you have done, both in programming as well as youtube!
@javidx9
@javidx9 4 жыл бұрын
Thanks buddy! I expect I will do something for 200K assuming I get there, but I wont even think about it unless I do XD
@PhilBoswell
@PhilBoswell 3 жыл бұрын
@@javidx9 did you ever celebrate 200k or are you waiting until 250k (which cannot surely be long in coming ;-)? 👏
@javidx9
@javidx9 3 жыл бұрын
If it happens I may do something for 256k
@ukaszdomagaa8998
@ukaszdomagaa8998 4 жыл бұрын
I've been programming for 15 years. I don't write in C++ particularly but I enjoy your videos a lot. One of the best programming channels on KZbin :)
@yanhesap6728
@yanhesap6728 4 жыл бұрын
Which language do you write code with?
@ukaszdomagaa8998
@ukaszdomagaa8998 4 жыл бұрын
JavaScript (including Node.js) and PHP, I am making rich scalable web apps for a living. Nowadays mostly dev ops, architecture design and team management thought ;) In my free time little bit of everything, but I prefer languages with GC and dynamic typing.
@yanhesap6728
@yanhesap6728 4 жыл бұрын
@@ukaszdomagaa8998 thanks. Is javascript used a lot? Can i make a lot of good websitesi by just using html javascrpt?
@ukaszdomagaa8998
@ukaszdomagaa8998 4 жыл бұрын
Nowadays JavaScript is one of the most popular languages, and with Node.js you can make both frontend and backend (server side). So yeah I can highly recommend it :)
@yanhesap6728
@yanhesap6728 4 жыл бұрын
Thanks all of you
@ElShogoso
@ElShogoso 4 жыл бұрын
Very interesting tutorial. Just one thing that is worth mentioning, for people wanting to improve upon this code, is that in bullet-hell style games, the hitbox of the player is usually just a little circle (more or less the size of a bullet) in the middle of the sprite. In some games, it can even be made visible with a key. Mostly because there are so many bullets on the screen and they're so close to each other that it would be impossible to dodge them if your hitbox is the size of your ship. It's also useful to have a key (like shift if using arrow keys to move) to make your ship move slower so you can more precisely avoid bullets. And also, normalize diagonal movement so the ship doesn't move faster on diagonals than it moves on cardinal directions. Other than that, some cool ideas would be making a way to script bossfights (with different "stages" depending on the boss's health chaging it's movement and attack patterns), divide the game into levels, add a "bomb" system (limited use thing where you press a key to clear all bullets from the screen and damage enemies), etc. It's a very fun type of game to code.
@ui6144
@ui6144 4 жыл бұрын
Congratulations on your 100K milestone. Love your work, love your channel. And your catching up fast with that "other" C++ dude ;)
@mIsPtr
@mIsPtr 3 жыл бұрын
i watched this when i haven't really understant c++ now i finally can understand most of it
@MuradBeybalaev
@MuradBeybalaev 4 жыл бұрын
General shmup design practices: - Player's collision shape is a single point in the middle of its sprite often denoted with a stylized contrasting pixel on the sprite itself for the player. - Bullets' collision shape is a circle and they never despawn inside viewport. - On getting hit, the player loses a life and enters an invincibility period. This makes collision detection neater and gameplay tighter.
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
That's the classical Danmaku / "Bullet Hell" design. If one wants a more realistic collision model, one could use very small bullets (3x3 or smaller) and calculate if it's on the sprite area, and if it is, query if the pixel it's on is solid (in this context: not 100% transparent). For bigger bullets, one could preprocess the sprite to generate a 2-color sprite that's never drawn, but which is used for pixel-perfect collision detection. Transparent means near miss, opaque means hit.
@lucgagnon7169
@lucgagnon7169 4 жыл бұрын
"Evrything should have a Deathspiral"... Sounds like a fair videogame !!!! :)
@starsky51
@starsky51 2 жыл бұрын
2:18:17 'Who knows what next year will bring?' - Poignant!
@toastyPredicament
@toastyPredicament 2 жыл бұрын
"oh that baaaaad" Just like the Victorian era, I am filled with pain
@stephenelliott7071
@stephenelliott7071 4 жыл бұрын
Great stuff as always, I was a bit shocked when you used so few classes though! ;)
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
The MoveData / FireData arrays were quite horrible... When I tried something similar, I used 2 of those "misc" variables, and additionally three variables LastMove, LastFire, and LastSpecial, to keep track of the time since the last special movement action (like teleport or speed boost), the last shot fired, and the last special action (usually a special attack). The other two were mostly used for bosses with more than one special. I also didn't keep enemies and bullets separate, but all of them in one big array. Enemy bullets had a simple "move in a straight line" movement pattern and checked for collision with the player only, and the player's bullets checked for collision with all enemies which weren't bullets. I also had one "AI" function per object with everything lumped together: movement, fire, collision / removal check. The player's "AI" function processed key input. LOL I ran out of ideas before anything worth playing came together. :(
@RhoTrepaan
@RhoTrepaan 4 жыл бұрын
"...the humiliation of writing bugs live" :D
@alextektumanidze8455
@alextektumanidze8455 4 жыл бұрын
Meeh, I'm a little bit late. :( Maybe won't have another chance to say happy new year so guess I'm gonna do it rn. happy new 2020 year Javid! Have another amazing coding year full of joyful content :d
@javidx9
@javidx9 4 жыл бұрын
Hey thanks Alex, Have a happy New Year too!
@nabilandadamslaboratory3422
@nabilandadamslaboratory3422 4 жыл бұрын
Great video! Enjoyed it lots, and learned new things! 😁😁
@d7ffab979
@d7ffab979 Жыл бұрын
You know what? EVERYTHING should have a death spiral *proceeds to chuckle*
@EmmittBrownBTTF1
@EmmittBrownBTTF1 4 жыл бұрын
Captain of enemy ship gets circle cluster gun, immediately gets mount engraved with "yur f'd". Charming.
@krrishxxx
@krrishxxx 4 жыл бұрын
We are gonna miss you so much.
@JP-ud9lf
@JP-ud9lf 3 жыл бұрын
240k now fella. Very good stuff.
@MuhammadArshad
@MuhammadArshad Жыл бұрын
Really helpful video. Thank you for this 🙏
@_syedmx86
@_syedmx86 4 жыл бұрын
Wasn't able to join the stream because of timezones but still wanted to say Congrats!
@mechadrake
@mechadrake 3 жыл бұрын
Nice bullet hell there at the end :D full screen of death spirals!
@PhilBoswell
@PhilBoswell 3 жыл бұрын
Extremely late to the party but I have managed to wrangle VS2019 onto my shiny new machine, so I thought I'd go back and catch up on some of these fun exercises. Which is a long-winded way of saying this looks wonderful but I can't find the art assets: where can I find the sprites?
@MrRobbyvent
@MrRobbyvent 4 жыл бұрын
Quite different when on C64 I had to steal any cycle from LM instructions...
@Miguel-td5ef
@Miguel-td5ef 4 жыл бұрын
Build a compiler :)
@iteratedofficial
@iteratedofficial 3 жыл бұрын
oh boy...
@RogerBarraud
@RogerBarraud 3 жыл бұрын
It's easier than you think... ...and much harder than you think. :-)
@Mozartenhimer
@Mozartenhimer 4 жыл бұрын
When I read the answer to "What's the derivative of sine?" and it was cosinus, I broke out laughing.
@brianmac8260
@brianmac8260 4 жыл бұрын
Many thanks and Happy Xmas David., and congrats on your channel. Hope you get a chance to loose some arrows too. ;-)
@oblivionronin
@oblivionronin 4 жыл бұрын
I watched your most recent video on procedurally generated universe before this one (freaking awesome btw) and i cant help but think that it woudl be awesome to use some sort of word seed to generate levels, enemy move and fire patterns based on thoses seeds. Put each seed as a level that last X time or defeat X number of enemies. and give out the seed word if you pass the level, making it a no memory save of the progression. That coudl also allow for people to try and share either super weird or hard patterns that emerge from thoses seeds. Just a tought
@javidx9
@javidx9 4 жыл бұрын
Hi Chris and thanks, Yeah thats the beauty of procedural generation. The only downside is you dont know if what it generates will be playable unless you carefully engineer it, but thats part of the fun!
@oblivionronin
@oblivionronin 4 жыл бұрын
@@javidx9 Finding the beauty in randomness is the name of the game here ! Cheers
@seancpp
@seancpp 4 жыл бұрын
*scrolling through spaghetti to find anything* this is why abstractions exist
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
yup... with a good compiler, they don't cost much either. Also, the compiler he uses is a douche, errors out on float/double mismatch. Even in 1998 there were compilers which could do that automatically. I'd say either "F### it, I'm using a better compiler" or "F### it, I'm using double instead of float" at that point. Because the difference between those is only 4 bytes each. For bullets, that's a difference of 16 (pos and vel), totally negligible even if there are 1000s of bullets. Javi must have the patience of an angel to work with that compiler...
@samanuiljecson
@samanuiljecson 3 жыл бұрын
it's awesome
@focuseletronica
@focuseletronica 4 жыл бұрын
Esse cara é um gênio!!!
@Xenthera
@Xenthera Жыл бұрын
Nice
@antonioambrosio2064
@antonioambrosio2064 4 жыл бұрын
Javi I have a technique question for you. Why if I utilize visual studio 2017 or CodeBlocks changes the performances of pixelgameengine?? If I utilize visual studio 2017 with the base project for test it,it do 52-53 FPS,in CodeBlocks 255-256. Thanks if you answer me.
@javidx9
@javidx9 4 жыл бұрын
Hi Antonio, by default VS compiles in debug mode which is much slower. Set the build configuration to release to see a considerable performance increase.
@antonioambrosio2064
@antonioambrosio2064 4 жыл бұрын
@@javidx9 Thx for the help,I immediately try it. A good excuse to not do my italian homework.
@antonioambrosio2064
@antonioambrosio2064 4 жыл бұрын
@@rarRoarrar non li facevo prima,figurati mo col corona virus
@sergebalakin1631
@sergebalakin1631 4 жыл бұрын
cool !!!
@goat5249
@goat5249 4 жыл бұрын
100 bullets every two seconds may be too many. Let's change that to 50 bullets every 0.5 seconds. That's more like it.
@sandean433
@sandean433 4 жыл бұрын
Hi , I'm a beginner in programming and I learnt some of c++ basics I like to try making a graphical program but idk where or how to start like using an engine or not so can you please give me a hint and advice ,thanks.
@javidx9
@javidx9 4 жыл бұрын
Hi San, it may be a little self promoting, but my olcPixelGameEngine is great for beginners to start working with graphics, just include it the header file and go! I use it for all my videos. On my other channel "javidx9 extra" ive just released a video showing the most basic of setups.
@richardleandro8694
@richardleandro8694 4 жыл бұрын
@NeZversSounds
@NeZversSounds 3 жыл бұрын
Instead of "Bullets", you can use the word "Projectiles" and not be afraid of youtube.
@rufusbiskitt9725
@rufusbiskitt9725 Жыл бұрын
Will someone please tell me how to use the sprite editor to add sprites to the environment?
@noahsaa3795
@noahsaa3795 4 жыл бұрын
My programme never works it says Unhandled exception thrown error when I run it: it says m_bufScreen was 0x1110112. How do I fix that
@javidx9
@javidx9 4 жыл бұрын
You are creating a console that is too big to fit on your screen. Try halving the fontw and font values in construct console function.
@noahsaa3795
@noahsaa3795 4 жыл бұрын
javidx9 thanks
@toastyPredicament
@toastyPredicament 2 жыл бұрын
Which I lace with smoke of tobacco to get nicotine to escape cringe
@toastyPredicament
@toastyPredicament 2 жыл бұрын
Also blood
@fredg8328
@fredg8328 4 жыл бұрын
I missed the 150K subs live
@antonioambrosio2064
@antonioambrosio2064 4 жыл бұрын
Happy 100 k sub javi,I'm new from the channel,and i try to make an engine 3d in c++,so qhat kind of libraries i can use in place of olcPixelGameEngine. If you link me the place or the tutorial to add this lib i'am very thankfully,because,i'am not good with installation and similar problem,thanks anyway. P.S. sorry for the bad english.
@johnnyserup5500
@johnnyserup5500 2 жыл бұрын
When will your pixelgame engine be ready for building Games for iOS ?
@javidx9
@javidx9 2 жыл бұрын
Hmm unsure. It already works for MacOS, so don't know if there's some compatibility layer. I don't have access to any Apple-y things.
@liukang81
@liukang81 3 жыл бұрын
Can u help with this problem sir? I’ve solve this problem but don’t work! here how was I did; Write a program to check if the number is even or odd. Take an integer input from the user, if it is even print "even", otherwise print "odd". Sample Input 25 Sample Output odd int main(){ int number; cin>>number; // taking input from user int even = 44; // interger int odd = 25; //odd number = even; if(number
@javidx9
@javidx9 3 жыл бұрын
What is it you are trying to do?
@liukang81
@liukang81 3 жыл бұрын
@@javidx9 i am learning with SoloLearn app myself and I got no one help. And I been watching you coding on KZbin, I think you’re a great coder . Sir! Thanks for replied sir! I need you to explain for what I missed on this code sir. Thanks
@javidx9
@javidx9 3 жыл бұрын
Thanks. What is it the program should do? I can't help to fix it unless I know what it should be doing.
@liukang81
@liukang81 3 жыл бұрын
@@javidx9 here’s the topic: Write a program to check if the number is even or odd. Take an integer input from the user, if it is even print "even", otherwise print "odd". Sample Input 25 Sample Output odd
@javidx9
@javidx9 3 жыл бұрын
int n; std::cin >> n; std::cout
@thievingclient2665
@thievingclient2665 4 жыл бұрын
Could you make a new how to make a 3d game video on the 2019 software? Me and a friend want to try it out but don't know how to get started
@laureven
@laureven 4 жыл бұрын
Hi ...big fan of the channel ...Just the idea. Compared with You I'm a beginner but I understand templates classes pointers ...I tried to run your code from the synthesizer video and I was not able to do it. I tried to just list my sound devices as a start and even there I was stuck ...Maybe this is not a bad idea to do a video about: "Intro to Win32 programming in C++" ...where and how to start, what is important. I was trying to list my sound devices and I was stuck :) ...just the idea
@javidx9
@javidx9 4 жыл бұрын
Hi Marcin, what error where you seeing?
@laureven
@laureven 4 жыл бұрын
@@javidx9 was not expecting the replay :) ...i need 15 min to start the comp and project :)
@laureven
@laureven 4 жыл бұрын
@@javidx9 (first vid about synth)/from file : main1.cpp. after F5 : Severity Code Description Project File Line Suppression State Error C2664 'void std::vector::push_back(_Ty &&)': cannot convert argument 1 from 'CHAR [32]' to 'const _Ty &' with [ _Ty=std::wstring ] synth C:\Users\mrutk\Documents\# VisualStudioProjects\#OneLoneCoder\Synth\synth\olcNoiseMaker.h 182
@laureven
@laureven 4 жыл бұрын
@@javidx9 short version :) :void std::vector::push_back(_Ty &&)': cannot convert argument 1 from 'CHAR [32]' to 'const _Ty &' in file : olcNoiseMaker.h line :182
@javidx9
@javidx9 4 жыл бұрын
This is you template telling you it expects something other than a CHAR* which you have provided. If i had to guess this is because you have not enabled unicode, and it looks as if the function is trying to cast your string from a regular string literal to a std::wstring. Tldr, enable unicode for your compiler.
@ashutoshaswal
@ashutoshaswal 4 жыл бұрын
❤️❤️😍❤️❤️
@nabilandadamslaboratory3422
@nabilandadamslaboratory3422 4 жыл бұрын
What is fElapsedTime?
@javidx9
@javidx9 4 жыл бұрын
The time taken between two similar points in successive frames
@nabilandadamslaboratory3422
@nabilandadamslaboratory3422 4 жыл бұрын
@@javidx9 sorry I don't get it. Like the difference in time since that variable was last called?
@nabilandadamslaboratory3422
@nabilandadamslaboratory3422 4 жыл бұрын
@@javidx9 and what units is it in? Seconds?
@ishdx9374
@ishdx9374 3 жыл бұрын
@@nabilandadamslaboratory3422 difference between frames in seconds
@zystemd3172
@zystemd3172 4 жыл бұрын
Hi Javid, i just begun my shoot them up on PGE2, made a std::list called "PlayerShoots" and i have spend the afternoon to find this (because i didnt want just to copy your code, but at the end i had to) : PlayerShoots.remove_if([&](const Shoot& s) { return (s.pos.y
@zystemd3172
@zystemd3172 4 жыл бұрын
ok this is a lamda function, i didnt know, now its clear. but what about acceleration and velocity near to .00000023 ??
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
> acc.x *= (0.90f * fElapsedTime); > acc.y *= (0.90f * fElapsedTime); *B R U H* Spoiler #1 below: fElapsedTime is the time between the last and the current frame. Just think of it as 0.01. Spoiler #2: You multiply by something like 0.009, or 0.9%. What you want is something like > float factor = 1.00f - 0.90f * fElapsedTime; > acc.x *= factor; > acc.y *= factor;
@zystemd3172
@zystemd3172 3 жыл бұрын
@@achtsekundenfurz7876 that's worst ;( kzbin.info/www/bejne/oniqlZajeLJ_e9U
@achtsekundenfurz7876
@achtsekundenfurz7876 3 жыл бұрын
That part of the code looks OK. Where is the rest? (where you add acc to vel, and vel to pos)? I suspect that there's no limiting code, which keeps acc and vel from getting too big). BTW, Why did you _disable comments_ of all things???
@No-ge1fq
@No-ge1fq 4 жыл бұрын
can you make a video about creating a simple mod for some kind of old plain game? I'm not just talking about replacing textures. For example, bot control
@javidx9
@javidx9 4 жыл бұрын
Mods are tricky, because i would need to be quite familiar with the game beforehand. Ive made videos about lua scripting however, and lots of games use lua as their main control interface.
@No-ge1fq
@No-ge1fq 4 жыл бұрын
@@javidx9 thanks for the answer
@toastyPredicament
@toastyPredicament 2 жыл бұрын
I have been show in the back so many times I havecskin cancer and I have a lissssttttt
@jamesmathai1138
@jamesmathai1138 4 жыл бұрын
For the first 5 seconds I was wondering why Ian Anderson was doing a programming tutorial
@OneMeanDragon
@OneMeanDragon 4 жыл бұрын
why use list and not a standard array?
@uvadroid
@uvadroid 4 жыл бұрын
you could implement procedural generation for spawning the enemies for the lazy game designers out there.
@saree378
@saree378 4 жыл бұрын
Hollo
@olasoderlind5685
@olasoderlind5685 4 жыл бұрын
soon 0x1FFFF (131071 subs) only ones in binary
@javidx9
@javidx9 4 жыл бұрын
lol yeah, its come around frightfully quickly...
@nakano15
@nakano15 4 жыл бұрын
It already ended? Nooooooooooooooo!!!!! I'm late!
@seditt5146
@seditt5146 4 жыл бұрын
Don't feel bad, I had someone remind me because I am forgetful and even moderate the discord and I still missed it lol.
@nakano15
@nakano15 4 жыл бұрын
@@seditt5146 Yeah. At least we got a slice of the cake. Hehe.
@seditt5146
@seditt5146 4 жыл бұрын
@@nakano15 Yeah but I heard the Cake is a Lie!
@nakano15
@nakano15 4 жыл бұрын
@@seditt5146 Nooooooooooo!!!!
@yny666
@yny666 4 жыл бұрын
When will the next part of NES emulator be uploaded?
@nabilandadamslaboratory3422
@nabilandadamslaboratory3422 4 жыл бұрын
21:00 what does size_t do?
@sidiropulos
@sidiropulos Жыл бұрын
why is the github link not working?
@javidx9
@javidx9 Жыл бұрын
fixed, thanks! github.com/OneLoneCoder/Javidx9/blob/master/PixelGameEngine/SmallerProjects/OneLoneCoder_PGE_ShootEmUp.cpp
@SpaceXODST
@SpaceXODST Жыл бұрын
Where are the assets for the shmup?
@javidx9
@javidx9 Жыл бұрын
The licence restricts me from giving them away. I'm sure you can source alternatives pretty easily via many sprite sites.
@N0__Name__
@N0__Name__ 4 жыл бұрын
KZbin didnt told me 😾
@tutituti4344
@tutituti4344 4 жыл бұрын
26:00 Code Jesus
@BradenBest
@BradenBest 2 жыл бұрын
I couldn't help but notice that you say "modern C" a lot, but you are not writing C. It's a real pet peeve of mine when people conflate C and C++ or talk about them as if they're the same thing. They are mutually-incompatible. C is focused on minimalism and systems programming while C++ is focused on type safety and having a special syntax or STL mechanism for every possible design pattern. I would like to think that Stroustrup regrets the decision to claim C++ is a superset of C (it's not, the set {2,4,6} has some even numbers in it but it's not a superset of all even numbers) every day, because that claim has fucked over the language severely. You cannot be compatible with C and also have type safety, and C++ has painted itself into a corner where it has neither of those things. It's not compatible with C because it refuses to support things that the ISO standard requires an implementation of C support, such as K&R syntax and weak typing (or basically every feature introduced to C after the 1989 ANSI standard--I don't think C++ recognizes the `_Alignof` operator), but it's also not safe because it inherits or borrows a lot of things from certain other languages, the most notorious of which is undefined behavior. A language which has undefined behavior cannot claim to be safe, because a single instance of UB destroys determinism. You can use all the smart pointers and special STL facilities you want, but if some moron or supervillain manages to sneak some code in that invokes UB, then it's game over. That shit can go undetected for _years,_ and having a false sense of security from assuming that an unsafe language is safe just because it provides you with a few ways to write safe code is only going to exacerbate that. C doesn't make any claims of safety, and experienced C programmers take safety very seriously, and are much more likely to catch UB, especially as old legacy code continues to have UB discovered in it (things that were done probably because the original developers expected a specific compiler or platform and decided "it's okay to use this uninitialized value to seed this RNG because our compiler will just let it be whatever garbage is in memory", but then 4 years later the BSD kernel gets some security features like wiping the memory segment where a process resides before copying it, and 6 years after that clang gets an update where the optimizer deletes the entire seed computation because it can--the behavior is undefined and to the compiler, a function that copies a single value and returns makes more sense than all this uninitialized memory biz--and the original developers left years ago during that time the corp that owns the UNIX trademark was suing Berkely over BSD containing original UNIX code, so it goes undetected for another 3 years). Humans will get better at recognizing it, and so will compilers. But undefined behavior is essential to C. UB is the contract that all C programmers agree to. The contract that says "here's a list of insane things you can do that we're saying is off limits, if you agree to not do these things, then the compiler agrees to do exactly what you expect it to do". The contract that allows the compiler to generate the fastest possible code for the given hardware and platform by sacrificing all of the runtime safety checks and requirements that impose inefficient conversions and puts the responsibility onto the programmer so that the code has almost as little overhead as assembly. This is not a thing that C++ programmers are concerned with. C++ programmers are concerned with writing applications. Yet UB exists in C++. The design patterns, idioms, style, culture and philosophy around these two languages are completely different. C programmers tend to know a frightening amount about undefined behavior and the many ways a library interface can go wrong, and UB was baked into C with the purpose of giving compilers maximum freedom when it comes to optimizing for specific platforms, provided that the programmer has the sense to not do any of these things that only a crazy person would do, while C++ programmers obsess over the new features that come in every three years. Look at C++ and C codebases from 2 years ago and try to tell me that they look anything like each other. You know damn well that you'll take one look at the C code and think to yourself all the ways you could do it differently in C++. So please stop calling C++ "C" or "C/C++".
@zafuzi
@zafuzi 4 жыл бұрын
Why is your engines opengl so much slower than SDLs implementation? I like your engines but they are some serious performance issues somewhere.
@javidx9
@javidx9 4 жыл бұрын
Its a little unfair to compare the two since they operate and offer completely different experiences. PGE is fully CPU bound, which is incredibly flexible and portable, but will suffer if your application is doing high resolution activities. SDL on the other hand is great when you constrain yourself to GPU idealised primitives, which are very much less flexible, but you can gain speed and resolution.
@zafuzi
@zafuzi 4 жыл бұрын
@@javidx9 I see, I figured it was CPU bound. Would it be possible to write an extension to use the GPU instead? The only reason I ask is because I want to use PGE for a full game, but I would need higher resolutions.
@javidx9
@javidx9 4 жыл бұрын
@@zafuzi PGE2 is in development, it is considerably more performant. However PGE is targeted at low resolution pixel-effect games, hence the name. It might also be worth assessing what exactly is slow about your current implementation, yes its CPU bound but frame rates > 200fps are pretty common even for quite demanding applications
@zafuzi
@zafuzi 4 жыл бұрын
@@javidx9 Are you willing to share any details of PGE2? I was just doing random sprite testing with > 1000 sprites. It something that I know SDL2 can handle so I wanted to see how PGE compared. It's impressive what it can do, but I want more performance.
[LIVE] Code-It-Yourself! Sliding Block Puzzle Games
1:36:51
javidx9
Рет қаралды 57 М.
olc::AllSorts - Text/Commands/Sounds/Jams
21:55
javidx9
Рет қаралды 32 М.
SCHOOLBOY. Мама флексит 🫣👩🏻
00:41
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 7 МЛН
Пришёл к другу на ночёвку 😂
01:00
Cadrol&Fatich
Рет қаралды 10 МЛН
Win This Dodgeball Game or DIE…
00:36
Alan Chikin Chow
Рет қаралды 17 МЛН
GIANT Gummy Worm Pt.6 #shorts
00:46
Mr DegrEE
Рет қаралды 47 МЛН
Quirky Quad Trees Part1: Static Spatial Acceleration
44:01
javidx9
Рет қаралды 69 М.
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
Harder Drive: Hard drives we didn't want or need
36:47
suckerpinch
Рет қаралды 1,7 МЛН
Object-Oriented Programming Is The Root Of All Evil
25:16
Abstract Engineering | الهندسة المجردة
Рет қаралды 9 М.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 5 МЛН
How I installed the HARDEST operating system
34:40
Bog
Рет қаралды 385 М.
Space Invaders Clone in C#  // Code Review
1:10:52
The Cherno
Рет қаралды 72 М.
C++ vs Rust: which is faster?
21:15
fasterthanlime
Рет қаралды 395 М.
CHESS! // Code Review
51:05
The Cherno
Рет қаралды 236 М.
SCHOOLBOY. Мама флексит 🫣👩🏻
00:41
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 7 МЛН