Lee Stemkoski

Lee Stemkoski
Adelphi University | AU · Department of Mathematics and Computer Science

PhD, Mathematics

About

92
Publications
8,619
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
40
Citations

Publications

Publications (92)
Chapter
This video shows how to create a stationary obstacle that damages the character and may cause the player to lose the game.
Book
Create video games quickly using the Construct game engine and gain practical experience by creating a platform-style game, with no prior experience required. This video introduces the Construct game engine, a beginner-friendly video game development program, and explains how to build a platform-style game. Specific topics covered include level des...
Chapter
This video summarizes the export options for publishing and sharing your game.
Chapter
This video shows how to add behaviors to objects, which implement frequently needed functionality in video games.
Chapter
This video shows how to create visual special effects from spritesheets.
Chapter
The video shows how to write events that enable the player character to interact with the enemies.
Chapter
This video shows how to create an additional layout for a starting screen.
Chapter
This video demonstrates how to create a new project in Construct 2 and configure the basic project settings.
Chapter
This video shows how to create a solid object that can be destroyed when hit by the character from below.
Chapter
This video introduces the user interface of the Construct 2 software, and introduces some of the vocabulary used by the software.
Chapter
This video introduces the MDA (mechanics, dynamics, aesthetics) framework for designing and analyzing video games, and then uses the MDA framework to describe “Jumping Jack”, the video game that will be created in this video series.
Chapter
This video shows how to add graphics to the user interface that display a message when the game is over.
Chapter
This video shows how to create a tilemap to define the basic physical structure of the game level.
Chapter
This video shows how to create a special type of platform that the player character may jump through from below or fall through from above.
Chapter
This video shows how to create multiple types of animated enemies that move back and forth between two locations.
Chapter
This video shows how to import background music and play the music at the start of the game.
Chapter
This video shows how to create variables and dynamic text objects.
Chapter
This video shows how to update text objects to display variable values with events.
Chapter
This video shows how to add a repeating background image to the game level.
Chapter
This video shows how to create keys and locks that control the player’s progression through the level.
Chapter
This video shows how to update variable values after the player character collects the corresponding items.
Chapter
The video demonstrates how to create layers to organize the content of each game level.
Chapter
This video shows how to create an animated sprite character that will be controlled by the player.
Chapter
This video shows how to create a springboard object that enables the player character to jump higher.
Chapter
This video shows how to display a “win” message when the character touches an object that signifies the end of the level.
Chapter
This video shows how to use events to activate visual special effects when the player character interacts with different elements of the level.
Chapter
This video shows how to create a particle effect to visually simulate a brick shattering into fragments.
Chapter
This video shows how to create animated items for the player character to collect during the game.
Chapter
This video shows how to display a “lose” message when the character runs out of health points.
Chapter
This video shows how to import audio files for sound effects and activate them during the game with events.
Chapter
This video shows how to create a more interesting level design from all the gameplay elements added in this series.
Chapter
This video shows how to create events, which represent customized instructions or code for a video game.
Chapter
This final chapter will present a variety of steps to consider as you continue on in game development. Among these, you’ll explore working on additional projects, learning skills in related areas, and bringing your games to a wider audience. Along the way, the chapter will present lists of resources of all types, as well as general advice for many...
Chapter
This chapter will introduce some of the 3D graphics capabilities of LibGDX. Along the way, you’ll learn about the concepts and classes necessary to describe and render a three-dimensional scene. To simplify and streamline this process, you’ll both adapt some old classes and write some new classes to accomplish the various tasks involved. Next, to u...
Chapter
This chapter features the most ambitious game project in the entire book: a combat-based adventure game named Treasure Quest, inspired by classic console games such as The Legend of Zelda. This game uses new features, such as enemy combat with two different types of weapons (a sword and an arrow), non-player characters (NPCs) with messages that dep...
Chapter
In some of the games previously developed in this book, one challenging aspect has been the placement of objects: calculating the positions where the actors will appear on the main stage. In this chapter, you will learn how to use Tiled, a general-purpose map-editing software program that can be used for multiple aspects of the level-design process...
Chapter
This chapter will introduce many of the major features of the LibGDX library. It will illustrate how to use them in the process of creating a game called Starfish Collector , where you help the player’s character, a turtle, swim around the ocean floor while looking for a starfish. A screenshot of this game in action appears in Figure 2-1. At first,...
Chapter
In this chapter, you will learn how to create the maze-based game Maze Runman, shown in Figure 14-1, inspired by arcade games such as Pac-Man and the Atari 2600 console game Maze Craze: A Game of Cops ’n Robbers. The main new concepts in this chapter are algorithms for generating and solving mazes.
Chapter
This chapter will explain how to set up a Java development environment and configure it to run with the LibGDX game development framework. You’ll see a simple example of a “Hello, World!” program and explore it in enough detail to understand the different parts. Finally, you’ll learn some of the advantages to be gained by working with the LibGDX li...
Chapter
In this chapter, rather than create a new game, you will learn two techniques for incorporating sophisticated graphics into your projects. The first section will introduce particle systems, which can create special effects such as explosions, which will be incorporated into the Space Rocks game in place of the spritesheet-based animation. The secon...
Chapter
In this chapter, you will learn how to create the platform game Jumping Jack, shown in Figure 11-1, inspired by arcade and console games such as Donkey Kong and Super Mario Bros. New concepts introduced in this chapter include actors with multiple animations, platform physics, using extra actors as “sensors” to monitor the area around an actor for...
Chapter
In previous chapters, your games have been controlled with traditional desktop computer hardware: a keyboard and a mouse. In this chapter, you’ll explore two alternative sources of user input: gamepad controllers and touchscreen controls. In particular, you will add these alternative sources of user input to the Starfish Collector game that has bee...
Chapter
In this chapter, you will learn how to display text, create buttons that display an image or text, and design a user interface using tables. First, you will be introduced to these skills by adding these features to the Starfish Collector game from Chapter 3, as shown in Figure 5-1. Then, you will build on and strengthen these skills while learning...
Chapter
In this chapter, you will create an entirely new game: Space Rocks, shown in Figure 4-1 and inspired by the classic arcade game Asteroids. You will make extensive use of the framework you created in the previous chapter (the BaseGame, BaseScreen, and BaseActor classes) and add a few new features along the way. The most significant addition will be...
Chapter
In this chapter, you will create a side-scrolling action game called Plane Dodger, shown in Figure 7-1, inspired by modern smartphone games such as Flappy Bird and Jetpack Joyride. Along the way, you will create an endless scrolling background effect, simulate gravity using acceleration settings, and implement a difficulty ramp that increases the c...
Chapter
In this chapter, you will learn how to add drag-and-drop functionality to your games: the ability to click on an object and, while the mouse button is held down, have the selected object move along with the mouse until the button is released. Since this functionality is useful in many contexts, you will create an extension of the BaseActor class, c...
Chapter
In this chapter, you will learn how to add audio elements—sound effects and background music—to your game. First, you will be introduced to these topics by adding these features to the Starfish Collector game that you have been working on in previous chapters. Then, in an optional section, you will build on these skills with a musical rhythm-based...
Chapter
In this chapter, you will create a ball-bouncing, brick-breaking game called Rectangle Destroyer, shown in Figure 8-1, inspired by arcade and early console games such as Breakout and Arkanoid. New features that will be implemented in this game include bouncing off of objects and power-up items.
Chapter
In the previous chapter, you learned about some of the basic features and classes available in LibGDX and created a game called Starfish Collector. You also practiced good software development habits by gathering code that supports commonly needed functionality into a class named ActorBeta (which extends the LibGDX Actor class). However, the Starfi...
Book
Learn to design and create video games using the Java programming language and the LibGDX software library. Working through the examples in this book, you will create 12 game prototypes in a variety of popular genres, from collection-based and shoot-em-up arcade games to side-scrolling platformers and sword-fighting adventure games. With the flexib...
Chapter
In this chapter, you’ll create Maze Runman, a top-down collection game where the player maneuvers around a maze trying to collect coins while avoiding being caught by ghosts, as shown in Figure 12-1.
Chapter
In this chapter, you’ll create Tower Defenders, a top-view game where the player places various towers to defend a base from attacking enemies, as shown in Figure 11-1.
Chapter
Welcome to the exciting world of game design and development! In this chapter, you will learn all about Construct 2, the program you will be using to develop games throughout this book.
Chapter
In this chapter, you will create a game called Rectangle Destroyer, a side-perspective physics-based action game shown in Figure 8-1 and inspired by arcade classics such as Breakout and Arkanoid.
Chapter
The player controls a turtle, whose goal is to swim around the ocean and collect all the starfish she can see. The game features a top-down perspective, and the player moves the turtle using the arrow keys.
Chapter
In this chapter, you will be creating a top-down shooter game called Spell Shooter, shown in Figure 9-1, inspired by classic top-down shooters such as Gauntlet.
Chapter
In this chapter, you will be creating another top-down shooter game called Airplane Assault, shown in Figure 10-1, that was inspired by the classic survival-based game 1942.
Chapter
In this chapter, you will create a game called Racecar 500, a top-down racing game, as shown in Figure 7-1.
Chapter
In this chapter, you will create a game called Plane Dodger, an endless side-scrolling game, inspired by the modern smartphone game Flappy Bird, shown in Figure 6-1.
Chapter
In Cleanup Challenge, the player controls a character (who we will call “the cleaner”), whose goal is to collect pieces of trash scattered around a roadway and return them to a trash can on the opposite side, which ends the game. At the same time, cars are racing across the street, which runs horizontally across the screen. If the person gets hit b...
Chapter
Whenever you learn new techniques in game development, it is good practice to revisit earlier game projects looking for opportunities to apply your newfound knowledge. Perhaps there are additional gameplay mechanics or features you could implement or improved graphics or effects to add. In this chapter, you will begin by revisiting your first game...
Chapter
In Space Rocks, the player controls a spaceship, whose goal is to fly around and shoot lasers to destroy asteroids that are floating across the screen. The player must also take care that the spaceship does not get hit by asteroids, as they can damage or destroy the spaceship.
Chapter
In this final chapter, we’ll present a variety of steps you could consider as you continue on in game development. Among these, we’ll discuss working on additional projects, learning skills in related areas, and bringing your games to a wider audience. Along the way, we’ll present lists of resources of all types and general advice for many situatio...
Chapter
In Treasure Quest, the player controls a character named Hero whose goal is to find and collect the treasure chest. Along the way, there will be obstacles such as rocks that block the hero’s progress and enemies that attack the hero. The hero has a sword, which can be swung to destroy enemies (or any bushes that block the hero’s path). Coins are so...
Chapter
In this chapter, you will create a side-perspective platform-style game called Jumping Jack, shown in Figure 13-1, inspired by classic arcade and console games such as Super Mario Bros.
Book
Design and create video games using Construct 2. No prior experience is required. Game Development with Construct 2 teaches you to create 12 different game projects from a variety of genres, including car racing and tower defense to platformer and action-adventure. The software is user friendly and powerful, and the games you create can be exported...
Chapter
This chapter begins by reviewing the code for the game from the previous chapter. Your main focus will be streamlining your code from the previous chapter by refactoring common elements into new classes that can be reused as needed. This will also make it easier to introduce more-advanced features, such as new methods for processing user input. The...
Chapter
This chapter introduces a series of games and focuses on how to implement a variety of game mechanics. Each of the examples is playable, but certainly not a polished product—for example, none has a Start menu or a user interface, and we won’t implement win or lose conditions (these are left for the you to implement as recommended “Next Steps” at th...
Chapter
This chapter introduces many of the major features of the LibGDX library. It illustrates how to use them in the process of creating a game called Cheese, Please!, where you help the player’s character, Mousey, scurry around the floor while looking for a tasty piece of cheese.
Chapter
This appendix briefly reviews the core Java concepts that you should be familiar with to understand the material presented in this book. This is not a complete introduction to Java programming, so if any of the topics are unfamiliar, you may want to consult a textbook or tutorial series on Java to learn more about the corresponding material.
Chapter
This final chapter presents a variety of steps to consider as you continue on in game development. Among these, you’ll explore working on additional projects, learning skills in related areas, and bringing your games to a wider audience. Along the way, the chapter presents lists of resources of all types, and general advice for many situations.
Chapter
This chapter builds on the Starfish Collector game introduced in the previous chapter. The core game play remains the same; the additions include background music and sound effects, as well as a user interface with customized bitmap fonts, image-based buttons, and other UI controls.
Chapter
This chapter introduces some of the 3D graphics capabilities of LibGDX. Along the way, you’ll learn about the concepts and classes necessary to describe and render a three-dimensional scene. You’ll create a simple interactive demo that enables players to control both an object within the scene and the camera viewing the scene. To simplify and strea...
Chapter
This chapter covers how to use third-party software and libraries to simplify your workflow and increase the sophistication of your games. In particular, you will use the following:
Chapter
In previous chapters, your games have been controlled with traditional desktop computer hardware: a keyboard and a mouse. In this chapter, you’ll explore two alternative sources of user input: gamepad controllers and touch-screen controls. If you do not have access to a gamepad with a USB connector (as discussed later in this chapter), you can stil...
Chapter
This chapter explains how to set up a Java development environment and configure it to run with the LibGDX game development framework. You’ll see a simple example of a “Hello, World!” program, and explore it in enough detail to understand the different parts. Finally, you’ll learn some of the advantages to be gained by working with the LibGDX libra...
Article
Many CS1 curricula these days use graphics and video games as motivation (e.g. those associated with Scratch/BYOB/Snap, Processing, Alice, and Media Computation in either Java or Python). A challenge faced by any such curriculum is how to simultaneously teach good principles of problem-solving and software development such as test-driven design, mo...
Article
We describe our experiences teaching CS1 with a strong emphasis on graphics, animation, and game programming, using a predominantly functional programming style. We discuss the advantages of this approach, even in a language (Java) not normally associated with functional programming.
Article
Gabriel Cramer and Leonhard Euler both wrote important books on the theory of equations in the mid 18th century. During the years leading up to their publications, they carried on a friendly and fruitful correspondence. One topic they discussed was a paradox that was first noticed by Maclaurin: that nine points should be sufficient to determine a c...
Article
We discuss two families of parameterized knots (polynomial and trigonometric) and include an interactive gallery of selected knots and their equations. We survey results related to parameterizations and suggest avenues for further investigation. Finally, we include an applet that graphs three-dimensional parametric curves to aid the interested read...
Article
Full-text available
Euler once conjectured that Graeco-Latin squares of order 4n + 2 do not exist. We discuss the history of this problem and repeated attempts at proof and disproof. In addition, we survey a variety of mathematical techniques that were developed as a result during the following 200 years, culminating in a complete refutation of Euler's conjecture.

Network

Cited By