Bonfire -- Flutter RPG Game Engine -- Free & Open Source

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.พ. 2023
  • Today we are checking out the Bonfire game engine, designed for creating 2D RPG (and other 2D games) built on top of the Flutter framework using the FLAME game engine. Bonfire is free and open source under the MIT license and runs on all platforms Flutter support (which is most of them....)
    Links
    gamefromscratch.com/bonfire-r...
    -----------------------------------------------------------------------------------------------------------
    Support GFS on Patreon : / gamefromscratch
    GameDev News : gamefromscratch.com
    GameDev Tutorials : devga.me
    Join us On Discord : / discord
    Twitter : / gamefromscratch
    -----------------------------------------------------------------------------------------------------------
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @gamefromscratch
    @gamefromscratch  ปีที่แล้ว +3

    Links
    gamefromscratch.com/bonfire-rpg-game-engine-for-flutter/
    -----------------------------------------------------------------------------------------------------------
    *Support GFS on Patreon* : www.patreon.com/gamefromscratch
    *GameDev News* : gamefromscratch.com
    *GameDev Tutorials* : devga.me
    *Join us On Discord* : discord.com/invite/R7tUVbD
    *Twitter* : twitter.com/gamefromscratch
    -----------------------------------------------------------------------------------------------------------

  • @robbylebotha
    @robbylebotha 9 หลายเดือนก่อน +1

    Never heard any developer sound so enthusiastic. In all my 2 decades of experience. The sales and project management guys who over promise to clients and overwhelm developers are the guys that have this voice.
    I could be wrong 😂

  • @Sylfa
    @Sylfa ปีที่แล้ว +4

    "Mixins, which is sort of like an extensiony system so you can add new behaviour, sort of like inheritance"
    Eye twitching intensifies… If inheritance is a tree graph then mixins allow you to add behaviour across branches. Closer to composition than inheritance. At least in general, not used Bonfire so can't say if it's something else in this specific case. Though if it is then it should probably be named differently to reduce confusion.

  • @kiyasuihito
    @kiyasuihito ปีที่แล้ว +5

    I definitely understand the bracket soup sentiment. To me, I just don't like deep nested code in general. I like Dart's syntax a lot though.

  • @prosfilaes
    @prosfilaes ปีที่แล้ว +10

    I find that Visual Studio Code and the standard Flutter layout that's auto-enforced takes a lot of the pain from the bracket soup. It automatically keeps it in line.

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว +1

      Yup. Android Studio and VSCode both automatically handle bracket formatting that helps with Flutter's innate love of nesting.

  • @Hyruleearth
    @Hyruleearth ปีที่แล้ว +8

    I’d consider using it for hobby projects because it sounds like it has more modern/better features than rpg maker.
    What are some of your complaints with the engine (besides the brackets)?

  • @UTTheLaw
    @UTTheLaw ปีที่แล้ว +3

    I don't know if I can handle that "bracket soup", but it definitely seems a interesting project! Thanks for sharing it!

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว +1

      I'd give the basic flutter examples a try to see how it works for you. The brackets get autoformatted and linter rules help organise your code. The web examples obviously lack all of the hints and help that a proper editor provides. I've written both HTML and Dart, and building out a nested UI is a lot easier to do in Dart thanks to the tooling than I experienced in HTML, which might give you closing tags but also makes you jump around 3+ files to handle interaction and styling, which makes things a lot harder to track imo.

    • @UTTheLaw
      @UTTheLaw ปีที่แล้ว

      ​@@merthyr1831 Hey! Thanks for your reply. That sounds like a fantastic idea!

  • @Aeroxima
    @Aeroxima ปีที่แล้ว +1

    I've been learning even in english to try to use parentheses at the end of the sentence, rather than a few words from the end (like this).
    I've been learning even in english to try to use parentheses at the end (not like this) of the sentence, rather than a few words from the end.
    I've been learning even in english to try to use parentheses at the end of the sentence (not like this either but it's less bad), rather than a few words from the end.
    It just makes it easier to read. Finishing a complete thought before starting another, not just interrupting and unnecessarily adding to the stack.

  • @mehmeh8883
    @mehmeh8883 ปีที่แล้ว +5

    Flutter been making some moves

    • @juanmacias5922
      @juanmacias5922 ปีที่แล้ว +1

      Did you happen to see their demonstration, of a 3D game running on an iPhone 6??

    • @mehmeh8883
      @mehmeh8883 ปีที่แล้ว +2

      @@juanmacias5922 I didn't see that, but I saw them running some animations of a 3d model tho

    • @amanda.collaud
      @amanda.collaud ปีที่แล้ว +2

      @@mehmeh8883 muhaha they dream BIG!

  • @themichaelconnor42
    @themichaelconnor42 ปีที่แล้ว +4

    Hey, can you cover Butano? It's an open-source, in-development GBA sdk.

  • @holdthetruthhostage
    @holdthetruthhostage ปีที่แล้ว

    As long as it has some great tutorials will work

  • @SarahAndreaRoycesChannel
    @SarahAndreaRoycesChannel ปีที่แล้ว

    The Dart brackets would just be fine if it weren't for them opening in the current line instead of the next one. That is what makes you search all the time. But if you want to enforce your own style and only ever open them in a new line every supported editor while reformat it under certain (regular) circumstances.

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

    useful

  • @IspyrGameDev
    @IspyrGameDev ปีที่แล้ว +2

    Hiya Mike do you have any links/resources on how to create a FLame widget? I've been looking to create a widget for Flutterflow but information seems hard to come by. Keep rocking!

    • @gamefromscratch
      @gamefromscratch  ปีที่แล้ว +5

      No, sorry, outside of the one video I did on Flame about a year ago, I've got no Flame content and haven't really looked at the ecosystem since.

    • @juanmacias5922
      @juanmacias5922 ปีที่แล้ว +1

      You'd want to talk to the Flutterflow people, since it's kind of drag, and drop, they might not have Flame functionality.

  • @juanmacias5922
    @juanmacias5922 ปีที่แล้ว +4

    Hunting down missing brackets, and commas? Any modern code editor does that for you. xD

    • @user-bl1lh1xv1s
      @user-bl1lh1xv1s ปีที่แล้ว +4

      Yeah, very weird sentiment regardless...

  • @caynebyron
    @caynebyron ปีที่แล้ว +13

    The bracket soup is only bad if you've never used Flutter and don't know what you're looking at

    • @axisaligned9799
      @axisaligned9799 ปีที่แล้ว +6

      It’s still really bad

    • @hipflipped
      @hipflipped ปีที่แล้ว +1

      Nah, it's genuinely awful.

    • @axisaligned9799
      @axisaligned9799 ปีที่แล้ว

      @@hipflipped yeah, if they were going to make a language that was suppose to integrate with flutter they should have added native html support, kind of like JSX for reactjs

    • @purplevincent4454
      @purplevincent4454 ปีที่แล้ว

      flutter looks like a good framework. I like the declarative style but I never started using dart solely for the reason of it being ugly, too many brackets. I didn't think it was possible for XML style syntax to actually be prettier until you end up looking at code like dart style markup.

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว +1

      The fact people are suggesting HTML and XML as "solutions" to the "bracket hell" really tells me how little they've used dart. Using HTML/XML/JS syntax is objectively way harder to write and maintain because of the separation between markup and code. Having to jump between 2 or even 3 files to write a single webpage with styling is beyond tedious and leads to way more mistakes and poor coding style. A Flutter widget being self contained in a single .dart file is a godsend for people who write and maintain front end software.
      I'm not saying it's prettier, but if anyone complaining here tried writing some dart/flutter you'd find the tooling to make the bracket management would immediately make it more enjoyable to work with than comparable languages. C#, Javascript, Java, even Python all have a lot more trouble handling nesting because the tooling isn't there to support it. In dart, I can write maintainable and easily understood code thanks to how autoformatting handles coding style implicitly.

  • @gricchastain6506
    @gricchastain6506 ปีที่แล้ว

    Ok as every time Im looking for nothing else to do left it's all only implementation of how many ever projects together together so as I could say multiplayer widgets on same device ... Could widgets go to sleep and while wake other widgets up also. Guell is me implement of new implementations. Sorry if my statements don't make complete thoughts. I know .. I don't know how my minds seperate thoughts together.

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว +1

      Flutter widgets can be removed and added to the widget tree as need, and even communicate using state management libraries.

    • @gricchastain6506
      @gricchastain6506 ปีที่แล้ว

      @@merthyr1831
      Awesome thanks.
      As going through languages libraries.
      And now being able to build new lib extensions.
      Coding becomes way more powerful.
      And I still see androids being way under used devices.

  • @Theraot
    @Theraot ปีที่แล้ว +5

    Flutter/Dart prefers an immutable system, which is not a bad thing per-se, but it leads to making structures in a declarative way, which leads to many levels nesting. It is often possible to refactor it to some degree… by making custom widgets, which also makes it harder to manage their state…So the incentive is on nesting.
    I'm not a fan of the way it auto-formats the code (which, as far as I can tell, cannot be fully disabled), it goes for the Egyptian braces style, which makes it harder to spot where braces open (if the opening brace was always on the same column as the closing brace it would be easy to find). Plus indentation is inconsistent. Sometimes it is 4 spaces, sometimes it is 2 spaces, sometimes the closing brace is further to the right than the start of the line where it opens. Furthermore, it bunches together closing braces, parenthesis and brackets... you end up with this kind of stuff everywhere: })); - in exchange we use these IDE with add colors to the braces, parenthesis and brackets, the fact that it exists is evidence that it is a problem… And color blind people have my condolences. And no, I don't want to find it by clicking, I want to see it at a glance.
    However, my biggest gripe with Flutter are the plugins. It is npm madness. For example, I could not use the OpenGL plugin with the notifications plugin because they both require FFI, but different versions of FFI. Every other feature I want to add is one more plugin, and the more plugins I have the higher the chances that the next plugin will cause some hard - if not impossible - to resolve compatibility problem.
    It seems that most plugin systems out there end up in something like that… I had similar issues with Apache Cordova, Unity, React Native… Using Nuget in .NET had me believing things were good. I suppose the .NET community has the right dose of Not-invented-here syndrome, so the dependencies do not get as crazy. The way it is in Flutter the libraries (without being frameworks) are dictating the design of the application, and the developer has to adapt to the differences between versions and the compatibility issues among them, it is a tail wagging the dog situation.
    Yes, we should reuse, making code designed to be reused is good. But dependency hell is hell.

    • @FlameEngineDev
      @FlameEngineDev ปีที่แล้ว +2

      Code in Bonfire is not made with widgets, so you don't have to use immutable data structures, since the immutability requirement mostly comes from how you handle state in Flutter, but since Bonfire uses Flame's game loop you don't have to care as much about that.

  • @Aeroxima
    @Aeroxima ปีที่แล้ว +5

    I'm a bit uncomfortable with building something with something built on something that's built on something that's built on something, on top of how much of that's already going on with computers and software in general to start with. Such a house of cards.

    • @hipflipped
      @hipflipped ปีที่แล้ว

      It'll never be very performant, that's for sure. He even mentions the awful keyboard control for pacman a very simple game.

    • @tntblast500
      @tntblast500 ปีที่แล้ว +1

      I mean, that's pretty always the case with anything you'll use. It's just not always as obvious.

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว +3

      I mean this is no more "software on top of software" as any other game engine. It's really not even "on top" of flutter either, just a library that gives you some extra functionality within the same framework.

  • @Itsme-wt2gu
    @Itsme-wt2gu ปีที่แล้ว

    Marketplace

  • @assakurayoh
    @assakurayoh ปีที่แล้ว

    I love bonfire !
    th-cam.com/video/-MPN9l467LU/w-d-xo.html
    "It is something called dart". It's funny how you describe it as something. AHAHAHAHA

  • @AutMouseLabs
    @AutMouseLabs ปีที่แล้ว

    I am not a fan of the damn bracket soup. I prefer languages that have an end keyword better. That way brackets can mean specific things instead of being a code block deliminator .

    • @gylotip8393
      @gylotip8393 ปีที่แล้ว

      A certified Lua user, or Ruby

  • @devatsdb7
    @devatsdb7 ปีที่แล้ว

    flutter and their whole wacky and messy code structures..nah

  • @patlecat
    @patlecat ปีที่แล้ว

    Flutter really is all about messy coding.

    • @merthyr1831
      @merthyr1831 ปีที่แล้ว

      flutter is super clean and expressive once you get it running in VSCode/Android Studio :)

    • @patlecat
      @patlecat ปีที่แล้ว +1

      @@merthyr1831 we have different views on cleanliness apparently

  • @pygmalioninvenus6057
    @pygmalioninvenus6057 ปีที่แล้ว +11

    Glad to see this because RPG Maker honestly kind of sucks. The software is woefully stuck in the past and you can't even perform basic tasks which are default in any game engine from the last 8 years.