Adding levels to my custom game engine (C#/MonoGame)

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2023
  • Or, a 17 minute long ramble about data structures and level editors.
    💬 Discord: / discord (Come say hi!)
    🎮Check out our game, PSYCRON: store.steampowered.com/app/13...
    Incidental music, audio editing, script editing: @henryh3738
    Credits music: @gofour3
    Dwarf fortress footage: @measlymeatloafsbagoftricks7138
    I ended up using Ogmo, but Tiled and LDTK are both awesome!
    Tiled: www.mapeditor.org/
    LDTK: ldtk.io/
    OGMO Repo: github.com/Ogmo-Editor-3/Ogmo...
  • เกม

ความคิดเห็น • 88

  • @donsk324
    @donsk324 7 หลายเดือนก่อน +53

    Wait till he realizes that the SpriteBatch class (as the name suggests) batches all sprite draw calls into a single (Vertex) object and makes a single gpu draw call when the End method is called...

    • @Quique-sz4uj
      @Quique-sz4uj 6 หลายเดือนก่อน +2

      Yeah lol

    • @MooniPuss
      @MooniPuss 6 วันที่ผ่านมา

      makes a lot of sense now that you say it, but I also didn't know this 😇 your comment made me laugh tho xD

  • @emisorano
    @emisorano 7 วันที่ผ่านมา +2

    the kicker: we need audio
    alex: oops, we don't got audio yet!

  • @bloom945
    @bloom945 8 หลายเดือนก่อน +48

    i love the adhd energy of this

    • @jayocaine2946
      @jayocaine2946 2 หลายเดือนก่อน +1

      The editing is the worst part, so obnoxious

    • @ramok1303
      @ramok1303 หลายเดือนก่อน

      @@jayocaine2946 Why? I think it's really nice and kinda professional.

    • @jayocaine2946
      @jayocaine2946 หลายเดือนก่อน

      @ramok1303 different pages for different ages I guess

    • @Logboy2000
      @Logboy2000 13 วันที่ผ่านมา

      Love how he just randomly goes to a concert for some reason

  • @flowwaveyt
    @flowwaveyt 8 หลายเดือนก่อน +17

    It's pretty cool to see how someone else makes their engine in an extremely similar way to how I made mine. Can't wait to see more from you!

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +4

      Thanks! And best of luck with your engine stuff. What do you use as your back end?

    • @flowwaveyt
      @flowwaveyt 8 หลายเดือนก่อน +4

      @@AQGamedev
      Monogame as well. Probably never going back to anything else for 2D because I love it so much!

    • @hades8131
      @hades8131 5 หลายเดือนก่อน

      @@flowwaveytI want to start game engine development using monogame too can you recommend me some resources?

  • @Joe-lj5ds
    @Joe-lj5ds 8 หลายเดือนก่อน +12

    Data oriented design is about setting up your data structures in a way that is cache friendly to your CPU, it doesn't really have anything to do with using components on your entities. The reason ECS and DOD are often brought up together is because a proper ECS framework (which looks quite different than just having entity components) uses elements of data oriented design to speed up your game significantly.
    For 99% of games ECS is totally overkill and writing your code in a way that's more productive for you is way more important

  • @olbluelips
    @olbluelips 5 หลายเดือนก่อน +2

    It’s cool to see people make their own game engines. Nice work!

  • @TheyCallMeXander
    @TheyCallMeXander 8 หลายเดือนก่อน +4

    Great stuff, and very informative! I really liked the editing on it, and what I could understand LMAO!

  • @alexflavoie
    @alexflavoie 7 หลายเดือนก่อน +13

    Calling ECS over engineering while building your own engine is crazy 🤣

  • @jerrydengzhu
    @jerrydengzhu 8 หลายเดือนก่อน +2

    Amazing stuff Alex, I look forward to watching your next video!

  • @Itzame3756
    @Itzame3756 4 หลายเดือนก่อน

    Been watching your videos. You’re doing awesome bro! Love your content and you’re definitely going places

  • @TheRomanAbbasid
    @TheRomanAbbasid 6 หลายเดือนก่อน

    I had Psychron on my steam wishlist, don't remember when I added it. Watching your most recent videos, as a software engineer getting into gamedev, made me go ahead and purchase it. Really enjoy your videos, always love seeing behind the scenes on game development.

  • @skit_roll
    @skit_roll 8 หลายเดือนก่อน +2

    Great freaking video, Alex!!! Knocked it outta the park again

  • @ALHJ1997
    @ALHJ1997 5 หลายเดือนก่อน

    Keep this going, you've made some quality content here!

  • @ferenc_l
    @ferenc_l 8 หลายเดือนก่อน +4

    The ECS comment is on point haha! It's a great idea on paper but to be honest, i am always too lazy to use ECS 😅

  • @Baelfyr
    @Baelfyr 8 หลายเดือนก่อน +2

    New video! Nice. Looking forward to more.

  • @yenu
    @yenu 8 หลายเดือนก่อน +1

    once again a mesmerizing watch

  • @lenargilmanov7893
    @lenargilmanov7893 8 หลายเดือนก่อน +3

    Yeah, realizing that I can just use components without building a whole ECS for that was a big deal for me. I also thought that I just invented something brand new, but then it turned out that Unity has been using the same architecture with GameObjects and Components for years.
    Except my system is cooler cause shared properties(such as entity's position in space) are passed around using dependency injection instead of searching the array of components for the one that has it.

  • @Videoboy45
    @Videoboy45 หลายเดือนก่อน

    12:10 Awesome--- I'm also modifying Ogmo Editor as well! But bro, just in case you need to say it in person to anyone, "Decal" is not pronounced like that 😂

  • @nolram
    @nolram หลายเดือนก่อน

    I am really hoping there will be another part to this!

  • @Vitamin_Games
    @Vitamin_Games 8 หลายเดือนก่อน +3

    Great video! Glad I found you before your inevitable blow up in popularity! Best of luck on the game 👍

  • @distantforest2481
    @distantforest2481 7 หลายเดือนก่อน

    With Tiled you can make it automatically export a json file, and run your game with a press of a button (Commands). It's pretty easy to set up, its like setting a binding. Json is also pretty easy to parse, C# should have a lot of options for this.
    For the grey box colour, you can change it to any colour if you so desire. For instance I have blue boxes for collisions, and yellow for triggers.
    As for manually adding properties, tiled also has a "Custom Types" feature where it makes this less painful. You can add these 'class objects' to any object. There's still some set up but there is less you have to do for each thing.

  • @bryandang
    @bryandang 8 หลายเดือนก่อน +2

    another amazing video by my favorite weezer fan

  • @michaelpalmer2143
    @michaelpalmer2143 7 หลายเดือนก่อน +3

    I've always preferred writing a custom ingame editor. There's not much to it really, and the advantage of tight integration is huge. I've been using mostly python/pygame recently, but started using MS Visual Studio 1.0 to compile C code into 16-bit real mode DOS games limited to 0.5 MB of RAM and 320x200 mode 13h graphics with a 256 color palette. There's a couple trailers on this youtube account.

  • @jaaferelsadig
    @jaaferelsadig 4 หลายเดือนก่อน

    Please keep this going, not enough monogame content

  • @cantwontdo9127
    @cantwontdo9127 5 หลายเดือนก่อน

    love your editing style dude!

    • @jayocaine2946
      @jayocaine2946 2 หลายเดือนก่อน +1

      It's so obnoxious

    • @cantwontdo9127
      @cantwontdo9127 2 หลายเดือนก่อน +1

      Ok

    • @jayocaine2946
      @jayocaine2946 2 หลายเดือนก่อน

      @@cantwontdo9127 glad you can see the light, seriously the reason why no body can pay attention to anything these days is partly due to this insane adhd editing

    • @cantwontdo9127
      @cantwontdo9127 2 หลายเดือนก่อน

      @@jayocaine2946ya

  • @HikeYegiyan
    @HikeYegiyan 7 หลายเดือนก่อน

    public class Scene : YourMother { }
    FUNNY GUY EH

  • @lunathegoof
    @lunathegoof 8 หลายเดือนก่อน +2

    the w*ezer sequence was truly beautiful

  • @A3leafClover
    @A3leafClover 8 หลายเดือนก่อน +4

    Yoo nice! Iv been waiting for a new upload for a while

  • @intangiblematter_misc
    @intangiblematter_misc 8 หลายเดือนก่อน +3

    I did a double take at that Weezer gag for a major reason.
    First of all, when I first stumbled on your videos I thought "this is exactly what I would want my videos to be like"
    Then I realized you *also* have some strong programming opinions, which is always great.
    Then I realized we both live in the fucking Vancouver area.
    So... any chance you'll be at the FullIndie Meetup on Tuesday? It'd be great to meet you!

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +1

      Ayyy fellow Vancouverite! I'd love to but it overlaps with my work hours. Maybe some future one though, thanks for the kind words!

    • @intangiblematter_misc
      @intangiblematter_misc 8 หลายเดือนก่อน +1

      @@AQGamedevDamn. Well, it's always the first Tuesday of the month! It would be great to have you there! It definitely biases a bit middle aged, so it's always nice to see some more people who are a bit younger :p

  • @hyeve3551
    @hyeve3551 7 หลายเดือนก่อน +2

    as someone who actually enjoys graphics programming and has spent a lot of time understanding why certain things are done the way they are, some of your technical decisions are painful lol
    but hey who cares if it works in the end

  • @hades8131
    @hades8131 5 หลายเดือนก่อน

    Hey can you recommend any resources for starting game engine development using monogame and c#

  • @gordzen123
    @gordzen123 13 วันที่ผ่านมา

    14:57 Villager minecraft making a custom game engine.

  • @lolhahalaughlaugh8033
    @lolhahalaughlaugh8033 หลายเดือนก่อน

    Hey man, i am making a game engine in csharp aswell and this is a massive insporation for me. Mine uses python but the actual engien is made in csharp (so you use pygame in it) and im planning on adding js, lua and csharp. seeing this makes me really exited for mine

  • @alexanderjasper_
    @alexanderjasper_ 5 หลายเดือนก่อน

    This is fucking crazy, my name is Alex too, I’m in the process of switching to Monogame and I have Pinkerton and blue album vinyls

  • @makeitsogames
    @makeitsogames 8 หลายเดือนก่อน +2

    great timing with the Unity fiasco.

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +5

      two years of telling everyone I actually wasn't crazy for rolling my own solution finally paid off lmao

  • @Junkman
    @Junkman 7 หลายเดือนก่อน

    Bro just use a rendertarget array. You can segment your levels into chunks, those chunks can have multiple layers (more rendertargets) then you're done.

  • @FolkerHQ
    @FolkerHQ 7 หลายเดือนก่อน

    still curious, if your game will release on the OUYA. Greetings from Berlin, Germany.

  • @cryptorcd9352
    @cryptorcd9352 8 หลายเดือนก่อน +1

    Sooo next devlog in 2024?
    Really enjoy your style of editing

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +1

      at my current pace, 2024 is optimistic haha

    • @cryptorcd9352
      @cryptorcd9352 8 หลายเดือนก่อน

      @@AQGamedev Well see ya in 2030 then :D

  • @user-qy7yz7gq9j
    @user-qy7yz7gq9j 7 หลายเดือนก่อน

    It is really astounding that all of that could have been done in about an afternoon if you used bevy...

  • @snakelancerhaven
    @snakelancerhaven 8 หลายเดือนก่อน +4

    yooo m3d

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +5

  • @DaydreamStudios_Official
    @DaydreamStudios_Official 8 หลายเดือนก่อน +1

    Subscribing!~

  • @dev.bodyaq
    @dev.bodyaq 8 หลายเดือนก่อน +6

    In which era of this cinematic universe does the switch to FNA happen?

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +4

      At the rate the videos are coming out, late 2024. In real life, I made the switch a few months ago and am loving it lol

    • @Eros_Hai
      @Eros_Hai 8 หลายเดือนก่อน

      wait he switches to FNA!?!?

    • @thfona
      @thfona 8 หลายเดือนก่อน +2

      ​@@AQGamedevI'm really curious about the reason for this switch to FNA. I just got started with MonoGame, is FNA a better choice?

    • @kungermoon
      @kungermoon 8 หลายเดือนก่อน +2

      @@AQGamedev Hi, could you tell us why you switched to FNA?
      I'm planning to make my next game in MonoGame and knowing if it's better than FNA would be helpful

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +2

      @@kungermoon I switched to FNA because I was having a (at the time) untraceable performance issue with monogame. Switching to FNA gave me enough of a performance boost to hide it. Monogame's updates were extremely infrequent, while FNA still gets new releases every month. FNA also disincentivized the use of the content pipeline (I hate the content pipeline) while monogame put efforts into expanding it.
      Tldr: Realistically, you can use either and you'll be fine!

  • @warkah7557
    @warkah7557 4 หลายเดือนก่อน

    You are hilarious.

  • @n3y
    @n3y 7 หลายเดือนก่อน +2

    guys I have a feeling alex doesn't like rust

  • @luke-gamedevlearning
    @luke-gamedevlearning หลายเดือนก่อน

    15:04 - You can do that (*you can do all of those things with ease in C#, I do all such things, only people are bad and suck) in C#, more than 6 months ago, and it's easy. How are you lost on that?

  • @MysticRiverGames
    @MysticRiverGames 8 หลายเดือนก่อน +1

    Great video!, I also make games and videos on Monogame and it is nice to see other people using the same framework. About the editor, I instead chose to put it inside my game, because... why not!? once inside it is really fast to prototype levels and play test them!, then I started adding pretty much everything I can imagine into my game as extensions so I can change anything at any time while playing.

    • @michaelpalmer2143
      @michaelpalmer2143 7 หลายเดือนก่อน

      Completely agree. Level editors aren't hard to write and the tight integration is great. Of course everything is easy in python anyway. I write simple games, but never ran into performance issues from pygame. They even run a my Linux based retro handheld (RG351p)

  • @pwhv
    @pwhv 7 หลายเดือนก่อน

    why not just create a level editor on monogame and using c# export the hierarchy of the level, create a c# level reader and store in ram while loading a level ingame

  • @sporky9861
    @sporky9861 4 หลายเดือนก่อน +2

    excellent video!! why do you pronounce decal like that though

    • @AQGamedev
      @AQGamedev  4 หลายเดือนก่อน

      deckhakl

  • @mikaelfoster9726
    @mikaelfoster9726 8 หลายเดือนก่อน +2

    Killin me smalls 😅 "dee cal" not dec al 😅

  • @derrikcreates
    @derrikcreates 7 หลายเดือนก่อน

    14:09 is there a reason you are not using reflection? Adding comments as metadata seems clumsy. Jamie King has a really good playlist on YT called "C# Attributes and Reflection" that goes over this. the tldr is. you can add metadata to objects and later gather what object has what metadata class. If you have ever serialized a class to json you might have used the [JsonIgnore] attribute to tell the json serializer to not process that field. in your case you could create a [NoEditor] attribute that applies to a class and when you are loading the editor you can skip over any class with that attribute without needing to know what type the class actually is.

  • @JustAPersonalUseBarb
    @JustAPersonalUseBarb 6 หลายเดือนก่อน

    Decle? Decle?!

  • @jad4693
    @jad4693 7 หลายเดือนก่อน +1

    ive never in my life heard anyone pronounce decal like deckle
    huh

  • @haxenFilp
    @haxenFilp 2 หลายเดือนก่อน

    Scene : YourMother
    error: over 1000+ GB!

  • @Will-Eves
    @Will-Eves 8 หลายเดือนก่อน +1

    When’s Mr Kujo gonna get his stand in the engine ⁉️

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +3

      「BUDDY HOLLY - THE WORLD」

  • @OmegaFalcon
    @OmegaFalcon 8 หลายเดือนก่อน +3

    So basically what you're saying is... I should just keep using Unity 🙃

    • @AQGamedev
      @AQGamedev  8 หลายเดือนก่อน +9

      preparing orbital strike

  • @jayson709
    @jayson709 7 หลายเดือนก่อน

    Promo sm 😍

  • @smezzy5541
    @smezzy5541 8 หลายเดือนก่อน +2

    first

  • @user-jv6pz7lc1n
    @user-jv6pz7lc1n 6 หลายเดือนก่อน

    stop hating node, it's what half of the web runs on! Also, its not all that hard to get setup, use nvm or nvm-windows