2D Web Breakout Game

Reusing Objects to Evolve from Console to Web

Anti-IF Programming Workshop

Live Online with Francesco Cirillo
January 22 - 23, 2025
Wednesday to Thursday
07:30 AM EST - 11:00 PM EST (New York)
01:30 PM CEST - 05:00 PM CEST (Berlin)
04:30 PM GST - 08:00 PM GST (Dubai)
2 Days | 7 Hours Total | 3.5 Hours per Day

Register

Individual Enrollment

First 2 New Clients: $240 per participant
Next 3 New Clients: $255 per participant
Standard: $525 per participant

Group Enrollment

Small Team (2-4 participants): $315 per participant
Medium Team (more than 4 participants): $262.50 per participant

Is This Workshop Right for You?

This workshop is ideal for senior developers, software architects, and web developers interested in enhancing their design and development skills by learning how to reuse objects and evolve applications from console to web through Anti-IF Programming, Emergent Design, and Test-Driven Development (TDD).

  • You’ll work with a real application: the 2D Web Breakout Game.
  • Starting from a text-based console game (developed in the workshop 2D Text-Based Breakout Game), you’ll learn how to adapt it for the web, transforming it into a fully interactive web-based application. Thanks to the absence of IF statements and the principles of Anti-IF Programming and Emergent Design, you’ll see how code can evolve naturally to meet new requirements without major changes. This approach reduces the need for costly modifications and makes adapting code to different platforms seamless.
  • This workshop emphasizes strategies for object reuse and decentralized design, allowing you to grow flexible, cross-platform applications with ease. The absence of IFs ensures that your code adapts fluidly across contexts, lowering the cost of change in software development.
  • If you’re interested in understanding how Anti-IF Programming and Emergent Design can help you evolve applications smoothly across platforms, maximize code reuse, and minimize the impact of change, this workshop is for you.
Anti-IF Workshop - 2D Arcade Game Development

What Makes This Workshop Unique

In this workshop, Francesco Cirillo demonstrates how Anti-IF Programming, Emergent Design, and Test-Driven Development (TDD) can be applied to evolve a console-based Breakout game to a fully interactive web application by reusing objects effectively.

  • Cross-Platform Evolution
    Starting from a text-based console game, you’ll learn how to adapt objects seamlessly for the web, growing an adaptable, cross-platform application without breaking or rewriting existing code.
  • #NoIFStrategy for Web
    Discover how the Anti-IF Programming techniques and the absence of IF statements foster flexible, decentralized design, allowing your objects to evolve fluidly across contexts and avoid rigid structures.
  • Object Reuse for Adaptability
    Francesco will demonstrate how effective abstractions can grow software by reducing development costs and making the transition from console to web smooth and predictable.
  • Lowering the Cost of Change
    By embracing Anti-IF Programming and Emergent Design principles, you’ll see how to reduce the cost of change, making code that is both robust and easy to maintain as requirements evolve.
  • Interactive Mentoring
    This workshop provides a Mentoring Experience through live discussions and hands-on practice, as Francesco guides you through each step, encouraging collaborative reflection and confidence in making design decisions.

The Challenge

When I decided to create this workshop, I thought about all the times I’ve seen developers face the same dilemma: a product needs to evolve, maybe to a new platform or a different interface, and suddenly, the easy path looks like either starting from scratch or piling up conditional code to handle each variation. “If it’s a console game, do this; if it’s the web, do that.” Soon, you’re buried in a stack of if statements, and every change costs more time, more testing, and more bugs.

But does it have to be this way?

I believe in reusability as more than a nice-to-have—it’s a commitment to respecting our own work, to letting objects prove their flexibility and adaptability. The question this workshop tackles is simple: Does reuse have value? Can we adapt our carefully crafted objects from a console-based game to the web without rewriting or breaking them? Can we keep our objects healthy, avoiding bloat, and make them adaptable for new demands?

That’s the challenge of this workshop. It’s about more than coding a 2D Web Breakout game; it’s about teaching our objects to carry forward, evolve, and stay intact, keeping our costs low and our designs sustainable.

Curious if it's possible to streamline your code effectively? Join us to discover innovative strategies that can transform your programming approach.

Register

Program Outline

Day 1: Setting Up for Web Deployment

Preparing the Game for the Web

Duration: 3.5 Hours

Introductions and Workshop Overview

  • Participants introductions and setting expectations.
  • Overview of the workshop: What to expect over the course of the two days.

Module 1: Compiling to WebAssembly

  • Set up to compile for WebAssembly and configure your development environment.
  • Understand the differences between console and browser-based applications, focusing on performance requirements for web games.

Module 2: Displaying Game Elements on the Web

  • Learn how to render your game elements in the browser.
  • Adapt console-based logic to browser-based rendering, reducing flickering and ensuring smooth transitions.

Module 3: Decentralizing Object Interactions for Web

  • Decentralize game logic further to handle interactions like collision detection without IF statements, suited for browser processing.
  • Code Example: Francesco will show how each object can handle its interactions independently, enhancing performance and modularity.

Day 2: Enhancing the Game with Decentralized Interaction

Adapting the Anti-IF Approach for WebAssembly

Duration: 3.5 Hours

Module 4: Implementing the Paddle and Border in the Browser

  • Add borders and player controls adapted to web-based input.
  • Ensure smooth interactivity, avoiding centralized control with decentralized methods.

Module 5: Decentralized Scoring Mechanism

  • Implement a scoring system that updates independently, making it web-ready and efficient.
  • Refine your TDD approach for web-based scoring to ensure robust and accurate performance.

Module 6: Exploring Advanced Object Behavior

  • Experiment with adding a “bullet” mechanic to replace the ball, demonstrating how modular design adapts to new features effortlessly.
  • Reflect on how Anti-IF principles allow you to introduce new game mechanics with minimal code changes.

Q&A and Wrap-Up (30 minutes)

  • Open forum for participant questions and reflections.
  • Final thoughts and next steps for applying TDD and Anti-IF in practice.
  • Farewell and closing remarks.

Workshop Objectives

Designing for Change: TDD, Anti-IF, and Emergent Design

  • Master WebAssembly: Transition your skills from console-based apps to building performant, interactive web applications.
  • Advance Your Anti-IF and TDD Techniques: Explore more complex Anti-IF programming, seeing how decentralized logic optimizes web performance.
  • Design for Scalable Web Interactivity: Use decentralized object logic to handle real-time game interactions seamlessly within a browser environment.
  • Achieve Decentralized Object Interaction: Build a game where interactions are handled by objects themselves, removing the need for centralized control.

Additional Details

  • Recording Access: Participants will have access to the session recording for 30 days post-workshop.
  • Student Discounts: Students studying software architecture, computer science, or software engineering can email us for a chance to receive a voucher for a full discount on the workshop fee.
  • Limited Spaces: Secure your spot today and start transforming the way you develop software!

Explore the full potential of WebAssembly with Francesco’s expert guidance, creating a game that’s not only web-ready but optimized, adaptable, and resilient to change. Join us to transform your web development skills with Anti-IF programming!

Register $240.00

Anti-IF Workshop

Online Live Course

Join Francesco Cirillo in a live, interactive 7-hour online workshop focused on applying TDD and Anti-IF Programming. You’ll learn how to develop the solution step-by-step without anticipatory thinking.

Direct Interaction

Francesco will personally answer your questions, offering detailed explanations and tailored support.

Access to Recording

Receive access to the workshop recording for one month, allowing you to review the content at your convenience.

Platform: Zoom

Conducted on Zoom, ensuring easy access from anywhere and effective, interactive participation.

Certificate of Participation

Obtain a certificate at the end of the workshop, validating your participation and the skills acquired. Enroll today to transform your understanding of TDD and elevate your programming skills!

Register $240.00

Upcoming Events

TRAINER

...

Francesco Cirillo

Francesco’s journey in software spans over 30 years, influencing startups, corporates, and individual consultants.

A seasoned mentor, he has impacted countless professionals and teams. From his early days with Sun Microsystems to pioneering Agile Methods and creating XPLabs, Francesco's mark on the software industry is profound.

Notably, he's the creator of the groundbreaking Pomodoro Technique, a time management method embraced worldwide, as well as the visionary behind the Anti-IF Programming philosophy, challenging conventional coding practices.

Testimonials

Carlo Garatti

"If your question is about how to write valuable software, this program is for you!! Through one-on-one lessons with Francesco you will learn how to fit the right techniques and tools in the exact phases of the software development cycle. You will fix and apply these ideas in real cases. And, last but not least, in an enjoyable way!"

Alessandro Ruzzon

"What did I like the most? In this workshop the theory part matches up with the practical part. You don't only hear WHAT TO DO but also HOW TO DO IT, and you start practicing it right away in the labs! That's really what the Workshop is about: real-life practice aimed at consolidating theoretical notions. This approach helps in understanding problems"

Break the Chains of Conditionals!