I’m going on vacation this next week. I have some parent visiting to do, but I should have a few days to myself. And I don’t want to use it gaming. I have the Phaser JavaScript game engine right here, and I want to make some quick games. Though given how slow I am, maybe one game.
Real Asteroids
It always kinda bothered me that the Asteroids arcade game had all these asteroids right next to each other. They really aren’t that close. Wouldn’t it be more fun if they were a lot further apart?
- Simulate the vector display of the original game. Everything is modeled in line segments.
- Graphics are stored in a graph. Think of it as nested groups.
- Though the display is in 2D, the line endpoints will be stored in 3D, so we can apply coordinate transformation to each line, so that asteroids can rotate, the ship can rotate, the score can bounce around if we need it to, the GAME OVER text can rotate around. It’ll be fun.
- We can also explode the ship and asteroids by choosing a center point and shoving the line segments away from it, similar to the original game.
- So the game itself: You start out over a wireframe representation of Earth, and your ship is near there. Crossing the Earth will slowly refuel the ship.
- Asteroids will spawn somewhere off screen. Triangles along the edge of the screen will, by their size and location, point out the direction and distance to the asteroid.
- Asteroids slowly move toward the Earth. If they hit the Earth, game over.
- You fly out to the asteroid, using fuel. Running out of fuel is game over.
- Asteroids are really large once you get to them. Unsure how big they should be yet.
- It takes a lot of shots to break off bits and destroy them in standard Asteroids fashion. If the asteroid or asteroid bits hit you, it’s game over.
- After you destroy one, it’s off to the next one.
Bug Pong
What if, in Pong, the paddles took damage when they got hit by the ball?
- Paddles are caterpillars, crawling up and down. They are made of segments, similar to Atari’s Centipede.
- The ball is a stinkbug, rolling from side to side, but obeying all the physics of the original game.
- Each segment has its own health pool. Depending on the speed the ball is going when it hits, it can take a little damage or a lot.
- When it takes a lot, the segment disappears and the smaller half either disappears or connects to the larger half, not sure.
- Power ups include extra segments and bandages. Naturally, they will appear far away from the paddle.
- Not sure how smart to make the AI player.
Bad Space Invaders
The idea here was to make a standard Space Invaders, except the cannon only moves in one direction until it hits the edge of the screen, but refuses to move. Trying to get it to go in the other direction shows a little movement like it’s really trying, but no dice.
Not sure this would be fun to play. The others might be.
AWS Othello
I wrote Othello in JavaScript and it plays fine, but I would like it to call code in the cloud so that I could save the move trees in a database, allowing it to get smarter over time. I just tonight got the New Game endpoint working; next is to port the Monte Carlo Tree Search code from JavaScript to Python and put that in. This will give me some experience in DynamoDB and S3 and connecting all this stuff up.
“Wouldn’t it be more fun if they were a lot further apart”
Make them like real asteroids…miles and miles apart. Wait 45 minutes until one small one drifts into view.
Like MILLIONS of miles apart!
That was the original plan, actually 🙂 And they’d be a thousand times larger than your ship, too.