Can I Create Video Games Using SQL? (No Game Engine)

Поділитися
Вставка
  • Опубліковано 26 вер 2024
  • Leaving all the other contenders - Unreal, Unity, Godot, GameMaker and many more - in the dust, I bring forth the strongest game development toolkit known to man - SQL.
    Taking advantage of all the features this tool offers, I developed a fully functional Snake Game implementation, which runs on a remote database, to which anyone can connect, play (or watch), and marvel at the future of video games and their development.
    Making use of PostgreSQL and a couple of really interesting options it has to offer, along with some of my beloved Python, I managed to create a fully interchangeble/interoperational architecture, to make this as customizable and modular as possible.
    Link to the Github repo: github.com/ici...

КОМЕНТАРІ • 328

  • @_Mackan
    @_Mackan 6 місяців тому +1753

    Finally, server side rendered games

    • @icitry
      @icitry  6 місяців тому +171

      A new era of gaming indeed

    • @linusrath
      @linusrath 6 місяців тому +63

      @@icitryNew Google Stadia

    • @salvadego7834
      @salvadego7834 6 місяців тому +29

      What TRUE server side looks like

    • @gorlix
      @gorlix 6 місяців тому +6

      i remember playing Garry's mod sandbox where people could build anything, there is Expression 2 interpreted language that is based on lua ingame functions. it was always serverside and it was fun making something usable with screens and stuff even though it works with obvious delay

    • @jamesking2439
      @jamesking2439 6 місяців тому +5

      Thank god out games now have SEO.

  • @memes_gbc674
    @memes_gbc674 6 місяців тому +960

    rule 91 of programming: if it's turing complete it's a game engine

    • @icitry
      @icitry  6 місяців тому +93

      what a coincidence, I was exactly on that chapter when I got the idea

    • @michawhite7613
      @michawhite7613 6 місяців тому +37

      Who's going to take up the Brainfuck game engine challenge?

    • @memes_gbc674
      @memes_gbc674 6 місяців тому +26

      @@michawhite7613 someone wrote tic tac toe for it with a computer opponent

    • @pacote_se
      @pacote_se 6 місяців тому +9

      Sql is not even turing complete dude

    • @memes_gbc674
      @memes_gbc674 6 місяців тому

      @@pacote_se postgres is (which is what he uses in the video)

  • @alicethetransdalek7333
    @alicethetransdalek7333 6 місяців тому +670

    love the (No Game Engine) in the title, as if there was a whole universe of SQL game engines out there and you specifically chose not to use any of them

    • @icitry
      @icitry  6 місяців тому +131

      Well of course, I am a man of integrity and commitment to the bit. Plus, better play it safe, who knows what lurks out there

    • @alessandrorossi1294
      @alessandrorossi1294 6 місяців тому +13

      Prolog’s graphics libraries is likely the closest you get to a sql-like language for game development

    • @idedary
      @idedary 5 місяців тому +3

      Well, there is. It's called ECS. Unity Dots or Bevy for example.

    • @okko7788
      @okko7788 4 місяці тому

      Lmao

  • @mki443
    @mki443 6 місяців тому +357

    I thought it was a typo and ment SDL, but no, you ACTUALLY made a game using SQL...... WTF? Good job man

    • @icitry
      @icitry  6 місяців тому +45

      I try to make everything I do seem like a typo, so thank you doubly 😄

    • @someever2
      @someever2 6 місяців тому +6

      structured directmedia language

    • @mki443
      @mki443 6 місяців тому +1

      @@icitryThat is REALLY smart, it really made the video stand out on my home screen! Awesome!

    • @icitry
      @icitry  6 місяців тому +5

      @@mki443 😄I actually was just talking about the project ideas, but now I'm definitely stea- integrating that into the original idea (also I'm really happy nontheless, thank you!!)

    • @mki443
      @mki443 6 місяців тому +1

      @@icitryahahahaha, what do you meannn that just programming

  • @superscatboy
    @superscatboy 6 місяців тому +91

    Looks great! I've started migrating my Godot project to this wonderful new engine, because as we all know, newer = better.

    • @icitry
      @icitry  6 місяців тому +23

      Why yes what a delightful decision, I see you're also well versed in the righteous ways of programming

    • @darkzeroprojects4245
      @darkzeroprojects4245 4 місяці тому

      I want to do similar for a custom engine or two one point.

  • @jusstyno
    @jusstyno 5 місяців тому +56

    People really out here doing anything to avoid using unity /s
    mad respect.

    • @Neoproxy_
      @Neoproxy_ 3 місяці тому

      Do not tell them about godot

  • @andreykuzmin3583
    @andreykuzmin3583 6 місяців тому +108

    Well, you could say it’s a data driven approach

  • @YourWishes
    @YourWishes 6 місяців тому +74

    You can have partial redraws by creating a table that simply contains the changed pixels' with their position on the framebuffer, and color they are (now) set to, as well as the ID of the change being auto incremented, clients could then query "Get me all pixel changes since pixel change ID XYZ" where XYZ is the last pixel that they fetched on their last query. You can truncate the table by automatically deleting pixels that you are re-writing to. Initial client would simply pull all pixels on the screen in a single query then continue fetching from the last ID they had fetched.
    You can also improve FPS by using the concept of a tile system, like how older consoles work, where you would instead store tile IDs for groups of 8x8 pixels, have the client request the tile sheet once and then fetch screen using tiles, that would technically mean you are rending client side however.
    Also consider batching your queries into groups, you can probably achieve higher FPS by having a single query that both fetches the current screen, as well as submitting all events that were recorded, then waiting the 16.6ms necessary and re-executing the query. One query less delay.

    • @YourWishes
      @YourWishes 6 місяців тому +8

      one other small thing I though of, you are running a game loop server side, but there's probably an argument to be made that you have a client query allow the game to perform a tick manually, moving away from frame based updates to time delta based updates based on how long since the last tick was run, e.g. (velocity += some fixed speed) vs (velocity += speed * delta).

    • @icitry
      @icitry  6 місяців тому +26

      Ok, first off - wow thank you a lot for taking the time to write this out 😄
      For the 1st thing, I totally agree, great improvement, exactly the fix I was looking for when thinking about this shortcoming.
      But for the 2nd thing, exactly as you said, it would start to lean on the client too much, which I wanted to avoid.
      On the 3rd point - there's definitely a point to be made for reducing the number of queries as much as possible, but wouldn't that cause potential delay to feedback on user actions?
      For the last idea, yea I could see that work actually, could probably end up a bit smoother visually and maybe lighter on the whole processing.
      Really great points, all of them (even on the small disagreements it pretty much boils down to personal preferences), so big props to you!

    • @YourWishes
      @YourWishes 6 місяців тому +8

      ​@@icitryYeah for the third point it would introduce a single frame of input lag, I think some games do this method but can't remember why they do.
      Thanks for listening to my ideas lol, just had them while eating lunch watching your vid.

    • @icitry
      @icitry  6 місяців тому +9

      Hmm, I'll have to check that out then, you actually made me curious. And of course - brainstorming ideas is what makes this whole thing fun, I always enjoy seeing what others can come up with 😄

    • @nightshade_lemonade
      @nightshade_lemonade 5 місяців тому +1

      @@icitry lots of netcode uses a rollback feature, where they post process events after they happened.
      So like
      Deliver Tick 1
      Deliver Tick 2
      Deliver Tick 3
      Deliver Tick 4
      Event keypress tick 2
      Rollback 4
      Rollback 3
      Rollback 2
      Event Tick 2
      Execute 2
      Execute 3
      Execute 4
      Deliver Tick 5

  • @dr_ander
    @dr_ander 6 місяців тому +57

    Ah yes SQL the perfect game engine

    • @icitry
      @icitry  6 місяців тому +10

      Glad to know there are people with the same stance on this

  • @mu11668B
    @mu11668B 6 місяців тому +62

    It's all fun and game until the madlad from your neighbor's basement turn them into Bobby tables. 💀

    • @icitry
      @icitry  6 місяців тому +19

      You know you could've simply not manifested the thought or put it into words, but now look at what you've potentially unleashed

  • @le0t0rr3z
    @le0t0rr3z 4 місяці тому +11

    Mah man really woke up and said
    Commit;

  • @jakesarjeant8326
    @jakesarjeant8326 6 місяців тому +17

    To optimize the frame rate as you said at the end of the video, you could maintain a table of frame updates where you always keep the last, say, ten changes. That way, clients that are perfectly synchronized can always fetch the next frame, but if a client falls behind by a few frames, it can just catch up by querying multiple lines at once from the changelog...

    • @icitry
      @icitry  6 місяців тому +4

      Ohh yep, really great solution, virtually no drawbacks and simple to implement. Someone else suggested something similar, and gotta say - you both came up with it so fast it's amazing. Big props, and thanks for taking the time to write it out 😄

    • @jakesarjeant8326
      @jakesarjeant8326 6 місяців тому +2

      @@icitryNo problem, glad I could help! I'm always happy to participate in these sorts of gloriously ridiculous projects

    • @jakesarjeant8326
      @jakesarjeant8326 6 місяців тому +2

      @@icitryBTW, another thing that comes to mind: Instead of sending a grid of pixels, you can probably make much more complex games much more easily if you send simple vector draw instructions instead (e.g., "draw a 5x5 square at 0, 10", etc.).

    • @icitry
      @icitry  6 місяців тому +2

      @@jakesarjeant8326 Oh definitely, that would be a great optimization - just that it would shift a lot more responsibilities onto the client, which is something I wanted to avoid for my approach (but if I wanted to make an actually viable solution, I'd probably go for something like you said)

    • @programmer1356
      @programmer1356 2 місяці тому

      @@icitry The engine is still the engine though and the client can be an SVG display or Tektronix 4010 (say)

  • @petrusboniatus
    @petrusboniatus 6 місяців тому +13

    I thought I was going to see a version of an ECS (like Bevy game engine is basically SQL) where you implement the logic functionally as views or something, not this plsql madness 😂. Great video ❤.

    • @icitry
      @icitry  6 місяців тому +2

      Oh but who would I be if not for the madness 😤 Thank you, love to hear you enjoyed it!

    • @Pe0ads
      @Pe0ads 5 місяців тому

      Similarly yeah. Thanks for the heads-up on Bevy, it’s a cool system

  • @monad_tcp
    @monad_tcp 4 місяці тому +4

    I remember when I made Tetris as a Stored Procedure on SQL Server 2000 because I was too bored from just making queries for reports in stored procedures.

    • @icitry
      @icitry  4 місяці тому +2

      Finally - a fellow supporter of the SQL game dev movement

  • @designator7402
    @designator7402 6 місяців тому +16

    The implication that there's a game engine that uses SQL as a scripting base is hilarious to me.
    No. No I can't. Don't make me do this.

    • @icitry
      @icitry  6 місяців тому +3

      Oh yes, yes you can. And I will

  • @WhiteThumbs
    @WhiteThumbs 5 місяців тому +8

    Very interesting, I've used SQL at work , I used it to create a save text area within the cmpanies log in for inventory managment users to save their work throughout the day instead of writing everything on paper. I also found a backdoor which allowed me to see everyones log in and because of how the company was set up I suspect it was very easy to hack anyone in the company, I let the company know and they told me ~ to go f myself. I also wound up saving them 2.2 mil/yr on shipping and then they illegally fired me , so I guess don't work at home depot.

    • @icitry
      @icitry  5 місяців тому +3

      ohh well that's shitty... sorry you had to go through that - goes to prove how for most (if not all) of these companies employees are just replaceable commodities

    • @WhiteThumbs
      @WhiteThumbs 5 місяців тому +2

      @@icitry Thanks, you get get it :D. I look forward to seeing your next videos.

    • @icitry
      @icitry  5 місяців тому +2

      Thank you as well! :D

  • @ohimdabiggestbird
    @ohimdabiggestbird 6 місяців тому +7

    i was completely gone braindead thinking about other stuff while watching this video until 18:48, great refresher

    • @icitry
      @icitry  6 місяців тому

      Well there's a reason they call me waterboy (they don't) - always ready with a refreshment

    • @ohimdabiggestbird
      @ohimdabiggestbird 6 місяців тому

      @@icitry i cant wrap my head around how u got this much play when ur an SQL developer lmao

    • @icitry
      @icitry  6 місяців тому

      @@ohimdabiggestbird Woah woah this a wholesome-only zone, let's not throw around words like that (for the 2 sql devs in this world I'm sorry)

  • @flavioryu5922
    @flavioryu5922 2 місяці тому

    10 seconds into the video and there is already the door stuck meme of cs. Beautiful.

  • @strokkur24
    @strokkur24 6 місяців тому +2

    Good job man! I would have never though that one could use SQL for operations like these. I've always seen databases as just external structured file storage. But the complexity is really nice.
    I have 2 more things to add though.
    1. The "2" fps looked more like 20 fps in my opinion. Did you speed up the footage so it is no that much of a pain to watch?
    2. You can compile C/C++ on windows. It is a bit of a pain to do it in VSC but Visual Studio supports C/C++ compiling and debugging.
    Great content though! Your channel is definetely underrated

    • @icitry
      @icitry  6 місяців тому

      Thank you so much! 😊
      As for the 2 points you raised:
      1. Yep, that is sped up (although surprisingly enough the original still looks good, and handles better than it would at higher framerates - due to how Snake is designed probably - just that it takes longer to get a good grasp on the gameplay).
      2. Also yep, you can, but it's not something in-built with a well designed repository system and CLI tools something like Linux comes with by default, for example. You can get by with doing simple stuff, but once you break away from that... (also you don't have a universal solution, so each compiler, be it the MSVC one, mingw, or cygwin will have its own quirks which often don't translate between them)

  • @StandardTacticalKnight
    @StandardTacticalKnight 6 місяців тому +5

    This is amazing, I love it

    • @icitry
      @icitry  6 місяців тому

      Thank you, glad you do!

  • @mermaidpotato
    @mermaidpotato 5 місяців тому +1

    I knew this would be insane from the title, but somehow the actual implementation bullshit you had to pull to make this work still took me out at the knees. Good job, I guess?

    • @icitry
      @icitry  5 місяців тому +1

      Well thank you very much, glad to hear I managed to deliver on your expectations 😅

  • @GashyDev
    @GashyDev 4 місяці тому

    Both cursed and beautiful at the same time.

  • @Lukas-qy2on
    @Lukas-qy2on 6 місяців тому +8

    honestly, imagine buying a game and you get the ip and a password to stream code over lol

  • @GerinoMorn
    @GerinoMorn 3 місяці тому

    This kind of thing is what awaits you if you start coding. Intrusive thoughts that end up being a bag of hours you're never getting back, but you learned like, one useful thing in the process xD

  • @heartofcode5372
    @heartofcode5372 3 місяці тому

    Now make a video called "Should I create video games using sql? (no game engine)"
    In all seriousness though, great video, enjoyed it alot!

  • @Milan____
    @Milan____ 4 місяці тому +1

    9/10 very insane, do NOT see me after class or ever again

    • @icitry
      @icitry  4 місяці тому +1

      but.. I still have so many other unhin- revolutionary ideas

  • @Amonimus
    @Amonimus 2 місяці тому

    "dig your own path"
    digs a grave

  • @happydeadbed5995
    @happydeadbed5995 6 місяців тому +1

    Respect man holy shit wow using actually sql wtf??? U are a genius man

    • @icitry
      @icitry  6 місяців тому

      I was thinking more of "masochist", but I'm flattered nonetheless 😅 Thank you!

  • @ProdByAR4
    @ProdByAR4 6 місяців тому +4

    11:35 MSVC is the native c/c++ compiler for windows
    Also you need to add some sort of client prediction, otherwise if you host your server in another network (not LAN) you wouldn't able to do literally anything (network latency and packet loss will be a problem)
    edit: also Clang run on both windows and linux natively, so I don't really understand your point here

    • @icitry
      @icitry  6 місяців тому +2

      Well unless something major happened in the meanwhile, MSVC is proprietary software to the Visual Studio toolkit, which isn't shipped bundled with Windows, so it's as much a native compile as any other you can install on your machine.
      For the second thing - yeah let's just say sustainability wasn't a core concern when developing this 😅

  • @clashblaster
    @clashblaster 4 місяці тому

    I clicked on this video reading the title as "SDL" instead of "SQL" and wasn't at all prepared for what this video would actually be about lol.

  • @fogbank
    @fogbank 4 місяці тому +1

    SQL lends itself naturally to multiplayer games and shared experiences in general by virtue of being relational.

  • @Unknown_Trip
    @Unknown_Trip 5 місяців тому +1

    what the database teacher does on his free time when no one is watching:

    • @icitry
      @icitry  5 місяців тому

      ushering the game dev world into a new era? hell yeah he is

  • @pabloqp7929
    @pabloqp7929 6 місяців тому +3

    Get this man a Linux virtual machine. Great video!!

    • @icitry
      @icitry  6 місяців тому +3

      I hope it's one built with SQL though...
      Thank you!! 😁

    • @pabloqp7929
      @pabloqp7929 6 місяців тому

      @@icitry hahaha

  • @mikecu2249
    @mikecu2249 6 місяців тому +2

    Another question. I know this would go against the spirit of the project, but let say for a second that rendering would be purly client side. Could the SLQ Engine approch legit work?

    • @icitry
      @icitry  6 місяців тому +1

      Great question actually! And I would argue that yes, it would, but in very specific scenarios. I'm thinking generally games where the player has a predefined set of actions allowed and in which users don't interact with each other (not necessarily only singleplayer, could also work for "multiplayer" games where players work toward common goals for example - mainly in the style of those gimmicky mobile games). That way the database can simply manage the state of each player, along with the actions and responses it should provide, whereas the client needs to only display the visuals for what is returned by the database - like: hit enemy -> update enemy hp data -> signal play enemy hit for enemy with a certain id -> client plays hit animation for said enemy. So really simple stuff, but there are definitely games made in that style that could (and I'm pretty sure do) benefit from such an approach. Another thing is that you'd probably use something like Redis for direct communication with the client, as it would be exponentially faster for these kinds of operations, and have Redis instances for multiple regions, all of which then flush the data at given intervals to a relational database.

  • @spaghettiking653
    @spaghettiking653 6 місяців тому +1

    This is the mark of utter genius

    • @icitry
      @icitry  6 місяців тому

      Well.. genius isn't quite the word I'd use, but I do appreciate the compliment 😄

  • @captainMony
    @captainMony 6 місяців тому +1

    Im watching someone rise above human reasoning and compression!

    • @icitry
      @icitry  6 місяців тому +1

      I'm simply beginning to believe

  • @YaBoiKuma
    @YaBoiKuma 6 місяців тому +1

    I know y'all were laser focused on that guy munching straight sand like it was God's providence

  • @MrPeepa
    @MrPeepa 3 місяці тому

    New video idea "I added multiplayer to my sql game engine"! I think it will be super easy to implement multiplayer if multiple clients use the same db!

  • @MichaelUrocyon
    @MichaelUrocyon 6 місяців тому +1

    This is so incredibly cursed. Always online games taken to new extremes

  • @brennanlaurent4748
    @brennanlaurent4748 6 місяців тому +3

    you are him you are that guy

    • @icitry
      @icitry  6 місяців тому +1

      hell yeah acknowledgement! you too, making me blush like that

  • @moneyl6594
    @moneyl6594 3 місяці тому

    Pretty cool idea.
    11:38 What do you mean by there being no native support for compiling c & c++? They have MSVC.

    • @icitry
      @icitry  3 місяці тому

      Thanks! Well yes, they have MSVC, but it doesn't come prepackaged with the OS, instead it's part of Visual Studio, meaning you don't get access to the compiler the OS was actually compiled with, so obviously there'd be differences across implementations - reason why we have like 3 different solutions.

    • @moneyl6594
      @moneyl6594 3 місяці тому

      @@icitry Understood

  • @s1nistr433
    @s1nistr433 6 місяців тому +1

    Still better than writing a game in javascript

    • @icitry
      @icitry  6 місяців тому +1

      Now why would you go and say that, you've hurt potentially all ten js game devs in this world (I agree)

  • @wouter11234
    @wouter11234 6 місяців тому +1

    Awesome video, though I wonder if it would be doable to make the server more abstract, and letting the client dealing with drawing the frame. Then for example, the server would say "draw a line here and a triangle there, and fetch this asset from the db and rotate it and draw it there". This way you could even leverage something like OpenGL on the client side. Come to think of it, using the DB to queue up openGL calls would probably also work, and make the client very simple. Though then you'd have a massive restriction of only being able to use opengl on the client.

    • @icitry
      @icitry  6 місяців тому +2

      Thank you! Yeah, exactly, well pointed. It's all a balancing act - you can move more of the logic to the client, but then you'd be losing portability, and wouldn't be leveraging the full potential of SQL 😔 But it's a really nice alternative approach to the problem. Also I'm sure it can ultimately be made more portable - you can abstract away the primitives used on the client and just call what is available once the server makes a request. But I guess it boils down to personal preference, or rather restrictions you want to impose on the architecture.

    • @asdfqwerty14587
      @asdfqwerty14587 6 місяців тому

      Well.. you can of course do that, but going in that direction is just going to go further and further towards "just do everything without using SQL" (which is of course the correct answer if you were trying to make a game as efficiently as possible) - after all, there's really no need for the server to exist at all and everything could be done way more easily by just.. not using such a convoluted setup, but then you just aren't making a game with SQL at all anymore.

    • @wouter11234
      @wouter11234 6 місяців тому

      Haha yes, when refining the SQL method more and more I'm sure you'll end up not using SQL at all, or at least very little of it (possibly only storing temporary game state - or even better only long term game state). Though as @icitry pointed out at the end, encoding the video feed would make this setup a lot more efficient, and I guess even sending the stuff I mentioned above would be a way of "encoding" a very strict video feed.

  • @blaisemomin1106
    @blaisemomin1106 6 місяців тому

    Finally something I needed to see

  • @mikecu2249
    @mikecu2249 6 місяців тому

    i knew it was possible. I always wonderd about it. Now i need no wondering no more :D ty for the Vid and Work!

    • @icitry
      @icitry  6 місяців тому +1

      Glad to hear you enjoyed it! 😄

  • @SoloRads
    @SoloRads 6 місяців тому +2

    The fact that does not run at 0.5 fps is insane as an web developer.

    • @icitry
      @icitry  6 місяців тому +3

      Honestly I was really surprised as well, initially I was going to try incrementing the size from 50x50 pixels till it crashed - now imagine my surprise when I went with 400x400 for the lols and it worked decently

  • @WANGLY
    @WANGLY 3 місяці тому

    sql injection gonna go crazy lmao

  • @denischen8196
    @denischen8196 6 місяців тому +1

    Is it possible to make a system call with only SQL?

    • @icitry
      @icitry  6 місяців тому

      Depends on what you think when you say "just SQL". Cuz you could write a DLL to define new procedures that SQL can use, and inside those you can technically do whatever you want. But with just the stuff you'd get when installing it and not modifying anything - I'm pretty sure you can't (although depending on the flavor there could be some extra functionalities that may allow some more freedom).

  • @elyascanfixit
    @elyascanfixit 4 місяці тому

    You absolute menace.

    • @icitry
      @icitry  4 місяці тому

      What can I say, I always try to bring out my A-game

  • @isle_of_violets
    @isle_of_violets 4 місяці тому

    nah now we need a non-relational mongodb game engine

    • @icitry
      @icitry  4 місяці тому +2

      I think I'll let someone else have the honor of doing that

  • @breekicheeki
    @breekicheeki 5 місяців тому

    what an absolute madlad

  • @thribsilva
    @thribsilva 3 місяці тому

    We can play "how do you rename a table?"
    It's pretty hardcore

  • @justinnamilee
    @justinnamilee 6 місяців тому +1

    Neato.

    • @icitry
      @icitry  6 місяців тому +1

      Thanks! 😊

  • @elusivefrog
    @elusivefrog 6 місяців тому +2

    make a game with mongoDB next lol. more server side games

    • @icitry
      @icitry  6 місяців тому

      Going through the whole databases gauntlet hmm.. But I think there needs to be as many people as possible making the server-side gaming gospel known - I'm just happy being one of the founding fathers (I'm not)

  • @caduhidalgo4996
    @caduhidalgo4996 6 місяців тому +1

    From the same creators of Cascading Server Sheets:

    • @icitry
      @icitry  5 місяців тому

      Now, don't lump me in with those lunatics, it's obvious my creation is an actually viable product with real value

  • @teh1archon
    @teh1archon 6 місяців тому +1

    this video is bonkers!

    • @icitry
      @icitry  6 місяців тому

      just the aftermath of me being in a silly goofy mood

  • @GerinoMorn
    @GerinoMorn 3 місяці тому

    1. Wouldn't using docker/wsl make either the windows pains null, or in the other approach, make setting up an env easier?
    2. Have you heard about our lord and saviour LISTEN/NOTIFY? :D I had some fun recently with PG, using it for relational storage, MQ, distributed locks and some other stuff xD

  • @ortherner
    @ortherner 6 місяців тому +1

    wow

  • @doce3609
    @doce3609 6 місяців тому

    I just love this.

    • @icitry
      @icitry  6 місяців тому

      😁 Thank you!

  • @type-moonfag4413
    @type-moonfag4413 6 місяців тому +4

    But can it run doom?

    • @icitry
      @icitry  6 місяців тому +1

      Oh it's not a matter of can, just of when

  • @All4Tanuki
    @All4Tanuki 10 днів тому

    Is this that "cloud gaming" thing that those city slickers keep talking about?

  • @richardgrosman5798
    @richardgrosman5798 6 місяців тому

    You can create a game solely using SQL without having to utilize another language like Python etc. You just have to figure out how. Nevertheless, thank you for sharing and the effort. It's still a challenge to accomplish such tasks.

    • @icitry
      @icitry  5 місяців тому +1

      Well unless we'd run the game in the db console, calls to os primitives are still needed, so I don't think a pure SQL solution is actually possible (at the very least I see it as needing to modify the internal libs) - I could be wrong though, but I genuinely don't see how - would be curious to see some ideas, if anyone more well-versed happens to chime in.
      Also thank you for the kind words!

  • @aaronspeedy7780
    @aaronspeedy7780 6 місяців тому +2

    Haha I don't think you not using an existing game engine is the interesting part here ...
    Good job though this is amazing

    • @icitry
      @icitry  6 місяців тому

      😅 Thank you, happy to hear you liked it!

  • @sir_no_name1478
    @sir_no_name1478 4 місяці тому

    This is kind of what space time db does.
    Very impressive. Now try again using sqlite 💀.

    • @icitry
      @icitry  4 місяці тому

      I.. think I'll let others do the honors for that 🤕

  • @notaredBox
    @notaredBox 6 місяців тому +2

    C++ is no contender to how hard this is.

    • @icitry
      @icitry  6 місяців тому +2

      C++? Oh yea that's definitely a small fry, especially compared to this absolute work of art

  • @JohlBrown
    @JohlBrown 3 місяці тому

    what's the game at the start that shows all the bones breaking when they get shot

    • @icitry
      @icitry  3 місяці тому

      Oh that's from Sniper Elite 3

  • @homieinthesky8919
    @homieinthesky8919 6 місяців тому +1

    Great video. Now i could actually play a server side game. Some of your code that i see could be shortened via the use of dataclasses but hey it is still equivalent. Also what code theme do you use?

    • @icitry
      @icitry  6 місяців тому +1

      Oh the code could always be improved. About the theme - if you're asking about the code samples, it's actually Carbon, they're not taken directly from my IDEs. Otherwise I'm running the default dark theme and config on all of them. Also glad to hear you liked it!!

  • @23bcx
    @23bcx 6 місяців тому +1

    Alot of Civ atleast V and VI and I belive IV aswell is coded in SQLite

    • @icitry
      @icitry  6 місяців тому +1

      Hmm I wouldn't say a lot (at least not from a pure programming perspective, as data-wise it might be), as from what I know they basically use SQLite to store config, initialization files and the like, as well as localization stuff, so they don't walk around parsing XML and ini files and instead rely on db optimizations. Ofc I could be wrong, but I find it highly unlikely it's used for more than that, given the nature of the games

  • @hamzacasdasdasd
    @hamzacasdasdasd 2 місяці тому

    19:45 wait until some 10 year old kid hacks you with sql inj

  • @RyoSuzaki64
    @RyoSuzaki64 6 місяців тому

    The fact that you used the GameMaker 1.4 Logo hurts my soul

    • @icitry
      @icitry  6 місяців тому

      Let's call it a nostalgia trip

    • @RyoSuzaki64
      @RyoSuzaki64 6 місяців тому

      @@icitrylol

  • @vitasomething
    @vitasomething 3 місяці тому +1

    would you rather have infinite bacon but no game engines, or game engines, infinite game engines but no game engines

    • @icitry
      @icitry  3 місяці тому

      well that's a tough one, but I think I'll go with the infinite game engines... I mean there's grease involved in both cases, but infinite game engines is obviously better

  • @gamerzero6085
    @gamerzero6085 4 місяці тому

    bro invented ECS

  • @gauthamnair6075
    @gauthamnair6075 6 місяців тому

    Now he gotta do prolog for making games

    • @icitry
      @icitry  6 місяців тому

      What a sick and twisted individual you are - why must you take joy in others (me) suffering?

  • @cheesepop7175
    @cheesepop7175 4 місяці тому

    what happens if you view a .wav file in binary waterfall

  • @haukerikjacobsen3580
    @haukerikjacobsen3580 5 місяців тому

    yo, how did u manage to merge the = and > sign like that? 7:03

    • @icitry
      @icitry  5 місяців тому

      That's actually because of Carbon, as that's what I use when creating the code snippet demos. But I'm fairly sure there are plugins/add-ons for most IDEs that can do just that

  • @Ruhgtfo
    @Ruhgtfo 5 місяців тому

    Tortual a drive with a Willy Wonka way

  • @brandyhandy4157
    @brandyhandy4157 6 місяців тому

    Welcome💙 🧡🙏🏼

  • @EobardUchihaThawne
    @EobardUchihaThawne 6 місяців тому +1

    im sure Primeagen will make reaction video😅

    • @icitry
      @icitry  6 місяців тому +2

      oh that's a terrifying prospect, and I don't know for whom more

  • @exhaustive_the_sixth
    @exhaustive_the_sixth 5 місяців тому

    now we are looking for game engine on brainfuck

    • @icitry
      @icitry  5 місяців тому +1

      I wonder who's the unlucky (pronounced insane) bastard that's gonna try that

  • @markinius8866
    @markinius8866 6 місяців тому

    now create a chip 8 emulator in sql. another thing, have you tried other sql db's? perhaps sqlite or mariadb?

    • @icitry
      @icitry  6 місяців тому

      not really tbh, I went with postgres from the start, knowing it's a really mature and comprehensive solution, so that if I wanted to touch on some edge cases, there's at least a chance a mechanism already exists - others would probably work as well (maybe even better), it's just that I went with the safest pick

  • @izanazir7088
    @izanazir7088 4 місяці тому

    Next project, creating a game without using objected oreinted programming.

  • @Kanookoochn
    @Kanookoochn 6 місяців тому +1

    its said a game like lord mobile is basically a redis server instance, thats why it can handle 10000ccu

    • @icitry
      @icitry  6 місяців тому +1

      Oh wait that's smart actually, given the type of game that seems to be (haven't actually tried it, but I think I get the gist of it). Ty for telling me about it, now I have something else to look into 😅

    • @Kanookoochn
      @Kanookoochn 6 місяців тому

      @@icitry well if you find out how the backend architecture work you should make the video abbout it , waiting for it 😀

  • @mansiselyn
    @mansiselyn 6 місяців тому

    Insane

    • @icitry
      @icitry  6 місяців тому

      Thanks, always happy to provide 😤

  • @Alex-nk3tl
    @Alex-nk3tl 6 місяців тому +1

    Rule 34 of programing: if a programing language exits its a game engine

    • @icitry
      @icitry  6 місяців тому +1

      Oh yea very true, and don't forget about the section 2b addition: some languages (sql) are better suited than others for the task. For more information look up rule 34 2b

  • @undeadqug7732
    @undeadqug7732 4 місяці тому

    yes only if the creators of the souls game made the games via sql maybe then they'll understand the pain of their creation

    • @icitry
      @icitry  4 місяці тому

      Even that wouldn't be enough, gotta add some poison swamps throughout the codebase

  • @MegaGadgetdude
    @MegaGadgetdude 6 місяців тому +2

    isnt there a doom plugin for psql?

    • @icitry
      @icitry  6 місяців тому +2

      Is there? I mean I shouldn't even be surprised at this point, there's probably a way to run it directly on my retinas

    • @icitry
      @icitry  6 місяців тому +2

      Ohh gotcha. Well it's a pretty clever hack though so you gotta give it to the creator

  • @megabotvideos
    @megabotvideos 5 місяців тому

    is this fullstack game development

    • @icitry
      @icitry  5 місяців тому +1

      hmm I like the sound of it, sounds like it's fancy and pays well - let's go with that

  • @dmitriyrasskazov8858
    @dmitriyrasskazov8858 6 місяців тому

    Madman

    • @icitry
      @icitry  6 місяців тому

      I'm 100% taking that as a compliment

  • @monad_tcp
    @monad_tcp 4 місяці тому

    14:45 cygwin ? what sort of HELL are you doing to that poor windows computer ?

    • @icitry
      @icitry  4 місяці тому

      hey, if I'm putting myself through hell, my computer has to experience it as well - solidarity you know

  • @DownDance
    @DownDance 6 місяців тому

    You're sick. But I love it

    • @icitry
      @icitry  6 місяців тому

      And I love being like this :)) Thanks!

  • @BrianWoodruff-Jr
    @BrianWoodruff-Jr 6 місяців тому

    My god, this man doesn't use the python black formatter D:

    • @icitry
      @icitry  6 місяців тому

      The what now? I always used the default one, but now ofc I gotta check that out

  • @IDS_Switty
    @IDS_Switty 4 місяці тому

    @CHBG ты ли это?

  • @neutrino2211_
    @neutrino2211_ 5 місяців тому

    "Just use an ORM bro"

    • @icitry
      @icitry  5 місяців тому +1

      "yea dude just use an ORM (Osql Rgame Mengine)"

  • @nikki-sky
    @nikki-sky 6 місяців тому +1

    but why

    • @icitry
      @icitry  6 місяців тому +1

      "but why hasn't anyone thought of this before?" ikik that was my first reaction as well

  • @tristunalekzander5608
    @tristunalekzander5608 6 місяців тому

    Oh I read SDL, not SQL lol

    • @icitry
      @icitry  6 місяців тому +1

      That seems to be the trend... guess I should be proud 😤

  • @AbegazNap
    @AbegazNap 6 місяців тому

    im more of a plv8 kinda gal, amazing video tho

    • @icitry
      @icitry  6 місяців тому

      oh but what an extremely exquisite alternative (and also thank you!!)

  • @mzerone-g6m
    @mzerone-g6m 6 місяців тому

    Great great great job 😂

    • @icitry
      @icitry  6 місяців тому +1

      Thank you!

  • @omega_no_commentary
    @omega_no_commentary 6 місяців тому

    Uhh SQL is either pronounced sequel or squeal

    • @icitry
      @icitry  6 місяців тому +4

      Errm ackchyually the correct pronunciation is "ess-cue-ell" 🤓 (also my native language made it more logical for me to spell it out). Also I'll commit seppuku before calling it squeal

    • @omega_no_commentary
      @omega_no_commentary 6 місяців тому

      Tell that to the Primeagen haha @@icitry

    • @icitry
      @icitry  6 місяців тому +1

      @@omega_no_commentary Welll, let's not meddle with the elder gods now shall we

  • @APDesignFXP
    @APDesignFXP 6 місяців тому +1

    It’s weird, cool but weird. And a way to kill ur SSD.

    • @icitry
      @icitry  6 місяців тому +1

      Ehhh, I'm sure it'll be fine (brb gotta go do some backups)

    • @APDesignFXP
      @APDesignFXP 6 місяців тому

      @@icitry lol

  • @dimensionalx4617
    @dimensionalx4617 6 місяців тому

    This is an example of game development using illegal methods and forbidden magical arts 😂😂😂

    • @icitry
      @icitry  6 місяців тому +1

      Everyone knows game dev needs a bit of deep dark magic and eldritch forces to come to fruition