Can I Play Pac-Man Directly On Its Own Source Code?

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024
  • Join me as I create a Quine Game Engine, which allows you to develop games as you would do it normally, except using APIs developed by yours truly, and compiling them using a custom tool that converts your beautiful creations into their most condensed form, to be enjoyed by everyone.
    By making use of different techniques and technologies, like the C Language, JavaScript, Rollup.js, Terser, various optimization I attempt to recreate PacMan (the game) in its entirety and have it run as a Quine on its own source code.
    Link to the repo: github.com/ici...

Комментарии • 125

  • @TheMostOrdinaryPersonOnEarth
    @TheMostOrdinaryPersonOnEarth Месяц назад +262

    RUclipsrs keep making game engines, and i'm all for it. I enjoy how long it takes until I don't understand anything, and writing C++ is a small part of my job so you'd think I'd know whats happening

    • @icitry
      @icitry  Месяц назад +46

      Glad you're getting a kick out of it, and hey, welcome to the club, nobody knows what's happening here

  • @couldntcreateagoodname
    @couldntcreateagoodname Месяц назад +55

    im surprised someone actually recognized the "PIXELS" movie, that movie feels like a forgotten memory

    • @icitry
      @icitry  Месяц назад +16

      Well that just can't be, the cinematic masterpiece that is the Pixels movie and its cultural impact are nothing less than absolutely legendary

  • @lpfan4491
    @lpfan4491 Месяц назад +24

    Developer:"This is my sourcecode."
    People:"But can it run Doom!?"
    Developer: Wat

  • @Hellscaped
    @Hellscaped Месяц назад +89

    no clue how but i tried it and blinky escaped the maze lmfao

    • @icitry
      @icitry  Месяц назад +31

      Well now that's something else, thanks for pointing it out - you can submit an issue if you get it to happen consistently

  • @Jakku_Azzo
    @Jakku_Azzo Месяц назад +42

    Next step I guess is finding a way to interpolate the src code over a bitmap of a level in a way that the level is still recognisable , objects are interactable and the game can be played.
    Then we have cave story Quine

  • @alexshonia880
    @alexshonia880 Месяц назад +97

    never stop cooking

    • @icitry
      @icitry  Месяц назад +16

      Oh the kitchen's holding on for dear life but you better believe I'm not letting it chill

  • @farcesable
    @farcesable Месяц назад +35

    I like your result and I definitely couldn't do this myself, but I think what sets some of the others apart is that the code isn't just short, it's readable too. With the JavaScript minifier it ends up looking obfuscated, I don't think there's any short section in there that I could understand on its own. Getting it short and readable is a massive limitation though, so I get what you were saying when you mentioned not wanting to do pong or snake, there's not a lot that can be short and readable outside of games of that era.

    • @icitry
      @icitry  Месяц назад +4

      Happy to hear that! And I totally agree, having it also be readable and actually easy to understand is an art in and of itself.

  • @BullyBarua
    @BullyBarua Месяц назад +125

    Now do it in C

    • @icitry
      @icitry  Месяц назад +58

      Is this how little you think I value my mental health? (it probably is)

    • @lmfao-tp4cx
      @lmfao-tp4cx Месяц назад +46

      real programmers make their own CPU architecture to have their own Assembly language only using transistors and logic gates smh​@@icitry

    • @icitry
      @icitry  Месяц назад +33

      @@lmfao-tp4cx wdym just wait for lightning to strike a rock and you've got a cpu, the rest is dark magic and hexes

    • @lmfao-tp4cx
      @lmfao-tp4cx Месяц назад +8

      @@icitry nah there is a emacs command and a js framework for that already

    • @icitry
      @icitry  Месяц назад +10

      @@lmfao-tp4cx fair point ngl

  • @JusticeNDOU
    @JusticeNDOU Месяц назад +26

    ooh i took a very long time to realize what directly on its own source code meant

    • @icitry
      @icitry  Месяц назад +4

      Ohh, did I take too long to get into the explanation? Or maybe the subject itself is a bit convoluted?

    • @JusticeNDOU
      @JusticeNDOU Месяц назад +12

      @@icitry next time try a game that constantly rewrites its source code

    • @raphaeld9270
      @raphaeld9270 Месяц назад

      @@JusticeNDOU Maybe replacing state machine with self-modifying code 🤔

  • @JamesTDG
    @JamesTDG Месяц назад +3

    Now I want to see someone make this run Tetris. As for doom, I don't think running its source code in this program would be very entertainng

    • @icitry
      @icitry  Месяц назад

      Hey, with a big enough screen, who knows

  • @GameJam230
    @GameJam230 8 дней назад

    I feel like another interesting way this could be developed too would be to have a game with a save file system where the code can overwrite characters in itself to represent the save data, making it so stopping and reloading the game will completely restore the game like a save state. This could probably even be extended to another video I've seen on saving a game in a QR code, but I recall that onr being EXTREMELY tight on data size already, so it would likely work better here.

  • @hyperkiko
    @hyperkiko Месяц назад +12

    you should make the background text also include the html (and css if it exists) to be able to just select the whole background, paste it in an html file and run it

    • @icitry
      @icitry  Месяц назад +4

      Actually it includes them. The only HTML I haven't included is the one for the page displaying the script as I considered that to be outside of the game itself - but I can definitely see your point

  • @Roxve
    @Roxve Месяц назад +3

    insanely cool idea diff in my TODO list when i finish my language

  • @justansmg4fan254
    @justansmg4fan254 25 дней назад +1

    This is very interesting to someone who has no clue what you’re talking about

  • @KaiDotBurokai
    @KaiDotBurokai Месяц назад +8

    Okay but can it [insert overused joke here]

  • @Scaphenaph
    @Scaphenaph Месяц назад +1

    "Playing on their games source directly code"
    Godzilla had a stroke reading this and died

  • @anon_y_mousse
    @anon_y_mousse Месяц назад +2

    I would think it'd be easier to do in C since you could just issue ANSI escape sequences directly to modify the terminal output. I doubt I could make it a true quine, but I'll see if I can't at least do a terminal version of Pac-Man. Let's see if I have any time to actually read the research on ghost movements.

    • @icitry
      @icitry  Месяц назад +2

      I actually did just that 😅 (you can check out the repo), the issue was creating a general solution that could properly compress code for any game. But yeah, creating a full fledged C Quine for Pac-Man would be quite the feat (considering my solution is still not a 1:1 copy even at that size).

  • @HelloKittyFanMan
    @HelloKittyFanMan Месяц назад +2

    Huh, interesting, sort of! Thanks!

    • @icitry
      @icitry  Месяц назад +2

      Glad to hear that, thanks as well!

  • @justpigzilla
    @justpigzilla Месяц назад

    what a ride! really satisfying to see it finally run haha

  • @tonycrawl5300
    @tonycrawl5300 9 дней назад

    This just makes me think (Pac-Man but texted to look like dwarf fortress) anyone else think that's kinda fitting?

    • @tonycrawl5300
      @tonycrawl5300 9 дней назад

      Oh I mean the free one fiy not the steam one

  • @DsiPro1000
    @DsiPro1000 Месяц назад +2

    See you cowboy, someday, somewhere!

  • @cvabds
    @cvabds Месяц назад +4

    Well, twmpleOS does that natively

    • @icitry
      @icitry  Месяц назад +8

      Ok let's not compare the work of man to that of the Gods now shall we?

    • @cvabds
      @cvabds Месяц назад +1

      @@icitry I wish people didn't get fixated about the religious part of it. I wish there was someone like you who could just do pure coding without restrictions on it. Call it HeresyOS haha

  • @HelloKittyFanMan
    @HelloKittyFanMan Месяц назад +2

    But what about when Clyde's position is 8, _itself,_ tiles away from Pac-Man, Icitry?

    • @icitry
      @icitry  Месяц назад +4

      Oh, that'd still be Pac-Man's position. My bad, I somehow let that slip by 😅

  • @Jack-ov4mb
    @Jack-ov4mb Месяц назад +2

    Eargasm quality audio? Street fighter 2 Guile's theme gives me an eargasm and gets me hyped with just 16 bits.

  • @Psycheux_
    @Psycheux_ Месяц назад

    I'm so glad I'm nyot the only person to say "eargasm"

  • @Skullkid16945
    @Skullkid16945 Месяц назад +1

    You think someone could make a rendering engine using a terminal that supports sixels as the output? Could use sixels to render the game in the terminal directly with more clarity, although possibly limited in colors. Would work for certain art style games though or older games that already have limited colors.

    • @icitry
      @icitry  Месяц назад +1

      Definitely, I don't see why it wouldn't work, and I'm sure there'd be plenty of fans of the style

  • @majinya6199
    @majinya6199 29 дней назад +1

    But can it run Crysis?

  • @TravTrevTV
    @TravTrevTV Месяц назад +1

    the last level of pacman:

  • @dotdashdotdot668
    @dotdashdotdot668 17 дней назад

    1:19 YOU.

  • @Monkeymario.
    @Monkeymario. Месяц назад +1

    6:16 remove all whitespac3 characters and shorten variable and function names

  • @angzarrpsyco
    @angzarrpsyco 7 дней назад

    Now make a game run on a QR version of its own code

  • @ponali.mememaker
    @ponali.mememaker Месяц назад

    i'm trying to send a comment, but everytime i try to do so it automatically gets deleted, but not for my client. trying to edit those unexisting comments results in the "Returned error" error. i tried editing one of my existing comments and it stayed for a while, but now it's gone...?

  • @th1v5
    @th1v5 Месяц назад

    here is your algorithm boost

  • @brenioKs_old
    @brenioKs_old 13 дней назад

    WHY DID YOU MAKE ME LOSE 😭

  • @georgerogers1166
    @georgerogers1166 Месяц назад +4

    Do Super Mario World in Super Mario World.

  • @Bonini000
    @Bonini000 Месяц назад

    What have i understood from this? Hey, look, there is a game in ASHII! 😅

  • @MarkRayers
    @MarkRayers Месяц назад

    Make it in javascript or html, those are interpreted, or any interpreted language, bam, running from source

  • @cupajoe99
    @cupajoe99 28 дней назад

    0:30 am i colorblind? i cant see it as a clock

    • @icitry
      @icitry  28 дней назад

      Sorry you had to find out this way

  • @SquidBeatsSB
    @SquidBeatsSB 27 дней назад

    Do doom for old times sake

  • @BoxAnims2
    @BoxAnims2 Месяц назад

    Doom. You have to.

  • @RobertTheFoxxo
    @RobertTheFoxxo Месяц назад +1

    baba is you

  • @HelloKittyFanMan
    @HelloKittyFanMan Месяц назад +1

    "...I thought to myself..."
    As opposed to "thinking to someone else" here in mortality?

  • @12354fdw
    @12354fdw Месяц назад +8

    Making it in C. A very bad idea

    • @icitry
      @icitry  Месяц назад +7

      You tell me... At least it was kinda fun in hindsight

    • @theevilcottonball
      @theevilcottonball Месяц назад +2

      As someone who wrote a hello world PE windows executable with just a hex editor, I would say C is pretty nice...

  • @Snipersfmgmodtf2hl
    @Snipersfmgmodtf2hl Месяц назад

    9:08 cuisgravida
    buttholeispregnant
    (cu is butthole in portugues and gravida is pregnant in portugues)

  • @EriksGarbage
    @EriksGarbage Месяц назад

    WEIRD AL⁉️⁉️⁉️⁉️⁉️⁉️⁉️

  • @oofiyea4444
    @oofiyea4444 Месяц назад

    cool now do it on dooms source code

  • @Pacman009
    @Pacman009 Месяц назад +11

    Don’t play me 😡

  • @kubaoko008
    @kubaoko008 Месяц назад

    damn.

  • @404Foundnt
    @404Foundnt 24 дня назад

    ok but can it run doom?

  • @Duckyy.
    @Duckyy. Месяц назад

    Can it run doom

  • @tower9602
    @tower9602 Месяц назад

    I think interpreted languages do just that

  • @Vincent_Bloodstone
    @Vincent_Bloodstone Месяц назад

    ok but can it run doom

  • @the-protogen-of-the-sky
    @the-protogen-of-the-sky 24 дня назад

    Can it run DOOM?

  • @im-Anarchy
    @im-Anarchy Месяц назад

    what's your source of all knowledge? wikipedia surfing? reddit? or what?

    • @icitry
      @icitry  Месяц назад

      I generally break down the problem into really small parts, based on which I start googling around - and of course getting side-tracked and discovering new stuff that may or may not help me for another project. It's all really the sum of all the stuff I'd studied prior.

  • @artwork-studios
    @artwork-studios Месяц назад

    I wanna make a dotnet game engine please teach basics if you can

    • @icitry
      @icitry  Месяц назад

      Hey! Gonna be honest, I'm not really the best suited to do that. I'd recommend checking out someone like The Cherno - they delve pretty deep into proper game engine development.

  • @Mega9466
    @Mega9466 Месяц назад +1

    I absolutely hate that you made me lose the game

    • @icitry
      @icitry  Месяц назад

      welp better luck next time, player o7

    • @justpigzilla
      @justpigzilla Месяц назад

      i have also lost the game

  • @nikolasg4210
    @nikolasg4210 Месяц назад

    Doesn't work on Ubuntu can you add support for Linux

    • @icitry
      @icitry  Месяц назад

      Which part exactly?

    • @nikolasg4210
      @nikolasg4210 Месяц назад

      @@icitry the exe part (and the .c part because the c part only seems to work on Windows API)

    • @icitry
      @icitry  Месяц назад

      @@nikolasg4210 Oh I see. Thing is, that's just intended to be a prototype, so there is no plan to make it cross-platform. You are free to play around with it and port it to use Linux-specific APIs, but the main focus is the JS implementation.

    • @nikolasg4210
      @nikolasg4210 Месяц назад

      @@icitry ok

  • @Axcyantol
    @Axcyantol Месяц назад

    what was that intro

    • @icitry
      @icitry  Месяц назад +2

      Just the creative genius of Weird Al himself

  • @anotherpromotor
    @anotherpromotor 28 дней назад

    really funny that you made me lose the game

  • @SirMatthew
    @SirMatthew Месяц назад

    Now do it in binary

    • @icitry
      @icitry  Месяц назад

      Better yet, why not in unary

    • @Firstname-d6g
      @Firstname-d6g Месяц назад

      ​@@icitrywhat is stopping ya from doing it using photons

  • @Esiv0_
    @Esiv0_ Месяц назад

    bet you cant run doom on its source code

    • @icitry
      @icitry  Месяц назад +1

      I'm sure someone brave enough will take on that challenge sooner or later

  • @nkacey2000
    @nkacey2000 Месяц назад

    can it run doom

    • @icitry
      @icitry  Месяц назад

      unironically, yeah it should

  • @gavinleonard-ru1uj
    @gavinleonard-ru1uj Месяц назад

    IM FAT 0:00

  • @Parsa.a298
    @Parsa.a298 14 дней назад

    I cant believe you didn't use asambly, your soooo lazy using high level languages,using them is a sin.use asambly next time please

  • @untitiled_user
    @untitiled_user Месяц назад

    I see a pin, can i have it?

  • @cheesepop7175
    @cheesepop7175 Месяц назад

    spongebob is a kid's show, adults should not watch it

    • @icitry
      @icitry  Месяц назад +18

      lies, deception

    • @cheesepop7175
      @cheesepop7175 Месяц назад +1

      @@icitry spongebob mostly has no mature content so it's not an adult's show

    • @DiamondKittyCat
      @DiamondKittyCat Месяц назад +11

      oh shut it.

    • @hunterchichester5720
      @hunterchichester5720 Месяц назад +11

      ​@@cheesepop7175 lmao no I'ma keep on watching spunch bop

    • @cheesepop7175
      @cheesepop7175 Месяц назад

      @@hunterchichester5720 based on how you misspelled spongebob you're probably a kid so that means you can still watch spongebob