Master Thesis

Total Page:16

File Type:pdf, Size:1020Kb

Master Thesis UNIVERSITY OF OSLO Department of informatics Generating gameplay scenarios through faction conflict modeling. Master thesis Marius Brendmoe 1. August 2012 Abstract A gameplay scenario can be defined as a series of events that emerge from a given context. These events can potentially be influenced by the player through gameplay, which results in meaningful interaction with the simulation. Creating gameplay scenarios in computer games and training simulators is an immensely expensive and time consuming undertaking. A common trait for most scenarios created is that they tend to be static. Once a player has completed the scenario once, he knows exactly how it will behave the next time, reducing or removing the replay value of the gameplay scenario. This thesis investigates how artificial intelligence techniques can be used to define virtual worlds and interaction between entities, such as virtual humans, to dynamically generate gameplay scenarios by simulating the conflict between entities as they clash over conflicting interests in the world. The first part of this thesis introduces the vast field of artificial intelligence, how it is usually applied in games, and how new concepts are slowly trickling into the field of game artificial intelligence. Topics introduced include crowd simulation techniques, agent simulation and how one can describe arbitrary virtual worlds through the use of semantics, smart objects and fuzzy logic. The second part describes the practicalities of the implementation. Here, the game engine used to develop the prototype game world is presented and compared to other alternatives. Next, the design and implementation details of the proof of concept implementation, called the “Faction Interaction Framework”, are described in detail. The design allows for quickly defining the important resources, actions, and potential interactions between entities in a virtual world. Finally, the implementation can be run as an add-on to a virtual world, which can be used to drive scenario generation through conflict simulation. The work presented in this thesis provides a proof of concept solution for dynamically generating gameplay scenarios. By providing game developers with a pattern for defining the elements of their virtual world that is the source of conflict, the “Faction interaction framework” provides an approach to have the virtual world autonomously generate myriads of gameplay scenarios depending on user input. This has potential application especially to large, open world games, massively multiplayer online games and training simulators, where the generation of novel gameplay scenarios is challenging due to the large amount required. 1 Table of contents Abstract ...................................................................................................................................... 1 Chapter 1 Introduction ...................................................................................................... 5 1.1 Background and Motivation .................................................................................... 5 1.2 Problem Statement ................................................................................................... 8 1.3 Limitations ............................................................................................................... 9 1.4 Research Method ................................................................................................... 10 1.5 Contributions .......................................................................................................... 11 1.6 Example Scenario: Hunger Conflict ...................................................................... 12 1.7 Outline .................................................................................................................... 13 Chapter 2 Background ..................................................................................................... 15 2.1 Game engine overview........................................................................................... 15 2.2 Artificial Intelligence ............................................................................................. 19 2.3 Spatial partitioning ................................................................................................. 23 2.4 Summary ................................................................................................................ 24 Chapter 3 Topics in artificial intelligence ....................................................................... 25 3.1 Agent reasoning: finite state machines .................................................................. 25 3.2 Agent reasoning: behavior trees ............................................................................. 26 3.3 Crowd simulation ................................................................................................... 28 3.4 Factions and groups ............................................................................................... 30 3.5 Smart objects .......................................................................................................... 31 3.6 Fuzzy logic ............................................................................................................. 33 3.7 Semantics for game worlds .................................................................................... 37 3.8 Neural networks ..................................................................................................... 39 3.9 Navigation .............................................................................................................. 40 2 3.10 Scaling simulations to larger populations .............................................................. 41 3.11 Summary ................................................................................................................ 42 Chapter 4 Technologies and frameworks ........................................................................ 43 4.1 Evaluating game engines and frameworks............................................................. 43 4.2 Unity in depth ........................................................................................................ 47 4.3 Summary ................................................................................................................ 54 Chapter 5 Core design ..................................................................................................... 55 5.1 World description ................................................................................................... 57 5.2 Behavior model ...................................................................................................... 63 5.3 World model .......................................................................................................... 65 5.4 Actors ..................................................................................................................... 67 5.5 Agents .................................................................................................................... 68 5.6 Actor reasoning engine .......................................................................................... 70 5.7 Summary ................................................................................................................ 74 Chapter 6 Framework implementation ............................................................................ 76 6.1 C# features ............................................................................................................. 76 6.2 Implementing semantic attributes and smart objects ............................................. 78 6.3 Implementing the world representation ................................................................. 79 6.4 Actors ..................................................................................................................... 80 6.5 Faction relations ..................................................................................................... 83 6.6 Defining a world .................................................................................................... 85 6.7 Summary ................................................................................................................ 85 Chapter 7 Game scenario implementation ...................................................................... 87 7.1 Food sources .......................................................................................................... 88 7.2 Villages .................................................................................................................. 89 7.3 Actors and agents ................................................................................................... 89 3 7.4 Observing faction interaction ................................................................................. 92 7.5 Investigating performance...................................................................................... 96 7.6 Discussion .............................................................................................................. 99 7.7 Summary .............................................................................................................. 102 Chapter 8 Conclusion .................................................................................................... 104 8.1 Summary .............................................................................................................
Recommended publications
  • Game Development for Computer Science Education
    Game Development for Computer Science Education Chris Johnson Monica McGill Durell Bouchard University of Wisconsin, Eau Bradley University Roanoke College Claire [email protected] [email protected] [email protected] Michael K. Bradshaw Víctor A. Bucheli Laurence D. Merkle Centre College Universidad del Valle Air Force Institute of michael.bradshaw@ victor.bucheli@ Technology centre.edu correounivalle.edu.co laurence.merkle@afit.edu Michael James Scott Z Sweedyk J. Ángel Falmouth University Harvey Mudd College Velázquez-Iturbide [email protected] [email protected] Universidad Rey Juan Carlos [email protected] Zhiping Xiao Ming Zhang University of California at Peking University Berkeley [email protected] [email protected] ABSTRACT cation, including where and how they fit into CS education. Games can be a valuable tool for enriching computer science To guide our discussions and analysis, we began with the education, since they can facilitate a number of conditions following question: in what ways can games be a valuable that promote learning: student motivation, active learning, tool for enriching computer science education? adaptivity, collaboration, and simulation. Additionally, they In our work performed prior to our first face-to-face meet- provide the instructor the ability to collect learning metrics ing, we reviewed over 120 games designed to teach comput- with relative ease. As part of 21st Annual Conference on ing concepts (which is available for separate download [5]) Innovation and Technology in Computer Science Education and reviewed several dozen papers related to game-based (ITiCSE 2016), the Game Development for Computer Sci- learning (GBL) for computing. Hainey [57] found that there ence Education working group convened to examine the cur- is \a dearth of empirical evidence in the fields of computer rent role games play in computer science (CS) education, in- science, software engineering and information systems to cluding where and how they fit into CS education.
    [Show full text]
  • Evaluating the Use of Particle-Spring Systems in the Conceptual Design of Grid Shell Structures By
    Evaluating the Use of Particle-Spring Systems in the Conceptual Design of Grid Shell Structures by Trevor B. Bertin B.S. Civil Engineering Worcester Polytechnic Institute, 2011 SUBMITTED TO THE DEPARTMENT OF CIVIL AND ENVIRONMENTAL ENGINEERING IN THE PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF 1 MASTER OF ENGINEERING IN CIVIL AND ENVIRONMENTAL ENGINEERING AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY JUNE 2013 ©2013 Trevor Bertin. All Rights Reserved The author hereby grants to MIT permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole or in part in any medium now known or hereafter created. Signature of Author: _____________________________________________________________ Department of Civil and Environmental Engineering May 10, 2013 Certified by: ___________________________________________________________________ John A. Ochsendorf Professor of Building Technology and Civil and Environmental Engineering Thesis Supervisor Accepted by: ___________________________________________________________________ Heidi M. Nepf Chair, Departmental Committee for Graduate Students 2 Evaluating the Use of Particle-Spring Systems in the Conceptual Design of Grid Shell Structures by Trevor B. Bertin Submitted to the Department of Civil and Environmental Engineering on May 10, 2013 in Partial Fulfillment of the Requirements for the Degree of Master of Engineering in Civil and Environmental Engineering ABSTRACT 3 This thesis evaluates particle-spring systems as conceptual design tools in an effort to create efficient grid shell structures. Currently many simulation tools are available to create representations of intricate geometries and forms. However, these forms can become highly complex and challenging upon their realization. A lack of understanding of these forms leads to structures that cannot support their corresponding loads due to their shape, boundary conditions or edge conditions.
    [Show full text]
  • Outcome Prediction and Hierarchical Models in Real-Time Strategy Games
    Outcome Prediction and Hierarchical Models in Real-Time Strategy Games by Adrian Marius Stanescu A thesis submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Computing Science University of Alberta ⃝c Adrian Marius Stanescu, 2018 Abstract For many years, traditional boardgames such as Chess, Checkers or Go have been the standard environments to test new Artificial Intelligence (AI) al- gorithms for achieving robust game-playing agents capable of defeating the best human players. Presently, the focus has shifted towards games that of- fer even larger action and state spaces, such as Atari and other video games. With a unique combination of strategic thinking and fine-grained tactical com- bat management, Real-Time Strategy (RTS) games have emerged as one of the most popular and challenging research environments. Besides state space complexity, RTS properties such as simultaneous actions, partial observabil- ity and real-time computing constraints make them an excellent testbed for decision making algorithms under dynamic conditions. This thesis makes contributions towards achieving human-level AI in these complex games. Specifically, we focus on learning, using abstractions and performing adversarial search in real-time domains with extremely large action and state spaces, for which forward models might not be available. We present two abstract models for combat outcome prediction that are accurate while reasonably computationally inexpensive. These models can in- form high level strategic decisions such as when to force or avoid fighting or be used as evaluation functions for look-ahead search algorithms. In both cases we obtained stronger results compared to at the time state-of-the-art heuris- tics.
    [Show full text]
  • Faculteit Bedrijf En Organisatie Unity 5 Versus
    Faculteit Bedrijf en Organisatie Unity 5 versus Unreal Engine 4: Artificiële intelligentie van 3D vijanden voor een HTML5 project Matthias Caryn Scriptie voorgedragen tot het bekomen van de graad van Bachelor in de toegepaste informatica Promotor: Joeri Van Herreweghe Co-promotor: Steven Delrue Academiejaar: 2015-2016 Derde examenperiode Faculteit Bedrijf en Organisatie Unity 5 versus Unreal Engine 4: Artificiële intelligentie van 3D vijanden voor een HTML5 project Matthias Caryn Scriptie voorgedragen tot het bekomen van de graad van Bachelor in de toegepaste informatica Promotor: Joeri Van Herreweghe Co-promotor: Steven Delrue Academiejaar: 2015-2016 Derde examenperiode Samenvatting Rusty Bolt is een Belgische indie studio. Deze studio wilt een nieuw project starten voor een 3D spel in een HyperText Markup Language 5 (HTML5) browser die intensief gebruik zal maken van artificiële intelligentie (AI) en Web Graphics Library (WebGL). Na onderzoek via een requirements-analyse van verschillende mogelijkheden van game engines komen we terecht bij twee opties namelijk Unity 5, die Rusty Bolt al reeds gebruikt, of de Unreal Engine 4, wat voor hen onbekend terrein is. Qua features zijn ze enorm verschillend, maar ze voldoen elk niet aan één voorwaarde die Rusty Bolt verwacht van een game engine. Zo biedt Unity Technologies wel een mogelijkheid om software te bouwen in de cloud. De broncode van Unity wordt niet openbaar gesteld, tenzij men er extra voor betaalt. Deze game engine is dus niet volledig open source in tegenstelling tot Unreal Engine 4. We vergelijken dan verder ook deze twee engines, namelijk Unity 5 en Unreal Engine 4. We tonen aan dat deze engines visueel verschillen van features, maar ook een andere implementatie van de AI hanteren.
    [Show full text]
  • Towards a Serious Game to Help Students Learn Computer Programming Mathieu Muratet, Patrice Torguet, Jean Pierre Jessel, Fabienne Viallet
    Towards a Serious Game to Help Students Learn Computer Programming Mathieu Muratet, Patrice Torguet, Jean Pierre Jessel, Fabienne Viallet To cite this version: Mathieu Muratet, Patrice Torguet, Jean Pierre Jessel, Fabienne Viallet. Towards a Serious Game to Help Students Learn Computer Programming. International Journal of Computer Games Technology, London: Hindawi, 2009, 2009, pp.470590. 10.1155/2009/470590. hal-01357502 HAL Id: hal-01357502 https://hal.archives-ouvertes.fr/hal-01357502 Submitted on 29 Aug 2016 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Hindawi Publishing Corporation International Journal of Computer Games Technology Volume 2009, Article ID 470590, 12 pages doi:10.1155/2009/470590 Research Article TowardsaSeriousGametoHelpStudentsLearn Computer Programming Mathieu Muratet,1 Patrice Torguet,1 Jean-Pierre Jessel,1 and Fabienne Viallet2 1 VORTEX Group, IRIT, Paul Sabatier University, 118 Route de Narbonne, 31062 Toulouse Cedex 9, France 2 DiDiST CREFI-T, Paul Sabatier University, 118 Route de Narbonne, 31062 Toulouse Cedex 9, France Correspondence should be addressed to Mathieu Muratet, [email protected] Received 30 August 2008; Revised 17 December 2008; Accepted 24 February 2009 Recommended by Xiaopeng Zhang Video games are part of our culture like TV, movies, and books.
    [Show full text]
  • A Multi-Objective Approach to Tactical Maneuvering Within Real Time Strategy Games Christopher D
    Air Force Institute of Technology AFIT Scholar Theses and Dissertations Student Graduate Works 6-16-2016 A Multi-Objective Approach to Tactical Maneuvering Within Real Time Strategy Games Christopher D. Ball Follow this and additional works at: https://scholar.afit.edu/etd Part of the Computer Sciences Commons Recommended Citation Ball, Christopher D., "A Multi-Objective Approach to Tactical Maneuvering Within Real Time Strategy Games" (2016). Theses and Dissertations. 457. https://scholar.afit.edu/etd/457 This Thesis is brought to you for free and open access by the Student Graduate Works at AFIT Scholar. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of AFIT Scholar. For more information, please contact [email protected]. A MULTI-OBJECTIVE APPROACH TO TACTICAL MANUVERING WITHIN REAL TIME STRATEGY GAMES THESIS Christopher D. Ball, Capt, USAF AFIT-ENG-MS-16-J-004 DEPARTMENT OF THE AIR FORCE AIR UNIVERSITY AIR FORCE INSTITUTE OF TECHNOLOGY Wright-Patterson Air Force Base, Ohio DISTRIBUTION STATEMENT A APPROVED FOR PUBLIC RELEASE; DISTRIBUTION UNLIMITED. The views expressed in this document are those of the author and do not reflect the official policy or position of the United States Air Force, the United States Department of Defense or the United States Government. This material is declared a work of the U.S. Government and is not subject to copyright protection in the United States. AFIT-ENG-MS-16-J-004 A MULTI-OBJECTIVE APPROACH TO TACTICAL MANEUVERING WITHIN REAL TIME STRATEGY GAMES THESIS Presented to the Faculty Department of Electrical and Computer Engineering Graduate School of Engineering and Management Air Force Institute of Technology Air University Air Education and Training Command in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science Christopher D.
    [Show full text]
  • Course of Study 2020-21 GEORGETOWN DAY SCHOOL MISSION STATEMENT
    Course of Study 2020-21 GEORGETOWN DAY SCHOOL MISSION STATEMENT Georgetown Day School honors the integrity and worth of each individual within a diverse school community. GDS is dedicated to providing a supportive educational atmosphere in which teachers challenge the intellectual, creative, and physical abilities of our students and foster strength of character and concern for others. From the earliest grades, we encourage our students to wonder, to inquire, and to be self-reliant, laying the foundation for a lifelong love of learning. TABLE OF CONTENTS LOWER/MIDDLE SCHOOL Curriculum Overview ………………………………………………………………………………………………… 2 Pre-Kindergarten/Kindergarten ……………………………………………………………………………………… 8 First Grade ………………………………………………………………………………………………………… 11 Second Grade ……………………………………………………………………………………………………… 14 Third Grade ………………………………………………………………………………………………………… 16 Fourth Grade ……………………………………………………………………………………………………… 20 Fifth Grade ………………………………………………………………………………………………………… 24 Sixth Grade ………………………………………………………………………………………………………… 28 Seventh Grade ……………………………………………………………………………………………………… 32 Eighth Grade ……………………………………………………………………………………………………… 37 HIGH SCHOOL Curriculum Overview ……………………………………………………………………………………………… 42 Arts: Performing …………………………………………………………………………………………………… 44 Arts: Studio ………………………………………………………………………………………………………… 47 Community Service ………………………………………………………………………………………………… 49 English ..……………………………………………………………………………………………………………… 50 History and Social Sciences ………………………………………………………………………………………… 52 Innovation and Technology …………………………………………………………………………………………
    [Show full text]
  • Towards a Serious Game Tohelp Students Learn Computer Programming
    Hindawi Publishing Corporation International Journal of Computer Games Technology Volume 2009, Article ID 470590, 12 pages doi:10.1155/2009/470590 Research Article TowardsaSeriousGametoHelpStudentsLearn Computer Programming Mathieu Muratet,1 Patrice Torguet,1 Jean-Pierre Jessel,1 and Fabienne Viallet2 1 VORTEX Group, IRIT, Paul Sabatier University, 118 Route de Narbonne, 31062 Toulouse Cedex 9, France 2 DiDiST CREFI-T, Paul Sabatier University, 118 Route de Narbonne, 31062 Toulouse Cedex 9, France Correspondence should be addressed to Mathieu Muratet, [email protected] Received 30 August 2008; Revised 17 December 2008; Accepted 24 February 2009 Recommended by Xiaopeng Zhang Video games are part of our culture like TV, movies, and books. We believe that this kind of software can be used to increase students’ interest in computer science. Video games with other goals than entertainment, serious games, are present, today, in several fields such as education, government, health, defence, industry, civil security, and science. This paper presents a study around a serious game dedicated to strengthening programming skills. Real-Time Strategy, which is a popular game genre, seems to be the most suitable kind of game to support such a serious game. From programming teaching features to video game characteristics, we define a teaching organisation to experiment if a serious game can be adapted to learn programming. Copyright © 2009 Mathieu Muratet et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 1. Introduction who initially choose computer science study soon decide to abandon it”[3, page 39].
    [Show full text]
  • Online Build-Order Optimization for Real-Time Strategy Agents Using Multi-Objective Evolutionary Algorithms Jason M
    Air Force Institute of Technology AFIT Scholar Theses and Dissertations Student Graduate Works 3-14-2014 Online Build-Order Optimization for Real-Time Strategy Agents Using Multi-Objective Evolutionary Algorithms Jason M. Blackford Follow this and additional works at: https://scholar.afit.edu/etd Recommended Citation Blackford, Jason M., "Online Build-Order Optimization for Real-Time Strategy Agents Using Multi-Objective Evolutionary Algorithms" (2014). Theses and Dissertations. 589. https://scholar.afit.edu/etd/589 This Thesis is brought to you for free and open access by the Student Graduate Works at AFIT Scholar. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of AFIT Scholar. For more information, please contact [email protected]. ONLINE BUILD-ORDER OPTIMIZATION FOR REAL-TIME STRATEGY AGENTS USING MULTI-OBJECTIVE EVOLUTIONARY ALGORITHMS THESIS Jason M. Blackford, Captain, USAF AFIT-ENG-14-M-13 DEPARTMENT OF THE AIR FORCE AIR UNIVERSITY AIR FORCE INSTITUTE OF TECHNOLOGY Wright-Patterson Air Force Base, Ohio DISTRIBUTION STATEMENT A: APPROVED FOR PUBLIC RELEASE; DISTRIBUTION UNLIMITED The views expressed in this thesis are those of the author and do not reflect the official policy or position of the United States Air Force, the Department of Defense, or the United States Government. This material is declared a work of the U.S. Government and is not subject to copyright protection in the United States. AFIT-ENG-14-M-13 ONLINE BUILD-ORDER OPTIMIZATION FOR REAL-TIME STRATEGY AGENTS USING MULTI-OBJECTIVE EVOLUTIONARY ALGORITHMS THESIS Presented to the Faculty Department of Electrical and Computer Engineering Graduate School of Engineering and Management Air Force Institute of Technology Air University Air Education and Training Command in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Engineering Jason M.
    [Show full text]
  • Adaptive Goal Oriented Action Planning for RTS Games
    BLEKINGE TEKNISKA HOGSKOLA¨ Adaptive Goal Oriented Action Planning for RTS Games by Matteus Magnusson Tobias Hall A thesis submitted in partial fulfillment for the degree of Bachelor in the Department of Computer Science and Communication June 2010 Declaration of Authorship Matteus Magnusson and Tobias Hall declare that this thesis titled, \Adaptive Goal Oriented Action Planning for RTS Games" and the work presented in it are our own. We confirm that: • This work was done wholly or mainly while in candidature for a research degree at this College. • Where any part of this thesis has previously been submitted for a degree or any other qualification at this College or any other institution, this has been clearly stated. • Where we have consulted the published work of others, this is always clearly at- tributed. • Where we quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely our own work. • We have acknowledged all main sources of help. • Where the thesis is based on work done by ourselves jointly with others, we have made clear exactly what was done by others and what we have contributed our- selves. i \You must construct additional pylons." |StarCraft R 1 1StarCraft is a registered trademark of Blizzard Entertainment, Inc, in the U.S. and other countries. BLEKINGE TEKNISKA HOGSKOLA¨ Abstract Department of Computer Science and Communication Bachelor thesis by Matteus Magnusson Tobias Hall This thesis describes the architecture of an adaptive goal-oriented AI system that can be used for Real-Time Strategy games. The system is at the end tested against a single opponent on three different maps with different sizes to test the ability of the AI opposed to the 'standard' Finite State Machines and the likes in Real-Time Strategy games.
    [Show full text]
  • Evolving Behaviour Trees
    Evolving Behaviour Trees: Automatic Generation of AI Opponents for Real-Time Strategy Games Hallvard Jore Christensen Jonatan Wilhelm Hoff Master of Science in Informatics Submission date: June 2016 Supervisor: Keith Downing, IDI Norwegian University of Science and Technology Department of Computer and Information Science Evolving Behaviour Trees: Automatic Generation of AI Opponents for Real-Time Strategy Games Jonatan Hoff, Hallvard Jore Christensen June 2016 MASTER THESIS Department of Computer and Information Science Norwegian University of Science and Technology Supervisor: Professor Keith Downing Problem Description We want to look into how bio-inspired methods such as genetic programming can be used in the game industry. Specifically, we will investigate how these methods can be used in conjunction with behaviour trees to increase the quality of AI in games. i abstract Video games are a source of fun and enjoyment for millions of people across the globe. Artificial Intelligence (AI) is an essential part of many games and there is an increasing demand for ever more realistic computer controlled players. There are many methods and approaches for creating AI for games, with state machines and scripting featured in the majority of projects. Behaviour trees have emerged as a recent competitor, combining features of final-state machines and hierarchical task networks. As the available computational powers increase, the feasibility of using evolutionary computations in the development of game AI rises. This project explores evolving behaviour trees using bio-inspired methods. This is done by tailoring genetic programming to represent individuals as behaviour trees which control a bot that plays a real-time strategy game.
    [Show full text]
  • Resume June 2021
    Joseph Hinkle (843) 499-1755 • [email protected] linkedin.com/in/joehinkle11• github.com/joehinkle11 UNC Charlotte, Bachelor of Science, Computer Science Major (4.0 GPA) May, 2018 Oxford University, Saint Catherine’s College, Studied Philosophy Abroad for Two Terms Jan - Jun, 2017 EXPERIENCE Lead Software Engineer Wastequip March, 2020 to April, 2021 Description: I led work on an Android app that allows workers to route waypoints for delivering and repairing waste containers. I also did occasional work on the PHP Laravel server. Software Engineer Duke Energy June, 2018 to February, 2020 Nuclear Lighthouse: I worked as a full stack iOS and Angular developer using .NET and SQL for projects that streamline nuclear workers’ safety processes. The team followed SCRUM. Kilowatt Krush: I built a mobile game in Unity3d and C# for kids with three other developers. Optimist Website: I built an internal website with Angular and Firebase for the company’s new site at Optimist Park during my free time at work. PERSONAL PROJECTS Live App January, 2021 to present Description: Using a Swift/SwiftUI interpreter I built, I’m building a Swift Package which allows for server-driven UI by streaming the Swift AST. Github link. iOS App Maker December, 2019 to present Description: An app that can build iOS apps on your iPad or iPhone using a Swift AST interpreter I built. I get the AST by embedding SwiftSyntax and the Swift parser in the app. Link. Realtime Chess / Kill the King Fall, 2016 to present Description: I built a multiplayer, mobile chess game with a twist—no turns! Each piece has their own “cooldown time.” Published February, 2020.
    [Show full text]