Compile-Time Event Binding for Game Scripting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing game development tools require complex and inefficient methods for non-technical designers to script gameplay actions, often relying on runtime reflection that negatively impacts performance due to excessive processing time and garbage generation, especially in constrained environments like web browsers and mobile devices.

Innovation Solution

A scripting tool that binds an event class for a tagged event handler at compile time, eliminating the need for runtime reflection by injecting binding code and using static annotations to create a 'plug-and-play' event system, allowing game designers to select events, conditions, and reactions for objects, reducing redundancy and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If runtime reflection is used to bind event handlers, then ease of operation for non-technical designers is improved, but performance deteriorates due to excessive processing time and garbage generation

Engineering Contradiction:
Improveease of scriptingVSAvoidperformance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary action by performing event handler binding at compile time rather than runtime. The compiler resolves method references and binds event handlers during the compilation phase, eliminating the need for runtime reflection. This preliminary binding action occurs before the game executes, resolving the contradiction by achieving ease of operation through visual scripting while maintaining performance through compile-time resolution.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If compile time binding is used, then performance is improved by reducing runtime overhead, but device complexity increases due to code injection and static annotation requirements

Engineering Contradiction:
ImproveperformanceVSAvoidtool complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer in the form of a code injection framework that sits between the visual scripting tool and the game engine. This intermediary handles the complexity of compile-time binding by automatically injecting binding code and managing static annotations. The intermediary absorbs the device complexity requirements, allowing the visual scripting tool to remain simple while achieving compile-time binding for improved performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If visual scripting tools are provided, then ease of manufacture for game designers is improved, but productivity decreases due to redundancy in event handling code

Engineering Contradiction:
Improveease of game developmentVSAvoiddevelopment efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies universality by creating a unified event handling system where a single event handler can respond to multiple event types through inheritance and polymorphism. The base event handler class can be reused across different event types, eliminating redundant code. This universal approach improves ease of manufacture by providing visual scripting capabilities while enhancing productivity by reducing code redundancy through inheritance-based event handling.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20240207740A1Game designer tool for scripting complex gameplay actions
Publication Date: 2024.06.27 DISCORD INC
  • US20240207740A1 patent drawing
  • US20240207740A1 patent drawing
  • US20240207740A1 patent drawing

AI summary

The present technology provides a scripting tool, built on top of an object component architecture of a game engine for creating games, that binds an event class for a tagged event handler in code at compile time. The event handler in code is tied to movement of one or more objects and associated effects within a game environment. Through the scripting tool, game engineers generate and define an event handler in code for the designers to discover and add various other effects to in forming gameplay sequences. The game designers tag the event along with the other effects, and at compile time, forming an event class including the tagged effects.