moonshot's People
moonshot's Issues
Lose the game when an alien hits the bottom row
Start the game in a main menu
The game should start in a main-menu, and have an option to start playing.
This should make it a little easier for us to code the win/loss scenario without global variables. "Restart" should then be "Reload the game room".
It also gives us some options like "run the tests" before any game-specific code has run (because everything affects everything else and we want to run tests in isolation).
Alien collision with the player ends the game
Have aliens fire bullets too
Currently the aliens only move but they should also fire bullets. This happens randomly and there should be no more than 3 aliens be firing at the same time (this is what roughly happens in the original space invaders game). If a bullet hits the player, the amount of lives a player has decreases by 1.
Give a player three lives
A player should have three 3 lives when the game starts. If they are hit by an alien bullet or hit by an alien, the amount should decrease by 1. If the amount reaches 0, the game is over.
This might be a splittable story:
- Add a property on the player for the livesLeft
- Reduce the number of lives when hit by an alien bullet (requires #28)
- Add an overlay/HUD that contains the number of lives so it's visible for the player
- End the game when the lives reach 0
Investigate automated tests (spike)
It looks like GameMaker has an extension that allows some form of autmated testing to be done. Let's investigate!
Limit player to screen boundaries
Cleanup unused objects
- TextWindow
Implement alien movement
Aliens move to the right, then down, then back left, and down again. Rinse, cycle, repeat!
When an alien hits the viewport boundary, the entire grid of aliens (the ones that are left over) go down and change direction.
So: when moving to thr right, when hitting the viewport boundary on the right, all aliens go down and start moving left.
Add a kickass @mitchett original soundtrack!
Rename the assets according to the rules
See README.md
Solve continuous looping when the game is lost.
Currently, when the game is "lost", a global variable is set that skips certain actions. But the game loop is still running and "skipping" due to if-statements in the code.
We should think more in events, and make sure we fire an event for "game end" instead of adding if-statements that check the global variable.
In the "moar sounds" PR, the player object is destroyed on loss to prevent contuous collision detection.
Add a visually attractive player
Add a visually attractive bullet
Add pause button
Add Pause game as a key button "P" on the trl_game object, see GameMaker functions for inspiration:
instance_deactivate_all(true);
instance_activate_region(...);
Rename "Dot" to bullet
Allow shooting multiple times
Make a splash-screen with the credits
At least add some reference to the godlike creatures that have invested their precious resources into the creation of this thing...
Add some basic sounds to the actions
- file bullet
- hit alien
- game over (win)
- game over (loss)
Add a visual queue that you have won/lost
- A white text in the centre of the screen:
You won!
(blinking if you want brownie points) - A red text in the center of the screen:
You lost!
A "play again?" button after the game is finished
Generate a full grid of aliens in the start position
Accellerate aliens when there are fewer left
Add a visually attractive alien
Possible stories for later:
- 3 different types of alien
- animated aliens
Compile the game to make sure we know how that works (spike)
Bullets that exit the screen self-destruct
Once a bullet completely leaves the viewport, it destroys itsself.
Start documentation
We should start documenting decisions and adding some basics to the readme file.
- Credits for creators and content makers
- Code style and Object naming conventions
- Basic development rules
- Writing/Running tests
- The Event system
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.