Loading video...

Video Failed to Load

Go Home

I think I've pushed Figma's new Variables and Advanced prototyping to its limit... I present a fully working version of Flappy Bird!! 🔥 Featuring: - Scoring + highscores - Pseudo-randomised pipe placement - Physics based movement - Uses 46 variables #Config2023

1,146,613 views • 3 years ago •via X (Twitter)

10 Comments

Dave Williames's profile picture
Dave Williames3 years ago

Most of this is done by creating a component to work as the game loop, infinitely swapping between two variants every few milliseconds. Each variant holds a "logic" component which will automatically run a bunch of conditions and set variables each step of the game loop.

Dave Williames's profile picture
Dave Williames3 years ago

To move the position of the bird, I mapped the bottom padding of an Auto Layout frame to the 'yPosition' variable.

Dave Williames's profile picture
Dave Williames3 years ago

Just published the file for this now!

Florian Schulz's profile picture
Florian Schulz3 years ago

@figma Okay I need to digest this for a minute 😱 Not sure I’d have the patience to click all this together myself, but it definitely shows how powerful the new feature is. Thanks for sharing!

Andrei Iancu's profile picture
Andrei Iancu3 years ago

@figma Did you start making this after config, or early access? 👀 If you've done this in ~1 week, then I'll take it as a proof that the 👽 are among us. 😆

Dave Williames's profile picture
Dave Williames3 years ago

@figma Haha, thanks Andrei! 🙌 I didn't have early access at all, I just fiddled around for a couple of hours across the weekend to make it work.

vijay verma's profile picture
vijay verma3 years ago

@figma This is amazing. I'm on it to creating a Farming game :)

Nour Sofanati's profile picture
Nour Sofanati3 years ago

@figma Figma is turing complete now.

Chris Frantz's profile picture
Chris Frantz3 years ago

@figma Dev mode on this thing will be wild

Charles Patterson's profile picture
Charles Patterson3 years ago

@figma God mode activated

Related Videos

👀 I used OpenAI's Code Interpreter to make Flappy Bird 🐦in 7 minutes: Code Interpreter/GPT-4 for code generation. Pre-existing or AI-generated assets for graphics. --- Here's how to make the game in only 6 steps: (1): Enter the following prompt: "write p5.js code for Flappy Bird where you control a yellow bird continuously flying between a series of green pipes. The bird flaps every time you left click the mouse. If the bird falls to the ground or hits a pipe, you lose. This game goes on infinitely until you lose and you get points the further you go". (2): Use generative AI or existing game assets and spirits. I searched "flappy bird assets" on Google and used the first link, a GitHub repo with pngs from the original Flappy Bird. (3): Use this prompt to link assets to the code: "Please generate the entire file again based on the fact I'm using a unique background, spirits for the bird, and pipes. Here is the list of assets I'm using: [list of file names]." Code Interpreter should modify the code accordingly to include the list of file names. (4) Make an account OpenProcessing -> create a sketch -> paste in the code generated by Code Interpreter -> upload in-game assets from step (2). (5) (Optional) Ask ChatGPT to make changes to improve the in-game experience e.g., adding a high score, restarting the game when the bird dies, etc. Copy the new code into your OpenProcessing sketch and reload the game. (6) If something doesn't work, ask GPT4 to fix it. Copy and paste the error message and ask it to regenerate the code. --- Bonus Tips: - Iteratively test code. Each time you make a change using Code Interpreter, test the updated code by playing the game so you catch new bugs early. - Learn programming by asking questions: "Act as a senior programmer very good at explaining concepts to a beginner. Tell me how gravity works in this game and how you used code to make this happen."Code Interpreter/GPT4 for code generation. Download Pre-existing assets or generate new images for graphics. Excited to see what you make!

Alex Ker 🔭

739,874 views • 3 years ago

Another week, another attempt by woke academics to push sex pseudoscience. In my video, I explain why a new paper in Neurotoxicology claiming that "sex is a spectrum," a "mosaic of factors," and a "conglomeration of variables" isn't just wrong, but totally self-refuting. It tries to argue that the term "sex differences" is an "underdefined generalization that creates a distinct binary" when sex is actually a "spectrum." So instead of saying "sex differences," the authors propose a new term: "Sex-Associated Variables," or SAVs. These SAVs, according to the authors, include morphological, genetic, and endocrine factors. The authors state that "The use of SAVs allows for a more nuanced analysis of potential sex differences by using several different sex related characteristics as a defined variable that can be correlated with outcomes, rather than a reductive category." But ask yourself this: How do the authors know which variables are "associated" with being male or female without knowing what males and females are independently of these SAVs? The entire point of the paper is to deny a gamete-based view of sex on grounds that it is overly "reductive" and fails to capture the complexity of sex differences. But the authors are totally oblivious (or at least willfully ignorant) to the fact that their ability to assign SAVs to a particular sex, not just in humans but in non-human animals as well, necessarily presupposes the validity of the gamete-based view of sex. Watch the video for a more detailed breakdown. I've covered this argument, and many others, in great detail in my scholarly paper "Why There Are Exactly Two Sexes." If you want a solid framework that exposes the central flaws in woke pseudoscience surrounding biological sex, I strongly recommend reading it. It's open access and relatively short. Why There Are Exactly Two Sexes:

Colin Wright

38,173 views • 3 months ago

Faster, Jesus! Kill! Kill! Col. Wilkerson: I think the U.S. military, especially in its present configuration, which I call mercenary, has still got enough of its American nature, if you will, and there are still enough people in there—I don’t know what the percentage is, but it’s much more than I thought—who think this is a holy war. They think they’re going to war for Jesus and for God, and they think Pete Hegseth is the manifestation of that at the highest rank in their department. I don’t know how many it is; I wish I had some idea of just how many it is, but I know that it’s in all the ranks, all the way from private to four-star general, and I know that it is being pushed every day in the Pentagon. Even tomorrow, I think, or the next day, they’re having another prayer meeting. He’s having about one or two prayer meetings a week in the Pentagon, calling people in, and the more you listen—I’ve had a couple of tapes sent to me—the more you listen to his prayers and his comments in these prayer meetings, the more you hear, in the back of your mind, if you will, this plaintive cry from Hegseth himself, that God is on his side. Almost like he’s begging God—divine providence, although he doesn’t use those terms; it’s Jesus and Jesus and Jesus—he’s begging them to be on his side, to help him, to help all the soldiers and sailors and airmen and marines. That’s the way he presents these meetings and gets down on his knees and prays. This is very new to me, and I think I’m right in saying, very new to the Department of Defense or war.

🅰pocalypsis 🅰pocalypseos 🇷🇺 🇨🇳 🅉

18,949 views • 5 months ago

AOC: "Think that Prime Minister carney's remarks that the World Economic Forum were, um, were words that run around the world in raising this question. But I think that also, in his remarks, as long and as well as part of this larger conversation, there was this undertone, this undercurrent, this suggestion that it was a rules, based order sometimes. And I think that that is the, the issue that lies before us is that in a in a so called rules, based order, the rules for whom, because for all too long, the rules only applied to the United States, europe, its allies, and we would carve out exceptions for the global South. And I think that when you have a rules, based order where you carve out exceptions to our values, exceptions to our rules, eventually the exceptions become the rules. And I think that, to your original point, over the last five years, we've seen such a breaking and such a fraying of these alleged Western values that people wonder if it ever existed in the first place. So I don't know if it's necessarily that we were in a post, if we are in a post, rules based order, I think it's possible that we were in a pre rules based order, and we have an opportunity to explore what a world would look like if we upheld democracy. Human rights, trade that actually centers working class people, instead of accruing overwhelmingly the benefits of trade to the wealthiest Um. But if we reoriented a new era that could actually help people and show how foreign policy and healthy foreign policy can show up and help them in their lives."

Winter

794,575 views • 7 months ago

🧱 #Live3D #Live2D #HandTracking 🧱 I spent some time refining the way I use Warp Deformers to create lateral physics-based swinging motion in Live2D. With a new production concept, I tried to achieve the highest possible level of mathematical precision. At the core are two fundamental swinging structures, which I can mix in different proportions to create different qualities of motion. The first is parallel swinging. Both sides of the Warp Deformer remain perfectly parallel throughout the motion, making it look somewhat like a sheet of paper or a tassel. The second is bending swinging. The angle between the two sides of the Warp Deformer changes as it moves, making it look more like a flexible tube or a tail. (0:12)Interestingly, when I layer the first and second structures together, the bottom forms an X-shaped pattern as it swings. It looks a little like a spine or some kind of mechanical structure. (0:23)The third structure is an equal blend of the first and second. Its characteristics are much more neutral, combining the qualities of both. (0:35)The fourth and fifth structures are created by smoothly blending the first structure into the center of the second, and the second into the center of the first, respectively. This makes them appear softer and more flexible, somewhat like a piece of fabric. (0:28)Interestingly, when I blend the fourth and fifth structures equally, the result is exactly identical to the third structure. This also demonstrates that, despite their apparent complexity, the two are actually perfect mirror images of each other. Every physics-based motion shown here uses a two-segment pendulum structure, with a swinging range of ±90°. In theory, when curled to its limit, it can bend upward into a perfect semicircle. To most people, this may look as boring as a brick. But to me, this is exactly where the romance of Live2D physics lies. Does anyone else feel the same way?

📐Hephaestus📏Live2D匠人魂

20,793 views • 1 month ago

How being in GMMTV shaped Gemini's personality 🤍 GEMINI CONCERT PRESS TOUR #GeminiConcertLive #GeminiConcert ♊️: Before I entered the industry, I felt like I was living in a bubble, like I was stuck inside a small box and didn't really know what the outside world was like. My life was basically just school and home. My parents would take me to school, then I'd come home, then school again, then home again. That was pretty much my whole life. I never really went anywhere ♊️: So when I came into GMMTV, it felt like my world really opened up. I started learning what working life is like, what the outside world is like, and how people live. At that time I was the youngest one, and most people around me were all older seniors, so I learned a lot from them, how they live, how they work, how they carry themselves. I feel like I grew up a lot because of that. I feel like I understand the world more now. And all of those experiences, working, meeting fans, meeting new people almost every day, have continuously shaped who I am ♊️: So if you ask whether I've changed, yes, I definitely have. But I think it's been a good change. I actually like this version of myself more than the one I used to be before ♊️: Back then, I used to be super extroverted, really, really extroverted. But after entering the industry, I feel like I became more introverted. Not to the point that I'm completely introverted, but I definitely think I've become more reserved and more private than I used to be

𝒜𝒹ℯ𝓁 🪐🤍

17,244 views • 2 months ago

We built recursive meta-intelligence, an AI that creates its own scientific instruments, turns them into persistent worlds that an agent ecology with hundreds of AIs inhabits, and uses those worlds to discover mechanistic principles in one of the hardest classes of physical problems: how complex hierarchical materials (nested structures of matter that give rise to new function through organization) evolve and fail. The AI reasons across enormous spaces of possible physical trajectories, where every rupture changes what can happen next, and compresses those histories into principles (which humans can understand and design with) - complex chains of causal events, highly nonlinear, and intricate. Scientific superintelligence is tangible here - machine-scale exploration opening cognitive channels into complexity that has been extremely difficult for humans to traverse directly. AI builds the spaces in which its next level of reasoning becomes possible; a representation becomes an instrument, the instrument becomes an executable world, and that world becomes the substrate for further intelligence. Intelligence then grows by constructing new spaces to think in. The task we explored started from a seemingly simple prompt to explore a biological material system - the AI then chose the representation, mechanics and experiments, built a fracture laboratory to push materials to their limit, tested hypotheses and generated scientific conclusions. The swarm explored a combinatorial universe in which architecture controls function and every rupture changes the future state of the material. The AI discovered a compact principle that defines how multiscale material architecture can program the evolution of failure. Material placement and geometric order determine how forces redistribute, whether damage cascades or remains distributed, and whether function survives substantial flaws. For this discovery to happen the AI had to reason across long path-dependent histories, simulate alternative futures and compress them into generative invariants (model-based causal reasoning, counterfactual simulation and temporal abstraction applied to an evolving physical world). It is incredible to witness this transition to a new form of intelligence and capability through scaling swarms. A lot of positive will come out of this because it expands the human epistemic horizon as AI can traverse thousands of possible histories and return mechanisms compact enough for us to understand, test and build from. Intelligence compounds through its artifacts! A few lessons we learned: ▶️ Learning and discovery are flows through spaces of possibility. Early work has shown how backpropagation flows through parameters, reinforcement learning through action and consequence, and autonomous swarms through representations, instruments and executable worlds, bringing it all together. Flows create structure; structure redirects future flows in the recursive instrument. ▶️ Nonlinear physics actually defines a larger principle, where high-dimensional dynamics generate stable invariants; invariants become effective variables; those variables become the substrate for a new level of cognition. ▶️ Recursion then becomes level creation - one possibility space compresses into a principle, and that principle opens a larger space above it.

Markus J. Buehler

272,156 views • 13 hours ago

Why the character movement in my custom game engine felt janky and how I fixed it. In a game engine, most often, a character moves using the physics engine. Meaning, the player is not just a coordinate in space but a physical body. It has velocity, it handles collisions, and it interacts with the world. Now, as you might know, physics engines need stability. If you run them at variable framerates, things start breaking. Objects phase through walls or fly off into space because the math becomes unpredictable. This is why most game engines lock their physics loop to a 60Hz fixed rate. But here’s the problem: If you have a high-end system, you don't want to limit it at 60 FPS. That's a waste of good hardware. Now, that said, if the GPU is rendering at 144 FPS but the player's position (physics driven) only updates 60 times a second, it creates a micro-stutter that ruins the "smooth" feel of the game. A good way to fix this is to treat the character as two separate things: 1. The Physics Body (Invisible part): This is the "real" character. It lives in the 60Hz physics world, it moves the player and handles collisions. 2. The Visual Model and Camera (Visible part): This is what the player actually sees. It doesn't care about collisions, its only job is to look nice and smooth at whatever framerate the GPU is pushing. Once you have this separation, you can use interpolation to keep them in sync. Every time the physics clock ticks, you save the previous position of the invisible body before moving it to the new one. Between those ticks, calculate how far we are between the last physics update and the next one. By using this to drive the visible parts of the game, the stutters disappear. The physics loop stays fixed behind the scenes, while the visuals slide smoothly between the snapshots. Example: - Right after a tick: blend_weight= 0.0 (The visual model stays at the old physics position). - Halfway to the next: blend_weight= 0.5 (The visual model slides to the middle point). - Just before the next: blend_weight= 0.9 (The visual model is almost at the new physics position). Pro-Tip A critical mistake I made initially, and one many devs make, is parenting the camera and visible parts directly to the player body. If you do this, the camera inherits the discrete 60Hz physics movement by default. In that setup, interpolation won't work because the camera is "stuck" to the physics clock. For this fix to work you must decouple the camera and visuals from the body and move them separately. Player movement processing in Detis Engine: - fixed_process: Physics runs at 60Hz. Handles collisions and raw movement. - process: Variable rate. Mainly used for player input caching in the player case. - late_process: Variable rate. Handles interpolated camera movement after physics and everything else is done being processed. - render. Submits the final interpolated transforms to the GPU. The test environment in the video is running on an old 2070-based laptop. Hopefully the video compression won't introduce any stutter... I’m sharing this in hopes it helps a fellow dev. Cheers.

Ioannis Koukourakis

48,703 views • 8 months ago