Loft

A GameMaker prototype about an artist whose paintings are made in a bullet-hell arena. Questioning user-made art and intentionality through procedural rhetoric.

My role
Game Designer and Programmer
Timeline
2020–2021
Team
Sam Schwartz · Jacques Manjarrez · Eric Han
Project art by Jacques Manjarrez.

You start as a failed, miserable artist residing in a lonely loft in the fictional bohemian metropolis of San Caterina. Your objective is, over the course of a year, to become a world-famous artist. Gameplay is separated into two phases - painting and prep.

Prep phase (living phase)

Apartment with the curtains closed. January 2021 prototype.

During the prep phase, the player must conserve days to prepare for the paint phase by buying art supplies and acquiring inspiration while also taking care of their physical/psychological well being. During the prep phase, the player can also communicate and develop relationships with the citizens of San Caterina. This may help them in the paint phase, or help them achieve their final objective of becoming known within art spheres. While in the prep phase, time passes at a rate of three time units a day. Most actions demand one time unit.

Some notes about personal stats:

Every action the player makes besides the sleep action will make the player gain a fatigue point. Every fatigue point will lower the speed of the brush by 2.5% (to a minimum of 10%). Sleeping allows the player to lose all fatigue points. The sleep action takes one time unit, and depending on the date, may activate a nightmare which will preview the monster. (eg: player starts with 1 fatigue, doesn’t sleep for three actions. Now with 4 fatigue, he sleeps for the fourth action, and the ranker goes back to 0). The player can also purchase coffee, tea, to delay fatigue point gain for several actions.

Inspiration is a stat that can be implemented in the paint phase. Inspiration is equivalent to the player’s health in the paint phase, and it can be refueled in the prep phase. The starting max for player inspiration is 5/5 - meaning the player can take 5 damage in the paint phase before losing the encounter. Max inspiration increases with player level and equipment. Using the window action (gazing out the window) heals the player 1 inspiration point. Going to a gallery heals 2 inspiration. Various drugs and intoxicants, though having adverse effects, can heal inspiration much more effectively.

Paint phase

During the paint phase, the player is thrown onto a blank canvas as a little arrow reminiscent of the spaceship in Asteroids. Before the encounter, players can choose to equip and change their palette to best fit the combat. The palette is accessible via number keys which lets you switch between primaries/secondaries. The player then enters a bullet hell where they must fight baddies representing the player’s insecurities, trials, and tribulations. Examples of primaries/secondaries include:

Primaries (m1):

  • Splatter - deals (color) damage between the front of the (brush) and the pointer.
  • Hatch - deals (pencil) in normal ray
  • Splat - slow moving ball that detonates on impact dealing (color) damage)

Secondaries (m2):

  • Eraser beam that deals massive, continuous damage while eliminating all colors in the way
  • Wash - stream of color that does continuous color damage
  • Shield - temporarily blocks damage

Track (space)

  • Holding space while moving will allow you to leave a line of the color/medium that you have selected. Lines can be used to block projectiles of the same color and to enclose baddies in color boxes. These lines will slowly dissipate as you shoot them. Your track can be modified at the beginning of the encounter.

Speed (shift)

  • Speed increase - boosts speed by 100% while holding down.
  • Dash - Dash forward when tapping.

Specials (variable)

(these can be purchased/modified by going to the art store/completing certain missions)

  • Focus: slows time of projectiles. Has a cool down. Hit Q to activate.
  • Embolden: Re-enforces color lines. Has a cool down. Hit Q to activate.
  • Drift: Fires off splatter paint as you do a quick turn. (WA/WD + shift)
  • Re-fill: Re-fill colors. Hit E to activate
  • Eruption: Fire color in all directions from your point of origin in a color explosion. Hit Q to activate.

Enemy projectiles represent different colors, which can be blocked/absorbed by walls of corresponding colors, made by tracks. Some enemies are weak to attacks from specific colors. You can switch between colors using the number keys.

If you manage to clear the canvas, all the marks that your weapons blasts/collisions/trails left become the art piece - which will go onto hang on the wall of your loft. You can later add that art piece to a gallery and earn money through purchases and sponsors, which will enable you to buy better equipment and upgrade skills in the prep phase.

A canvas from the January 2021 prototype archive.

Loft room

The open-curtain state. January 2021 prototype.

Bed

Hover:

  • Blanket rolls up

Click:

  • Screen will fade to black
  • If the calendar demands it, insert nightmare
  • Otherwise, continue as normal
  • Screen fade transition back to loft room
  • Clock has passed 1 time unit.
  • Heal all fatigue.

Window

Hover:

  • Blinds roll back.

Click:

  • Go to look out the window - see detailed animation of weather outside window - heal one inspiration.
  • Option to lock blinds for window in place to keep them open.
  • Clock has passed 1 time unit.

Door

A door-menu concept sketch with activities and time costs.Original Loft project asset. Team: Sam Schwartz, Jacques Manjarrez, and Eric Han; art led by Jacques Manjarrez.

Hover:

  • Door opens.

Click:

  • Go to travel window, which is a menu which offers places to go.
    • Start places: (each take up one time unit - more can be added later)
      • Convenience store
      • Kris’s (Art store)
      • Public Gallery
      • Park
      • Gallaham’s (fast food)

Project proposal

Student Project Fund

Project Description:

Our goal with the Loft project is to learn the fundamentals of the video game-making process from initial conception to final product. We seek to make a full-fledged game from scratch using the Gamemaker Studio 2 engine, complete with custom visuals and sound in conjunction with the source code.

We draw our initial inspiration from our desire to design a game where players can ultimately create art, despite it not being an objective or explicitly encouraged. Much like how a functioning computer can be built in Minecraft, or how trigonometry lessons can be taught in Half-Life: Alyx, Loft will present innate opportunities for alternate objectives through its mechanics, but it will be entirely dependent on the player to manipulate said mechanics for artistic purposes.

Broadly, we envision the final product’s gameplay to be split between a day-in-the-life simulator of an artist’s life (with a focus on decision-making and resource management) and a Japanese bullet-hell action-arcade experience. Additionally, we expect to include narrative elements, bridging the seemingly disparate game modes and making the game story-driven.

An early apartment mockup, before the illustrated room took shape.

Funding for this project will go towards purchasing three Gamemaker Studio 2 licenses, of which we are currently using 30-day free trials. As of late September, we have already completed a mock-up of the main room with interactive elements and custom sprites. For the past month, we have met weekly for two hours, setting deadlines and goals for each week, and we expect to continue holding these meetings until the project is done. Our timeline is expanded upon in the Project Milestones section, but we hope to have a complete, playable version by early January.

While all three of the team members are avid video game players and will collaborate on nearly all aspects of the game, we expect that Jacques will spearhead the art, narrative, and game design elements while Sam and Eric work on coding the game itself. Though Sam and Eric are both experienced coders, they have not used the Gamemaker language before, and as such will be focused on learning the intricacies and best practices for the language. We hope the skills to be learned and wisdom to be gained through this project will directly support our desires to all be involved in the gaming industry as career paths.

Project Milestone:

  • 10/3/20 - Loft outline completed
  • 10/20/20 - Finish rooms, begin scripting.
  • 11/12/20 - Finish skeleton bullet hell game
  • 11/20/20 - finish draft 1 dialogue
  • 1/15/21 - finish draft 1 of game.
  • 1/20/21 - initiate kickstarter

Short Bios:

Sam: Sam Schwartz is a rising fourth year at the University of Chicago doing the Joint BA/MS program in Music/Computer Science, respectively. Outside of class, he is a member of many musical ensembles, is a resident assistant in one of the dorms, and works at the Media Arts, Data, and Design Center at UChicago. His love of video games is the driving force behind his selected fields of study, and he is excited to have this opportunity to work on a video game project.

Eric: Eric Han is a third-year computer science student at Case Western Reserve University. Currently, he works part-time at Eradani as a full stack developer, where he develops web applications using JavaScript frameworks. He spends his free time playing video games, watching movies, or coding random projects.

Jacques: Jacques Manjarrez is a rising fourth year at the University of Chicago double - majoring in physics and cinema with a passion for art, video games, and storytelling. When he isn’t making independent shorts, or solving p-sets for class, you can usually find him at the Art Institute at the University of Chicago, strolling through the same Monet exhibit for the 10th time that day. If it’s raining, you will more likely find him playing indie games back home with a hot mug of tea.

LOFT Final Report

What has been done?

From the period of time between submitting our interim report and now, we have met our goal of creating a short demo, which includes all of the main mechanics planned for the game.

In the demo, the following items are implemented:

  • Intro Screen
    • Animated intro sequence
    • Main menu screen
  • Main Room (Loft)
    • Interactive sprites of objects around the room
    • Door object that, upon clicking, leads to the dialogue event
  • Character Dialogue
    • Branching dialogue with one of the main characters (Babinsky)
  • Bullet-hell Arena Room (Canvas)
    • Player Mechanics
      • WASD to move in different directions in a top-down plane
      • Left-mouse click to shoot one of four types of ammo
        • Red: 100 ammo
        • Blue: 50 ammo
        • Purple: 1 ammo, recursive-clustering bomb that, upon detonation, shoots another spread of 6 bombs, which then turns into a spread of 8 bullets
        • Yellow: 1000 ammo
      • Space to draw walls of one of four colors (red, blue, purple, yellow)
      • Health and UI
      • On-hit invulnerability shield
      • Paint bucket pick up to refill a type of ammo
        • These are randomly dropped by enemies upon death and refill the entire pool of a single type of ammo
    • Two different types of enemies
      • Teddy Bear with four variants (Red, Blue, Yellow, Purple)
      • Cat Face
    • Waves and Levels
      • For this demo, we implemented the entirety of the first level, which consists of two waves
    • Loss Screen
  • All sprites and assets used are original, drawn by team member Jacques Manjarrez
The prototype main menu. January 2021.

What still needs to be done?

As of the end of April 2021, much of the work for the project has gone into learning the GameMaker software and making barebones/prototype versions of each gameplay element. These elements include: menu screens, introductory cutscenes, animated transitions, dialogue with interactive decision-making options, progression of in-game time, and a combat system with WASD/mouse controls, an animated HUD, differentiated levels with “waves”, win/loss conditions, and special moves. We succeeded for the most part in implementing basic versions of all of these game elements, but a completed version of the project would feature much more advanced/developed forms of each, along with a more directed gameplay focus and fleshed-out narrative.

What are current obstacles to progress?

Nothing in particular is presenting itself as a roadblock in the process, but work is slow in general due to school commitments (Jacques and Sam are graduating soon, and Eric has an earlier finals season). With only a three person team, and especially as newcomers to all elements of the process, progress is slow (but thankfully, relatively steady).

Project Impact

Was any part of this project new or unprecedented? If so, how?

Our project was an indie game designed from the ground-up by amateur game developers of different backgrounds across the country. Although we would hesitate before calling this unprecedented, the amount of communication between all parties at any time during development such a project demanded was new for us. The tasks decided between us, there were plenty of instances where each of us would blindly contribute an aspect of the project to another member, trusting that they will apply it correctly. In such cases, the value of conceiving a creative endeavor in a shared space became all the more apparent. What was essential was ensuring that all parties involved had a shared vision for what the final product of the project would be. Finding the most effective means to share the common image was a long and arduous process with much trial and error. Eventually, we managed to come up with a system by which we could effectively communicate with each other and develop our collective vision.