During my internship at the Digital Future Lab, I worked as part of a small team developing the proof of concept for a new game and a Java API that could be used to make similar games.
- The Overall Team's Goal
- The Programming Team's Goals
- The Proof of Concept
- The Java API
- What is in this repository?
- Running the Game
- Using the API
- Credits
Our team had an idea for a non-violent tower defense game, but would it work the way we envisioned? More importantly, would it be fun? Before moving into full-scale production, we set out to validate this vision by creating a proof of concept. Our focus was to create a single simple level containing the game's fundamental mechanics.
Over the course of 9 months, our Agile team designed, implemented, and iterated on Hug The Line's gameplay and aesthetic. Experimentation and rapid iteration were core aspects of our process, with potential features being prototyped and evaluated in sprints lasting only a few days. This allowed us to fail fast and move on to more promising solutions. Due to what we learned throughout these experiments, the overall project made numerous fundamental pivots over the course of development, each one a stepping stone towards better realizing the project's goals.
In the end, the proof of concept was considered a success. The Digital Future Lab continued to develop the project towards a retail release under the new title SEED.
Hug The Line's programming team had two concurrent goals:
- Work with the rest of our multidisciplinary team to produce the proof of concept for a game.
- Design and implement a Java API that would allow others to easily make similar games.
Pair programming was employed for the majority of development. The API was built on top of a rudimentary Java game engine, and the playable Hug The Line proof of concept was built using the API we created. We also ended up making some improvements to the core functionality of the game engine, such as adding a visual layering system.
Both goals were successfully completed.
Hug The Line (HTL) is an inverted tower defense game where the player is tasked with preserving the lives of migrating Squibbles by strategically positioning helpful Wizards.
While Hug The Line subverts key elements of the tower defense genre, the Tower Defense API we programmed allows for the creation of any kind of tower defense game. The API was planned to be used as part of early programming students' curricula, enabling instructors to guide students through basic programming concepts while providing the students with results that would be more engaging than a typical Hello World experience.
This repository contains project files for:
- The proof of concept for the game Hug The Line, located in the
HugTheLinedirectory. - The Tower Defense Java API, located in the
HTLdirectory. - The improved game engine, located in the
GameEnginedirectory. - Several simple example projects that make use of the API, located in the
UserGame0directories.
Notably, this repository is not the repository that was used during development, and it only contains the final release versions of the project files, rather than the full version history for the project. The original development repository contained a variety of private data, so unfortunately it cannot be publicly shared.
If you want to play the game, follow these instructions:
-
You'll need
git,the Java Development Kit, andEclipse, so install those if you need them. -
Make a local clone of this repository via your preferred method.
-
Open Eclipse. If you are asked to select a directory for a Workspace, choose any directory or simply use the default.
-
Select
File->Open Projects from File System... -
In
Import source, navigate to the directory you cloned earlier (Hug-The-Line, by default) then clickSelect Folder. -
You'll see a list of folders; unselect
Hug-The-Line, then clickFinish. All of the important directories are now open in the Eclipse IDE under thePackage Explorertab. -
To run the proof of concept of Hug The Line, under
Package ExplorerseletHugTheLine, then in Eclipse's menu selectRun->Run.
The UserGames are extremely simple tech demos intended to demonstrate different ways the Tower Defense API can be used. If you've been able to run Hug The Line per the above instructions, you can use those same steps to highlight one of the UserGame0 directories and run these demos.
The programming logic for UserGame01 can be found by navigating to UserGame01\src\UserGame01.java, with the other demos having their logic in similar locations. Feel free to mess around and see what you can make!
The Javadoc documentation for the API can be read here, or you can peruse the files in their GitHub repository here.
- Creative Director: Jason Pace
- Producers: Aina Braxton, Christina Jugovic, Hannah Kane
- Design Leads: Elliott White, Emmett Scout
- Art Lead: Nathan Evers
- Lead Game/API Programmers: Rachel Horton, Branden Bean Drake, Sandy Chau
- Game Engine Programmers: Jabediah Pavelas, Jack Chang, Daniel Azus, Fernando Arnez
- Audio: J.C. Ignacio
- QA: Cora Walker, Derek DeLizo
- Project Coordinator: Aina Braxton
- Game API Advisor: Michael Panitz, Kelvin Sung