Killer Engine for Remixing Games

Video thumbnail (Frame 0) Video thumbnail (Frame 1725) Video thumbnail (Frame 2805) Video thumbnail (Frame 3801) Video thumbnail (Frame 4829) Video thumbnail (Frame 6050) Video thumbnail (Frame 7226) Video thumbnail (Frame 8474) Video thumbnail (Frame 11909) Video thumbnail (Frame 13752) Video thumbnail (Frame 15424) Video thumbnail (Frame 16578) Video thumbnail (Frame 18533) Video thumbnail (Frame 21415) Video thumbnail (Frame 26369) Video thumbnail (Frame 29051) Video thumbnail (Frame 31363) Video thumbnail (Frame 32286) Video thumbnail (Frame 33270) Video thumbnail (Frame 34419) Video thumbnail (Frame 35882) Video thumbnail (Frame 39737) Video thumbnail (Frame 41982) Video thumbnail (Frame 46020) Video thumbnail (Frame 48652) Video thumbnail (Frame 51149) Video thumbnail (Frame 54188) Video thumbnail (Frame 55626) Video thumbnail (Frame 56609)
Video in TIB AV-Portal: Killer Engine for Remixing Games

Formal Metadata

Killer Engine for Remixing Games
Great game developers steal!
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
Game programming is so fragile that most new games get written from scratch, again and again. We've created a new game engine for pulling apart games into atoms and stitching them back together in novel ways. Our techniques are inspired by functional programming, reactive programming, and dataflow, but still use imperative blocks that many programmers are familiar with. The game engine is completely open source, as are the games written on it. We could do it as a talk, or as a tutorial where we show people how to use it. The project is hosted at We work at the CRI in Paris (
Mashup <Internet> Multiplication sign Debugger Instance (computer science) Mereology Visual programming language Data mining Word Computer animation Integrated development environment Personal digital assistant Telecommunication Game theory Quicksort
Computer animation Projective plane Energy level output Quicksort Computer programming
Digitizing Projective plane Grass (card game) Mereology Formal language Web 2.0 Particle system Process (computing) Computer animation Optics Game theory Computing platform Form (programming)
Domain name Protein folding Computer animation Different (Kate Ryan album) Mathematical analysis Interactive television Game theory Species Protein Mereology Field (computer science)
Domain name Boss Corporation Mechanism design Computer animation Query language Projective plane Data conversion Mereology Computing platform
Programming language Functional (mathematics) Code Multiplication sign Connectivity (graph theory) Computer programming Revision control Medical imaging Computer animation Mixed reality Right angle Object (grammar) Game theory Library (computing) Social class Physical system
Group action Goodness of fit Computer animation Mixed reality Software testing Bit Mereology Graph coloring Physical system Spacetime
Point (geometry) Functional (mathematics) Context awareness Vapor barrier Thread (computing) Multiplication sign 1 (number) Water vapor Mereology Event horizon Computer programming Software bug Goodness of fit Semiconductor memory Touch typing Physical system Scripting language Programming language Pairwise comparison Graph (mathematics) Interface (computing) Parallel port System call Measurement Flow separation Process (computing) Computer animation Algebraic closure output Right angle Game theory
Group action Digital electronics Multiplication sign Graphische Programmierung Water vapor Mereology Rule of inference Visual programming language Neuroinformatik Operator (mathematics) Representation (politics) Physical system Computer architecture Personal identification number Graphics processing unit Graph (mathematics) Block (periodic table) Interface (computing) Surface Parallel port Measurement System call Connected space Exterior algebra Computer animation Telecommunication output Self-organization Right angle Row (database) Library (computing)
Programming language Proof theory Computer animation Code Multiplication sign Right angle Online help Water vapor Food energy Number
Personal identification number Multiplication Functional (mathematics) Block (periodic table) Connectivity (graph theory) Multiplication sign Parallel port Computer animation Hooking Semiconductor memory Different (Kate Ryan album) Calculation Quicksort Resultant Physical system
Point (geometry) Functional (mathematics) Vapor barrier Open source Link (knot theory) Observational study Multiplication sign Graphische Programmierung Control flow Function (mathematics) Theory Subset Element (mathematics) Neuroinformatik Revision control Inclusion map Bit rate Hooking Semiconductor memory Modul <Datentyp> Software testing Series (mathematics) Simulation Information Consistency Physical law Moment (mathematics) Interactive television Parallel port Dynamic random-access memory Bit Flow separation Frame problem Computer animation Personal digital assistant Logic Calculation Order (biology) output Pattern language Right angle Game theory Cycle (graph theory) Ranking Resultant
Slide rule Shift operator Touchscreen Ferry Corsten Multiplication sign Keyboard shortcut Function (mathematics) Entire function Medical imaging Computer animation Semiconductor memory Buffer solution output Right angle Pattern language Cycle (graph theory) Freezing Position operator Physical system
Point (geometry) Touchscreen Graph (mathematics) Matching (graph theory) Multiplication sign Parallel port Drop (liquid) Function (mathematics) Mereology Coprocessor System call Machine vision Frame problem Type theory Process (computing) Computer animation Semiconductor memory Different (Kate Ryan album) Website Cycle (graph theory) Position operator
Collaborationism Group action Touchscreen Mapping Multiplication sign Diffuser (automotive) Electronic mailing list Set (mathematics) Function (mathematics) Flow separation Sequence Number Computer animation Logic Calculation Operator (mathematics)
Addition Multiplication sign 1 (number) Streaming media Sequence Connected space Computer animation Causality Semiconductor memory Selectivity (electronic) Musical ensemble Cycle (graph theory) Game theory
Functional (mathematics) Multiplication sign 1 (number) Basis <Mathematik> Parameter (computer programming) Sequence Food energy Machine vision 2 (number) Revision control Mathematics Computer animation Term (mathematics) Semiconductor memory Logic Calculation Operator (mathematics) Duality (mathematics) output Cycle (graph theory)
Point (geometry) State of matter Code Direction (geometry) Multiplication sign 1 (number) Control flow Branch (computer science) Web browser Function (mathematics) Turtle graphics Mereology Graph coloring Computer programming Mathematics Semiconductor memory Videoconferencing Energy level Physical system Area Touchscreen Shared memory Lattice (order) Computer animation Software Personal digital assistant Gravitation Right angle Game theory Cycle (graph theory) Family Tuple Freezing
Point (geometry) Web page Code Patch (Unix) Similarity (geometry) Web browser Login Power (physics) Web 2.0 Mathematics Semiconductor memory Cuboid Endliche Modelltheorie Information security God Domain name Matching (graph theory) Shared memory Message passing Computer animation Video game Summierbarkeit Game theory HTTP cookie Cycle (graph theory)
Point (geometry) Group action Algorithm Code State of matter Patch (Unix) Weight Multiplication sign Mass Limit (category theory) Revision control Array data structure Mathematics Computer animation Visualization (computer graphics) Semiconductor memory Personal digital assistant Repository (publishing) Different (Kate Ryan album) Operator (mathematics) Order (biology) Endliche Modelltheorie Figurate number Row (database)
Point (geometry) Programming language Theory of relativity Mapping Data storage device Electronic mailing list Parallel port Disk read-and-write head Dimensional analysis Element (mathematics) Number Computer animation Algebraic closure Hash function Semiconductor memory Network topology Normal (geometry) Data structure Logic gate Reading (process)
Trail Functional (mathematics) Context awareness Touchscreen Arm Keyboard shortcut Bit Function (mathematics) Menu (computing) Shape (magazine) Rectangle Complete metric space Event horizon Field (computer science) Mathematics Process (computing) Computer animation Semiconductor memory Right angle Object (grammar) Position operator Physical system
Trail Dependent and independent variables Functional (mathematics) Existential quantification Game controller Sound effect Set (mathematics) Web browser Field (computer science) Element (mathematics) Template (C++) Mathematics Computer animation Different (Kate Ryan album) Website Cuboid output Right angle Object (grammar) Position operator Library (computing)
Classical physics Gender Projective plane Execution unit Feedback Online help Mereology Computer programming Revision control Computer animation Mixed reality Cloning Pattern language Game theory
Word Computer animation Video game Website Game theory Writing Resultant Computer programming
Area Computer animation Information Website Right angle Physical system
Computer chess NP-hard Group action State of matter Code Multiplication sign Execution unit Numbering scheme Mereology Formal language Medical imaging Mathematics Bit rate Semiconductor memory Core dump Negative number Cloning Touchscreen Mapping Sequence Connected space Category of being Process (computing) Vector space Right angle Cycle (graph theory) Quicksort Spacetime Point (geometry) Trail Functional (mathematics) Link (knot theory) Branch (computer science) Student's t-test Protein Event horizon Rule of inference Wave packet Revision control Internetworking Operator (mathematics) Software testing Selectivity (electronic) Data structure Metropolitan area network Condition number Alpha (investment) Focus (optics) Graph (mathematics) Graph (mathematics) Interactive television Plastikkarte Word Database normalization Logic Query language Network topology Einbettung <Mathematik> Game theory Library (computing)
OK so welcome everyone thinks kind of attack that's the fast and the mines my 1st time here
and we say to talk about a this new game engine we've been working on called but 1 on in its think it's interesting cases it's game engine that's
trying to something else we're trying to do on a game engine specifically made for remixing matching things so take like really different approach to he mentions different approach to the kind of which makes things together in that sort of talk about today so we talk about what it would become gains mashups China China-made about how we have this visual programming environment where you and that's inspired a lot from from of electronics have high you can pull together different parts of the game and mix them together in a kind of debugging tools like going to that we can into some of the challenges of all we're doing that special about but the OK so just a few words about where from so I'm American but living in Paris and working on this article decrease which is the center for instance introduced in research and so it's the allow this kind of the crossroads between education and technology and science and about the budget activities were the main
activities is education so there's some higher education programs involving all of your method only to so because stock levels and and also education in schools
in input and also after school programs and idea to the guiding principle is learning to research and learning to play so the idea is that the students whether at whatever level they are come with their own ideas of in an odd sort of inspired to learn about science and whenever engineering through and exploring the projects that come with OK and so we also have we have to have a
digital form boulders were projects there so was the projects we did not announce problem no nodes which is a distributed way to weak
knowledge process and ensure grass about this particle co idea which is something it's a platform on the Web new to spark new
creative projects among people who don't know each other and come from different backgrounds on a project called the dialog colleges in synthetic biology and in which the project within the synthetic biology so we have some gains
were working on um particularly of Europe a language of which prevails in fact I think it's 2 more parts as you have to learn a lot that synthetic biology and some games on around teacher optics and about studying creativity and a we also
working in this domain called this domain of citizen science so if you haven't heard citizen science before it's basically like the 1st open science we're trying to get both kind of our have size applies to people's everyday lives and get them involved in making the science themselves whether that's getting data for scientists are actually you analysis or even coming up with their own ideas for the kind of science they would like do learning about science as a caring of those thrown experiments on the of Scientific Games you probably heard of what's called folded that's probably the success in the field about folding proteins and many others on this is also this is a bunch of gene gains also we actually sequencing genes to help scientists alternately
interaction understanding extinction difference and we that no species are evolving In as part of this is satellite projects of
the EU project that working on a king in when I was 1st I this is the probability came in on and my boss said that you know trying to make gains to allow scientists to create new nuisance gained which I make a platform to the princess science and so I was thinking that we would kind have of intelligence and maybe the use with that and you know so I
had this conversation with my boss and he was saying well we
should you know ultimately a scientist should just take possible gain in parts the mechanics and the other and then you know kind of apply at some more stuff at the query once and then the end user domain so in so there was no no that that's really good idea is
still impossible you can't just I mean I know that you cannot Ferreira for the code from 1 thing to note that you best take a library users of that we can't mix them and he said well why why why why can't you and that
really thinking like it's true that the you know the the programming for a long time on all we've lost a technology of there so you know we have you
know we've functions and classes metaclasses and that objects in any component systems Institute version troll doesn't technologies and
signals and slots and and millions of programming languages and billions of um billions of game engines and even more libraries agreed with image right you still can't do this fundamental thing of meeting the other stomach it is true that we think about it on a weekly or I think would like program to
be more like 1 with like goes right you know and you your and you the things take off the top and stick something else on the way to the color of matter but in fact when when you actually try to you know of Altera system and action charter mixed parts together that's called that's called refactoring right that's like this
hobbles microsurgery you have to carry out you have to examine the little bit of all our 2nd at by take this out of there and that that other thing then you do do it in the brakes everything and maybe you know if you're lucky you have a good test space and can realize exact in the least what kind of things are broken in a you're unlucky you don't have any test also you don't know where you're going in fact and this is the the the longer is a possibly even to know how long it's going to do and so this is the system packinghouse thinking about but it'll inspiration of by this around by the matter of
the closure programming language names which which he is a bunch of excellent talks so you really should be changed in this topic goods shipments fantastic in 1 of them is called
simple maybe where he basically goes through 80 he observers on in much greater detail and you
now about what what things actually prevent you from a separating out parts of a system and he defines this thing called simplicity simplicity is an objective measure it's an absolute measure where you can say well it's about how things seem to be is the input of comparison of the breeding threads together as long as threads Australian parallel don't touch directly you can easily take where you can move around you not been messing up stairs friends all gradient together in some cunning not with obviously pulling on 1 you know what can happen in is that ultimately that's the problem is not so much that it may take you while it's that you only actually really understand the consequences we start building to a system you go on as you want at some point right and probably like you had this experience something new behavior starts emerging out of your system that you don't understand you know some major starts doing weird things that they were before doesn't work anymore it's not the 2 gating outages that you added things in and ultimately what lies in access you really cool if a game smurture looking for emergency gains for every once simple games that you put compose together in a fixed amount but for programming is horrible because in fact you bugs in context In of so so some lessons he came up with the when the ones I'm only going from 4 so this chart Voice tend to keep things independent separate and the other thing is that the data alone so often we can graph data between behind interfaces we have 2 columns of the functions of access to data modified and that also is a barrier to great things together because we need to do a job if you want to use the differences and in it and that babies this CIA obstructions around time and memory is the idea that water systems memory might just change as you work on you know you're a function call and unions of immediate multithreaded and other overcomes and change your memory you working on now or maybe it's asynchronous event in John script is also call that we recall that comes and it changes something where you work and you can't you can't really planet out it's really hard it's really hard to debug the sponsors so another as inspiration is thinking about
how this is done in electron because the light achieved a little too simplistic rule 2 basic that should be something on because you know their face OK little little plastic and stuff but there's no there's no movement there's no communication going where's electronics the example of a breadboard right where you have you know rows rows of pins they're all collection connected you can just come in stick resisted their stick a capacitor and their in automatic connected right at the interface is just the water that's all in the it has a bunch of edges 1 is that you can connect anything you can just you know put put any resistance without changing anything else you can't measure it any thing where you can you take a multimeter today oscilloscope and stick it in maybe several places at once and and and observe how the system's going on which also means you can test it right like you can just you can test the some part of the circuit because you just pull all the other connections you can understand exactly what's going on in that part and you can replace everything you can take out 1 thing to say something else there again you have this common interface on has promise recompiling them in the library is that it doesn't just in so chatting about how that might work that is a thing called visual
programming so I'll whose use visual programming languages quite a few there is kind of old idea comes from like the early days of computing was this idea that well you could represent I nodes you can represent mathematical operations as nodes in a graph and on the top of the graph should have these 2 you have no multiple wanted more on this coming in and that's data that flows into that node it once it reaches the node with it produces some does something it produces an output and that flows to the next 1 down the graph that might take inputs places and so on in fact it's anything this is actually was not developed as a as a visual programming languages actually developed as kind of an alternative architecture organs like the von Neumann architecture that dominated these all the way up until graphics cards nowadays do things in parallel the idea with you could do times competition parallel and eventually get another call lost but in the end I found it kind of surface as a visual programming idea that will you can just take the blocks in the actions and produce data mistakenly gather that so it's you know it's very similar we're talking that is actually quite a few of you
program languages like this is 1 possible of that's fairly recent but there's a huge number of Boston Scientific Computing in fact already are integrated into a lot of energy but the problem is if you start cross simple really easy to
understand what is just a few nodes but the problem is when you
start adding onto a yes some like this right so this is kind cool this is the real you can actually programme-level only thing going for that no 1 else can understand and is totally crazy in in in ultimately it's spaghetti code all over again this is visual this time you just realize appeared it doesn't help you understand so we had this so which I think how we can change that how can we make that some water into this visual proof we had the idea of separating
out this the basic idea is taking the memory out of the blocks so currently in those systems you know he chose blocks might have its own memory things something that might change in the way in which the idea is to take all that out socializing into 1 big memory component to this memory has a bunch of sorts its history data sort 2nd whatever whatever you want them and a hat pin going in going out so as you might suspect you can take your employment chips something that is gonna produce a value that do calculations that they see a function it also has and has up with and so you just connect them up so you take out Mary and hook into the chip and then you can do the 2nd time you can have a go back again so here we can see that at our the result of this chip does its calculation is going to feed back into memory and you have a feed back into multiple places of from different places no real restriction we can set up a 2nd shipment had it running parallel to the 1st so we can use that data there and again had flowback so it's going to keep you how this is how this will be executed you have this kind up so the 1st thing you or a settlement in detail on begin also
constant eyes and the chips if you know Mr. everything there is something you can and so the 1st thing you
do that the game and is going to good so I wanna it's game so on a clock rates on sale at 60 hertz clock so at every frame how basically freeze the memory the 1 we are what the memory to move during the course and so when entries in this really calculate what the chips are going to get is input so it's like the chips appalling and from that Americans rate with an American happens all the spins are going to do the calculations in parallel so the isolated but not directly connected to each other so if you you can take 1 element that the phoneme is not change with the first 1 that's this 1 at this point is telling that the only thing they have in common is the both getting the source data input data from the same place beyond that they don't have any other interaction and then once they calculated values were then gonna take that data back will you look back into my and so memory is now going to be basically reset with information again all at once so it's not thing where like 1 ship is gonna make something and then get chip comes in quick rights right already never saw the first one With this is even if they connect to the same pattern a good detective there at different values the same could detect conflict consist of subsets of the problem of just necessary in fact in some cases you can even merged together like imagine the data you're writing is an array In vultures add things during many can just make neuron with more stuff and merge them together and I say it 1 race 1 generates 0 no problem and that is not but you can handle emerges in other cases on the these are the questions also by way as as we go you having so yes in the the use of
the use of the and more but you can't we you can directly connect with that's that's the thing so that bare their links only to the fact that they have a common memory based that the point of and that prevents this kind is the most visual programming languages indeed you hook them up in series you have this chip using that should use magic so the the yes you can do that then you you have to pass to memories time which seems like kind annoying like a person that's and that's is so barrier 1 matches with directly was nice about it is once again independent you can you can take 1 out in the first one still reading from memory is often a failed because it doesn't have any input yeah doesn't and so on and so the idea is the running in parallel so yes if you have chips that it's increase computation then is not a good way to do it you got to break up your break up the computation over several cycles or on a ship that out something else is going to long computation and come back with the result to the idea that share only of the things that you can calculate quickly cycles yeah consistent that's personal questions this and so in this case we have to assume that a feature competition takes the 1 that was that right yeah so if you are to more than 1 competition like the inclusion Fourier being on the the same time frame you know you can only do it like at the time yeah so it's only called 6 times a 2nd afterwards you can like so that the same before you can see there is if he had some competition tended to long then and I guess I monitor question it's taking too long and like me exactly you gain AI and then after the ADA you won't let me something called like I'll OK good things that don't happen in parallel yeah know you know I I think that's the latest inherited this studies that theory of the but what is wrong there is no stranger l minus 3 and then this is basically only the outputs from memory decentralized and then the only thing that we for and lecture in order to make sure that you your logic functions provide the the moment when it's cold so it sounds very similar and we can have different sector and there is also a more sense in a bit of a law on rank thinking I say things on learning and here we see the simulation it's in the in the in the way of doing this so that it's it's it's the the testing the way to build those United's modular design and simulated the it would have picked the top gestures and advances of there are questions as we the I argue gone so far OK so this this explains basically just running out of memory but for a game bets on the on off
right married and everything not sure anything on
screen opinion but the player is pretty women and so how can you do on input and output and
so it's interesting is that we came up with the idea of just having input output the another kind memory all I can suffer a lot like in the old days and we used to write out to the screen just put images data somewhere in the buffer for the screen and then when the screen came around should drive the real problem was written at that time In so for example in you might have gains for the MousePen from keyboard contains for graphics right we see this little more detailed about just that just to give an example on so how does that work so we can have a we can have a just as we did before we can put things up the same way that before basically we cannot tied in but now in the output from the mouse by this is no incoherent right you can control users must find and some and you can send it back again to some of them for example writing graphics maybe this chapter John graphics on the screen based on the position of House the and you can exit you can memory involvement kinetochore getting data both from input from the user and also the memory in writing back to both you can right back to the memory well the and so just to take it to the same cycle the 1st thing that happens when the when the the classical falls we calculate whatever the to this so we both now we're freezing memory in some sense in we're freezing also improves the might receive for this entire clock cycle and imagine that the mouse is that this constant value so the whole system agrees we're gonna calculate whatever needs to be put into the jet the shift and you think they're right out both to memory into I of this the so as to give a little example although more patterns anybody see it's a little baby example but on the right side of the slide so in this way so
many we want to both moves this is a site this is not a drying this gonna both and then it's going to move something on the
screen and drive so the 1st year so we marry we had a speeding position OK we can see that this is sent to the kids that it every cycle of the MoodGYM is gonna modified positions
and back again separate in parallel we have a joint chip going or something in the vision an output that shape and want to drop and silly things run every time you have a thing for it is done in parallel so so so once again the beginning of this is that I can take 1 out I can take out there often is not going to affect the movement I can think of the movement is not enough for the job and I can also just change recognize if I don't want to draw from memory I just give it a different value where I want to drop petroleum future and to go back to the late chance example we can also measure everywhere right so we know what the value of memories at this point it was frozen so you can easily go back in time and say OK well aligned with the matching of the thing jumped on the screen you know what's going on much understand with the problems you can go back to that frame that's not working and you can say what was the memory at this point we can look at it well the output at that point and is part of the graph you can easily go through the then find you but OK so I so we we did not designed a few different kind of basic types of chips so this is the call them literature this just calculate values of so there's a processor chip that has multiple inputs and
multiple outputs do more sophisticated things might
hold from several places and modify months same time we have splitters which take a lot of calculation over a large a large set of data collected MapReduce have collaboration a mapping operation so you have all a large number of for example of the logic you do the same thing for the screen would you if you have your big list and you throw to splitter and it would called we would do the same calculation for each 1 and finally we had this which was going to get to the questions that's really earlier about how we can sequence things together to make a reasonable so
much so so so far what action you only you have
all these ships that are always running parallel all the time so it's not obvious how you sequence game right obviously no game has some kind of you know movement to maybe starts intro stream the place of music and then in laser selection thing then playing the game and if the cause you to stop etc. of and die so that we do that use this notion the switch into the switch is chip just like the other ones so it has in but has but in addition they also has connections to have children in what it does to those children other chips isn't it turns them on and off in every cycle so every what's gonna happen now is it every cycle we 1st start this which is
going to go through and calculate based on memory
were based on the use of input from the user to which of the child should should be activated it's gonna turn 1 on so for example imaginative decides 1 2nd to on the basis of dual sequence term 1 after the other now when we do the rest the calculation this chip is and active these ones off so they're not doing anything and at the end of the next cycle this which for example my modify the memory your memory managing somehow because of some of things now the 2nd time how it's going to do a seconds in activities which so it is that answers your question my this book doesn't mention this because you have here the change from the 1st to the interview you run this is the only thing that I was more like the thing will develop
in the thirties in operation to food but there is something like this we will need a modified version of the energy that modify vision and the reality of secular lights back is that if you is that what makes to have a put more lot we grew more logic into the chair of the chip economy is doing what vision another way do it is to put I'm not I'm not entirely here but as a way to kind of find out a lot of this work the functions you see have functions that do a bunch of stuff for you in the sense of the arguments that since are pure functions look like a function for knowledge and you you know that given the same input they always had this thing up so you can reuse that a kept it once you just cash what those couldn't cash with those values are in the next time very fast to so there's a weighted the way that and so on so what are so I'm who's seen from trade
predictors videos it's a lot less state this
really cool patrilocal stuff and and and we're really inspired by such video inventing the unfaithful to 1 really well known ones where he show this great stuff he says this thing where his family of both have the same is you is taking stuff of of of of of of break and so he has and he his little known as a character in a Johnson turtle and hops over a big of you get an nice is OK without imagine that you know I decide that you know it didn't work out my level like you know jump to higher region to low wanna just that area right rather than going back and saying OK now change gravity we recompiling play the game again tried to exactly the thing he just stops in the final part of the changes that the cracking times of gravity in this case was back in time you retraces what happened and so he can just change the change this code in receive what what would have happened had my code been different in the past the most of the story only the the people of the story a tuple the reason there's a reason why the size of so basically what he's doing is going back in time so what his system doing is is remembering what the user data and we can do the same thing is once again were received freezing memory and freezing and then output every cycle so we know what what keywords he's repressive cycle we know where where the mouse was while the network was at that point you know everything and so we can easily go back in time to change the code in rerun would have but we can also do cool things about meeting chips like nite at early this which is internships on we can do that manually to we can say well just that justice Chevette policy what what happens just this once don't like this or like in in a like charges that just the pulling out everything else in her so the question the peoples of this thing here and we can find chest that's the thing he shows in his video shows how he can what his gay society if it's a program that we but he can announces over the screen and the share in a chosen where the code what was once a color drawing the thing he's mousing over on screen and we can do the same thing and we can go the other direction we can say well and what you know for a given chip like what is it trying what is it with a change in memory on right but any more questions after the men wanted technical challenges so right so OK so we do this in a browser OK
and letting users write their own code so I see there's a problem because the notes are right if you write your own code for young game but if you're sharing the other people you put some which common
this change were you something and log in the
power whatever it's a potential problem so this stand of so that you of let those just fill conquer insights that that you love God do something you can share code snippets across the web in the way to do it is they have an I frame so and that's within the page and they have it set to be different domains and when you do that in the for web browsers that sets off the security models of cynical homer that's from a different domain and not collect them like access the cookies and access the web and the enhanced access network things and we use a similar thing match using our Kaminuma technology of 5 aspect that does is that actually this sandboxing you can say well I want this I can run I don't want I want X you just don't want him to reach out of its cage to access anything else on that we do so we use the sum of such a few and then when that happens will then to we can call those directly in that same up so that we have to pass messages that were so basically at every cycle are when the games running on within the same box is sending a message being life this is the memory this is the this amendment up at that point so standard asynchronous and but it works what would you on OK we also listing of patching
so I talked about a little earlier how in the case that multiple chips are writing out the same kinds of memory and not we want to be able to have emerged as things together OK and we take an approach very similar to like the way the weighted version visual works of knowing what we did whatever when you when you you know skill that like you're calling for your for your your 14 you're branching repository and 2 people working on something seen anyone emerge that together again right so has a direct to technically it creates patches each 1 so the patches as it is this adjusted that is the difference between what the state what the code was before and with the code is now being changed and so it's gonna take whatever the common ancestor was like the base of whatever change was it's gonna see what happened in each case gonna calculate out those those differences patches and then merge them back so that's what we do now armed but we run into this think of really our of algorithm which is what I'm which is what I wrote isn't overly was doing but fails pretty quickly once you get to larger arrays because an eraser it's hard to know if you're moving things around if you move the nominal interest another review just change it together if you remove a few doesn't understand so this regulatory action moving out using these longer longest common subsequence algorithm which a lot more sophisticated and in another interesting algorithms that we could choose are operational transforms so that's based which using like Google Docs for example because in your pants and these other and when you have like a document online emotional people changing once with its did you during the society's mathematical operations like I change this thing is the point time and then it can be variable to merge together with mass figure out you know the book deleted characters is not the same model is again we have this history from 2 so it like I said we wanna be track the history in all points in the past well these up to a certain limit on but in order to do that today we can write over the memory them so we have the cloning the copier takes supports this and and so they are better approaches to that so the 1 will no using now is some if the basically keep up with the 1 1 1 way to get around that is you just which is similar to work it was feature because I take a snapshot that kind like the full version and then after just or patches and points so what she's watching change which so if you want figure out what happened here when you go back to the last fall copy you apply all those patches ch in a row so you get to here and then you know what the memory was mean when you have give the name was and gross you have the once a while
stories for once otherwise when you're accessing was the and although it the infected all it's
and in there's actually even more interesting approach which is what are the closure programming language dimension earlier users called persistent data structures so I want to talk about setting the relation and so on imagine you have a vector and read for all of us so acidic than 1 norm like a more normal way to store that would be you know have like 4 elements together in
a minute but instead you store them as a
list so I can structure each each element points and that's what you can do some religion things if you have a 2nd list where I change the 1st element and means of number 5 what I can do that this is create just as the head of the list just number 5 and then have a point to the best that was 5 2 3 4 so what did you think 1 gate what's interesting but that is not only but can I use this list with L of reusing that that without re allocating memory that I've used for the rest of the fact that first one still exists so I can use both ways they list in parallel they don't want any of in and so this is looking to see how it applies to list inwards actually more interesting is that it applies to a lot of other data structures well be done for the trees for like hash maps and what other structures and in such tree faster puzzling you wouldn't think it it's a really nice way to get around cloning data over so the OK so it is my last technical challenges can talk about consisting thing of this offering I know so
because of my earlier as we can treat bio like memory the right OK
so it's kind you think it's a little bit of a and a caricature heritage Turner heterologous to think about think about things this way is usually we think in the adjusted world everything is on that basis like if you wanna find out some presently work well you have a keyword he down here where the events and you have to bind the human and the man and get it over with the keyword that were for sale of the mouse the mouse and the use of the arm is so what we do is simply transform those over just just memory so the example is what's the position of the mouse will rather like bind to nirvana calling on mouse I get gonna get mouse position function we just have it available or not lesions did you and similarly for the keyboard b Caddick teacher that we have this system keep track of which you would you know just give it you know you know were not the only way to do this this also waste and somebody mentioned completion you need is a work this to lose the mouse but output it's it's a little bit so I think so the output we have so this is like in the canvas API for jobs for those who know that made you want job working on screen when you have the context changes style was also found stitching menu you decide will fill rectangle of the current style so this makes a rectangle starts 0 0 goes to 0 right so these were hundred and undertakes a square I'm in what we do instead we we just describe shape object so this this in for those of marriages this is a out this is described objects so set of fields and we say what
those style is the position the site and I mean anything a really create your own apeándose wrapping the current 1 is this and you just send it out
to list so so when the graphics so when when it comes when the graphics are called at the end of the clock tick and it just goes through the right and draws them all and you can actually begin then separate them out to layers and single which are you know we can separate out have some John different layers and even say well if a particularly layer hasn't been changed with the same not have to draw students on in for each channel it to be conditional to sets chemical specially working a web-browser you don't wanna have to be right like input controls more stuff right for taxes the effect in Europe speed of the initial there's a really nice yes see assessor and then you know not so I'll is fantastic library culverts JS where it does is to aid the dividing and this like in the largest moon that means that the 2 were basically it it it it has all the elements in it keeps track of the fact that someone change the data into the text field check you check object and it updates somewhere in there tells you some kind of that and we use a lot of things that we had previously use reverse as a OK well here's here's a template modulation knowledge on-screen here in the budget values and 1 nuisance the villain text boxes and check out the about and then it alerts us whenever something's changed so that we can update unnecessary of every http and so for that we basically we just have to get rid of non normally again in JavaScript you do this then you send off request and called back function synchronously when the thing is when request is completed of happen and we do with the again replace every data should have data population that suppressed when making when there is talk fulfill response you right OK so not much more to
say I accept that really
interested in having some feedback some help with the project on this knowledge was working on that and really excited to have a lot of things we have a we have a new version coming out on just like we did 2 and in the real excited if you want to put the games on there or to the back of the games or X Games on their on Rossiter writing psych out for those you might differ from Paris and the running on the uh a game G on the some mixing games receiver to take a whole lot of but I program but you really basic things like Arkanoid like as clones of those pattern in ever gonna have just have people during the game gender is going to the think there's there's a classic games and kind of units of ways so they really interested really happy to have you have become part it also costs if you really want to work at the Post itself so precise and some really have of your help 1 last thing was mentioned on is that this is
this is so we're writing this game club and Paris also called of of the of the Kennedy so we have a bunch of invited speakers coming from life
in the becomes the hour and we also run these magazine James which
adversely circadian GM but within 3 hours so the idea is you have is academic you program things well I kind of our time and come up with a new word you your pardons or at least just as the concept of the interest on everything so we have all these basically all the interviews are available on site on as well as some of the results from the interest In the food that's about I want to
show and at the very end systems
around the the today and I had all
information about how to contact me the right
side so right is the website into an
area in Miami contact information the I then
questions yes there were no you what
language you this much of it not get a job will begin in JavaScript in most of the edges in copies if you don't look over on a wild man right so why 1 of the 1 that did not just if this had if I have a situation where it says that that's really fantastic and I think I would have been better think because a lot of things about it also it the state and everything and there are quite a while the not myself with a cook or a seat that some of you in a single called in delicately and events like at the core of the magnetic properties of the Internet events and the the the the the the of any tool that were in the land of the medical Google rupees known yet it's all the growth and also the topic of this review what unites itself and if the data itself and the neglect of that metal work function that you can you can see the castle is to be seen within the the gap having every writing a lot of things that I have usually have the same rights write year at 17 is not a lot of the logic is often the the trigger rates from word so this evokes retrieve data we sort of know changes that it's a thing that ends up being more in with chips word that you wanna with like switches links leave you with the use of event like trigger is a really tricky because yeah this is always this problem around like the 1st time you use in each year it is always a thing like OK well listen to this event the trigger all of beginning you're right now as well right so that's why at 1st we didn't include them that could gather the ID card distract something continuously and when you need to do something do it right you can check the condition of the injured but we don't every 5 added something that directly gives you what's what's changed its last cycle i which I think be helpful for some things we will have a quarter of all of War with and will lose the query of the year right with you I guess that the way you can only issued is right out of variable and in the end you example jumping like you don't want that you want jump just once for example not you jump twice because I still have a space by the space what you would use this game you need to check in memory whether or not you are a jump which is a little redundant at some point like you don't have the training the same time it allows you to do is go back in time to change the code and have replay exactly what would happen anyone where's triggers are harder to find a sequence that way so so this rule would reduce to find the ships were you express this graph in the graph they see the game engine handles like passing the data going back and forth in keeping track of what of what the state the game is that 2 point and in that way the chess actually just calculating values so you can be random evidence and I can change the state of the game when which maximize the test it a at this year and to and this 1 the idea was when we even of on the remember that this is 2 games by the variance or have a bunch of schemes and working on 2 of them actually written on the spot on an older version of most useful on this side of the knowledge we haven't actually written out tentatively said that thing that's initiative the background the yellow has a different structure to every from at the I don't have a full example here this example but if you just take intestinal tract of positive data I can save some examples of proteins we have an image of a student you the so the television graphs that like a really called again and again you know the kind of so through the way the way we we have to have a single just a tree structure interaction showed that and then for a particular knowledge you can kind of see where things were thinking about later on action making a visual graph it would be really good so it's always challenging down to screen and it's it's hard like can horizontally really hard in it's hard it's oddly enough not to far conceived and militancy of parts so there are are ideas were kind of focus on 1 chip it but we for example things we can do very easily measured the colleges although we know it what that should thank you all for embedding of alpha and then we can answer if you click on 1 of the things that we can show all those selection you click on 1 of its connections with that see without things so it would allow you to like countries like no 1 else is modifying the memory what else is doing out here and and and really existing and of Americans and the again this is again in and the questions the In the last part of the of the of the of the of the the all right now all these clones data that you have the right there is this value that every year I think for with the mapping that was some really lacks just a vector operations if you have so thinking about using it is really excellent just requires that run also just so you can see this in our language change things around and so we use an approach for example to check that the running out of chances and modified the 2nd thing that comes from the is like I that his profits and had libraries and stuff like that so we should add that the and that kind of thing that some languages but has only just starting at efficient the the build things will be few if the problem