Skip to content

matte-made/metal-lance

Repository files navigation

Metal Lance

Game made for 1-bit jam #3.

Music tracks and sounds effects are made by nicole starlight:

Planned to be a mixture of beat 'em up and bullet hell scroll shooter. Ended up just as a scroll shooter, but it is fine.

Jam theme is "transformation", and I am going to interpret it without any creativity in mind: the main character can transform (kinda, a bit).

Tools used:

Licenses:

  • all the code is covered by GPL-3.0 license (see LICENSE-CODE)
  • all non-code assets, such as visual and audio resources, are covered by CC-BY-4.0 license ( see LICENSE-ASSETS)

Section-based progress

Section Dirty Clean Music SFX Art
Intro 100 0 100 100 10
Title 100 10 100 0 10
Tutorial 100 100 100 100 100
Stage 1 100 80 100 100 40
Boss 1 100 80 100 100 40
Stage 2 100 50 100 100 0
Boss 2 100 50 100 100 0
Stage 3 100 0 100 100 0
Final boss 100 0 100 100 20
Game over 100 0 100 0 0
Outro 100 0 100 0 10

Dev log

Day Date Wkdy MAX Plan Spnt Done
1 04/04/2024 THU 1-2 1 Conceptualized the game
2 05/04/2024 FRI 1-2 1 Explored the math of colliding function graphs a bit, decided to make everything as simple as possible (only use linear frame-time collision)
3 06/04/2024 SAT 1-2 Init repo, create the plan 2 As planned + basic playable character + shooting
4 07/04/2024 SUN 4-6 Basic shmup character and controls (move, shoot, bomb, shield), basic moving enemy 2 Fixed shooting, enemies that shoots back at controllable trajectory
5 08/04/2024 MON 4-6 Character shoots, enemy shoots bullets (t -> vec2), collisions, upgrades 3 Basic collision checks, some refactorings, power ups, death and bombs
6 09/04/2024 TUE 4-6 Start screen, intro sequence (add some story), shape and shot upgrades 3 Changing plans, create artist's build with overridable resources, added dummy intro and title screens, ship shape upgrades, organized assets
7 10/04/2024 WED 4-6 First stage of ruined city, enemy shooting patterns, enemy scheduling 5 Level scripting, tutorial sequence, some refactorings, runtime render mode via shader
8 11/04/2024 THU 4-6 Expand the scheduling engine (add enemies and shooting patterns, template moving patterns) 8 Pause and auto-pause, music playback from level script, music for stages 1 and 2, refactorings, testing animated upgrades, refined tutorial and start screens, added some city environment, refactored and declared some shooting patterns, completed the game flow (though transitions are missing), a bunch of fixes
9 12/04/2024 FRI 4-6 Finish the scheduling engine 5 Finished (not really) scheduling engine, refined power-ups, enemies and bombs
10 13/04/2024 SAT 4-6 Layout the first stage 5 Fixed a nasty shader bug, advancing the level engine, simplified describing shooting patterns, layout for a part of the 1st stage, finished the tutorial
11 14/04/2024 SUN 4-6 Layout enemy schedule on all three stages, simplified bosses for 1-st and 2-nd stages 4 Tempo sync in level engine and shooting patterns, made half of level 1, but it should be easy from now on; prepared the rhythm for level 2 and 3; basic HUD; easy mode; fade effects for game screen
12 15/04/2024 MON 3-4 Finish player movements, complete the tutorial 4 Tempo sync in player shots, mapped in-game sounds, removed animated assets for consistency, added the lance strike (finally!), shield upgrade, completed the tutorial (this time for sure)
13 16/04/2024 TUE 1-2 Finish level 1 4 Intro transitions, draft intro sequence, finished level 1, debugging level 1 boss
14 17/04/2024 WED 1-2 Level 1 boss 2 Finished level 1 + a bunch of random stuff
15 18/04/2024 THU 3-4 Level 2 + boss 4 Drafted level 2 and outro + a lot of stuff
16 19/04/2024 FRI 6-8 Finish level 2 + boss, finish level 3 + final boss, work out environment backgrounds 6 Added lasers, half-done level 3, added some ideas for the final boss, added basic backgrounds for levels 2 and 3, refactored collision checks
17 20/04/2024 SAT 3-4 Final touches, environment art, intro/outro art, submission at 16:00 6 Huge mess for the final boss

Behind the schedule

  • Level 3 + boss

Nice-to-have, but won't do

  • transitions between menu screens
  • menu sounds and selection effects
  • touch controls (for playing from phones)
  • level environments (lightning strikes, background/foreground objects, etc.)

Next section was generated by gdx-liftoff, leaving it as is since it has some useful stuff.

metal-lance

A libGDX project generated with gdx-liftoff.

This project was generated with a Kotlin project template that includes Kotlin application launchers and KTX utilities.

Platforms

  • core: Main module with the application logic shared by all platforms.
  • lwjgl3: Primary desktop platform using LWJGL3.
  • teavm: Experimental web platform using TeaVM and WebGL.

Gradle

This project uses Gradle to manage dependencies. The Gradle wrapper was included, so you can run Gradle tasks using gradlew.bat or ./gradlew commands. Useful Gradle tasks and flags:

  • --continue: when using this flag, errors will not stop the tasks from running.
  • --daemon: thanks to this flag, Gradle daemon will be used to run chosen tasks.
  • --offline: when using this flag, cached dependency archives will be used.
  • --refresh-dependencies: this flag forces validation of all dependencies. Useful for snapshot versions.
  • build: builds sources and archives of every project.
  • cleanEclipse: removes Eclipse project data.
  • cleanIdea: removes IntelliJ project data.
  • clean: removes build folders, which store compiled classes and built archives.
  • eclipse: generates Eclipse project data.
  • idea: generates IntelliJ project data.
  • lwjgl3:jar: builds application's runnable jar, which can be found at lwjgl3/build/lib.
  • lwjgl3:run: starts the application.
  • teavm:build: builds the JavaScript application into the build/dist/webapp folder.
  • teavm:run: serves the JavaScript application at http://localhost:8080 via a local Jetty server.
  • test: runs unit tests (if any).

Note that most tasks that are not specific to a single project can be run with name: prefix, where the name should be replaced with the ID of a specific project. For example, core:clean removes build folder only from the core project.

About

No description, website, or topics provided.

Resources

License

CC-BY-4.0, GPL-3.0 licenses found

Licenses found

CC-BY-4.0
LICENSE-ASSETS
GPL-3.0
LICENSE-CODE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages