Giter VIP home page Giter VIP logo

starphase's Introduction

Star Phase

A top down / side scrolling space shooter made with Lua and Love2D.

This is an early work in progress, so many bugs / changes will come.

Reccomended to use 1920x1080 resolution for now. (issue #9)

Running the game

Run the game from the src/ directory using

$ love src/

To create standalone executables for all platforms

$ make && make all

Requirements

Install the love2d library from here https://love2d.org

Controls

See binds.lua for game controls

License

GNU GPLv3 / CC-BY-SA

Screenshots

1

2

3

4

starphase's People

Contributors

jigoku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

farhany blachawk

starphase's Issues

FPS limiting is inaccurate

Toggling vsync / or capping FPS at different values can trigger differing speeds of projectiles/enemies.

Code Cleanup

Clean up test code and fix folder structuring before the initial commit.

Fix screen resizing problems

Currently only supports 1920x1080.
Arcade mode is drawn to a single canvas, and can be scaled using 8,9,0 binds, however starfield.offset becomes broken.

Hud ideas

Dialog messages (enabling a storyline, or mission objectives)

  • Find CC-BY-SA artwork for face portraits
  • Static effect overlays
  • Typewriter text effect for messages
  • Scrolls into display like the debug console animation
  • Active weapon tiers

Project Goals

Ideas / Procrastination

### procedural top down universe
- add a "flight" mode, where you can turn 360 degrees and fly in any direction (asteroids style)
- each star has its own system that can be accessed by clicking with the mouse
- warp to the star system, each having planets orbiting around a sun
- player can then navigate to a planet, enabling side-scroller battle mode
- battle scene would be generated from a seed, using different climates / ground / enemies

randomly generated top down universe

  • provide an initial seed to generate side-scrolling background (current use)
  • have waypoints the player can "jump" to a new level (planets) occasionally spawning

Implement loading screen

Now that high resolution textures are used for planets, several seconds delay at first run... needs a loading screen with progress bar of sorts.

Implement weapon tiers

Collecting the same powerup more than once will improve the weapon.
Limit it to 5 tiers.

Random ideas:

2nd tier of cannon could be faster fire rate.
3rd tier could add a rear cannon
4th could add a front/diagonal cannon
5th could add a rear/diagonal cannon

1st tier of rocket will be a single rocket fired
2nd tier, alternating dual rockets
3rd tier, dual homing rockets
4th tier, alternating rockets + homing rockets

Other weapons might just have their fire speed increased. Should make things more interesting, whilst requiring less weapon types to be implemented.

Another idea is that when the player loses a life, remove an entire tier from all weapon types.

Planet Atmosphere Effect

Add greyscale (colourised) nebulae sprites behind planet textures. Or possibly a new smoke texture of sorts.

With a slow rotation / scale / zoom effect. Makes planets appear more alive (rather than flat images).

Implement hyperspace mode

For the end of a wave (or level), the starfield should speed up, eventually reaching a hyperspace effect.

Implement loading of level files

Currently, enemies spawn on a timer, choosing a random group.

In future, groups of enemies should be triggered by the percentage/progress (eg; 0.00%).
Find a way to make levels that can be loaded easily.

Psuedo code example that may work:

level1.lua

level = { 
[1] = { "1.50", "delta" } -- spawn delta group at 1.50%
[2] = { "2.00", "dart" } -- spawn dart group at 2.00%
[3] = { "5.20", "tri" } -- spawn tri group at 5.20%
["boss1"] = "abomination" -- trigger boss event at end of wave 1
["boss2"] = "large" -- trigger boss event at end of wave 1
["next"] = { level2.lua } -- load the next level file when 100% is reached
}

Disruptor enemy type

Add an enemy type which flies in to view near the player, slows to a halt and triggers a "bubble" weapon which periodically stays/floats in the vicinity.

The effect would slow down the players movement whilst colliding with the bubble.

Weapon ideas

Player Weapons

Implemented

  • Cannon (default)
  • Blaster
  • Pulse beam ❗️
  • Plasma
  • Rockets
  • Radial Mines
  • Partical Wave ❗️
  • Orbiter/barrier

❗️ = needs refining

Unimplemented

  • Laser Beam
    Sine wave projectile
  • Homing Rockets
    flys to nearest enemy after X amount of time
  • Rear/Side cannons
    Same as cannon but different directions
  • Shield Depleter
    Uses all of the ships shield energy dealing lots of damage in vicinity
  • Smart missiles
    Small projectiles that fire automatically to the nearest enemy, giving small damage

Suicide drones enemy type

Add a small orbiting drone type weapon to a cruiser enemy.

After a timer they will act as projectiles shooting to the players last position. Can be evaded by moving.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.