How OneShot's Fourth Wall Breaks Worked - Technical Deep Dive

  Рет қаралды 15,697

RedHeadDJ

RedHeadDJ

Күн бұрын

Пікірлер: 101
@redheaddjg
@redheaddjg Ай бұрын
Just a quick note that I needed to make, this video explains how the fourth wall breaks of OneShot worked in the original PC version, not the World Machine Edition which is the version that is on consoles and that just released on Steam yesterday as of the writing of this comment. The World Machine Edition uses a completely different game engine compared to the original PC version (not sure which one) and instead of using the actual operating system to do its fourth wall breaks, it does them through a virtual "operating system" implemented within the game itself, which is how the game can work on consoles. A lot of the ideas and philosophies for these fourth wall breaks are still the same between both versions, but their implementation I'm almost certain is different. Anyway, just a heads up in case anyone has any questions relating to which version I am covering in this video.
@maddingue
@maddingue 3 ай бұрын
“The video contains major spoilers.” Thanks for the warning, I’ll come back later. Taking a note to watch this video after playing the game.
@madmakral3841
@madmakral3841 3 ай бұрын
How did it go?
@aaronruinslives
@aaronruinslives 3 ай бұрын
Thank you for playing this absolute gem of a game I hope you like it
@str4nger-d4nger
@str4nger-d4nger 3 ай бұрын
didja do it? or still not done? no need to rush if not, its a game best played slow
@sense.reginald
@sense.reginald 2 ай бұрын
update us when you're done :3
@isabkyes6507
@isabkyes6507 Ай бұрын
So? How did it go
@Determ1nat1on
@Determ1nat1on 3 ай бұрын
Niko do your thing is a hilarious name lmao
@TheKd8lvt
@TheKd8lvt 3 ай бұрын
As a game modder turned professional software engineer, I feel like I have to shout out the best method name I have ever seen. intelCPUsAreDumbAsBricks Which is the name of a method that takes a single value of any type and returns it, completely unmodified. It also has an annotation to make sure the compiler doesn't optimize it away, implying the compiler agrees with the author. I'll leave it up to your imagination whether that gem is in a game or not. It's pretty funny to see, either way.
@ocelotmadness6287
@ocelotmadness6287 3 ай бұрын
Whats the point? ​@TheKd8lvt
@TheKd8lvt
@TheKd8lvt 2 ай бұрын
@@ocelotmadness6287 I have no idea, that's the best part. Probably nothing but legacy code nowadays, but the original codebase is old enough that it could have at one point been fixing something
@Voxelstice
@Voxelstice 3 ай бұрын
3:08 i'd like to clarify: mkxp-oneshot is ACTUALLY the game engine OneShot is running, it's also a fork of mkxp, which is a reimplementation of RPG Maker XP's engine
@towaii
@towaii 2 ай бұрын
yeah this moment of the video was a little bit weird seeing the most recent commit being from GIRakaCHEEZER themself. good to know
@lassebq1
@lassebq1 2 ай бұрын
I have completed OneShot on Windows before, but I'm about to replay the game on Linux. The fact that even different desktop environments have special handling for desktop wallpaper is super interesting to me. No indie game developer in the world would go that far imo
@TealTheCuteness
@TealTheCuteness Күн бұрын
I guess if you want to port your game to Linux is what you gotta do
@the_greened_out
@the_greened_out 3 ай бұрын
0:20 NIko is not just a cat-looking person, they are ABSOLUTELY not a cat
@romadimitrishen6262
@romadimitrishen6262 2 ай бұрын
Cat
@arena7839
@arena7839 3 ай бұрын
"Oneshot didnt perform any dark magic" says the literal wizard
@itswilliamanimate
@itswilliamanimate 3 ай бұрын
3:15 im not sure if this is a reimplementation of the game; eliza is a developer for oneshot, and they forked mkxp for oneshot, but due to licensing, they need to open source it (which is how you can see that code)
@GIRakaCHEEZER
@GIRakaCHEEZER 3 ай бұрын
Yeah that github repo seen in the video is just the actual repo for OneShot 2016
@ms.awesome
@ms.awesome 3 ай бұрын
i remember specifically trying to drag the game window when Niko does they're thing and was amazed that they werent just apart of the actual game somehow.. This game is so cool and awesome and i love it so much! And your explanations were great :3 !!
@Cmaster25
@Cmaster25 3 ай бұрын
As a speedrunner of Oneshot, seeing how these fourth wall breaks actually work amazes me! Loved the video and the visuals!
@annotated_
@annotated_ 3 ай бұрын
This video feels like the Hunter R. (a content creator who specializes in animal crossing's code) version for Oneshot. Loved the vid btw!
@krispyking2450
@krispyking2450 3 ай бұрын
explains why i enjoy this video
@saprykinzxc
@saprykinzxc 3 ай бұрын
Really love this game. I have played it about 5 yrs ago and still remember how i cry at the ending
@erzaine6545
@erzaine6545 3 ай бұрын
I feel like I'm watching magic being revealed to me. Thank you for the detail video and may this video get reccomended to many others
@WokWokich
@WokWokich 2 ай бұрын
The best video about OneShot, it was very interesting to look at the game code, even though I didn't understand anything^_^ Amazing video. Amazing game.
@Yipper64
@Yipper64 3 ай бұрын
This is without a doubt, my favorite RPG Maker game. It isnt even a contest.
@0neofthoseguys547
@0neofthoseguys547 3 ай бұрын
Niko doing the thing being a reuse of the journal program is really interesting and weirdly satisfying. Great video and underrated channel!
@SeppelSquirrel
@SeppelSquirrel 2 ай бұрын
I appreciate the way you built up from the simple to the complex! Due to the ordering of this video's reveals, I was able to guess how the last one was done before you showed it!
@Eva-zy4gw
@Eva-zy4gw 2 ай бұрын
Getting caught off guard with the "Yumi Nikki" was so funny Lol. 2:06 It should have been "Yume Nikki".
@slugintub
@slugintub 3 ай бұрын
This was an absolutely amazing video, I really don't get how it doesn't have more views, amazing editing and breakdown of the code.
@e2myearly288
@e2myearly288 2 ай бұрын
I've been trying to look into this code for so long now. Thank you for helping me understand this. This is incredible
@RaquelCF150
@RaquelCF150 3 ай бұрын
Amazing video and very well explained! I was always curious about how they did all that, specially how Niko does their thing xD
@XDDDSXD
@XDDDSXD 2 ай бұрын
i was so amazed by the oneshot mechanics, when i first time played it. my mind literally blown. so explaining the code from your video. it fascinated me.
@qwertyuiop.lkjhgfdsa
@qwertyuiop.lkjhgfdsa 3 ай бұрын
oh that is fascinating, i never would have guessed offscreen niko was the journal exe
@draf800
@draf800 2 ай бұрын
great video, im happy that someone is still making content about this game after 8 years (more views deserved)
@marginoferrortheory
@marginoferrortheory 3 ай бұрын
i've been waiting for this kind of video to see how niko walked out of the window great video!!!!
@emeraldtheninja9128
@emeraldtheninja9128 16 күн бұрын
Thanks for pointing people in the right direction mentioning solstice. A lot of people still haven't figured that out
@centdemeern1
@centdemeern1 2 ай бұрын
As an experienced programmer, the main takeaway for me is that mkxp exists, which is pretty cool. I didn't know about it. The actual implementation of things seemed pretty standard/trivial though (as expected and as they should be) If I recall though, I think the game actually reverts your desktop wallpaper to what it was before. I wanted to know some details about where it kept your wallpaper information and what niche features it possibly neglected to include in what it saves. Especially on Windows, wallpapers have some pretty weird and niche properties. (Things like slideshows and other dynamic things. They really experimented a lot with that during the Windows XP - 7 era) I also just remembered that Wallpaper Engine exists, which might make the entire mechanic impossible (without disabling WE) for some people. That's... oh well. TL;DR: pretty cool video! I liked how a lot of stuff was still implemented in RGSS, by mostly only using mkxp as *bindings*, or wherever it wouldn't be very reasonable P.S. I'm amazed they went out of their way to make a Linux version of the game, by the way. Linux has next to no guaranteed-to-be-available standards for anything so the work the devs put in to make it all work in various situations is very commendable.
@TeemoFatHamster
@TeemoFatHamster 3 ай бұрын
//Spoilers: . . . I still remember the ending, I remember playing it as soon as it came out, every one in a while for whatever reason i keep remembering it, and i always go in my head "i remember you niko". I know it's weird to do it, but at the same time it became this fun little ritual i really enjoy doing. The excitement after you randomly remember something like that, you just go "wow! i still hold that moment inside my head"
@i_isak1451
@i_isak1451 3 ай бұрын
Amazing video! It was super interesting to see how the mechanics actually work under the hood
@phxcake4012
@phxcake4012 2 ай бұрын
YEAAAAAH IVE BEEN WAITING FOR A VIDEO LIKE THIS..!!!!!!!!!!!!! hi thank you for this
@TalhaOyunda-sb6fy
@TalhaOyunda-sb6fy 2 ай бұрын
Great video!
@Yuti640
@Yuti640 3 ай бұрын
one shot is peak!!!
@thecoweggs
@thecoweggs 2 ай бұрын
underrated channel.
@Lucas38739
@Lucas38739 2 ай бұрын
At 22:29 I assume this is one of your tracks you've made? Glad to see that Bejeweled 2's music still inspires tracks made today!
@Str4ky
@Str4ky 3 ай бұрын
This was hell interesting, thank you for making this video :)
@fdsKedi
@fdsKedi 2 ай бұрын
Thanks for the explanation!
@crycatena
@crycatena 2 ай бұрын
Super interesting!
@Random-oy7vk
@Random-oy7vk 3 ай бұрын
Omg, I was looking for a vídeo like this for a long time
@SoyMako
@SoyMako 3 ай бұрын
this video gonna blow up
@BakerBones
@BakerBones 3 ай бұрын
YOOO NEW ONESHOT VIDEO ESSAY i really gotta finish mine lol
@Yuti640
@Yuti640 3 ай бұрын
Niko! Do your thing! *Sunglasses.png*
@CanoTheVolcano
@CanoTheVolcano 2 ай бұрын
I believe that Named Pipes are the windows equivalent to Unix Domain sockets, and so Oneshot uses message passing for its IPC rather than shared memory.
@Milkmanrules1032
@Milkmanrules1032 16 күн бұрын
Very interesting stuff!
@markhladkykh5370
@markhladkykh5370 2 ай бұрын
Undertale Yellow Soundtrack
@OliAtypical
@OliAtypical 2 ай бұрын
Hearing TehAwesomestKitteh said out loud out of nowhere made me suddenly feel physically ill For those who are unaware, TAK draws nsfw of niko, alula, and other underaged characters and has been known to harbor and blindly defend groomers in their discord server.
@buddybuck3716
@buddybuck3716 2 ай бұрын
This has great explanations! ty!
@gamertypeawesome
@gamertypeawesome 3 ай бұрын
I THOUGHT I'D ALREADY SPOILED MYSELF TOO MUCH TO PLAY THE GAME AND THEN I DISCOVER THERE'S STUFF I DIDN'T REMEMBER BUT NOW DISCOVERING THAT MEANS DISCOVERING THE SOLUTION SO IM FULLY SPOILED AGAIN SO I DONT HAVE A GOOD REASON TO PLAY IT AAAA
@solsystem1342
@solsystem1342 3 ай бұрын
I think the experience of playing oneshot is really cool. It's up to you of course but I watched a single playthrough before playing it and still enjoyed it.
@gamertypeawesome
@gamertypeawesome 3 ай бұрын
@@solsystem1342 it still has been a bit since ive seen anything so maybe it'll be fun to just read the dialogue. I'll see how much it costs (i might have killed freeware niko :( )
@gamertypeawesome
@gamertypeawesome 10 күн бұрын
oh I forgot to say but after that i did buy the game but was pretty underwhelming sadly
@Amonimus
@Amonimus 2 ай бұрын
People generally forget that games are software. Displaying the graphics is the normal functionality, but any game in theory has near full access to the computer while it's running. DDLC also relies on tricks that, if you think about it, most games do anyway but don't bluntly say so to preserve suspension of disbelief. Though whatever being a programmer spoils meta surprises is subjective.
@arcturusakerfeels1438
@arcturusakerfeels1438 2 ай бұрын
5:29 Roasted Garlic Summer Sausage
@seazeiscool
@seazeiscool 3 ай бұрын
i was always blown away by how on earth did they do certain things and this explained it well, awesome video also wow only 1k views? very underrated
@Rasec193
@Rasec193 3 ай бұрын
i've only watched the intro. The examples look like the kinitopet stuff (i guess the kinitopet devs were inspired by oneshot)
@robertwyatt3912
@robertwyatt3912 2 ай бұрын
You should do a video on the original “proof-of-concept” version of the game. It’s able to do a few more nasty tricks because it’s a free game.
@ninjakai03
@ninjakai03 3 ай бұрын
ONESHOT VIDEO WITH VA11HALLA MUSIC I LOVE YOU
@krispyking2450
@krispyking2450 3 ай бұрын
16:47 what if u played the game on an unactivated windows? or would how it changes the wall paper still work?
@Mahier_theguy
@Mahier_theguy Ай бұрын
I'm just trying to figure out how they managed to add expressions and stuff
@Box_yld
@Box_yld 3 ай бұрын
24:41 Sadly on linux version niko will just disapper :( (Could be fixed cuz the game got a good amount of updates after i beat it in both windows and linux version)
@lassebq1
@lassebq1 2 ай бұрын
Looking at the current code in mkxp repo, there's certainly some handling for linux platform too. So I have high hopes about my playthrough
@Box_yld
@Box_yld 2 ай бұрын
Nice...i will wait until you complete the game
@Milkmanrules1032
@Milkmanrules1032 16 күн бұрын
Can you do a video about Outcore and how the game was made?
@vindi167
@vindi167 2 ай бұрын
ok but you frogot the window shake when the lightbulb shatters
@ghb323
@ghb323 2 ай бұрын
somewhat reminds me of windowkill for godot on the final chapter.
@zaptrap4802
@zaptrap4802 2 ай бұрын
For the desktop wallpapers, when you close the game, the wallpaper reverts back to your original wallpaper. How does the game do this? Does the game store your original wallpaper somewhere before changing it, then restores the wallpaper when the game finally closes? Or is there some windows function that allows temporary wallpapers? (This is a newbie question) As for the journal, how does the game make the window transparent? Does it just check what the color of the pixel behind is and then display that? Or do windows windows just have the ability to set a transparency value to the pixels? (I've never seen any other software do this so that's why im asking)
@redheaddjg
@redheaddjg 2 ай бұрын
@@zaptrap4802 interesting questions! I looked back into those wallpaper binding functions and yea, just before the desktop wallpaper is set, OneShot does save the parameters of the old wallpaper into some global variables. There's another function in the binding class called "wallpaperReset" that sets the wallpaper parameters to those old values, so maybe OneShot runs that function when the game closes and is why it can reset it. For the journal, I believe the window uses a mask to accomplish its transparency. There are green pixels in the journal images in the places that would be transparent in the window. Those green pixels are masked out when those images are drawn which makes those pixels transparent. I'm not too versed with Windows API stuff so I am not exactly sure on the details of it. On the Unix version of the journal program, the window is set to have a translucent background. The pixels of the images in the unix version are transparent to begin with so there's no crazy masking going on with displaying those.
@zaptrap4802
@zaptrap4802 2 ай бұрын
@@redheaddjg Thanks :)
@ChickenPotato911
@ChickenPotato911 2 ай бұрын
Pancake For The Niko 🥞🥞🥞
@CanoTheVolcano
@CanoTheVolcano 2 ай бұрын
was that a community re-implementation on github? because GIRakaCHEEZER was the main writer for the game, i believe.
@TehAwesomestKitteh
@TehAwesomestKitteh 2 ай бұрын
I should update the modding guide
@pomelo9518
@pomelo9518 3 ай бұрын
As someone who isn't too experienced with code, I thought completely invisible windows weren't allowed by OSes. Haha
@FlameSoulis
@FlameSoulis 2 ай бұрын
So... the 7th method... there's ONE other way to pull off the same trick... which I've done in total error, as have many other C++ coders dealing with the WIN32 API directly (they were using SDL, which is much more recommended). TLDR.... if you do drawcalls to NULL, this is the desktop itself. So, in theory, you could draw on the screen without creating a window class... and things get very weird. Granted, this is NOT multi-platform friendly at all, and I'm sure that many Linux desktop environments absolutely forbid this kind of action.
@Terricule
@Terricule 2 ай бұрын
Damn ur all reel smart n stuff wow poggers i'm clappin so hard rn!!!
@AnnasVirtual
@AnnasVirtual 3 ай бұрын
language binding is too powerful fr
@gamertypeawesome
@gamertypeawesome 3 ай бұрын
12:53 why did you sentence mix it
@KNfLrPn
@KNfLrPn 2 ай бұрын
Curious: is the narration computer-generated?
@pieperson444
@pieperson444 3 ай бұрын
i'd be so fucking mad if a game changed my desktop
@Stevoisiak
@Stevoisiak 3 ай бұрын
The game restores your original background afterwards
@aleksitjvladica.
@aleksitjvladica. 2 ай бұрын
Why do you talk about this obviously gay video game?!
@Turbulation1
@Turbulation1 2 ай бұрын
Hmm I wonder how the algorithm attracted you to this guy's videos.
@aleksitjvladica.
@aleksitjvladica. 2 ай бұрын
@@Turbulation1 Ask the west.
@MarteenHobbu
@MarteenHobbu 2 ай бұрын
​@@aleksitjvladica. bruh...
@michaelepica3564
@michaelepica3564 2 ай бұрын
Because its fucking fantastic. And y'know what? Gay people are fantastic too. Womp fucking womp if you don't think so.
An In Depth Overview of OneShot's Lore
53:37
Pixelbit
Рет қаралды 33 М.
Why I failed at creating a video game
16:20
Dick Benis
Рет қаралды 54 М.
Will A Basketball Boat Hold My Weight?
00:30
MrBeast
Рет қаралды 142 МЛН
This dad wins Halloween! 🎃💀
01:00
Justin Flom
Рет қаралды 58 МЛН
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 1,6 МЛН
Why Slopes are Shockingly Difficult for Indie Game Devs
17:20
Inbound Shovel
Рет қаралды 163 М.
The Making of Worms (1995) | Documentary
1:00:59
onaretrotip
Рет қаралды 42 М.
Can you actually beat Minecraft from an Island?
1:30:04
Mud Flaps
Рет қаралды 125 М.
Games Where You're NOT the Main Character
14:52
i am a dot.
Рет қаралды 2,8 МЛН
I did EVERYTHING in Little Inferno
19:02
Pehnk
Рет қаралды 263 М.
The Most Abstract RPGs Ever Made | Hylics Retrospective
2:11:12
Hey Peter
Рет қаралды 333 М.
Why Is It Bad That My Game Looks Good?
16:40
Deynum Studio
Рет қаралды 186 М.
My ULTIMATE THEORY on the FUTURE CHAPTERS of DELTARUNE
1:48:13
RedHeadDJ
Рет қаралды 208 М.
Will A Basketball Boat Hold My Weight?
00:30
MrBeast
Рет қаралды 142 МЛН