Matching Items (4)
Filtering by

Clear all filters

Description
One of the core components of many video games is their artificial intelligence. Through AI, a game can tell stories, generate challenges, and create encounters for the player to overcome. Even though AI has continued to advance through the implementation of neural networks and machine learning, game AI tends to

One of the core components of many video games is their artificial intelligence. Through AI, a game can tell stories, generate challenges, and create encounters for the player to overcome. Even though AI has continued to advance through the implementation of neural networks and machine learning, game AI tends to implement a series of states or decisions instead to give the illusion of intelligence. Despite this limitation, games can still generate a wide range of experiences for the player. The Hybrid Game AI Framework is an AI system that combines the benefits of two commonly used approaches to developing game AI: Behavior Trees and Finite State Machines. Developed in the Unity Game Engine and the C# programming language, this AI Framework represents the research that went into studying modern approaches to game AI and my own attempt at implementing the techniques learned. Object-oriented programming concepts such as inheritance, abstraction, and low coupling are utilized with the intent to create game AI that's easy to implement and expand upon. The final goal was to create a flexible yet structured AI data structure while also minimizing drawbacks by combining Behavior Trees and Finite State Machines.
ContributorsRamirez Cordero, Erick Alberto (Author) / Kobayashi, Yoshihiro (Thesis director) / Nelson, Brian (Committee member) / Computer Science and Engineering Program (Contributor) / Computing and Informatics Program (Contributor) / Barrett, The Honors College (Contributor)
Created2018-05
147768-Thumbnail Image.png
Description

Procedural content generation refers to the creation of data algorithmically using controlled randomness. These algorithms can be used to generate complex environments and geological formations as opposed to manually creating environments, using photogrammetry, or other means. Geological formations and the surrounding terrain can be created using noise based algorithms such

Procedural content generation refers to the creation of data algorithmically using controlled randomness. These algorithms can be used to generate complex environments and geological formations as opposed to manually creating environments, using photogrammetry, or other means. Geological formations and the surrounding terrain can be created using noise based algorithms such as Perlin noise. However, interpreting noise in this manner has a number of challenges due to the pseudo-random nature of noise. We will discuss how to generate noise, how to render noise, and the challenges in interpreting noise.

ContributorsLi, Michael L (Author) / Hansford, Dianne (Thesis director) / Kobayashi, Yoshihiro (Committee member) / Computer Science and Engineering Program (Contributor, Contributor) / School of Art (Contributor) / Barrett, The Honors College (Contributor)
Created2021-05
131631-Thumbnail Image.png
Description
This Barrett thesis seeks to analyze software design patterns’ effects on a software system. To achieve this, the author specified a game environment that lets users write their own artificial intelligence (AI) algorithms for simulation in the environment. Afterwards, the author designed an architecture implementing the game system and designed

This Barrett thesis seeks to analyze software design patterns’ effects on a software system. To achieve this, the author specified a game environment that lets users write their own artificial intelligence (AI) algorithms for simulation in the environment. Afterwards, the author designed an architecture implementing the game system and designed components implementing the architecture. In software design, engineers use design patterns to develop components since software patterns generally apply to object-to-object interactions; architecture patterns apply to component-to-component interactions, and while they greatly influence software design, they are out of this project’s scope. To design the objects comprising this thesis system's event-driven model-view-controller (MVC) architecture, the author used the Adapter pattern to interface with other libraries, the Publisher-Subscriber pattern to pass information between objects, the Singleton pattern to enforce the existence of single state objects, the Dependency Injection pattern to build generic and composable functions, the Observer pattern to directly alert objects of observed objects’ changes, the Factory pattern to abstract object initialization, the Monad pattern to express complex computations without explicit branch control logic, and the Facade pattern to unite the game objects’ disparate interfaces into a single interface for AI developers. The implementation, integration, and synthesis of these pre-existing design patterns is the primary contribution of this project. After designing the software system, the author implemented the design using the TypeScript programming language, the Babel transpiler, the Webpack code bundler, and the Babylon.js graphics library. The author then performed a static evaluation on the implemented game system files by describing the overall dependency hierarchy and measuring each file’s lines of code, maintainability index, cyclomatic complexity, and Halstead difficulty score. Furthermore, the author compared these measurements with those collected from the Babylon, Phaser, and Lodash JavaScript libraries. The goals for reporting these measurements were to help show the game’s design enabling the system’s maintainability, usability, and expandability quality attributes and underscore software development as a creative and artistic discipline grounded in computational science. This thesis highlights the need for further research including developing methods with tools for evaluating behavioral aspects of design patterns relative to their quality attributes.
ContributorsDuke, Thomas Carlin (Author) / Sarjoughian, Hessam (Thesis director) / Kobayashi, Yoshihiro (Committee member) / Computer Science and Engineering Program (Contributor, Contributor) / Barrett, The Honors College (Contributor)
Created2020-05
132671-Thumbnail Image.png
Description
While there are many existing systems which take natural language descriptions and use them to generate images or text, few systems exist to generate 3d renderings or environments based on natural language. Most of those systems are very limited in scope and require precise, predefined language to work, or large

While there are many existing systems which take natural language descriptions and use them to generate images or text, few systems exist to generate 3d renderings or environments based on natural language. Most of those systems are very limited in scope and require precise, predefined language to work, or large well tagged datasets for their models. In this project I attempt to apply concepts in NLP and procedural generation to a system which can generate a rough scene estimation of a natural language description in a 3d environment from a free use database of models. The primary objective of this system, rather than a completely accurate representation, is to generate a useful or interesting result. The use of such a system comes in assisting designers who utilize 3d scenes or environments for their work.
ContributorsHann, Jacob R. (Author) / Kobayashi, Yoshihiro (Thesis director) / Srivastava, Siddharth (Committee member) / Computer Science and Engineering Program (Contributor) / Computing and Informatics Program (Contributor) / Barrett, The Honors College (Contributor)
Created2019-05