Building games using Flame - Luan Nico & Renan C. Araújo | Flutter Europe

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Interesting stuff. Thanks for posting.

👍︎︎ 2 👤︎︎ u/Cobmojo 📅︎︎ Apr 08 2020 🗫︎ replies

Really cool.

👍︎︎ 2 👤︎︎ u/frrrni 📅︎︎ Apr 09 2020 🗫︎ replies

Thanks

👍︎︎ 2 👤︎︎ u/eronju 📅︎︎ Apr 09 2020 🗫︎ replies
Captions
[Music] good afternoon building games with flame I'm Hannah by the way I'm Virginia and I'm from Porto I live in Porto actually Portugal and you can find me more information about me on my website there but I also work for - - - - is a start-up and has a pretty nice project which is a spreadsheet that connects with everything like every kind of API you can imagine it's possible to connect a spreadsheet with that so hi there I'm LuAnn I'm the original creator of flame I'm also from Brazil like annum but I moved to Canada silikal Kitchener and I work for fair which is a kind of a start-up for a marketplace that connect local makers and retailers and you can also find me on the website or more links at the end let's skip this life so we're talking about building games with flame right so just starting to know what is a game and I think that's kind of a loaded question because like there's some controversy of what exactly is a game or not a game but we're not going to go to there we just want to know what is again in the perspective of a game development so what does a game have that we need to provide in order to build one well the first thing I have to look into is interaction what makes a game different far from a video or a movie it's interaction the user the player has to feel in control of everything or some part of the internal words of that game so user has to feel encounter so for that user has to we have to support a lot of kinds of inputs like user gestures and game pads and stuff like that so in perspective game development we have the first part that's interaction and interaction has to change the player or well depends on the game yes oh another cross crucial aspect of game developments that you need some sort of multimedia so probably our game is going to have graphics or need a way a way to render those graphics and this could be sprites could be animations also probably not always but likely going to have some audio so another way to play background music in your game and in a way to play sound effects for example when the player jumps and potentially you could have taxed as well and it'd be able to render taxed with custom fonts so that can have like dialogues or tutorials or things like that and also it's really important to have performance so everything goes down when user don't feel encounter breaking break it by performance issues so performance here affects how the quality of our game how the game is rated and on the star or stuff like that so yeah this is the third part of what makes a game and perspective game development well well so you might be saying oh all those things you know we'll use them in regular apps right so of course your app has some images and text and it has input so what's the difference well there in reality they're quite similar right but I think there's one key difference that we need to understand before we start to evolve into game development and that's and that's the the key difference while we're rendering regular apps compared to games and this difference that regular apps are more of a passive render while games are actively rendering well we have our example here it's a flatter gallery I'm pretty sure most of you know it's a example of a normal app we have of course lots of updates in the screen scrolls and animations and drags and stuff like that so we have lots of updates on the pixels in the screen but kind of different than games because all of those updates are triggered by any kind of events like a loser a user gesture a response API or maybe progress on a call an API call or I know lack and stuff socket messaging and stuff like that so we call this passive why updates passive handling because it needs it really it reacts something and this is really important because this affects how we write those you is like frameworks like reactive view or flutter widgets are reactive to changes like we use reactive ice for that now we have to look into example that's a game it's a big big beautiful flamie by the way this is flutter running but I want you to give a look into all updates that exist there like box glowing some coins are spinning and the only input user had that it's a it keeps press and then when it releases the player jumps and there's collision boxes and stuff like that so most updates in the screen are happening because of internal mechanisms of the game like physics and how the bullets works and stuff like that and yeah that's the main difference and this we call active why updates because internal calculations of the software produces those UI updates and of course we write those wise differently and we use something called the game loop yeah in the game loop is the concept we use to represent that basically the game is running all the time so the game looks basically a while true there's going to be running all the time in your game and the difference that things are happening regardless of the player so even if the player is not pressing anything right now the game loop is running this while true and there are two main steps that we have in a game loop they're going to be happening all the time which is the render and update and in order to understand we must abstract away the state of the game so the same way you have your flood of rich get and it has a state you can think of the whole game as a state which represents a current snapshot of what's going on so the current position of every character of the enemy of the player their velocities maybe you have the player health or XP points or I don't know like the number of coins you have and the render the same way the build method or the Brander function react it's just a function that grabs that state and renders to the screen so it accepts the state and returns basically an image which is a frame a single frame of your game in the update on the other hand is what it's going to update our state and is going to move it to the next state now the key thing here is that update must always takes take a time and that is the time since the last update because this code takes a while to run and our expectations that our game is going to run like at a 60 FPS which is a good standard for a game and that means that you have a few milliseconds like let's say 10 milliseconds to do everything so your update function is going to take in the time since the last one and basically what it needs to do is to move your state from the state that you was before to this day that it should be after that time and this is really important to consider because for example if you have like a box moving and you wanted to move at a constant speed so I say your speed is X and you must multiply that by this Delta time so every iteration of the game loop the box might move a little at a different distance because it took a little bit longer so if your CPU had a lag spike for some reason you you still get a constant move speed also here on the loop we see that the player input so as we said before the player input is very important because you know it's a game the player has to be able to have agency and control the world so we totally need the input but the thing is the loop must run even the player is not there because we need to update everything physics the world and the input is just going to be considering the next update to change stuff that is related to the player so the stuff that the player can control so we have a different way of building Y and a different concept if the paradigm so why so why use flutter to use games that are good to create games and the answer is flyers perfect for game def that there's that also everything we have we all know like the pooling is perfect we have I the idea I have the buggy we can deploy so it's pretty easy to deploy a game on Android iOS and other platforms as well and also most importantly you have high-performance canvas access so that's perfect for drawing on the handler function and also just to clarify those are those two things that we hook into flutter to create games so the update is built is by the schedule button schedule frame callback so this runs before every frame painting and there's the render box so if you were on the norbit's presentation or in the Rives presentation you will know pretty much what those actually we we handle just like Claire dolls with with the leaf widgets something like that's a pretty long name but the leaf so it doesn't have a child and we export the game handler box which those the painting of the game so yeah and just like that so I was you know starting with flutter and this is really cool I wonder if there's a way to make games because I love games and I couldn't find anything that time so I started to look and flame flutter actually already provides you most of the stuff you need as we saw in a previous slide but you know there are a few rough edges if you want to make our game so the idea was to build flame and it kind of helps you out with utilities that you can use like most games are going to share some stuff and this is kind of the share code that we're going to use and so I I created flame and now there's a huge community that's helping out and you can find it on github we'll have some more links at the end as well and yeah basically it's I call a minimalist game engine because it's a lot of tools you can pick and choose so it's kind of a modular approach but before I go too deep into actually explaining flame I would like to actually show you how to use it so now I'm going to ask the life coat gods that everything goes right and I'm going to try to showcase that is just to show how easy it is to get started with flame and you know if you have an idea you can just step right through it and what we're going to build is there's a very simple game so my idea was you're no flappy bird right so I'm going to build kind of a clone but just the bird part so we're not going to do anything more complex and I like the pipes or anything and but just not to be too borrowing our bird we're going to use this asset that our friend Erik from Brazil made for us and it's her name is Amber and we're going to talk later about what is she a mascot off but for now let's dive right to it let's go which one is yes so here we have a sample flutter project I have went to read and did some stuff so in the pubs back you can see I added the flame dependency I can increase them oh sorry yeah so I added the flame dependency I also added the asset so the asset you all know how to do that in regular apps the only difference that for flame it's conventional to put inside the images folder because you also have an audio folder for your audio files and the asset we're using is this one so you can see it's a sprite sheet because each frame takes a portion of the image and what flames going to do is going to render this as an animation so each frame you can see it's a 16 by 16 box here and this is our little bird animation now for the main file I added some constants here and we're going to use those later just so we don't forget and the main difference that we have the run app as expected but instead of having our own like widget like my app or something I'm actually creating a game which extends this bass game class so that's what flame provides and the game give you give gives you the game which you get so that's what we're going to run and what does his bass game class have or basically you can you have the brendor and update methods as I explained so for example we can override the render method and we get access to this canvas so if you watch the other talks you know this canvas variable and you can use it for example to draw a rect which is a rectangle and we can pass the coordinates so let's say when I draw a rectangle from zero top can be like 10 width of 200 height 100 and the paint is going to be the color so we can just create a it's that possible oh yeah sorry about that we can it's just good the font size is this good one more it's okay yeah so I can just create a pant now and now has some pretty good colors but I don't so I just choose the color I know by heart oh my god which is magenta oh my eyes but you know that's why we have oh I don't know what's going on yeah what esque yeah that's the question for everything but I press shift and it showed the screen I'm sorry well I just used lowercase despite not liking this yeah like how do you save this is his computer sorry about my yeah oh that's weak yeah everything I press show this switch screen right okay oh no yeah how do you okay yeah sorry about that so there you go you have a square so we have the render and update methods but we're actually not going to use that because we're using the base game class and basically it has a D for inflammation from render it and update and what that implementation allows you to do is to split your logic into what we call components so think of components as kind of widgets so each component has its own trainer update and we're going to add components to the game and the base game implementation of render and update just calls those methods so instead of doing that I'm going to create a component here let's call it background and going to extend the component class component from flame and you can see we are obliged to override this two methods render and updates and our background doesn't change so don't actually need to update to implement the update for this one but we do need the brender and we're going to do the same thing and draw a bracket but now I want a rectangle for the whole screen so I need to grab the screen size so to do that you might have seen before that I have a size variable here but I'm not actually going to use that because there's an easier way so this is the initial size but if I just use the ver sizable mixing that flame that flame provides you get the up-to-date size so actually I don't expect the size of the game to change like if it's a mobile game right the size of our mobile phone is not going to change but it's always good to to have that in mind and you can draw rect and on the canvas draw rect and we're going to create ract from and then two zero zero zero zero and here it's size dot width and size dot height now the paint I'm going to create a static constant here because it's now we're going to change and paint paint and now I'm actually going to use the pretty color that and I selected for us so you don't have to hurt your eyes with my magenta so there's the constant called color thank you sir no problem my eyes yeah now if we rerun or nothing happens because we actually need to add again to the add the background to the game right so let's add a component and then when we run we get a nice background color in the same way you can build other components so now let's create a bird component which are flappy bird and now we could use component again and you need to implement it up method to iterate the animation however flame already provides an animation component in this animation component is going to do everything for us so I just need you to use the correct constructor which the sequenced so sequence is going to extract the animation from an image which the sprite sheet so has every frame one after the other here we have the size we're going to render so this we also have a constant it's called size so the square size by size the image path as I said by default it's on the images folder so I just need the file name which birds in the amounts and number of frames so that as far as we four as we remember from the the image and yeah also we need to provide there's something wrong with our codes man look what's adding extra coats I don't know yes that's a good catch also we need to provide the original size in the in the sprite sheet so in the texture file so when it texture with F with sixteen circle we're drawing it bigger than it is originally and this flame we use this to split your image now if we add the board into the game you see we have it animated when it's running and I'll have to thank you now it's not why we want that because it's like in the corner so the animation component has all the properties you'd expect so it has ax and y and we can just set that to anything like x equals 10 and it's going to change a tiny bit but actually I want to Center it so I'm going to use the resizable again because I want to grab the screen size I can Center and I'll actually override the resize method so that comes from the resizable and every time it resizes I'm going to update the size property I'm also going to recenter and to recenter I'll need to do sized up with if over to minus the difference because the anchor is on the top left so I need to remove subtract that difference so it's actually centered instead I'm going to change the anchor to be on the center so nCore equals anchored at center and what that does is now the anchor so by anchoring like the reference point in which the XY is calculated so now it's the center of the board so the X must be the center of the screen and therefore the board will be centered and also the Y the same thing is going to be the height over to and now if we remember now it's on the center now it's still not very fun because you know flappy bar it falls right so we need some movement and to do that we can have a variable which the speed in the y direction let's start out with zero and so to do that we actually need to implement the update method for Rios now and we're going to actually call super so this is calling the animation update so that's seeking the animation for us but we need to do more stuff here basically we need to update the the y coordinate and also the speed because if it's falling like real-life falling its falling with constant acceleration which is the acceleration of gravity and not with constant speed so a more naive way to do it would be something like oh the Y's is the speed Y times time right but this is for constant speed so if it falls like this is going to like go down it doesn't look like it's falling because of our intuition of things that fall with acceleration so in order to consider acceleration we have a constant here which the gravity but this will be the gravitational constant and this a value we pick that kind of looks good and feels like flappy bird and you can of course tinker with that so the real formula would be the changing the changing position is the speed times at time minus the acceleration with gravity times x squared which I'm going to do time twice over two so I might remember that formula for your physics class which have really liked physics because I'm a physicist but you know you can Google as well if you're a regular people and I also need to update the speed which is going to increase constantly using the gravity times the time so this acceleration times the time now just by doing that you can see it false and we can restart and fall again yeah that's true and I can show more cool stuff because it's not verifying at because you can actually play just just look at her falling for her forever eternally yeah yeah one important thing to point is this first parameter that we receive on update at the time from from the other time from the last update so we have this to help us to calculate all right so first of all I think I'm gonna change it from she falling eternally to she coming back to her original positions so I'm gonna create a new effort here okay I'm gonna call reset because it's gonna reset stuff and that's my own keyboard and we having difficulty with it so okay actually I'm moving up whoops yeah I'm definitely having problems with this alright okay I'm moving this called by here to reset actually resets also resize also calls it calls on the first sizing of this component so yeah we can call it like an initial state or something like this so initial values will be like those and well if she goes outside the screen she comes back to there regional positions so if Y is bigger than Heights size height yeah the hot height well we don't reset you know so my column center column really oh yeah Sam I call I thought it was the Sheraton okay yeah and she fall Central Falls and Falls and Falls keeps accelerating yeah it's nice to see now but well let's reset the speed yeah yeah and stop her that's it that's also important let's reset the speed yeah that you can use this or you cannot I can I don't like to use this so you're gonna be have this code here but it's live coding it's okay okay okay okay now it's better and she starts to fall again right I think we should give the player some interaction that what makes a game so we have we already have the assets we already have the physics from the one I have the performance for flatter so I think we need a reset for interaction first thing is like she's frozen so we call create a frozen Donny decided up now but we create a frozen flag here and we just said vows oh yeah oh no true sorry that would look funny and I if she's outside and besides and that's updates hey OH which is not frozen yeah because it's you're updating so if if we are frozen like frozen we just returned and done too laughing well yeah that's it now she's frozen forever I'm gonna add a call back here for you on top actually it doesn't receive thumbs up directly we have to call from game but let's set up now you can override this method calls on tap and we can call this method on bird but first of all we need to create a reference for bird here and where it receives a sense kickstart and we can cupboard on that's it so whoopsie first interaction we have it still does nothing so if it is frozen proposing is false okay that's updates yeah this just starts to fall so we have interaction clicking on her that start so far okay I think for this being really a flat bird I think we have to give the player the opportunity to save her so uh on on tap I'm gonna reset her speed frozen falls and return so when I'm setting up frozen I don't want to do anything but on speed why let's let's a freeze her or something like this or I reset the speed so yeah beginning it's come on we should actually set the speed to the variable boost that we have yeah yeah yeah just to show off we are kind of stopping her so we just you can just set boost alright and I think we're gonna have flappy bird kind of thing so I'm clicking and she's going up starts to fall again and then we can save her for as long as the user is reading to click on the screen so when I stop she keeps falling but yeah this is pretty much like flip flappy bird but I don't I don't don't find this real this because well she's falling and gets a really fast speeds and then we just reset her speech back again and I think I think we it would be better for her if she just here to the flower but okay let's do it based on speed why we are updating and it's based on her speed but this is a problem because if I take too fast like a depressed now we sent her to a space but we can claim this speed let's say upper will never happened okay whoops and it's just some boost alright yeah forgot the most important and she starts to fall anyway so now I need to click a few times yeah can't a downward speed so it starts going up yeah I think it's a little bit harder than Flipboard if it's that possible well yeah I think I think that's it yeah well maybe we can do something else which is the angle we have time so in flappy bird you know it it she looks the birdy looks in the directions is going so that's the direction of her momentum right so in order to do that it's pretty simple we just need to make a fuel consideration because in this game kind of her momentum is always down because it's not really moving forward so it's either down or up and that's not very fun so let's just pretend that she's going forward at a constant speed which happens in the game so that would be the speed of the pipes are commenting and so let's create the actual velocity of the bird which the 2d speed and let's use the position class in flame which is a vector and let's call it speed and we can create a new position so for the X let's suppose it's like 300 so this is just like a fake speed just so she's not always looking down and let's also provide the speed Y and we can import this from flame and now we just need only update method just at the angle so this is also a property of the animation component so it renders in an angle and we can use the velocity class the velocity objects that we added has a method angle in it I don't know why it's oh I call it speed its velocity so understand in English speed is there's like the linear and velocities the 2d part so this is the actual angle and we also need to reset the end only reset map that order was going to keep that once it dies and that is enough to make it fall on an angle let's go up it tilts up and then so it's down yeah and yeah I think we have time for showing first thing we can show that this is not an emulator this is running off letter desktop so that's possible she ran a flame on desktop as well and yeah I think we can like compose a little bit like this is a widget like anyone else so we can put this on like a material app you know and mature app has home let's go basic here scaffold and there's no body and we have the game see oh nothing man yeah yeah this is running on this cough old there's the the bug here but just to clarify that bar bar and text sorry title text and something like JavaScript I don't understand and yeah this is to a game granny in the middle of a flourish yeah so that's pretty quick and it's a regular widget so I can compose inside your apps and also runs on Mac and web that's too like beta we're working on that so I think the audio players to play out it doesn't work on web yet I'm still working on that but yeah it works on Android iOS and Mac OS already has the audio players implemented yeah and games are not only the gaming screen so we have pause screen that has the menus so flutter widgets are perfect for those screens and you can put if you want if you are it's our case you can put several games at the same screen if that's a viable for you so yeah that's a that's it for the demo demo is open source as well we finally don't get hub yeah it's on github for our fighters line yeah and a little bit more about flame so it's you guys see how is it is but it also provides a lot of other features that we didn't show and the idea is being like this modular thing or you can pick and choose so we have the game with loop with the component system don't use components if you don't want so it's all like optional we have the audio capabilities so that's to the audio players plugging that you can play like background music sound effects we also have lots of ways to render graphics so I have we have the campus access as you saw have sprites we have animations we also super flare so we can add flare animations to your game we can add SVG also huge shout-out to Ivan who made the particle accelerator particle not accelerator physics way the arts going meter for flame for us so he sent a PR and yeah yeah thought out for him [Applause] yeah there is parallax so you know it's all things you could do yourself what flame provides you out of the box so can just pick and choose there's several ways to do input so I got the own tap as you saw but they're more complex gesture rent handling there's also a separate plugging you can add with the flame gamepad support like physical game pads on the cell phones there are integrations like tiled which is a very famous map editor so you know your designer can create the maps and they're just import into your game box 2d with the physics engine so if you don't like physics that much well what can I do we can use box 2d with a very famous physics engine that exists on a lot of platforms and also Google Play games integration well and if you're feeling like trying out flutter and look as you were seeking for help or stick with something you can reach us out on these cards actually discouraged just not just a questions and answer it's like a community and we talk and we hang out there all the time so there's a small community that's a subset of the flutter community is on this card for fatty slime also if you have any questions and you feel free to confuse tag your question if the flame tag and probably one of the experts like him or him or Mayo not me them can answer your question also we have our website for a documentation and also of course the post story where you can find source codes and also the most updated documentation on branches or everything that's going around and some discussions on issues as well well again involve it that's it and also we briefly mentioned Eric and amber things so amber is the logo for fire slime so we have flame we built with the community it's totally free MIT but we decided to start making some games so it's kind of our indie like game studio or something and it you know Eric that made the sprite is in Brazil me and and now we kind of started building some cool games that we like using flame so these are all examples of playing games well it's kind of cut out a little bit but the first one is it's your ex part that random made using so Google Chrome made available the sprites for this game that you all for sure know and he made a flame part Jos is our like biggest game or still developing it's a very big complex game so it shows that we can build big games and we have a very good performance and the other ones are very simple like endless-runner casual games that are all available well there are available Android and web box available on iOS we haven't had a time to release the other ones own on the iOS star because it's a hassle but it works on iOS we just need to get Apple to approve our apps besides fails everything here is open-source as well yeah yeah feel free to take this as example for yard games and yeah this is Eric and this is Eric this is he's gonna hate us hopefully you can recognize like in the photo you draw a circle too yeah so any questions I I thank you guys it's a difficult to believe that we can build games in flutter yeah I was the main question what about production I've seen your library still a zero pour in something so it's a 30-foot broad and can you already find something download games in production and second question you run it on desktop what about web yeah so let's start with the first question it started with zero dot something it's still zero dot something and I don't know haven't you know yeah but you know I think it's ready like we have a few games on the store that are working I don't think we have like a gigantic like triple-a game yet I mean especially because it's primarily mobile so smaller games I think our biggest game it stays with still it's almost done we plan to release it sometime like this year hopefully and also there's another big game being made by another member of the community it's called Tom toads I think those are the biggest ones but we have several smaller games working on the star so I'd say its production ready despite the zero thing and regarding the weather yeah we rely on pointing stuff into canvas so when you find yourself with lots of components at the same time of the screen or each of those components will be in the ends that don't nodes and this will not be this is not the most prefer Matic way so we have performance problems with the web yet it works but it's not the ideal way so that your way would be used canvas but the flutter web implementation is not ready for that yeah I think yeah also the audio players doesn't work on web yet but I'm working on that it should be ready sometime soon cool things hello thank you for a great talk and I have a question regarding monetization in the other apps how should developers approach it to make you successful well I think that's the same question for any kind of game right on mobile what we've been trying to do so magog has ads and then you can buy the IEP the in-app purchase to disable the ads which i think is a pretty common way to do it then also just straight out sell the game or entails what we pretend to do is to have so you have a demo for tales of a last mile on the store on the Android store you can download it you can play right now yeah and we we plan to allow you to play up to the part of the demo that we have so far there and after that you have to buy the whole game as in-app or you can just you know ask for donations like buy me a coffee but I don't I don't know the same way with any other games that you make there are several ways to to monetize depending on what you want I don't like micro transactions though don't do that don't do that don't do that either thank you so much this is awesome one of the other game engines that gets out there is sprite widget yeah I wonder if you guys can just maybe compare and contrast that for us and if there's anything else out there that you know just curious yeah yeah so I don't know when I started flamed or no other options I heard about sprite we did after I took a look I don't know exactly how it works how it compares I assume he has a similar game loop concept as I explained I think that's pretty well some painters my abstract that but that's very common way of handling things and yeah I don't know a lot about it maybe no I didn't gave a look into source codes of sprites but yeah okay so thanks for creating the engine my question is about performance so do you have any kind of over life or frame rates or maybe other statistics or you rely only on the for our frame rate and statistics that they are built yeah you can use out of the floater stuff that works really well so we had some talks in this present in this conference about it if we can use all of that there are some built in things on flame for that there is a debug mode on flame they can turn it on and it shows a few stuff like fps like on the corner of the screen so there are few ways you can do that and as as we test with our games even the most complex one like tails it works fairly well most devices and in old very old devices sometimes not exactly 60fps but still runs fine that was the second part of the question like in the tales of lost mine do you have like 60 frames per second or it's like 2015 I think on most devices we reach yeah yeah it runs pretty well if like we've used tiled so we have maps if your map is way too big but it might slow down a little bit but the maps we use like regular-sized maps it's a Metroidvania so no no if you know like my Super Metroid is kind so you have if you have regular-sized maps it works pretty well yeah yesterday is like the same works the same way as flare those a flare flare actor yeah arrived those with fire actor so it has to be a really really old phone or really cheap phone to have a frame drop whenever had this and this Kia works pretty well so everything is dedicated to ski ok cool thank you hi guys thank you for a great presentation I assumed that you wrote some kind of unit test or do I test for your games was it difficult to do so yeah I think it's a bit more challenging than regular apps so what I do I I normally tests like unit stuff so unit test so if I have a little more complex logic so for example in Tales we have a candle and a candle fires at the player so I need to figure out the angle at which at which the Canon has to rotate in order for the bullet to hit the player where he is and there is a very complex so I totally test that and you can actually test components with the regular classes so I can cow update yourself you know I can coop date a few times see if the positions match that kind of stuff I haven't wrote a lot of like real integration tests because you're in the end like render pixels to to the screen so that's kind of hard to test but like the actual logic I think you can use everything that flutter provides to you tester stuff um hi yeah thanks very much for the talk I have a quick question perhaps I might have missing the code but for the user in the interaction there's an all there's an untapped callback that's part of yeah so let's dive a little bit deeper into that is it possible to actually get this in the component level yes we have a everything is a mixing so we have your component or animated components off like that and you can enrich your components with mixings so we have the capable mixing that creates those methods like one type writes on the on the component we're also having to rely on the games once so it's like it hooks on a gesture detector that's wrapping this parent component so yeah that that's possible and you can also add other kinds of detector so they have mix-ins for the game that you can add like you know gesture recognizer everything that's in there there's a version flame that you can add to the game I also can wrap your game with looks with a gesture recognizer and that will also work that was work thank you hello thank you for presentation you've used Jerkins on your presentation is it some leak or something about Nintendo siege no no that's just for up here okay and is it possible like in our imagination that photo will be released on switch that is a drink that's that's a dream that's something I really try to work on but really hard to get a Nintendo accounts development not these kind of clothes yeah it's got to close it for Studios if you are in this area it's okay but files I'm not it's not even it's just right as a company so yes our hobby yeah it's just awesome that would be the dream hopefully Google folks here can maybe help with that yeah yeah I think we have to end now but feel free to contact us you know concerning the house god [Music]
Info
Channel: Flutter Europe
Views: 19,737
Rating: undefined out of 5
Keywords: flutter
Id: sFpjEH-ok2s
Channel Id: undefined
Length: 47min 9sec (2829 seconds)
Published: Wed Apr 08 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.