Kelvin H Sung

Kelvin H Sung
University of Washington Bothell | UWB · Computing and Software Systems Program

About

93
Publications
17,769
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
743
Citations

Publications

Publications (93)
Chapter
After completing this chapter, you will be able to
Chapter
The projects included in the main sections of Chapters 1 to 11 began with simple shapes and slowly introduced characters and environments to illustrate the concepts of each chapter; those projects focused on individual behaviors and techniques (such as collision detection, object physics, lighting, and the like) but lacked the kind of structured ch...
Chapter
After completing this chapter, you will be able to
Chapter
After completing this chapter, you will be able to
Chapter
Video games are complex, interactive, multimedia software systems. They must, in real time, process player input, simulate the interactions of semiautonomous objects, and generate high-fidelity graphics and audio outputs, all while trying to keep players engaged. Attempts at building a video game can quickly become overwhelming with the need to be...
Chapter
After completing this chapter, you will be able to
Chapter
After completing this chapter, you will be able to
Book
Develop a 2D game engine that will give you the experience and core understanding of foundational concepts for building complex and fun 2D games that can be played across the Internet via popular web browsers. This book is organized so that the chapters follow logical steps of building a game engine and integrates concepts accordingly. Build Your O...
Article
Full-text available
Recently released, depth-sensing-capable, and moderately priced handheld devices support the implementation of augmented reality (AR) applications without the requirement of tracking visually distinct markers. This relaxed constraint allows for applications with significantly increased augmentation space dimension, virtual object size, and user mov...
Conference Paper
Full-text available
This paper presents some early results from an exploration into Augmented Reality (AR) applications where users have access to controllable alternative viewing positions based on a camera mounted unmanned aerial vehicle (UAV). These results include a system specification that defines and identifies the requirements of multi-view AR; and a demo appl...
Conference Paper
Traveling in a virtual world, while confined in the real world requires a virtual reality locomotion (VRL) method. VRL remains an issue because of three fundamental challenges, sickness, presence, and fatigue. We propose a User-Centric Classification (UCC) of VRL methods based on a method's ability to address these challenges. UCC provides a framew...
Conference Paper
Full-text available
Understanding player preference and behavioral tendency in the presence of collaborative opportunities is fundamental to building cooperative video games.¹ Such knowledge allows the integration and fine-tuning of features to further engage players. This paper presents an ongoing study that approaches the subject by posing a simple question: when op...
Conference Paper
Summer coding or programming camps are popular. With sufficient organization, offering these camps at higher education institutions can facilitate outreach objectives including engaging underrepresented groups. However, the challenges involved in organizing and offering a camp are many, including: recruitment of instructors and campers, camp manage...
Chapter
In the context of 2D video games, the fundamentals of a physical simulation involves movements of rigid shapes, collisions of the moving shapes, and responses after the collisions. In the previous chapter, you defined the rigid shape classes and a core engine loop to support basic drawing, update operations, and simple movements of rigid shapes. In...
Chapter
Physics engines play an important part in many types of games. A believable physics interaction between game objects has become a key element of most modern PC and console games as well as, more recently, browser and smartphone games. The range of topics within physics for games is broad and includes, but is not limited to, areas such as rigid body...
Chapter
In the previous chapter, you have implemented algorithms to detect collisions between rigid circles and rectangles. In addition to the Boolean condition of whether a collision has indeed occurred, the algorithms you have implemented also computed information that tells you important details—the collision information, which includes the interpenetra...
Chapter
In the previous chapter, you implemented functionality to support basic drawing operations. Drawing is the first step to constructing your physics engine because it allows you to observe the output while continuing to expand the engine’s capabilities. In this chapter, two critical components for 2D physics simulations, the core engine loop and rigi...
Chapter
Congratulations! You have learned the basic ideas and concepts behind and completed the implementation of a 2D physics engine. This chapter will summarize all of your work done from Chapter 1 to 4, what you should understand and take away from this book, and highlight improvements or future explorations on the physics engine that you have created.
Conference Paper
Designed specifically for instructors of university or high school Introductory Java Programming Classes (CS1/2) with no background in videogames or computer graphics, and based on our original casual game designs, this workshop will: (1) lead participants through structured gameplay sessions; (2) analyze how game mechanics contribute to player eng...
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
The projects included in the main sections of Chapters 1 to 10 began with simple shapes, slowly introducing characters and environments to illustrate the concepts in each chapter; those projects focused on individual behaviors and techniques (such as collision detection, object physics, lighting, and the like) but lacked the kind of structured chal...
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
Video games are complex, interactive, multimedia software systems. These systems must, in real time, process player input, simulate the interactions of semi-autonomous objects, and generate high-fidelity graphics and audio outputs, all while trying to engage the players. Attempts at building video games can quickly be overwhelmed by the need to be...
Article
Full-text available
Collaborative teams at the University of Washington Bothell are designing games like Corrupted that introduce students to basic programming structures and functionalities.
Article
Full-text available
There are many flavors of upper division elective classes that cover subjects related to mobile technologies and application development. However, there is a general lack of publications discussing the philosophy, implementation, and results from these classes. When researching for a new upper division mobile application development elective class,...
Article
An innovative learning project brings students together with faculty and digital design studio staff to create videogames that help teach basic programming concepts.
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
After completing this chapter, you will be able to:
Chapter
C#, a modern object-oriented programming language from Microsoft, is one the easiest languages to develop applications with. When developing C# applications within the Microsoft Visual Studio Integrated Development Environment (IDE), programmers are especially empowered with near-transparent application programming interface (API) access, friendly...
Chapter
After completing this chapter, you will be able to:
Book
2D games are hugely popular across a wide range of platforms and the ideal place to start if youre new to game development. With Learn 2D Game Development with C#, you'll learn your way around the universal building blocks of game development, and how to put them together to create a real working game.C# is increasingly becoming the language of cho...
Conference Paper
Full-text available
Teaching Software Engineering (SE) based on “real-world” projects engages students with practical application of software engineering concepts-students develop a deeper interest in the project deliverables while they acquire the skills of critically analyzing the problem and determining the best course of action. It can be challenging to find and m...
Article
Full-text available
The Dream Coders Project aims at developing video games to facilitate learning of introductory programming concepts with two ultimate goals. First, to produce a collection of game-based assignments that faculty can use to teach introductory programming concepts, even if they have no background in computer graphics or video game development. The fac...
Article
Full-text available
The recent phenomenal growth in research activities has provided a favorable environment for computing advances in Asia.
Article
Full-text available
Recent developments in social media technology will further extend, preserve, and integrate the museum experience with visitors' personal and social lives. The featured Web extra is a video of Computer's Entertainment Computing column editor Kelvin Sung discussing how mobile apps can enhance visitors' museum experiences.
Article
Full-text available
Despite the proven success of using computer video games as a context for teaching introductory programming (CS1/2) courses, barriers including the lack of adoptable materials, required background expertise (in graphics/games), and institutional acceptance still prevent interested faculty members from experimenting with this approach. Game-themed p...
Article
Instead of faster and more exotic systems, the latest videogame console technologies focus on human-computer interfaces that target a wider audience.
Article
Full-text available
Games assignments are increasingly popular in computer sci-ence education [28]. This paper advocates and analyzes the inclusion of board, card, and dice games as programming as-signments in introductory programming courses (CS1/2). The simple interface and strategy-based play of these types of games complement the immersive multimedia and agility-b...
Article
Full-text available
Commissioned by the campus Office of Admissions, we have built a series of three campus tour and orientation games over the past academic year with undergraduate student project teams. Based on well-established game industry practices we followed an iterative agile process with Scrum and managed to avoid many classical pitfalls in game development....
Article
In an effort to appeal to students who would not traditionally take a Computer Science course, we have created a CS0 course that scaffolds students into (basic) game programming using first the GameMaker tool and then C#. Our goal was to create an engaging, accessible course that that would attract students who had not previously taken any Computer...
Conference Paper
Full-text available
Despite the proven success of using computer video games as a context for teaching introductory programming (CS1/2) courses, barriers including the lack of adoptable materials, required background expertise (in graphics/games), and institutional acceptance still prevent interested faculty members from experimenting with this approach. The Game-Them...
Article
Full-text available
Integration of video games into introductory programming (CS1/2) courses motivates and engages students while con-tributing to their learning outcomes [17, 1, 2]. However, it is challenging for general faculty members teaching CS1/2 courses, few of whom have computer graphics or games back-grounds, to integrate video games. Game-Themed Instruc-tion...
Article
Full-text available
The USC Game-Pipe Laboratory has made significant efforts to redesign the entire computer science (CS) curriculum in the context game development. The laboratory continues to make significant efforts to integrate computer video games in existing traditional CS courses. It has introduced introductory programming and elective CS courses, with guideli...
Conference Paper
Full-text available
Programming games in computer science (CS) classes creates high levels of excitement and motivation [1]. Although there are potential pitfalls [2] and it has been argued that gender biasedgames can further alienate under-represented groups, it has also been shown that with careful design and articulation, combining CS classes with games at the intr...
Article
In this tutorial, we will demonstrate how to gradually incorporate video games into an existing CS1/CS2 class using our 'XNA Game-Themed Assignments' (XGAs). We will talk briefly about the technical details of the C#-based XNA framework, with particular focus on our XnaAssignmentBase class, and then examine several of our 'XGA modules' in detail. T...
Article
The modern graphics processing units (GPUs), found on almost every personal computer, use the z-buffer algorithm to compute visibility. Ray tracing, an alternative to the z-buffer algorithm, delivers higher visual quality than the z-buffer algorithm but has historically been too slow for interactive use. However, ray tracing has benefited from impr...
Conference Paper
Full-text available
We have designed and implemented game-themed programming assignment modules targeted specifically for adoption in existing introductory programming classes. These assignments are self-contained, so that faculty members with no background in graphics or gaming can selectively pick and choose a subset to combine with their own assignments in existing...
Conference Paper
We have designed and implemented game-themed programming assignment modules targeted specifically for adoption in existing introductory programming classes. These assignments are self-contained, so that faculty members with no background in graphics or gaming can selectively pick and choose a subset to combine with their own assignments in existing...
Article
We have designed and implemented game-themed program-ming assignment modules targeted specifically for adoption in existing introductory programming classes. These as-signments are self-contained, so that faculty members with no background in graphics/gaming can selectively pick and choose a subset to combine with their own assignments in existing...
Article
In liberal arts institutions and in other small colleges, the traditional computer graphics course is commonly offered as an upper division elective. Often, these schools do not have the resources to offer additional follow up courses within the field of CG. As a result, the computer graphics course is the first and only exposure to the field that...
Article
Full-text available
Almost all current games are implemented using the graphics processing units (GPUs) found on almost every PC. These GPUs use the z-buffer algorithm to do visibility calculations. Ray tracing, an alternative to the z-buffer algorithm, delivers higher visual quality than the z-buffer algorithm but has historically been too slow for interactive use. H...
Conference Paper
ABSTRACT Our computer graphics (CG) programming,class uses games development as a means,to help students understand CG concepts. Many students mistakenly thought this CG class was a games programming,class. We present a simple framework for discussing games programming,classes. Based on the framework, the paper describes our eorts in integrating co...
Conference Paper
Full-text available
The title of my talk comes from a Hollywood executive's comments on Fred Astaire's screen test. Much later, Katherine Hepburn remarking on Fred's eventual success with his most frequent partner said, "Fred gave Ginger [Rogers] class, and Ginger gave ...
Article
Returning adult students typically have expectations of gaining both near-term applicable skill sets and long-term foundational concepts from their courses. Most Algorithm Analysis classes are designed for traditional students and do not have teaching practical skill set as one of their major goals. This paper describes an attempt to meet the expec...
Conference Paper
Full-text available
There are two common strategies for teaching introductory computer graphics (CG) programming. The first and most traditional covers the CG field in a bottom-up manner starting from fundamental algorithms such as triangle rasterization. The second proceeds in a top-down manner by analyzing the functional modules of applications. This paper argues th...
Article
Full-text available
A framework for discussing the motion blur image generation process is formulated. Previous work is studied in the context of this framework. Due to the implicit assumptions on low temporal frequencies in most motion blur algorithms, issues involved in large screen space movements and fast illumination changes in time have not been adequately addre...
Article
In many graphics tasks, such as pixel antialiasing, a set of spatially “uniform” samples must be generated on a unit square. Some algorithms attempt to create sets of samples whose x and y coordinates are each themselves uniform, while making sure that the samples are also uniform in two dimensions. However, this is hard to do if the number of samp...
Article
A distributed ray tracer is implemented in a network of workstations using ASTRA, an asynchronous remote procedure call mechanism. The motivation of this work is to utilize the idle cycles available on workstations to speed up the execution of the ray tracing task. The application uses the client-server model with a central dispatcher as the client...
Article
The results of parallelizing a classical ray tracer in a typical LAN-connected workstation environment is presented. The motivation of this work is to utilize the idle workstation cycles at night. Issues involved in distributing the processing of a ray tracer are discussed and our solutions are presented. Performance tests are carried out on a grou...
Article
The area sampling buffer concept unifies the three types of sampling functionalities (pixel-area sampling, secondary direction sampling, and light-source area sampling) of a ray tracer with the scan-conversion process. The Area Sampling Machine is a parallel computing system with custom processing units designed to take advantage of these merged pr...
Chapter
Full-text available
In order to speed up the intersection calculation in ray-tracing programs, people have implemented divide