Тёмный

How I re-created the rhythm game osu! from scratch in C++! 

Omer Hasanov
Подписаться 729
Просмотров 29 тыс.
50% 1

This is a quick video about how I programmed a reverse engineered clone of osu! using C++.
The idea behind this project was to learn how to write efficient code that works on even less powerful hardware.
I am also in the middle of porting the project to the Nintendo 3DS, stay tuned for that!
The github repo can be found in my github profile:
github.com/ohasanov-hbrw
Ömer Hasanov - 29 April 2024

Наука

Опубликовано:

 

28 апр 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 180   
@WillyOsu
@WillyOsu Месяц назад
Very cool project! Was fun to see the problems you encountered along the way and the solutions.
@NeverEron
@NeverEron Месяц назад
so true willy
@funkyowo
@funkyowo Месяц назад
hello paralysis monster
@ohasanov
@ohasanov Месяц назад
Hehe, thanks!
@secretgogeta
@secretgogeta Месяц назад
FINALLY i can run osu(s) on my 2006 HP Pavlion dv2120 Linux 86x super duper lite
@prismatic-bl8qf
@prismatic-bl8qf Месяц назад
i dont know if there was a reference to what you said in the video, but im pretty sure osu! stable is probably lighter than this edit : nvm got it
@cm_360
@cm_360 Месяц назад
Great job, this looks amazing! Can't wait for the 3DS port 😎
@tmpm8710
@tmpm8710 Месяц назад
i got into osu because a long time ago i figured out how to use my homebrew 3ds as a trackpad for my pc, and i wanted to play a game that could utilize that now we are coming full circle
@hufuhufu
@hufuhufu Месяц назад
Whoa that's awesome! I'm also currently learning programming, specifically creating GUI in windows. It's really hard and I can't even imagine how do you even create an osu clone lol. But this video somehow gave me some motivation to keep learning. Though I probably won't be able to build a project like this anytime soon, but I'm excited! Good luck with your project!
@unicodefox
@unicodefox Месяц назад
the funniest thing that just drawing a window with a button in it is usually the hardest part ;)
@yasinarslan8074
@yasinarslan8074 Месяц назад
stand proud, you can cook
@chronos7554
@chronos7554 25 дней назад
jjk brainrot in osu comments!!!
@rebane2001
@rebane2001 Месяц назад
great job on the sliders! i made my own osu clone in css, but had to end up ditching the sliders due to their complexity
@Asdayasman
@Asdayasman 17 дней назад
Worth checking out Cem Yuksel's talks on graphics programming. He has a whole episode or two on curves and goes over the drawing and computation of all sorts of curves (Catmull-Rom and Beziér included).
@szaasowo
@szaasowo Месяц назад
this video is really high quality im surprised you dont have more subscribers
@ohasanov
@ohasanov Месяц назад
Heheh, thanks! I am still pretty "new" at this video creation thing and I constantly trying new techniques :D
@kirun13
@kirun13 Месяц назад
+
@error.418
@error.418 Месяц назад
@@ohasanov keep it up!
@tobyyh
@tobyyh Месяц назад
This is ridiculous and I’m here for it
@ravener83
@ravener83 Месяц назад
That was a great video, creating a simple osu! clone is lowkey something on my programming bucket list for some day so that sounds fun.
@avidrucker
@avidrucker Месяц назад
Excited to see your progress!!!
@Skewers-qf4nu
@Skewers-qf4nu 28 дней назад
Good luck with your progress! I'm sure you can go very far with your skills ✨
@kshitijg1433
@kshitijg1433 Месяц назад
This looks amazing great job!
@rockruffnation2006
@rockruffnation2006 Месяц назад
Bro, this is amazing, great job!
@kauht
@kauht Месяц назад
great video, keep it up, would love to see a part 2!
@audiomac
@audiomac Месяц назад
I am really surprised with how few views this has! This is a really high-quality video!
@phusicus_404
@phusicus_404 Месяц назад
This is super cool, keep going! You deserve hundreds of thousands of subs!
@FerbyEats
@FerbyEats Месяц назад
This is super cool! Did a great job!!
@agegarret7036
@agegarret7036 Месяц назад
This is so cool. I been using my hacked 3ds so much recently and this would just make me use it even more
@peacefulexistence_
@peacefulexistence_ 27 дней назад
Really cool, subscribed!
@shifty5917
@shifty5917 Месяц назад
This might be the coolest project ever! I have 2 feature requests already :-) 1) Make the gameplay appear on the top screen instead of the bottom one. Use the bottom screen just for controling the cursor and tapping. Players could also tap with their free hand (on the d-pad or ABXY buttons). 2) Use the top screen in the secret 800 px mode that the people in homebrew community found. This will make everything look much sharper and nicer.
@girraiffe
@girraiffe Месяц назад
> use the bottom screen just for controlling the cursor or tapping So the whole game? lol Following with a stylus that doesn't register when you touch down on the screen would not feel good. Not sure the official osu client even has that option on touch devices. That seems like smelly UX, but I haven't played on a touch osu client It seems like that would only work for a taiko or mania or catch, but not the classic osu...
@ohasanov
@ohasanov Месяц назад
Thanks! About those features... The first one is actually already implemented! Partly at least... There is the option to chose the top screen but I haven't added full touch controls yet, the menu kinda relies on "two hand input" right now, so yeah fixing that would be nice. The second one is a bit hard, since it would tank the fps... I don't really have much RAM left as far as I can understand. I maybe can enable that mode on new3ds consoles, but yeah, not too sure about that. The "not so great" looking textures is because the filtering mode somehow doesn't work, I am working on that hehe...
@jullebulle8448
@jullebulle8448 Месяц назад
Great stuff and great video! Keep going! :D
@jbh759
@jbh759 Месяц назад
Dude this is awesome, keep up the good work!
@Gamesational1
@Gamesational1 Месяц назад
I was working on nearly the same exact thing. I need to get a move on and document my process.
@Maximxls
@Maximxls Месяц назад
very cool! looking forward to seeing your game running on 3ds
@maximood-tired
@maximood-tired Месяц назад
really cool project, im looking forward for new osus videos!
@NotEvenJokingg
@NotEvenJokingg Месяц назад
I wouldn't feel so bad for Aspire sliders freezing your osu! clone, I believe lazer has the same issue. The same is true for a lot of other inf bpm sliders, basically only "stable" osu renders them correctly.
@ohasanov
@ohasanov Месяц назад
Yeah hahah, aspire maps are a great way to stress test the engine though! The fact that I can create the sliders in microseconds on my PC just makes me happy. The thing with osu!stable is because it precalculates all of the objects I think, since yeah the ram usage is a lot higher compared to lazer :)
@McKay1901
@McKay1901 Месяц назад
@@ohasanov aspire slider distortions could easily be implemented without any precalculations, it's a simple x/y scaling/skewing based on the curve bounding box and coordinate system limits (32768).
@ohasanov
@ohasanov Месяц назад
@@McKay1901 I meant like the sliders on 'XNOR XNOR XNOR', there are some stuff there that currently needs precalc on my slider calculator... I am pre calculating each curve's length beforehand so that I don't calculate more points than needed in runtime. There are some bezier sliders for example consisting from hundreds of 1 length sub curves for example. Can't really guess each curve's length sadly :') At least I haven't done that till now... Also, I have never heard about skew/distortions... maybe I need to research that a bit more
@aminewallah
@aminewallah Месяц назад
amazing vid, you earned a sub 🔥
@h3dzer
@h3dzer Месяц назад
You absolutely madlad, that's really cool:)
@LukynkaCZE
@LukynkaCZE Месяц назад
very cool project! Love the video quality as well
@ohasanov
@ohasanov Месяц назад
Thank you very much!
@Benethen_
@Benethen_ Месяц назад
this is really impressive. i've always wanted to do something like this but I don't have enough programming knowledge yet to attempt it. also, aksanını duyunca şok oldum, genellikle böyle şeylerde türkler pek görünmüyor. gerçekten çok iyi olmuş, eline sağlık.
@Popzicle
@Popzicle Месяц назад
looking foward to see this port on the 3ds 👀
@aladeenzweipunktnull
@aladeenzweipunktnull Месяц назад
Very impressive, the amount of work you put into this project is insane dude.
@ohasanov
@ohasanov Месяц назад
Thanks!
@SomeRandomPiggo
@SomeRandomPiggo Месяц назад
Really cool video!
@rosux5540
@rosux5540 Месяц назад
looks sick!
@cake3014
@cake3014 Месяц назад
Shit! Awesome video dude! I subbed, want to see more!
@jkmelri
@jkmelri Месяц назад
Love this!
@Oreoezi
@Oreoezi Месяц назад
Very awesome!
@idiedlastmonth
@idiedlastmonth Месяц назад
Beautiful work pal! Thanks for sharing.
@TienDesu
@TienDesu Месяц назад
Good work
@resolvedman
@resolvedman Месяц назад
great job!!!!
@aimpizza6823
@aimpizza6823 17 дней назад
Very cool!
@DubUltra
@DubUltra Месяц назад
great video
@Koffiato
@Koffiato 23 дня назад
Eline koluna sağlık
@fudencio
@fudencio Месяц назад
very impressive
@error.418
@error.418 Месяц назад
Have you seen Freya Holmer's videos on Bezier curves for game developers? They're more about the math and less about spoon feeding you code, so it might be a good fit for your project.
@ohasanov
@ohasanov Месяц назад
Haven't seen them sadly, though my curve algorithm works just fine right now :)
@_voexx
@_voexx Месяц назад
eline sağlık
@dagdnoob
@dagdnoob Месяц назад
Good video brother
@xplurales1138
@xplurales1138 Месяц назад
So cool 🤩🤩
@0w0.727
@0w0.727 Месяц назад
Yt recommendation back at it 🔥
@MommysGoodPuppy
@MommysGoodPuppy Месяц назад
im really interested in 3ds development vids
@Jota_s2a
@Jota_s2a Месяц назад
nice man
@nbanba9033
@nbanba9033 Месяц назад
Tebrikler....👏👏👏
@cinarasultankulova4052
@cinarasultankulova4052 Месяц назад
Браво Омер👍
@prasnikar9465
@prasnikar9465 Месяц назад
and then i'm having headaches bcus of some simple codes.
@Rageinater
@Rageinater 27 дней назад
yo this is cool
@xvrydo8649
@xvrydo8649 8 дней назад
1:14 sure buddy, you have a good enough screen to Even render that.
@SuboptimalEng
@SuboptimalEng Месяц назад
Amazing work! Wait, you were born in 2006? Yea, I'm cooked.
@ohasanov
@ohasanov 29 дней назад
Thanks hahah! Not really to be honest, it is never too late!
@TechTutor429
@TechTutor429 28 дней назад
Great
@diamondfailer11
@diamondfailer11 Месяц назад
Milli gururumuzsun
@wuaht
@wuaht Месяц назад
i was actually looking for an osu 3ds port WTH
@pladselsker8340
@pladselsker8340 Месяц назад
Cool project! How did you come up with the optimizations for the bezier curves? Did you borrow some work that was already done in the literature? Also I took a look at your profile, I can't find an osu! project that was updated recently. Is it "osus"?
@ohasanov
@ohasanov Месяц назад
Yeah, it is called osus-revented! Although, after somr messing around with the 3DS, I see now that the memory management is not, will rewrite some stuff in the following weeks. About the optimizations, some algorithms (like getting the points themselves) I borrowed, but the way of using those algorithms to create evenly spaced points I found out myself :)
@pranjalambast
@pranjalambast Месяц назад
I kinda wanna help you out, if you need also the project is just creative and insane!!!
@ohasanov
@ohasanov Месяц назад
Heh, thanks! I need to make the code more readable first though. It is really visible how the code was written for my eyes only lol, its not that unreadable but its not great either. :)
@pranjalambast
@pranjalambast Месяц назад
@@ohasanov lmao I get it. I do the same thing too with my codes xD
@hoteny
@hoteny Месяц назад
Vayy be… tebriks
@nurayosmanova3966
@nurayosmanova3966 Месяц назад
👏👏👏
@GuyThatCREATESRandomStuff
@GuyThatCREATESRandomStuff 14 дней назад
Hope the ZIP decoder will be fixed, i found out that i have to manually extract the beatmaps but which folders do i extract to? (My ZIP decoder is ZArchiver btw.)
@ohasanov
@ohasanov 13 дней назад
Yeah so there should be a folder named "beatmaps", I just noticed that it isn't there on github, sorry. You can create the "beatmaps" folder in the same place as the "resources" folder
@davideilas1202
@davideilas1202 29 дней назад
do you know if there is any way to write games in c for a 3ds?
@ohasanov
@ohasanov 29 дней назад
Yeah! Look for the keywords: devkitPro, libctru, citro2d and citro3d! These are the basic stuff you want to research for 3DS homebrew
@zunv
@zunv Месяц назад
man i wish original osu was coded in c++
@duckduckXD
@duckduckXD Месяц назад
nice 👍 pt2 when?
@ohasanov
@ohasanov Месяц назад
I am still working on the 3ds port. The audio side of the whole thing kinda sucks on the 3ds... Will figure it all out though! When I have a stable enough build, I will post an update!
@duckduckXD
@duckduckXD Месяц назад
@@ohasanov okay 👍,take your time
@prismatic-bl8qf
@prismatic-bl8qf Месяц назад
Great job! Do you take any inspiration from DaniDev by any chance? hes a legend
@ohasanov
@ohasanov Месяц назад
Ah, I liked watching his videos, and his style of fun videos is what I want to achieve, sure. But gotta say, I was trying to create stuff like this even before seeing Dani's videos, I just didn't have the time to finish and publish those projects...
@prismatic-bl8qf
@prismatic-bl8qf Месяц назад
@@ohasanov ah its okay! i wasn't saying you're trying to copy his style. It just reminds me of him whenever i see a gamedev video since his videos are so enjoyable.
@ohasanov
@ohasanov Месяц назад
@@prismatic-bl8qf Hahah. Yeah they really are...
@chiffaonosu
@chiffaonosu Месяц назад
nice project and nice work, though I have to say - from my experience and experience of... pretty much every person developing anything related to osu (ranging from discord bots to stuff like Danser), matching bezier calculations closely to osu is one of the most annoying parts, especially while hunting for performance
@spaghettiking653
@spaghettiking653 Месяц назад
This is mad, I always wanted to make an osu clone but I suck ass at programming and especially graphics, so I barely made any progress at all. Forgive me for not understanding, but could you explain some more about what was so complicated about the bezier curves? I feel like I made a basic bezier drawing program and it was very simple in my case. Are there additional considerations when making it in a slider shape instead of a 1D line?
@raremc1620
@raremc1620 Месяц назад
Honestly, in my opinion he is just too inexperienced in programming, bezier curves are super simple, even quadratic, etc. ones. Looking at the code on github, his style is somewhat messy and not very readable at times.
@ohasanov
@ohasanov Месяц назад
@spaghettiking653 Bezier curves just by themselves aren't a challenge, yes. It's just the way osu needs those result points. The bezier algorithms are pricey (computation), and they generally do not give equally distanced points. First time I implemented the curves, the creation of a slider took about 10ms and tanked the framerate in half while rendering it. Currently, on my rig I can generate all the sliders in a 10 minute map in under 20ms. Less stutter, more performance, less memory usage, that was the hard part (at least for me)
@ohasanov
@ohasanov Месяц назад
​​@@raremc1620Sure, as a self taught solo developer, the way I write my code isn't optimal, I am not saying that I am the best at this, or that the way I write my code is the best way. No, it surely isn't, seeing how the mistakes I made 2 years ago are biting me in the back now. I just tried to show my determination, how I try to learn by creating new things, and completing all the projects. It's mostly fun anyway :) Also maybe I need to note this but the bezier curves in osu! are Nth order, mappers generally don't adhere to a limit so it becomes a bit weird when you have to calculate 2000 points for a 40th order bezier.
@raremc1620
@raremc1620 Месяц назад
@@ohasanov Honestly, you are doing great, nothing wrong with being imperfect, everyone has stuff to learn even if you are experienced :) Just mentioning a potential reason of why it could've been harder to get done.
@spaghettiking653
@spaghettiking653 Месяц назад
@@ohasanov Oh dear, okay, that makes sense. I just now think I realized why you need equally-spaced points: because the slider ticks occur at regular time intervals, right?
@RugiSerl
@RugiSerl Месяц назад
I'm curious about the way you drew the slider body ? I've tried using shaders but it quickly became a mess.
@ohasanov
@ohasanov Месяц назад
Hope my explanation will be at least understandable, here we go. So first I create a circle texture with a gradient. Pure red in the center, less Alpha the more distance you have from the center. Then, when creating the sliders I create a texture that will fit all of the points of the slider. Draw the red circle I first created on the slider texture each render point. While doing that, use a blend mode so that the Alpha channels aren't added and this way, you basically have a curve thats "Glowing", (Pure red curve created by the red center of the circle texture, the glow created by the gradient). Then, while rendering the slider texture, I just check the Alpha channel and recolor the fragment based on the distance from the center. It is definitely not the best way of doing this, but this method works on OpenGL1.1 too! Sadly the 3DS doesn't support fragment shaders so I just use a blend mode (or a blend function) that only draws the color with the lower color values (First draw a white circle, then the black inner one. While rendering the second white circle, the blend mode makes it so that the white circle doesn't override the black circle and stuff)
@RugiSerl
@RugiSerl Месяц назад
​@@ohasanov I kind of get the idea, I've tried drawing the texture but I can't figure out how to not add the alpha channels, I've tried using different blend modes but none of them worked. Anyway I've build your application and I saw that you put your own game directory in "globals.hpp" ("C:/Users/renot/AppData/Local/osu!/Songs"). I think there must be a way to configure that using the %LOCALAPPDATA% environment variable
@ohasanov
@ohasanov Месяц назад
@@RugiSerl Yeah, I forgot to change it back to the default hahah... I will push a big fix in the following weeks, apparently the code is leaking a loooot of memory (Some of it thanks to raylib too...)
@whatever7338
@whatever7338 Месяц назад
Damn dude that is one giant pile of spaghetti code.
@ohasanov
@ohasanov Месяц назад
Eh to be honest it is. Code made for one single purpose...
@Exarvi
@Exarvi Месяц назад
3:51 is that solace of oblivion?
@ohasanov
@ohasanov Месяц назад
Yeah! Was a great helper while I was trying to figure out slider lengths and stuff :)
@_.-.-_.-.--.-_.-
@_.-.-_.-.--.-_.- Месяц назад
May I ask as a beginner c++ learner, what sources would you suggest to improve myself to learn this language? What route did you follow once you started as a beginner in the past? Cheers, I loved your work. Be well
@ohasanov
@ohasanov Месяц назад
Thanks, I am in no position to really say that a route is the best way though... For me, I think that creating new projects always helps, since different games need different things... Other than that, geeksforgeeks and stackoverflow! They are your friends!
@_.-.-_.-.--.-_.-
@_.-.-_.-.--.-_.- Месяц назад
@@ohasanov Thank u for your recommendations. Furthermore, may I also ask did you take any particular course for c++ before? I kinda tend to find online courses much memorable rather than sticking with the book solely. Any suggestion surely can be beneficial. Thanks in advance, sincerely.
@ohasanov
@ohasanov Месяц назад
@@_.-.-_.-.--.-_.- Hmm, I just learned C++ from random RU-vid Videos, no particular course or anything. Like I said, I liked finding my own way by asking my own questions to solve my own problems in my own projects :) I feel like courses just limit you, by teaching things set in stone. So yeah, sorry can't really recommend anything...
@hevilmateold
@hevilmateold 3 дня назад
727 subscribers ain't no way
@i_is_evil_duck
@i_is_evil_duck Месяц назад
dats sow cewl
@KyButler
@KyButler 6 дней назад
I wonder if Lazer uses less RAM
@ohasanov
@ohasanov 6 дней назад
In some maps, it does actually use less ram!
@Jdbye
@Jdbye Месяц назад
That is a new 2DS XL. It has a quad core 800 Mhz CPU.
@ohasanov
@ohasanov Месяц назад
Yes, however it has the ability to run at 268MHz just like the original. The two extra cores you can't really use anyway. You need to enable the 804MHz mode in the homebrew app for that speed. I currently do not do that, and it still runs at a decent speed. Additionally, the new2ds does have more ram, but I do not use that as well, you can configure that while building a .cia file.
@jambalaya974
@jambalaya974 Месяц назад
this is basically what mcosu is
@ohasanov
@ohasanov Месяц назад
Well yeah, it is another osu! client. The focus here is pure performance more than anything else though.
@unyu-cyberstorm64
@unyu-cyberstorm64 Месяц назад
I wonder what performance is gained by the (slightly) faster new 3DS
@ohasanov
@ohasanov Месяц назад
Yeah so apparently, it is not just slightly faster. The new 3ds can get a steady 60fps on debug builds, the old 3ds gets a lot of frame drops on even -O2 builds (this optimization flag changes a lot in my project). Thats what a cpu running 3 times faster does apparently
@unyu-cyberstorm64
@unyu-cyberstorm64 Месяц назад
@@ohasanov doesn’t it also have more memory?
@ohasanov
@ohasanov Месяц назад
@@unyu-cyberstorm64 Yeah, but realistically, if you want your game to run on an old3ds, you really can't use the extra ram on the new models. More ram isn't always faster. But it does allow for bigger files to be loaded to memory, which speeds some things up especially when the 3ds has a really slow filesystem.
@unyu-cyberstorm64
@unyu-cyberstorm64 Месяц назад
@@ohasanov ah yes, and a better GPU on the new models too and better 3D effect, right?
@ohasanov
@ohasanov Месяц назад
@@unyu-cyberstorm64 Uhm, afaik the gpu is the same, Pica 200 @133MHz in both consoles. The 3D is better cause they implemented eye tracking, probably made more possible with the addition of 2 more cpu cores (4 vs 2). Most games dont really use more than a single core though, the extra 2 cores are mostly reserved. (You can take advantage of them in homebrew though)
@PeterKilian
@PeterKilian Месяц назад
Raylib is technically a game engine in of itself, but I see you didn’t use enough of its features to justify calling this project “not from scratch”. Especially since you’re a solo developer. Well done, keep working and you’ll be a great programmer. I’m sure of it.
@ohasanov
@ohasanov Месяц назад
I mean, yeah technically, but with the same logic, using any kind of API would also be "not creating something from zero". I mean sure but heh, the meaning is not that. (Also technically speaking I rewrote raylib once or twice anyway so heh)
@PeterKilian
@PeterKilian Месяц назад
@@ohasanov I think we are on the same page. Keep working hard and you will get better. Optimised programming is a great way to become a better programmer and you are on a good track when it comes to the learning process. I personally wish I had the tools and knowledge available to me now since I started. Which is why I’m so excited for the future. Can’t wait to see what the next great step is gonna be in terms of an individual’s programming prowess. I’m referring to the next Terry Davis / Michael Abrash, John Carmack, Chris Sawyer, Alan Turing etc
@Ayachiii_
@Ayachiii_ Месяц назад
Mania when
@ohasanov
@ohasanov Месяц назад
Technically speaking, implementing it wouldn't be that hard as far as I can see, but I am no mania player and honestly know very little about how it works. I will definitely try to add the other game modes too though (taiko most probably, catch, idk...)
@kunefek
@kunefek Месяц назад
really cooked anyways
@evanmico
@evanmico Месяц назад
As a webdev who specializes in copying other code, I must ask: why not just copy osu lazer implementation of bezier sliders and just convert to C++? Just seems like with osu lazer being open source and all, why not see how it did the bezier sliders? Anywho, brilliant project! So cool to see some modern development that focuses on efficient code!
@ohasanov
@ohasanov Месяц назад
Thanks! About the lazer thing. Even lazer can't render most of the weirder sliders properly. On my hardware, on some maps osu lazer just dies for some reason. That was one part. The second being that I can't really read the C# code of lazer... That is 100% my problem though hahah!
@conturnplayscounturn6911
@conturnplayscounturn6911 Месяц назад
He did also mention in the video that he wanted to implement everything cleanly (without taking/looking from other codebases). Copying lazer’s handling would contradict those value :p Very commendable work, makes sense why you decided on the principles you choosed since the primary objective is to make a performant version of osu, not to replicate in yet another language. (ps: Looking forward to this project, please make a pinned comment with the public repository if you ever do decide to crate one. Would like to try and port this to mobile :D )
@ohasanov
@ohasanov Месяц назад
​@@conturnplayscounturn6911Ah the repo is on my github (link in desc). Its called osus-revented (another word play. Vent. Reinvent) I dont recommend touching the repo now though, apparently I am leaking a lot of memory, and some stuff only work on my pc. I need to fix those. Once I do that, I will also be finished with the 3DS port, at which point I will post another video!
@T4niox
@T4niox Месяц назад
maliszewski?????
@lollmaonice
@lollmaonice Месяц назад
Mike wazowski
@osurestrict
@osurestrict 10 дней назад
peppy in 2006 be like:
@muslimgamerrr9479
@muslimgamerrr9479 8 дней назад
ARCHCRAFT RAHHHHHHHH
@m4rt_
@m4rt_ Месяц назад
why not just C?
@melkiorgabriel9539
@melkiorgabriel9539 Месяц назад
He is using stuff from C++ such as classes 3:28 you can see that there is a slider class
@ohasanov
@ohasanov Месяц назад
I thought by using C++ I can be a lot easier on myself by not having to manage the memory that much, but after some recent developments, it seems like I need to rewrite the memory management myself, vectors crash randomly on the 3DS :')
@StaringLongingly
@StaringLongingly Месяц назад
steins;gate detected!!
@echoeee
@echoeee Месяц назад
osu
@usuyus
@usuyus Месяц назад
that looks painful to make respect
@Aestareth_
@Aestareth_ Месяц назад
simplest c++ program:
@oglothenerd
@oglothenerd Месяц назад
Hey, you are only 2 years older than me! :D
@VoxelPrismatic
@VoxelPrismatic Месяц назад
As a Linux user, I am insulted by the mere presense of WSL on your system.
@ohasanov
@ohasanov Месяц назад
Sorry, I just am used to using Windows, and WSL is actually great for C++ dev environment I feel like...
@sinom
@sinom Месяц назад
"the beat map file only contains some points and the type of the slider"... Ofc? That's how splines work. How else would you represent them
@ohasanov
@ohasanov Месяц назад
I mean, yeah? If you know it thats no problem?
@himalayo
@himalayo Месяц назад
so you remade a game so it can run on the nintendo 3ds but it doesn't run on the 3ds? lol
@ohasanov
@ohasanov Месяц назад
I mean, technically does now, its just that I didn't know much about the API (GPU and Sound) on the 3DS. I currently do have an unstable build that has audio but I need to rewrite the memory management, random crashes are not fun...
@himalayo
@himalayo Месяц назад
@@ohasanov that's honestly extremely impressive. I do recommend watching out for RAM consumption because on your vid it appears that it's using 110mb which is still a lot despite being technically below the limit imo
@ohasanov
@ohasanov Месяц назад
​@@himalayoyeah so 70mb of that is just Windows being Windows. I managed to actually make it play a map fully, max memory consumption was about 14MB or so (excluding textures and sound files), although the memory management is leaking some stuff, I definitely need to rewrite that...
@ozu7779
@ozu7779 Месяц назад
turk musun?
Далее
I Optimised My Game Engine Up To 12000 FPS
11:58
Просмотров 538 тыс.
Teaching myself C so I can build a particle simulation
11:52
ОН ТОЧНО ЗАЕДЕТ. ВЕЗДЕХОД АГ-34.
41:09
Optimizing my Game so it Runs on a Potato
19:02
Просмотров 414 тыс.
i forced ai to sing my site's awful source code
2:57
I Made a Neural Network with just Redstone!
17:23
Просмотров 597 тыс.
there's osu! on scratch (and other rhythm games...)
13:42
Why Do Video Game Studios Avoid Blender?
6:49
Просмотров 272 тыс.
Making an Annoying Discord Feature even Worse
7:03
Просмотров 344 тыс.
HOW TRANSISTORS RUN CODE?
14:28
Просмотров 274 тыс.
Making a VIRUS for a Game Jam (and almost winning)
9:36
Неразрушаемый смартфон
1:00
Просмотров 1,2 млн
#miniphone
0:16
Просмотров 3,2 млн