Game and Simulation development with Qt

Video thumbnail (Frame 0) Video thumbnail (Frame 5645) Video thumbnail (Frame 13889) Video thumbnail (Frame 21969) Video thumbnail (Frame 23143) Video thumbnail (Frame 26793) Video thumbnail (Frame 29316) Video thumbnail (Frame 36485) Video thumbnail (Frame 37459) Video thumbnail (Frame 38949) Video thumbnail (Frame 39901) Video thumbnail (Frame 40961) Video thumbnail (Frame 42939) Video thumbnail (Frame 44123) Video thumbnail (Frame 44899) Video thumbnail (Frame 49912) Video thumbnail (Frame 50675) Video thumbnail (Frame 52098) Video thumbnail (Frame 55333)
Video in TIB AV-Portal: Game and Simulation development with Qt

Formal Metadata

Game and Simulation development with Qt
Use of Qt for developing tools and core components for games and simulations
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
The Qt toolkit offers a huge amount of cross-platform functionality. Qt can be used in a lot of different ways for game programming, from quickly creating throw-away external debug tools to providing core game infrastructure. This talk will highlight different ways that Qt can make the lives of game developers easier. Qt contains a huge number of well-tested and cross-platform modules that can be used for game development purposes. Of course, Qt is great for creating level editors and other tools with a nice cross-platform GUI. But Qt can also be helpful in building the game itself, even when the Qt GUI parts are not used. The QObject system provides ways to give generic access to properties and methods of C++ objects. This can be used for introspection and live manipulation of game objects. With the generic QVariant data type it is easy to make game objects serializable and to give scripting languages like JavaScript access to the game. Other useful parts are the multithreading support, the QML markup language and OpenGL integration. This talk gives an overview of these different techniques and also discusses issues like performance, memory management, ways of implementing the game loop and integrating various render engines like OSG or Ogre3D.
Laptop Satellite Building Code State of matter Multiplication sign Modal logic Virtual machine Ultraviolet photoelectron spectroscopy Set (mathematics) Client (computing) Distance Mereology Computer programming Wave packet Computer cluster Different (Kate Ryan album) Computer hardware Energy level Immersion (album) Collaborationism Simulation File format Artificial neural network Software developer Moment (mathematics) Graph (mathematics) Computer simulation Physicalism System call Demoscene Computer animation Visualization (computer graphics) Personal digital assistant Universe (mathematics) Normal (geometry) Iteration Game theory Virtual reality
Sensitivity analysis Complex (psychology) Dynamical system Run time (program lifecycle phase) Computer file Open source Code Multiplication sign Virtual machine Gene cluster Mereology Food energy Computer programming Dimensional analysis Revision control Preprocessor Mathematics Object-oriented programming System programming Object-oriented programming Cuboid Software testing Computing platform Stability theory Social class Engineering physics Form (programming) User interface Programming language Simulation Cross-platform Keyboard shortcut Projective plane Database Basis <Mathematik> Skewness Arithmetic mean Computer animation Software Factory (trading post) Network topology Volumenvisualisierung Self-organization Game theory Data type Middleware Window
State observer Thread (computing) Parsing Run time (program lifecycle phase) Multiplication sign Set (mathematics) Parameter (computer programming) Computer programming Medical imaging Preprocessor Different (Kate Ryan album) Velocity Core dump Object-oriented programming Data conversion Social class Scripting language Mapping Sound effect Computer simulation Instance (computer science) Connected space Category of being Befehlsprozessor Process (computing) Vector space Telecommunication Pattern language Quicksort Parametrische Erregung Data type Computer file Student's t-test Event horizon Field (computer science) Number Latent heat Object-oriented programming Term (mathematics) String (computer science) System programming Analytic continuation Task (computing) User interface Noise (electronics) Subject indexing Loop (music) Speech synthesis Iteration Natural language Musical ensemble
Complex (psychology) Run time (program lifecycle phase) Software Computer file Lecture/Conference Multiplication sign Memory management MiniDisc Object-oriented programming Streaming media Data structure
Functional programming Game controller Multiplication sign Student's t-test Menu (computing) Parameter (computer programming) Mereology Event horizon Programmer (hardware) Goodness of fit Semiconductor memory Deadlock String (computer science) Object-oriented programming System programming Data conversion Social class User interface Forcing (mathematics) Cartesian coordinate system Loop (music) Computer animation Telecommunication Order (biology) Right angle Game theory Data type
Implementation Building Multiplication sign Range (statistics) Insertion loss Web browser Mereology Computer programming Subset Medical imaging Mathematics Causality Object-oriented programming Different (Kate Ryan album) Internetworking Object-oriented programming Electronic visual display Cuboid Codierung <Programmierung> Social class User interface MIDI Distribution (mathematics) Mapping Interface (computing) Projective plane Feedback Memory management Electronic mailing list Cartesian coordinate system Flow separation Connected space Category of being Word Integrated development environment Vector space File archiver Text editor Game theory Quicksort Table (information) Spacetime Library (computing)
Functional programming Computer animation Object-oriented programming Electronic mailing list Object-oriented programming Moving average
Functional programming Connectivity (graph theory) Electronic mailing list Special unitary group Sparse matrix Object-oriented programming Semiconductor memory Object-oriented programming System programming Data conversion Game theory Spacetime Social class
Particle system Projective plane Scene graph
Mereology Declarative programming
Functional programming Category of being Computer animation Positional notation Object-oriented programming Electronic mailing list System programming Text editor Game theory Computing platform
Overlay-Netz Complex (psychology) Computer animation Connectivity (graph theory) Interface (computing) Volumenvisualisierung Electronic visual display Game theory
Webcam Logistic distribution Multiplication sign Decimal Combinational logic Translation (relic) Open set Mereology Disk read-and-write head Theory Fluid statics Medical imaging Goodness of fit Mathematics Videoconferencing Multimedia Extension (kinesiology) Internationalization and localization User interface Interface (computing) Moment (mathematics) Projective plane Computer simulation Staff (military) Limit (category theory) Computer animation Software Game theory Quicksort Window Abstraction Library (computing)
Computer animation Lecture/Conference Execution unit Physicalism Game theory Computer programming
User interface Complex (psychology) Functional programming Demo (music) Structural load Mathematical analysis Memory management Water vapor Mereology Demoscene Goodness of fit Centralizer and normalizer Message passing Computer animation Angle Telecommunication Right angle Game theory Traffic reporting Window Exception handling
User interface Area Mobile app Texture mapping Computer file Interface (computing) Staff (military) Shape (magazine) Mereology Cartesian coordinate system Declarative programming Category of being Sparse matrix Process (computing) Computer animation Game theory
and I will talk about data and simulation of Q 2 and 2 at
1st I can mention that I'm not alone acute contributor or anything on the user and so these are all my experiences working with future and they may only may not apply to the rest of the evening the case so i'm gonna talk a little about simulation program because that's what do and the distance to the normal game programming then I'm going to focus on some topics in the world you'd call it and mention some of which you registered are client to begin programming and going to talk about q quick which is the 1 to the scene ofthe Acheson your of himself so cute and she I'm gonna skip through some other game related features of you that may be useful the non humbling Germany's such as mentioned the simulation developers and to my interests underscores skewed than then the next game development overseeing graphs and to have got different engines and studied at the Boston the decline of that I worked with the military set ups modalities are converted collaboration with people in a shared virtual spaces after universities in game development and no I'm working define ID in the moment in the simulation department where I a cow on simulators and visualization tools of its current and with simulations i mean this kind of simulation with model this from is should secure dissemination of natural you can run around the ship and to put out fires and communicate and stuff than this this this should simulate a different 1 and so it's about simulating the herds of persons running around and it's many training exercises fall of preparing for a less iterations and all the simulations have to be realistic it is on the level that is being simulated so it can be quite which they can be good to have an immersive graphics and simulations so I have a lot of data you have terrain data as you want to simulated terrain uh you have building blueprints that people running around you have artificial intelligence data and of course of physics data all 4 engines simulation or whatever you want to simulate I'm tend to have a different 1 of the difference to game development is that it's less iterative iterative and um in games you can do it over and over until it starts it come become fund that's not focus of simulations you know from the start what you want to simulate and what to achieve and so so you also have a dedicated hardware you don't have to optimize for a 10 year old laptops you can just say we are buying machines for 5 dollars and 1000 apiece and if it runs on them at the and so on some of these simulations run for a very long time maybe a decade or 2 so at the end they look really really only age but as long as the simulation code is achieved that's the the so when embedding simulation tools I want to have spent a lot of different data formats used have x amount of the roster formants for some of the satellite imagery or apples in other parts of so it's good to to have to is to to read in the state of the yeah if
you'd better tool you want to have some stuff that has supported following time so if you
have is more open source projects will develop on the whose interests in a few weeks and you don't really want to use that only my opinion it's a good thing to have cross-platform software just that you can move it from the mean windows or bank because some of the systems that you're integrating with maybe on the various platforms um also the other parts of the simulation not all of you your never running along that you always have a lot of machines and you have to do with changing parts of the time in the whole render engine may change because there was 3 D graphics doesn't look very good through from from time to time you may want to change that part so it's a good thing to have that modularized so you can exchange it OK now why would I use skewness of course the so very good so user interface parts and mean that's the main topic during acute he'd as you do your cute exposed both OK and that you just also written and usable in C + + it is a good thing if you are integrating with other middleware from game to game dimensions or something so if you want to integrate the artificial Intelligence or you know physics engine then is a good thing if your own stuff is introducing into clusters so you don't have any problems that in the future has a stable API and API so if you are programming for future version 5 . 0 you can be sure that it runs with 5 . 1 possible whatever the doesn't change it it only changes and the only had parts the yeah I Q test type system for dynamic Tarpenning and it has the introspection support so that's 1 thing that's always missing when you're doing C + + game development think these are the parts that every game engine organ system needs so it's good if you can use that and it's very nicely done uh um that you would of course have support for XML Jason SVG graphics database binding networking but spreading and what is the time of that I will show that in minute is in and and you can also use the JavaScript or other scripting languages that don't bound to compute and they can also use the introspection system just have less perplexed excess known to studying human beings small and then and of course this that's already runs on Windows Linux make Android I as now but although I don't think there are any of the new consuls supported but maybe that will change now that the more the trees 56 based you didn't you don't censor to the of that I will show so if you're doing to the games that maybe something interesting in and of itself OK not consistent from the other that you have a custom class my class it's energy because that's not interesting here and in the end you have to call this can the clam at a time and so this sets the class to the tutor type system and so you can use this to uh fetch of time any form of my constant admitted that he met idea and you can use the idea to fetch the class name during runtime which is of course the problem in C + + if you don't it on and so on also you can use it to create objects of that class during runtime so didn't just create objects from the class if you know its name or its inside the so that's good if you want to do all of the factory class or something and the creates objects from from a file something in the is the way you know I I think it's just counting up so if you want to you should they should marry user-task money are some other method if you do if you use the basis I types like or something that will change just custom classes and that me there's some way to make it static animal go ahead and do not have no I mean those user interface parts that you see in huge like the check boxes on text boxes or whatever they all derived from the class q object and if you want to do that your object sensitive tools and we derive from the object and I in college role of you on the spot of the no and if you want to use the program cute you always have to run a preprocessor of oil code that's something many people don't like much of anything it only accidental complexity to a of steps um
and this preprocess so-called knock MOC um closer Simon you you know some on the OK so the student wrote it as it as a cue object and mock automatically at some some stuff to the class to to make it to the model in the ensemble can use that you property Michael to add properties thank you most want most so um this property is called velocity and its typo of time she make or to the and these are the ghettos and set us that I use but you'd if you access this property so you can read and write this property but can also declare them as read-only and there are some other flex I don't even more and so noise during runtime you you analyze it to object instance and you can see it has these properties and you consent them during runtime off from consideration file or whatever the only no down here is so another nice thing too invokable some this sets of the of the speech true true terms of system well if you pass a moving toward the end of this finding a moving object you JavaScript then you can call this speed method from JavaScript and this is a very simple way to do that vectors with findings to objects In this sort of works by magic from the combined the only thing I won't go into this very deep it's a signals that connections is basically like an observer uh pattern of uh each Chu object can have a number of signal center is a number of slots and you can come close to connect signals to slots and slots are just basically object methods now if the object run in signal 1 then all connected slots are college this slope 1 method is called and the signals of connections can also have a number of parametres so maybe object 1 has a signal of some value changed within in parameter then all connected to all of fungi methods with an intermittent called and that the parameters past that and to the nice thing about is that is that it works across the threats this is possible because in future uh you'd expect to have a few thread which is accustomed to that object and each due to it has its own event loop knowledge you have 2 out but you objects they can live in different threats and if the signal such the connection exists and this is basically copied across a transcendent in the new next event iteration of the slots of college so this is a very simple way of doing complex and foster a prospect communication uh in the just 11 can even connected around us to signal certain just save signal object 1 and it's this signal then to this index index 1 or something he had to choose that mention objective just mentioned added to its an event loop and these 2 that are assigned to 1 of the few of few threat not is you start larger creating 2 effects then you have 1 main with user interface that you're the objects lives some future also has some of the high-level that support you know the future a class which I can be used to to assign tasks to get a specific number of threads if you want to convert 1000 images than you create for work threats for each CPU cores something and you uh you just post these thousands of conversion tasks to the 1st food and it will feed it to a different threats there's also support for future and continuations which you can use to do a synchronous programming just mention that I was going to the well 1 basic huge object to secure variant which is the same thing goes in both variant and this is a class label can put values of different times types for example if field of string you can also put in current and even you have objects directly which only works if you register and then with the genetic type system I just mentioned and so you get a job but we identified which type of value is in the variant and convert them back and this is very useful if you do the speech communication of up to your working with scripts or parsing that to 5 and 1 last thing of the 2 variants of object is must have a you variant that which is just a map from from string uh to to variant and you very map itself ever such
a variant which means it can nest these and you can very easily builds the arteries of doubt that you can pass during runtime and so can do pretty complex stuff with that the yes but
Valenti finding a just mentioned at the nozzle serialized you variance to files so you can build up a very complex data structure just write it to disk and later converted back but you can also stream it across the network and so it's not very profound and of course I every time you put something into a pure variant that is bigger than the 1 of fraud or something then that object is created on the heap on the
free space and to so a fragment of memory and it's not very friendly and everything but if you want to but some stuff quickly then I think that's a nice thing to have so I if you have custom types you can also register conversion functions if you have a class my class then you maybe I want to add to string that to the variance so that it can be converted to a string you can do that now includes 5 . 2 where there is a 2nd order functions function so this is improving the the and at the you want to integrate due to the game and the 1st thing you have to do you have to create an object of class q application optional you to good application I think if you want to do user interfaces and and you have to run the you do have the simplest way to do that is to just give a huge the control just run that your application as method runner thinkin and that starts in the loop and then you can register slots to some that is called by acute for each game take you can just set a time of 60 cents a 2nd I want call my updated and are functions of the that's easy way but of course as you have an existing game we don't want to give students and you on control of being so instead you can instantly instantiate the good duplication object and then call you complications process events uh which does all the signals slot stuff and time and whatever you does and so you can run it in the background it's it's a little little more complicated of course a lot of this is part of this should work force times in but you probably want to run your game and user interface if you want to do 1 in the threats because if you huge and the user interfaces blocked some knowledge in you don't want your money into stock and the other way around so you you run those in 2 separate threats and I would suggest having all communication with the signals slots so that no no blocking and no deadlocks of whatever kind the it this
what can you use use together to write this the right systems to all other things and they and who but have be I have wanted to show that it can I mean it's both C + + and so I don't know about the menu of issues there so that some of my my position as possible so you maybe you can pick but the important parts of STS and you what we do and is the the yeah I'm yeah I mean you you if if you only want to secure and stuff from from you then you don't have to start any of animals or something like that so you can take a positive need and then you have to look at how we are integrating the 2 so all of the scores of somewhere but I think that it's possible that 2 integrated with about everything the the argument that it is the a and of OK if you are really good programmer here but I think that you just very very and we have a very nasty constructed and it's very hard to so now I mentioned at the end right OK no
discussion today OK so long long useful thing to have in a game if you're developing is to have a justified game objects of room you can use that to table which it from from acute just us down a list of stuff and know that you can do that by you can communicate with signals slots maybe every time an object is created in and he created the name of the object the only time it is removed from the mid and entity removed whenever to this list and I think that's already already a very useful thing to have just doubtful for analyzing and dividing and so on not a nice part of cute which is actually not part of that you distribution as few property browser if you ever use the word cute designer and user interface designer then we already know that it's a it's it's a property but you have all these name property Sia and they have a different kinds of edit costs and so on you can now this is simply the best with that you variance so if you want to move to make any object that little image property because you simply send it you very and met with all the properties of the objects of through threats to to the to property browser and feedback with the various properties and so if you have a floor value at the display of spin box and if you have a univariate and thus cannot because you can even do it from becoming a uh and um you can also do custom added tossed from your own classes if you add them for example there's no 3 D vector issued so that he sort of figured out a vector that are needed and so I had to go to that my own little for that and that's the afloat but it's possible and going on so that consideration to the various editor loss if you floor value of an item x value then value is stepping range and stuff like that and the building is so that the uh this this is part of the cuties solutions archive which you can look up on the internet and to it is actually do not distributed with the cutie API it's odiferous a separate project year and half of the OK as you say it is going that object of his work yeah that's an excellent I know and became a given game object then you have to convert that to a Bavarian map so you have to know about the object and you got a property of some all named properties and values and some the yeah that's you very much you can send that across signals not connection to the 2 property browser this encoder around that of course so that it doesn't really accept environments but it's very easy to do and then I get a space on the other hand those of you object to of of you I think it dossier I think that's an example disputed with and yeah but you know you shouldn't past you objects across that so if you a insecure few objects the games that it and you want to show in the interface that then you should have to copy it anyway so I guess this is of the out of nowhere the and now if you is the user changes something richer property but also you can connect to that signal and to foster change values make game and to apply them some altered in OK so as I just mentioned you variant still has a heap allocations so some if you're doing an editor or something that's probably OK if you're doing a game with a 60 hertz and allocating stuff on the on the time and he eating it again that could cause performance trouble so that's probably not a good idea the also if you have a lot of being objects and probably you don't want to use if the Q object class because it's quite heavyweight each 2 objects instantiation and creates a private so implementation object on the he also we are that's a lot of stuff going in the background so it's probably not a good idea if you have 10 thousand objects or something then you shouldn't use your object from being OK you can
also turn to the my project and this this is the stuff I I just talked about and and it's not a soft library so here's the game object list here other the properties that must come because and this is actually an example that working application that our program
unannounced customer where you want to place sensors on the car which is very at stickiest just you and you want to see rather sense overlap so I actually um and another functionality to the you object rolls to have a list of stuff so I'm the you use
this sense of place object has a list of some of us and so objects and you can
add and remove from that list and adjust just and it's it's a few very and that and sends it back to the game so if you're removing sense of the and of the Holy sparse again and on the news to us and the Sun and what's more and the duty entities component entities system which some of you may have heard of it's just in each game object is composed of a loose collection of components with no central intelligence and to some here I I did the components are not you objects there because I wanted to have them in consecutive memory space which is not just a possible with the dedicated objects so I did my cousin class and for each component i have a conversion function from a to variant this is another
example more in the you can hear you
can you have in some do you know that at all discovering the project of to the and so on you these evidence the particle system emittance they can add middle so as not of want and so on the graphics party and this is done in 2 weeks which is a lot nicer looking at thoughts about and so on these besides the geographic Spectragraphics directed path from cute and displayed in the to the scene graph the and In our next
part to trick me so few triggers is quite within it started in future I don't know for 7 or something and soft avoid and it's hardly and this accelerated to the scene of and it's supposed to have become really fast now include the 5 . 2 and they do a lot of of optimizing far-end our
bunching and whatever and on trick this decorated reduce the declarator syntax declarative on the ecology and they'll all which we just talked about in the previous talk and some and then some of CIA world
OK and some you see
that you create edit also you have the visual editor of all stuff like that but I think it doesn't work with every new functionality yet but I think it's coming to
towards less territories somehow with all the editing that the all of the and this is a
syntax example but I think it's it's like like Jason notation and you have a nested list of objects and so on properties and values and the sexual use that you object properties system that I just talked about so you can pass in a few objects here and set the properties of the syntax the tumescent X and you'd which syntax to do we have the 2 D graphics and you could also imagine a Musketeer in and you can also somehow connect values that do if if 1 property values change all the dependent values are updated and into the nice thing about this subject click you could only need a text editor you don't have to recompile for the different platforms and I think it's great if you want to do mobile phone games and stuff like that in such a way and also
on the uh this is a new thing should quit components so all the future which it's unhelpful or some of the maternal uncle to to put quick so these are really hot then
accelerated and scriptable and scalable and everything and you can do you very complex interfaces with that and to the I didn't really do any work on this
but and of course that's my my next goal to have that you'd think overlays so you have a 3 D game and you have a huge interface for that if you have ever encountered by a complex of some user interfaces for a game with the lots of heads-up displays and stuff then you could use a cute for that and so on if you create renders to
open GL think of you to or something and you can combine that the on the bottom right corner this is overseeing off some on that and this is a customer over here from from acute I think is not even trying to make that's moment to of you so I think that that would be a nice thing if you're having a complex interface that you can use all this signal slot goodness and so the composer kinetochore in
the there things I think you can and changes of it's a theory that her to time and I used to work of anything thing going on Windows there's even an abstraction of the layer so that readers to generate x to get a little more funding yeah the but I just talked about what the reason is that for performance reasons or probability you know that there is a fire in the hole here so this work you know the kind thing 1 of the greatest you know you have congress thank you Mr. because it has some notes you want to distribute the game then who you want to keep its limits especially if it's over the network so this is something I don't really care about the because simulations but again if you want to ship your game then I you don't think asphalting bad so no because there's a 20 minute did just sort of for translations stuff so you can know that there's a lot of images that a combination of the or maybe if someone is interested then that you should contact you because they are licensing issues that you slices under Egyptian edge again which allows linking but I don't know if you are not to static stuff finger opinions differ and so on but said I just write it out but I got at around 2 around 7 megabytes the 2 part with which includes the the user interface stuff I think that was a sense of occasion I just showed you with the car and this and this and so some so that took about 9 enough megabytes and all so if you're doing a professional game and and you should think about that from what IS sent you just unidimensional skewed multimedia which then you can use to to play video and audio staff and so there's too few camera to access the webcam on some mobile phones you can access a sense I think and all the GPS stuff than some yeah Q decimal GS stuff which is pretty you you have some some apart I think it's it's not really a lot of finalist of it's just a logistics excess extensions and Anja binder uh abstract away some stuff I than that achieved quick D projects which is just some decorative of the deprogramming I don't know about the the current status of that I think it's a see that a civil of then of course tutors support for internationalization which is great if you want to should into larger audience and uh I don't think there's any gain control access which I don't think it's a great scenario for that you want to fall back to SQL something of prey predator use another library so because it's awesome must plus it's not that big of an issue the head of this
unit commercial game engine room he played college which is the thing being
targeted to small but holds the CEO of books to the physics of the more and talking and that's
the stuff I know about the game programming and
cute um to conclude I think it's great if you're doing 2 is an Anatol's and stuff that you don't really have to look at what's
assessing the lasted 10 % off
of a performance for everything so the introspection is very helpful if you're doing dynamic and out of the stuff but it's good if you want to do a complex user interfaces of course and so it's just in the load of stuff that you can use for game and you don't have to go to graduate from anywhere you can use to just have 1 central part of stuff they opened and get your game functionality just think much in Step questions is we get gets up a new model of but yeah perhaps the question how of the we I don't think you can combine it without and to
I think they tried to do not use exceptions and so now legally out on know the part the the the use of How Abstract Is there was quite a and what you have to wonder what to you say about the uh that how do we do live in the water we have no idea so if the I of the maybe could do that at the end of Part rights can do angle to analysis or something more yeah you mentioned that the report the you don't know what they the I think what you yeah and then you you should keep them separate you shouldn't merge them and if you should probably because not communication then that's all as and promised message passing so you don't have shot doctor and so that mentioned be that much of an issue you know that None of the gain destroy to them over the and and OR something and the user interface is drawn to the user interface you have to do that in on the window manager layer I think will so you can't use the user interface always you know if you are using to pick up something to draw on scene then you can't separate the 2 and the thing so then then if too much but if you have a separate window so are propagated or something then it and keep them separate the thank you and yeah from the demo I just showed insisting thank
you that that was a spaceship some
among you have some of the user interface part
of the thought of just using the above process and the game is Susan Dumais
and the other thing that you just use it for rendering have a method to create shape and the texture area and to draw that to the stuff and then while the rest on the super sparse so I I have tried to tried to to some read the human properties and use that to directly display them in the property will know about it and get that to get but maybe that would be also very useful and you can decay of properties and united and have them in the interface but it's not enough that the as decorative loaded with a declaration of his and his staff this text file here because I think there are some tools if you want to do a mobile game then you can just use the huge small mobile application for just think you know and feed it to feed their young to matter that's the application things so that's a very easy way to do cross that fun stuff about doing any combining or anything we will questions and want fewer