Browsing by Author "Aycock, John"
Now showing 1 - 20 of 66
Results Per Page
Sort Options
Item Open Access A Modder’s Guidelines for Moddable Game Development(2024-04-19) Crémer, Loïc; Finn, Patrick; Aycock, John; Maurer, Frank; Clyde, JerremieThe act of unofficially modifying a video game known as modding may convey a range of benefits to its host game, including an expanded sales lifetime and a vision of what a game may have looked like had developers made different choices, among others. In this thesis, I make a case for this beneficial nature of modding and develop a set of guidelines for developing moddable games with the aim of shifting industry perspectives towards the practice, which tend to be mixed, toward a more positive outlook and help mod-encouraging studios provide a better modding experience to their users. This set is built on four pillars, each representing a stage in the development of a moddable game: Designing a moddable game, creating robust tools, writing effective documentation, and supporting the community. I created these guidelines using data collected from an autobiographical design study, wherein I became a modder myself and built modifications for three video games: Nintendo’s Pokémon FireRed Version, Bethesda’s The Elder Scrolls V: Skyrim, and Defiant Development’s Hand of Fate 2. After writing the set, I then created a proof-of-concept tool in line with two of its principles to demonstrate what an idealized modding tool based on my research might look like. These guidelines outline what makes a game more moddable, what makes a good modding tool, and how best to support a moddable game after launch. It is my intention that this thesis demystifies the process of creating moddable games and that the lessons learned in this project can prove useful to modders, researchers, and professional developers alike.Item Open Access AGATE: UNIFYING LANGUAGES AND OPERATING SYSTEMS(2002-05-01) Aycock, JohnAgate is a novel operating system which unifies disparate areas such as compiler construction, operating systems, data compression, formal languages, inter-process communication, and program representation. It does this through a somewhat unusual means: context-free grammar rules. We describe the ideas underlying AGATE and our current prototype implementation.Item Open Access Anti-Disassembly using Cryptographic Hash Functions(2005-07-18) Aycock, John; deGraaf, Rennie; Jacobson Jr, MichaelComputer viruses sometimes employ coding techniques intended to make analysis difficult for anti-virus researchers; techniques to obscure code to impair static code analysis are called anti-disassembly techniques. We present a new method of anti-disassembly based on cryptographic hash functions which is portable, hard to analyze, and can be used to target particular computers or users. Furthermore, the obscured code is not available in any analyzable form, even an encrypted form, until it successfully runs. The method s viability has been empirically confirmed. We look at possible countermeasures for the basic anti-disassembly scheme, as well as variants scaled to use massive computational power.Item Open Access Attack of the 50 Foot Botnet(2006-08-17) Vogt, Ryan; Aycock, JohnThe trend toward smaller botnets may be more dangerous in terms of large-scale attacks like distributed denials of service. We examine the possibility of super-botnets, networks of independent botnets that can be coordinated for attacks of unprecedented scale. For an adversary, super-botnets would also be extremely versatile and resistant to countermeasures. Our simulation results shed light on the feasibility and structure of super-botnets and some properties of their command-and-control mechanism. Possible defenses against the threat of super-botnets are suggested.Item Open Access Automatic generation of network servers(2005) Wilson, Kelly; Aycock, JohnItem Open Access Babel: A Secure Computer is a Polyglot(2012-06-13T22:23:58Z) Aycock, John; Castro, Daniel Medeiros Nunes de; Locasto, Michael; Jarabek, ChrisWhy should a user’s computer be trusted at all? We propose a new model of the computer, Babel, that makes a user’s computer appear as it normally would, but is actually untrusted to the point where it cannot run the code installed on it. Each computer, each process, speaks a different language, and a translator on the network is needed to allow a user’s computer to execute code. This has enormous implications. The user gets continuous protection, and multiple kinds of protection, with no need for security updates or patches. At the same time, the user effectively has an adjustable control that they can set based on their risk assessment and need for privacy. Babel can work perfectly well alongside existing systems, and opens new markets for security.Item Open Access Black Market Botnets(2007-07-24) Friess, Nathan; Aycock, JohnBotnets have yet to be exploited to their full potential, because they have yet to take advantage of all the information available to them. The zombie computers that comprise a botnet have access to the private documents of the people that use the computers. A botmaster who controls the botnet can harvest the documents and sell them to third parties, creating a viable if illegal online business. We outline motivations for such a business model, as well as the mechanics of a possible implementation. We then present a variety of defenses against this scenario.Item Open Access A BRIEF HISTORY OF JUST-IN-TIME(2001-08-08) Aycock, JohnSoftware systems have been using ``just-in-time'' compilation (JIT) techniques since the 1960s. Broadly, JIT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JIT compilation, constraints imposed on JIT compilation systems, and present a classification scheme for such systems. This classification emerges as we survey forty years of JIT work, from 1960-2000.Item Open Access A Campus-Level View of DNS Traffic(2019-07-26) Zhang, Zhengping; Williamson, Carey L.; Arlitt, Martin F.; Williamson, Carey L.; Arlitt, Martin F.; Ghaderi, Majid; Aycock, JohnThis thesis presents a characterization study of DNS traffic within the University of Calgary edge network. The traffic analysis is based on a one-week period of observation (from September 3, 2018 to September 9, 2018). We study the two directions (outbound and inbound) of the DNS traffic, representing the two roles that the campus plays in the DNS architecture, namely a user and a service provider. We selectively analyzed the traffic of a few campus DNS servers. In addition, we also examine several DNS-related anomalies. The measurement results show that a significant proportion of DNS messages come from misconfigurations or answers with short TTLs, which can both be improved to reduce the DNS traffic volume.Item Open Access Can program code be presented in a more aesthetically pleasing fashion?(2008) Nielsen, Margaret Frances; Aycock, JohnItem Open Access Characterization of Periodic Network Traffic(2017) Haffey, Mackenzie; Williamson, Carey; Arlitt, Martin; Williamson, Carey; Arlitt, Martin; Aycock, John; Fong, PhilipThis thesis focuses on characterizing periodic communications in network traffic, which we refer to as network heartbeats. Heartbeat traffic can be used to assess the overall health of an operational network, based on the presence/absence of heartbeats for known network services, and also to detect unexpected/undesired network services, such as malicious traffic. We use a simple and flexible SQL-based method to detect a wide range of heartbeats in network traffic, using seven weeks of connection logs from a campus edge network. Our results show that heartbeat analysis is effective for detecting P2P, gaming, cloud, scanning, and botnet traffic flows, which often have periodic signatures.Item Open Access A Collusion of Treasured Tweeds: The TransforMitt Compendium(2012-09-04T16:50:03Z) Aycock, JohnThroughout August 2012, I embarked on an art project: parodying the tweets of Mitt Romney during his 2012 election campaign. The parodies were computer-generated and the transformed tweets were posted to a Twitter feed called “TransforMitt” that I had set up for this purpose. While the project will be written up from a higher-level point of view later, the purpose of this report is simply to document the project so that a permanent record exists.Item Open Access Computational Media Design: Using Graph Data to Improve Non-Player Character Acting in Games(2023-09-14) Brierley, Owen Douglas; Finn, Patrick; Jacob, Christian; Aycock, John; Sengupta, Pratim; Zhao, Richard; Leblanc, Jean-Rene; Guzdial, MatthewThis thesis uses graph databases to enhance non-player character (NPC) behavior in computer games. The approach is tested in three discrete projects by developing and using the Neo4jConnector, a custom toolkit enabling novel bi-directional communication between real-time simulation data and server-based graph database long-term storage. The first project demonstrates the Neo4jConnector’s use in recording player movement as graph data and facilitating NPC movement playback from this data. The second project explores improving NPCs’ non-deterministic behaviors through q-learning, a reinforcement learning algorithm, and storing the resultant graph data in the server-based database. The third project investigates dynamically loading 3D geometry from a graph database in multi-scale cellular simulations, supporting intricate bioinformatics simulations necessitating non-deterministic agent actions. Emphasizing an artist’s approach to Computational Media Design, the research targets animators, game makers, bioinformatics researchers, and the growing field of games research. Through an elaborative design process, the thesis showcases the value of incorporating graph databases in game production environments, offering new opportunities to create more realistic and adaptive NPC behaviors that boost player engagement and improve the quality of simulations for future research.Item Open Access Cryptalphabet Soup: DPFs meet MPC and ZKPs(2023-09-22) Storrier, Kyle; Henry, Ryan; Aycock, John; Reardon, Joel; Henry, RyanSecure multiparty computation (MPC) protocols enable multiple parties to collaborate on a computation using private inputs possessed by the different parties in the computation. At the same time, MPC protocols ensure that no participating party learns anything about the other parties’ private inputs beyond what they can infer from the computation’s output and their own inputs. MPC has wide ranging applications for privacy protecting systems. However, these systems have been plagued by limited performance, lack of scalability, and poor accuracy. In this thesis, we demonstrate several novel techniques for using distributed point functions (DPFs) in combination with MPC to obtain significant performance improvements in several different applications. Namely, using novel observations about the structure of the most efficient available DPF construction in the literature, we show that DPF keys from untrusted sources can be checked for correctness using an MPC protocol between the two key holders, with direct applications in sender-anonymous messaging. We expand these observations to produce the most efficient available method to evaluate piecewise-polynomial functions, also known as splines. The scalability and efficiency of this method allows for splines to be used for extremely high accuracy approximation of non-linear functions in MPC. Furthermore, the protocols proposed in this thesis far outperform prior solutions both in large-scale asymptotic measurements and in concrete benchmarks using high-performance software implementations at both small- and large-scale.Item Open Access Cyborg Reading: Transmedial Digital Poetry and the Cyborg Milieu(2022-06) Flemmer, Kyle; Ullyot, Michael; Camara, Anthony; Aycock, John; Ullyot, MichaelThis study gives an overview of digital poetry as a transmedial creative practice calling for a transdisciplinary approach to literary criticism. It covers a range of digital compositional tools, from text generation and 3D printing to virtual and extended reality techniques, from the perspective of a critical posthumanism informed by cyberfeminist reading practices. The study consists of three parts and combines analytical strategies from several research methodologies—including autobiographical literary criticism, critical code studies, media-specific analysis, and research-creation—into a hybridized literary criticism responsive to the parameters of the poem at hand. The first chapter addresses poetry produced or consumed with a computer, arguing that computer mediation fundamentally alters the relationships between readers, writers, and literary texts. The second chapter takes up the influence of materiality on readers’ apprehension and interpretation of digital poetry and demonstrates the significance of features falling outside the domain of conventional literary criticism, like source code and interface design. The final chapter situates digital poetry in a wider cybernetic milieu that encourages readers to look beyond the poem as a singular artifact or experience. These arguments support my conclusion that reading critically ought to be treated as a modular, transdisciplinary practice. Cyborg reading fosters digital transliteracy: a confluence of reading, writing, and social skills necessary in an increasingly participatory culture. The ability to recognize and interpret meaning across a range of media and disciplines is of high value in an ever-changing and multivalent media ecology. By putting autobiography into dialogue with close readings of digital poetry and the discourse surrounding it, I position transliteracy, not as a revolution in literary criticism or a call to reform academic institutions, but as a form of literacy already incumbent on contemporary readers and writers.Item Open Access Detecting email forgery(2011) Lin, Eric; Aycock, JohnItem Open Access Does Domain Highlighting Help People Identify Phishing Sites(2010-10-05T14:52:52Z) Lin, Eric; Greenberg, Saul; Trotter, Eileah; Ma, David; Aycock, JohnPhishers are fraudsters that mimic legitimate websites to steal user’s credential information and exploit that information for identity theft and other criminal activities. Various anti-phishing techniques attempt to mitigate such attacks. Domain highlighting is one such approach recently incorporated by several popular web browsers. The idea is simple: the domain name of an address is highlighted in the address bar, so that users can inspect it to determine a web site’s legitimacy. Our research asks a basic question: how well does domain highlighting work? To answer this, we showed 22 participants 16 web pages typical of those targeted for phishing attacks, where participants had to determine the page’s legitimacy. In the first round, they judged the page’s legitimacy by whatever means they chose. In the second round, they were directed specifically to look at the address bar. We found that participants fell into 3 types in terms of how they determined the legitimacy of a web page; while domain highlighting was somewhat effective for one user type, it was much less effective for others. We conclude that domain highlighting, while providing some benefit, cannot be relied upon as the sole method to prevent phishing attacks.Item Open Access DYNAMIC REGION INFERENCE(2002-12-06) Pereira, David; Aycock, JohnWe present a garbage collection scheme based on reference counting and region inference which, unlike the standard reference counting algorithm, handles cycles correctly. In our algorithm, the fundamental operations of region inference are performed dynamically. No assistance is required from the programmer or the compiler, making our algorithm particularly well-suited for use in dynamically-typed languages such as scripting languages. We provide a detailed algorithm and demonstrate how it can be implemented efficiently.Item Open Access EEIA: The Extended Efficiency Improvement Advisor(2018-07-25) Nygren, Nicholas; Denzinger, Jörg; Aycock, John; Kattan, LinaIn the past, the Efficiency Improvement Advisor (EIA) has been successfully applied to several dynamic problems. By learning recurring tasks, it was able to correct inefficient behavior in multiagent systems. We present an extension to the advisor which allows certain known-ahead knowledge to be exploited. This extension unobtrusively guides autonomous agents to follow a plan, while retaining the dynamic abilities of those agents. Unlike other similar approaches which introduce planning functionality, this does not require always-on communications. The extended advisor’s planning abilities work in tandem with the original learning abilities to create additional efficiency gains. The abilities of the extended advisor (including the introduction of planning, the preservation of dynamism, and mixing certain knowledge with learned knowledge) are evaluated in 2 different problem domains. First, the advisor is applied to the familiar arcade game: Whack-a-mole. Then, Pickup and Delivery is considered, which is similar to coordinating a taxi service.Item Open Access Efficient Extension of a Software Analysis Framework to Additional Languages(2023-07) Soltanpour, Shahryar; Walker, Robert James; Aycock, John; Oehlberg, LoraIn the current era of software development, multi-language codebases are common, and change propagation in these codebases is challenging. The existing change propagation tool ModCP is a solution that can assist software developers with propagating changes across several languages, but only one at a time. However, ModCP has some architectural problems in that make supporting new languages hard to develop and maintain for a long time. In addition, supporting change propagation across code snippets consisting of a programming language embedded inside a different programming language would be a useful feature for ModCP. To achieve this, we must detect the embedded code snippets in a code being analyzed by ModCP. In this thesis, we develop a new, more efficient architecture for ModCP, involving a single abstract model that each language extends for its usage, resulting in complete isolation between language results. We compare our approach with a baseline version that uses the same, concrete model for all languages and adds new models when necessary. Our approach reduces code complexity and development time and makes code more compatible with best practices of development compared to the baseline. Moreover, we design a system for ModCP to guess and validate the programming language used in code snippets, based on the initial detection of keywords, as input to execute change propagation for multi-language codes embedded inside each other. We compare our keyword detection approach with existing deep learning and brute force approaches and show that our method is the best choice if accuracy, performance, and scalability are needed simultaneously.