Giter Site home page Giter Site logo

retrowars / retrowars Goto Github PK

View Code? Open in Web Editor NEW
180.0 8.0 18.0 57.14 MB

Play retro games against each other in any combination in this open source Android multiplayer game.

License: GNU General Public License v3.0

Java 0.82% Kotlin 98.56% Shell 0.55% Procfile 0.01% Dockerfile 0.06%
android-game retrogaming open-source free-software foss android game multiplayer-game libgdx kotlin

retrowars's Introduction

Enjoy retro games? Enjoy multiplayer games? Ever wanted to play one retro game against a different game in real time?

Welcome to Super Retro Mega Wars!

Play against your friends, with each of you can competing by playing a different game. Score points in your game and every other game will be handicapped in their own unique way. But watch out, as others score, your game will become more difficult too.

Six different single and multi-player versions of games based on classic retro titles, with more in the pipeline!

No ads. No in game purchases. Just retro games and good times.

Any feedback is very welcome at GitHub.

Known limitations:

  • Thorough play testing required to balance the games.
  • Untested on multiple screen sizes.

Screenshots

Missile Command game play Multiplayer lobby Game select screen Missile Command

Contributing

Donations

Super Retro Mega Wars is an open source, GPLv3 game. It will always be freely available via F-Droid, or for anyone to build, fork, or improve via the source code.

If you wish to support the development financially, donations are welcome via:

Reporting Issues

Please report any issues or suggest features on the issue tracker.

Translating

We use Weblate to manage translations. Please see these instructions for using Weblate to translate retrowars.

Note: After translations are completed in Weblate, a manual change is still required in this code base in order to enable the translation. This will typically be done on your behalf soon after the translation is added, but feel free to log an issue requesting it be done if there are any delays.

The technical reason for this delay is because not all glyphs of each font are rendered. Doing so would result in an excessively large game (each font is rendered into PNGs of various font sizes, and fonts such as Google Noto have an impressively large number of glyphs).

Game strings F-Droid metadata
Translation status Translation status

Submitting changes

Pull requests will be warmly received at https://github.com/retrowars/retrowars, although it is often easier to first discuss your ideas via the issue tracker.

Running a server

Documentation on running servers can be found at the retrowars-server project.

Pull requests to the retrowars/retrowars-servers project will allow your server to appear in the default retro wars client when searching for public servers, and ensure that people can continue to play against each other even if the official servers are down.

Compiling

This app uses a the libgdx library and Kotlin. It is recommended to read the libgdx documentation to get a dev environment setup.

Alternatively, you can import the project into Android Studio and build from there.

Attribution

More detail on which specific free license is used for each asset can be found in the ./assets/ directory.

retrowars's People

Contributors

5mikachu avatar ahohnmyc avatar arturaiwasan avatar comradekingu avatar creepen123 avatar davuthaxor avatar dynamicwork avatar fjuro avatar gmr82 avatar halbaast avatar inson1 avatar kazevic avatar liimee avatar manasx100 avatar milotype avatar ninjdai1 avatar novores avatar oersen avatar poussinou avatar pserwylo avatar pssandhu avatar secularsteve avatar tsyqax avatar w113565456 avatar xukula avatar zormein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

retrowars's Issues

Logo/Icon proposal

Hello!

Hey! I'm a Graphic Designer and ! want to improve my skills. I found this game in F-droid and I loved the idea and the game.

I'm interested in collaborating with this project by delivering a free logo proposal. Should I create an Issue or a Pull Request? And if you want to improve some specific art, you can tell me and I could try it!

Thank you,
Mateus Lucena

End of game, dont't return to game selection screen

I'm blasting away that last asteroid and blam, I'm dead, but in that last few milliseconds I've still been pressing the area of screen where the Fire! button was. Now I'm playing Tetris...

Could we have something that prevents thus, as I'm in an Asteroids blasting mood 🙂

IMHO just putting a "Stay Here" ("Insert coin"?) / "leave" option in a different area of the screen would be good.

Thanks for this great game(s) 🙂

Russian translation

Hey, guys! I've translated your great project to Russian on Weblate. Please, add this language into game :з

Asteroids Teleport Button

I remember on flash games, specifically the neave interactive version of asteroids, there was a teleport button that moved the ship to a a random location.

Only send score updates every so often

  • Send every Nth score update
  • Send a final score update just before you die (if it is different then the last update)
  • Improvement: Send every N points have been reached.
  • Improvement 2: Once we know what level of score change triggers negative impacts in other peoples games, only send score updates when this happens (e.g. one large score, or many small scores in a combo).

0.31.1 release fails to play sound fx first time they are triggered

Describe the bug
Sound effects seem to not actually play the first time they should be triggered, but do play on subsequent triggers. This results in some sounds, such as the snake crashing, never being played at all. This only happens on my phone, using the 0.31.1 release from f-droid. It doesn't happen with the Java build I'm using for sound development, although when using that I do notice via the console that the sounds seem to be loaded "just in time" on first use, rather than when game initializes, so my guess is it's probably related to that not happening fast enough on Android.

To Reproduce
Start a game, notice first time firing (for example) in asteroids doesn't produce sound, first asteroid hit doesn't produce sound, etc.

Smartphone (please complete the following information):

  • Device: Samsung Galaxy s10
  • Android Version: 9

Game Proposal: Tetris

Name

Tetris

Description

Tetris gameplay - from tetris.wiki

Probably doesn't need much introduction, but things worthy of discussion are that later versions of tetris made certain features more standard, so we should decide which of the following to implement (though the first version will likely have none of these newer additional features):

  • Instant drop / soft drop - Allowing you to drop the piece instantly and then a short lock delay which allows the player to move left/right briefly before the piece is locked in place.
  • Ghost pieces show where the piece will land in a faint colour.
  • Hold allows players to temporarily store the current piece off to the side in the hope of finding a better piece later.

Links to screenshots / videos / descriptions

  • GameBoy Tetris - the version I grew up on and is most familiar to me - Youtube
  • 2 player Tetris on the original GameBoy version - Youtube.
  • Evolution of Tetris - Youtube - This is a bit of overkill, but you can see that towards the later versions, certain features become more standard, including showing the ghost of where the piece will land, instantly dropping the piece, showing more than one of the next pieces, holding pieces, etc.

Multiplayer Handicap

The original GameBoy Tetris had a multiplayer mode (yes - via a link cable!) whereby scoring lines on one screen would place the same number of lines at the bottom of the other players screen. Of course, you cannot place a full line, there needs to be at least one hole in it so that the line can be cleared eventually. It also seemed to do it nicely - that is to say that it lined up this single empty cell with a clear column above it if there was one available.

(The original game also showed each player how high each other players stack was. We can use this to broadcast to othe rplayers in retrowars how much pressure a player is under because Tetris doesn't have lives or cities like asteroids or missile command).

Internet based server (not just LAN)

Currently we only support LAN play. This is done by one player starting a server on their local device, which opens a port that responds to UDP broadcasts when a client tries to connect to a server on the local network.

While this is good for a first prototype, it also means that it is impossible to play with the vast majority of players, and it also means that you have to have someone specific to play with (which really limits the opportunities for network play).

By having one or more public servers on the internet, it should be relatively straightforward to provide a lobby that lets people browse these severs, find a running game (or start one themselves), and then have others connect from their networks. This will help greatly with issues such as mobile devices on 3/4/5g sitting behind telco NATs too.

A sketch of what this may require is:

  • A lightweight server .jar/.war file to be deployed.
  • Free web hosting (e.g. Heroku free tier or the more community focused HelioHost).
  • Server:
    • Record a list of current games
    • Allow generation of a new game
    • Remove games after a period of inactivity
    • Same as current server but on a different thread
  • Client:
    • Lobby should have option to browse servers
    • Lookup a list of servers (e.g. .well-known/retrowars-servers.json from GitHub pages) to find the free hosts.
    • Selecting a server shows the list of games, including current number of connected players.
    • Can initiate a new game on a server too (if not overloaded?)
    • Once started or joined, everything else should remain as currently is for LAN games.

Add a notion of "health" to the network player stats

Start simple, but then try to make it fluctuate throughout levels based on how difficult the current screen is (more asteroids means you are struggling more, so represent this back to the server).

  • Prototype based on number of ships left in Asteroids and number of cities left in Missile Command.
  • Asteroids: Adjust with the number of asteroids.
  • Missile Command: Adjust with the number of missiles left on the screen, and the number of defensive missiles left (more missiles on screen and less missiles in stock means less "health").

Game Proposal: Pang

Buster Bros (or Pang)

Description

Published in 1989. In the game, players must finish a round-the-world quest to destroy bouncing balloons. When the player hits a ball, it splits into two balls (half size, bouncing in opposite directions and bouncing less too). When a minimum size ball is hit, it disappears.

Links to screenshots / videos / descriptions

https://en.m.wikipedia.org/wiki/Buster_Bros.

Multiplayer Handicap

I don't know what to say here.

Thanks for what you've developed so far!!! Just tried it and it is great.

Make finger guiding viable in Breakout

Is your feature request related to a problem? Please describe.
After playing a few games of Breakout I came to the quick realization that unlike the other games that have on-screen buttons, this game was made with the intention to have the player drag their finger across the screen to guide the paddle. At first I was ok playing like this however some things became very apparent.

  1. The paddle had a set speed.
  2. The paddle's set speed was way to slow to follow my finger.

This is frustrating as when the ball is on the other side of the screen i would instinctively flick over to it but the paddle is unable to keep up making me lose lives.

Describe the solution you'd like
I think that increasing the speed so that it can accurately track the player's finger even at high speeds.

Describe alternatives you've considered
Currently the way I play breakout is by having my thumbs at the edges of the screen and tapping to move the paddle sort of like having pseudo buttons. I think it would be cool to have this control scheme inplemented into the game as an extra control layout in the options menu.

v0.6.0 crashes on startup

Describe the bug
Upon opening v0.6.0 of the app built from F-Droid, it crashes immediately with the following logcat:

07-07 13:18:27.438 29137 29137 E AndroidRuntime: FATAL EXCEPTION: main
07-07 13:18:27.438 29137 29137 E AndroidRuntime: Process: com.serwylo.retrowars, PID: 29137
07-07 13:18:27.438 29137 29137 E AndroidRuntime: java.lang.ExceptionInInitializerError
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at java.lang.Class.newInstance(Native Method)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.Instrumentation.newActivity(Instrumentation.java:1264)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3797)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4077)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2458)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:110)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:219)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8387)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.badlogic.gdx.utils.SharedLibraryLoader.load(Unknown Source:82)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.badlogic.gdx.utils.GdxNativesLoader.load(Unknown Source:25)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.badlogic.gdx.backends.android.AndroidApplication.<clinit>(Unknown Source:0)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	... 15 more
07-07 13:18:27.438 29137 29137 E AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.serwylo.retrowars--2YQ84TtOIOhFUYmf_3Vpg==/base.apk"],nativeLibraryDirectories=[/data/app/com.serwylo.retrowars--2YQ84TtOIOhFUYmf_3Vpg==/lib/arm64, /system/lib64, /hw_product/lib64, /system/product/lib64, /prets/lib64]]] couldn't find "libgdx.so"
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1668)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	at com.badlogic.gdx.utils.SharedLibraryLoader.load(Unknown Source:24)
07-07 13:18:27.438 29137 29137 E AndroidRuntime: 	... 17 more

To Reproduce
Steps to reproduce the behavior:

  1. Download v0.6.0 from F-Droid
  2. Launch the app
  3. It will not open

Expected behavior
App launces as per normal

Screenshots
N/A

Smartphone (please complete the following information):

  • Device: Huawei P30 Pro (but likely any device)
  • Android Version: 10
  • Version v0.6.0

Allow closing the lobby.

  • If a client, send a message to the server and then close the connection.
  • The server needs to propagate that request to all clients, which in turn update their list of players.
  • If a server, send a terimation message to all clients. Upon receiving, they will all close their socket.

Game Proposal: [Pong]

PONG

Description

I know it's very simple, maybe too much for most of you. But it was my first video game that I played and it's important to me!

From Wikipedia:
Pong is a table tennis–themed [twitch](https://en.m.wikipedia.org/wiki/Twitch_gameplay) arcade sports video game, featuring simple two-dimensional graphics, manufactured by Atari and originally released in 1972. It was one of the earliest arcade video games; it was created by [Allan Alcorn]

Links to screenshots / videos / descriptions

Wikipedia
YouTube
GIF

brick breaker

Could love if you can swipe under the paddle so you can vie the paddle better.

Game Proposal: [Pole Position]

POLE POSITION

Description

A 1982 Arcade Racing Game (with multiple ports) by Namco that was published by Atari in France and North America. The goal is to basically drive as far as possible until your time runs out, or until you pass the goal. Basically, Endurance Racing, and Regular Racing. It's possible to extend the time by going through checkpoints. The further you go, the more points you earn. It's possible to earn additional points for every car that you pass. There's also the puddles/oil slicks on the track that prevent you from turning for half a second whenever you pass them (they spawn randomly).

Links to screenshots / videos / descriptions

YouTube
Wikipedia
Pole0000.png

Multiplayer Handicap

As mentioned earlier. The game is reliant on the amount of puddles, the amount of opponent cars, and the amount of time left before passing a checkpoint.

The former two can be gradually increased, and the latter can be made so that "the further the player goes, the less extended time he receives whenever he passes a checkpoint".

Multiplayer lobby sometimes shows "Start game" when there is only one player

Describe the bug
Multiplayer lobby says "Ready to start" with a "Start game" button sometimes when there is only a single player in the lobby.

To Reproduce

  • Start a multiplayer game with two players.
  • Wait until the game is finished.
  • Once back in the lobby (showing a "Start game" button), then have one player leave.
  • The other player will still see "Ready to start" and "Start game"

Expected behavior
They should be returned to the "Waiting for other players" screen.

Options aren't saved

Options aren't saved, so they reset when reopening the app.

  1. Go to options
  2. Turn off gratuitous visual effects
  3. Close the app
  4. Reopen it

Gratitous visual effects are on again

Game Proposal: Space Invaders

Name

Space Invaders

Description

In some ways, this is the quintessential retro game.

Here is some details of the mechanics to help in implementing the game.

  • Multiple rows of aliens move left to right.
  • When they hit the edge of the screen, they change direction and drop down one row.
  • If you remove an entire column from the edge of the alien grid, that means they need to move further prior to hitting the edge.
  • As the number of aliens reduces, the speed of the entire grid increases.
  • You can only shoot one bullet at a time. Once shot, the bullet needs to either hit an alien or the top of the screen prior to being able to shoot again.
  • There are shields protecting the player. As they are hit, they disintegrate reducing the production.
  • You can also shoot through the shields if you want to make space to shoot aliens while maintaining some amount of cover.
  • Periodically, a faster moving spaceship moves along the top of the screen above all the aliens.
  • Once all the aliens are removed from the screen, a new grid appears again, signifying the next level.

Links to screenshots / videos / descriptions

Multiplayer Handicap

There are various options here. Things to consider:

  • Add more aliens to the screen (perhaps the most obvious), though use some heuristics to ensure that they appear near the top of the list of current aliens, otherwise they may spawn in a nigh-on-impossible-to-defend-low place that then instantly hits the ground - especially if your current remaining aliens are moving very fast.
  • Increase the speed of the current aliens
  • Remove the shields from the screen

Of these I think it would be best to just go with adding more aliens.

Game Proposal: Pac-Man

Name

Pac-Man

Description

(Include the year it was published, the consoles it was available on, and any other information that helps set the scene for why this would fit alongside other games in Super Retro Mega Wars. The more detail you can provide about the mechanics of the game the better.)

Pacman plsss great 80s game, pls put it on the project

Links to screenshots / videos / descriptions

(Add links to any relevant YouTube videos, screenshots, etc which help to showcase how the original game plays)

Multiplayer Handicap

(In order to play against other games in Super Retro Mega Wars, we need to know how to do two main things - handicap the current player when other games send events to this game, and send events to other games when we score in this game. Sending events to others is simple, all games do it automatically every time a certain number of points are scored. Handicapping the current player is unique to each game - e.g. in Asteroids new asteroids appear on the screen, in Missile Command missiles appear on the screen)

To be advised: Perhaps when you eat enough dots, other players are handicapped, and when you eat a ghost, they are even further handicapped?

Sound effects

Sound effects would breathe some life into the game as it feels hollow without it. Since these are retro style games, even simple sounds would suffice as it'd give feedback to what is happening on screen e.g. a beep whenever you clear lines in Tetris.

Pause across all games

Very simple but vital request:

A pause feature to be able to pause the game. (At least in Single Player Mode)

More white-black contrast

Is your feature request related to a problem? Please describe.
I cant see properly sometimes, objects are too thin and vague sometimes, specially when my phone screen reflects sunlight.

Describe the solution you'd like
I really like the actual style, so I would add a "more contrast" option in the settings, in order to have the option when it is needed.

Describe alternatives you've considered
Outlines of the objects could be bolder. That would be probably enough, since white-darkgrey and red-darkgrey make a good contrast.

Additional context
It is not my case, but there are people with color blindness and so on. Maybe it is a good idea to give it a thought.

Anyways, this was an idea that occurred to me. Truth is that the game (game platform actually!) is already a success in my opinion. Congratulations!!

Allow for sliding finger movement between directional controls

Is your feature request related to a problem? Please describe.

When playing Asteroids etc,on a phone, the need to lift a digit from one rotation "button" before placing on the other can be awkward during heated game play.

Describe the solution you'd like

It would be nice if it were possilble to simply swipe back and forth between the two controls.

Describe alternatives you've considered

I don't know much about implementing touchscreen controls, but maybe an area that simply senses a direction of finger movement would be an alternative, although it might require a user-adjustable "dead zone" to get the best latency without accidental direction changes.

Additional context

Having the corners of the game screen obscured by fingers can sometimes be a problem in and of itself. I personally might prefer a 4:3 aspect game screen with controls outside of this (the wide aspect ratio feels a little weird for retro games anyway, to be honest). That aside, this project is an interesting concept, thanks for working on it!

Tempest Game play suggestion

Hey there, big big fan of your work.
As a vintage gamer that loves vintage games, I seem to remember that the players "ship" sort of "walked" around the perimeter in a trapzoidal matter and when the enemies reach the top of the tower, if you timed it right, you were able to destroy enemies by running into them provided you were positioned with the pointy edge of the ship on the side of the enemy.
If there is a way to defend against these guys on the rim in your game, I haven't found it.
Not sure how difficult this feature would be to implement but I think it would add quite a bit to this already pretty awesome emulation.
Thanks for the read. Keep up the great work!

Highscore system

A simple highscore system would be very rewarding :)
Doesn't have to be fancy, just needs to display the game name and the highscore connected to it.
An achievement system might also be interesting for a future release...

[Space invaders] crash when score is around 300.000

Describe the bug
As I described in the title the game crash when I reach a score 250.000 - 300.000.
I always had that bug from a very previous release.
It happened in both effects retro and non retro.

To Reproduce
Just playing until it crashes.

Expected behavior
Thank you so much for your effort to developing!

Smartphone (please complete the following information):

  • Device: Motorola one hyper
  • Android Version: 11
  • Version RPFS31.Q1-21-20-10

Tetris: Can drop a block into another block or crash the app

Describe the bug
If the drop button is pressed at the correct moment a block can be placed one row inside the blocks beneath it. The app crashes if there is no block underneath.

To Reproduce

  1. Wait until a block naturally falls into its final place
  2. Press the drop button before the next block spawns
  3. If there is already a block underneath, it placed one row deeper than should be possible
  4. If on the bottom row, the app crashes

Expected behavior
Nothing/skip to next block spawning

Smartphone:

  • Android Version: 8.0.0
  • Version: 0.6.1

Additional context
Only tested on singleplayer.
From a quick look at the code the problem might the +1 in the loop condition. Might also need to check for a legal move before storeTetronimoInGrid:

var newY = state.currentY + 1
while (isLegalMove(state.currentPiece, state.currentX, newY + 1)) {
newY ++
}
storeTetronimoInGrid(state.currentPiece, state.currentX, newY)

Can also teleport through blocks if the newY + 1 position is valid and continue dropping.

Make it so when you press the insert coin to continue you dont have to start at the menu

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Pac-man!

Or make one similar ti pac man.

Game Proposal: Tempest

Name

Tempest

Description

Tempest Wikipedia article

The player is looking down a 3D "pipe" (for lack of a better word) of various shapes and sizes. They cling to the edge of the pipe and traverse around the circumference, as monsters climb from the end to the front of this "pipe". From any position, the player can shoot at monsters in front of them. When monsters get to the end of the pipe, they walk around the circumference for a brief period (and hence the player risks running into them) for a brief period.

Links to screenshots / videos / descriptions

Gameplay video - Youtube

Multiplayer Handicap

  • More creatures spawn at the start of the tunnel each time other players score.

Game Proposal: Breakout

Name

Breakout

Description

Breakout was released in 1976 by Atari.

There are numerous variations throughout history. Some of the ones I played growing up (in chronological order) include:

  • Aquanoid
  • Arkanoid
  • Block Breaker
  • DX Ball
  • Ricochet

Alas, I never actually played the original that I am proposing here!!!

Of course, there are many more in between, each with their own slant. The proposal here is to go for the original one, because it will fit in best with the simplicity of the other games here. In the future, perhaps it can stray towards something more complex or modern.

Controls:

  • Use the touch screen controls to drag the paddle left or right. If this proves to be too easy, then use soft buttons on the screen to move left or right when holding the buttons.

Links to screenshots / videos / descriptions

Multiplayer Handicap

A few suggestions:

  • Add additional blocks to the screen in random locations. If the screen is already full of blocks, just keep adding them below the normal starting row of blocks.
  • Speed up the ball (but does it speed up forever until the speed of light?)
  • Reduce the size of the paddle (but does it shrink forever until it is gone?)

Tetris: spin is reverses for T and L

Playing Tetris on version 0.15.0 I noticed that the spin works backwards for T and L pieces. I would well say that they are reversed, in comparison to previous versions.

Game Proposal: Snake

Name

Snake

Description

Control an every-increasing snake by moving it left, right, up, and down. Eat items on screen to gain points, but eating items also increases the length of the snake. Avoid hitting yourself, the edge of the screen, or any obstacles.

Original genre seems to be initiated by "Blockade" from 1976, though this was strictly multiplayer (against a human or computer), didn't reference eating things, and the snake continued to grow indefinitely. The goal of this was to trap the other opponents.

More recently, I think most people think of Snake from the early Nokia phones, the first of which was the 6110.

As a child, I first came across this genre via the Windows 3.1 game Rattler race (online emulator).

Links to screenshots / videos / descriptions

Multiplayer Handicap

When other players score, your snake should increase in length as if you had just eaten some items from screen (but minus the points you would have scored if you had eaten them).

Better network handling.

  • Server should should gracefully fail and show a message to the users if the port is in use.
  • Start server on a background thread
  • Connect client to server on a background thread
  • Show feedback about connection to the user
  • Disable Start Server / Join Server buttons when connecting
  • Client should scan the local network (https://github.com/EsotericSoftware/kryonet#lan-server-discovery)
  • Only allow clients to join when the server is in the lobby.
  • If the server is currently in a game (or some other state), still allow joining, but tell the user they need to wait for the server to return to the lobby. This will also result in the need for games and other screens to not update when a new player joins (because they are not actually part of the game. The end-game screen already does this (takes a local copy of the players list).

Screen orientation

The game currently only supports being 90 degrees counter clockwise (landscape) and I prefer playing 90 degrees clockwise (reverse landscape).

Ideally, the game would rotate to match the orientation your phone is so it doesn't appear upside down.

Pressing back from options goes to game select screen

Describe the bug
Pressing back from the main options menu goes to the game select screen, where it should return to the main menu

To Reproduce
Steps to reproduce the behavior:

  1. From main menu, tap"Options"
  2. Tap the onscreen "Back" button near the heading.

Expected behavior
Should return to the main menu instead.

End game screen for multiplayer

  • Triggered for each player when they die
  • Show the players progress scores in real time
  • When all players have died, switch to a summary view and announce a winner
  • Show a button to start a new game (perhaps just go back to the lobby with the existing server - will require it to accept a pre-cooked client and maybe server)
  • Lobby should warn when users are still in game (because people may have returned to the lobby while waiting for others)
  • Server should only be able to start game once all players have returned to the lobby or removed themselves
  • Tell the server to randomly select games for each player again.

Suggestion for game in beta testing?

Make it so that at the start it's slower and gradually gets faster, as, well as space out the bricks slightly more to allow to cool combos in the bricks behind, while leaving the other bricks in front intact.

Vertical Movement Arrows in Snake Game

I really like the style and feel of the app, so I'll start with a thanks for bringing more retro fun to the FOSS scene.

The only point I might add is that though I thoroughly enjoy playing snake, while the horizontal buttons on the left are intuitive for touchscreen use, to accidentally press 'up' instead of down (or vice-versa), due to the right-side horizontal buttons controlling vertical movement, mars the user experience, especially if it results in an unnecessary game-over.

Perhaps there could be an option to adjust the button positions and/or sizes to suit the user.

I realise that the relevant code is probably this:

init {
val skin = game.uiAssets.getSkin()
val sprites = game.uiAssets.getSprites()
controllerLeft = IconButton(skin, sprites.buttonIcons.left)
controllerRight = IconButton(skin, sprites.buttonIcons.right)
controllerUp = IconButton(skin, sprites.buttonIcons.up)
controllerDown = IconButton(skin, sprites.buttonIcons.down)
controllerLeft.addAction(Actions.alpha(0.4f))
controllerRight.addAction(Actions.alpha(0.4f))
controllerUp.addAction(Actions.alpha(0.4f))
controllerDown.addAction(Actions.alpha(0.4f))
val buttonSize = UI_SPACE * 15
softController.apply {
bottom().pad(UI_SPACE * 4)
add(controllerLeft).space(UI_SPACE * 2).size(buttonSize)
add(controllerRight).space(UI_SPACE * 2).size(buttonSize)
add().expandX()
add(controllerUp).space(UI_SPACE * 2).size(buttonSize)
add(controllerDown).space(UI_SPACE * 2).size(buttonSize)
}
addGameOverlayToHUD(softController)
showMessage("Eat the fruit", "Avoid your tail")
}

And I could alter it and recompile, but it'd be nice to have an option that anyone can use (and still receive updates through F-Droid etc).

If customizable buttons are too much work in code, perhaps just having the vertical movement in snake be with vertical buttons would suffice for me at least.

Thanks for your consideration.

Thrust SFX in Asteroids can't be muted

First of all: Thanks so much for the effort you put into the games!
I love the app and enjoy it very much!

I think this is just a small bug, but somehow annoying, when listening to a podcast or music at the same time.

Describe the bug
There is some sound effect playing at the end of each use of the thrust although sound effects are muted.

To Reproduce
Steps to reproduce the behavior:

  1. Mute sound effects
  2. Play Asteroids and use the thrust

Expected behavior
No sound

Game Proposal: Depthcharge

Name

Depthcharge

Description

  • Published in 1977 for Sega VIC

  • this game just feels like it would fit in this collection to me?

  • Description stolen from Wikipedia:

    • Depthcharge is a single-player arcade game released in 1977 by Gremlin Industries. The game, which uses a black-and-white CRT display, presents the player with a cut-away view of a section of ocean, on the surface of which is a destroyer with submarines passing beneath it. The player drops depth charges (up to six at a time) to destroy the submarines and moves the ship back and forth in order to avoid the submarines' mines. Up to four submarines may be present at any given time, each of which bears a score for destroying it that increases with its depth.

Links to screenshots / videos / descriptions

Multiplayer Handicap

Not really sure. Maybe change speed of ship, charges, and subs?

Adding pause button

Game can't be paused in between

While playing the game user is not provided with any pause button.

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.