Giter Site home page Giter Site logo

agateau / pixelwheels Goto Github PK

View Code? Open in Web Editor NEW
388.0 16.0 56.0 57.36 MB

A top-down retro racing game for PC (Linux, macOS, Windows) and Android.

Home Page: https://agateau.com/projects/pixelwheels

License: Other

Makefile 0.94% Java 93.84% Python 3.68% Shell 1.24% Ruby 0.07% Dockerfile 0.06% OpenEdge ABL 0.17%
game retro android top-down windows linux libgdx macos

pixelwheels's Introduction

Pixel Wheels

Build Status

Pixel Wheels is a retro top-down racing game for Linux, macOS, Windows and Android.

Screenshot

It features multiple tracks and vehicles as well as various bonuses and weapons to help you get to the finish line first!

On PC, you can play Pixel Wheels alone or with a friend.

I want to try it!

Great! For Linux, macOS and Windows, you can get binaries from Pixel Wheels page on itch.io.

ARM-based Mac users: Note that Pixel Wheels does not run on ARM-based Macs for now. This will be added when the game is updated to use libGDX 1.11.0.

For Android, you can install Pixel Wheels from F-Droid, Google Play or from itch.io too.

master builds

If you feel adventurous, you can also try binaries from the master branch. These are available from builds.agateau.com.

I think it would be much better if it did X, Y or Z...

I have a reasonably well defined vision of what I want Pixel Wheels to be. Your feedback and suggestions are welcome, and I will look into them, but I reserve the right to decide if your ideas fit with the game I am trying to create.

Contributing

The docs directory contains documentation to work on Pixel Wheels.

In particular:

License

  • The game logic is licensed under GPL 3.0 or later. This is all the code in core/src/com/agateau/pixelwheels directory.
  • The rest of the code is licensed under Apache 2.0.
  • Assets are licensed under Creative Commons BY-SA 4.0.

The rationale behind this combination of licenses is to:

  • Allow reuse of all the code and assets by free software projects.
  • Allow reuse of utility code in proprietary projects.
  • Prevent appearance of ad-based, malicious, proprietary clones of the game.

Put another way, if you are a game developer and find some of the code interesting, feel free to use it to build your own original project. If you are interested in some of the GPL code, get in touch, I am open to relicensing.

On the other hand, if your plan is to take the game, slap some ads on it, and release it without releasing the sources of your changes: the license forbids you to do so, go find another prey.

Why is the Java package called "tinywheels"?

The game used to be called Tiny Wheels, but I found out there is already a Tiny Wheels game on Steam, so I had to rename it. I did not change the Java package name however because Google Play does not allow changing the package name of an existing app or game.

Support development of the game

Want to support the development of the game? Awesome! My support page is waiting for you :)

pixelwheels's People

Contributors

agateau avatar agateau-g avatar dependabot[bot] avatar hendursaga avatar jorgesumle avatar josuigoa avatar julienbolard avatar killerbees19 avatar lukmarcus avatar manolol1 avatar mueller-ma avatar nickoriginal avatar nxjosephofficial avatar oymate avatar pandacoderpl avatar sanchez-gayatri avatar urbalazs avatar victorhck avatar vistaus avatar xlucn 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pixelwheels's Issues

Scale on screen buttons

Hey,
thanks for this game!
Could you add a setting to scale the on screen buttons for left/right?

At second race, display score of the race

At the end of the second race in a championship, I think it would be great to know the score you’ve win because of the race; for now, only the total score is displayed.

Integer overflow with slow drivers

í assume that the final time is calculated using a constant speed tested with the lenght of the map.
i guess it's okay, but whenever i finish a race but one of the opponent (usually the Rocket) is stopped or really slow, a really large number ends up in the leaderboard.

a screenshot of the scoreboard
another screenshot of the scoreboard

i believe that something like a timeout whenever the line is crossed for the first time, would be a good thing to add. something between 15 to 45 seconds (depending on map length) to finish before the time is out, otherwise the driver is disclassified and a Did Not Finish (with no point gain if on championship) should show up on the leaderboard.

what do you think?

Inform which lap was best lap

Not sure if that’s necessary all the time, but at least when you improve the best lap for a race, it would be great to know at which lap you did that.

Rockets think they can cross walls (they cannot)

It looks like opponents can try to reach you with the “rocket” weapon even if there’s a clear wall between them and you; you’ve the red target on your car, they launch the rocket, but you’re sometimes at the opposite of the circuit. Seen usually on the “third” circuit, where, when you cross the finish line, you can have opponents coming in your direction, while they are only at the 4th curve.

(Thanks for this game, it is really fun, playing on Android.)

Wrong best lap time

I had a lap time equal to approximately 2 seconds on Tiny sur Mer, because the car crossed the finish line twice between 1st and 2nd lap. Probably there should be checkpoints to avoid this.

FR: Restart button after the race

Hi! Thanks for making this great free game!
It would be much easier if there was a "Restart" button next to "OK" while race results are shown, so a player can race the same track with the same car again. Cheers!

Add new vehicles

Ideas:

  • Fire truck
  • Santa Claus
  • Harvester
  • Semitrailer
  • 3-wheeled bike
  • Taxi
  • Police car
  • A-Team truck
  • Roadster
  • Jeep
  • Scoobidoo Van
  • Ghostbusters car
  • Bug Beetle
  • K2000
  • Starsky & Hutch
  • Batman begins batmobile
  • DeLorean (as suggested by @Dariasteam)

Allow to see best time in championship

I’m not a fan of online scores (#32), but it would be great to use best scores a little more, by displaying them at the end of each game, to see at how many 1/10th seconds you were of your best time.

[Tiny sur Mer] the bugs and the non-bugs

In Tiny-sur-Mer [French typography requires the hyphens, normally], there are real bugs, false bugs, hard to say bugs, and other.

First, after the first curve, there’s a road that goes outside the circuit, that is not blocked by fences. Similarly, there’s a small space at the second curve.

Another one: after the wood bridge, there’s a sand space that is not part of the circuit (the second sand space), where you can go by following the sea; but, there’s also one of the fences that do not block the car, is that wanted?

Also, from the previous sand space, you can, following the sea, go in a parking (?); there’re various bugs there, you’re blocked by a house that does not exist, and you can go through one that exists; and finally, following the sea, you’re blocked by the shadow of the third bridge…

One more bug: when going backward, you can traverse the sea, you’re not stopped like when you’re advancing, you just need to finish before the helicopter comes.

Well… there’s also the shorpath (by killing you near the shadow of the first bridge). Or should I say the shortpaths? (one by the sea, and one by traversing a house.) Are there really wanted? I find that a bit too much. Allowing going there, why not (there’s just the problem of being blocked by the bridge shadow, again), but you should not be able to win a lap by killing you.

Screen 18:9

I found such a thing that the start screen is 16:9, but the gameplay itself starts at 18:9. I have an 18:9 screen. Xiaomi Redmi 6A bought.

Next button after tournament unresonsible on FDroid

As title says: When I finish a tournament on F-Droid the next button after the highscore-list (1st, 2nd, 3rd) is unresponsive. I realized as workaround I need to lock my screen and unlock again.

Ps.) Funny mini-game! I'd love to get a bit smarter AI though. :-)

Can't see my mouse cursor or use arrow keys on menus

Using the prebuilt binary (0.13.0) on i3wm on Arch Linux.

Running java as java -jar pixelwheels.jar

In game the keyboard is fine (can use arrow keys and space bar to drive the car and activate bonuses, haven't tested second player's controls)

Add a pause button

Should let player do one of the following:

  • resume
  • restart
  • quit
  • debug screen

Some stuff that I feel like would improve the experience. At least for me, but probably others as well.

  • An in-game speedometer, maybe as an arrow fixed on the car, I quite like the velocity display option, as it makes up for the "lost" precision visibility that you'd have in a fp3d view
  • Make stuff more "slide-y", as in it doesn't feel natural to me at all to loose all of the velocity by hitting a corner, and being completely stopped by a wall, even if you try to push by at a 45° angle.
  • Don't make the player automatically faster than every other competitor. It feels just unfair and too OP.
  • give a little but noticeable slowdown for carrying a mine, so that one is either safer (from a rocket) but slower or faster but at more risk.
  • make the camera zoom slower, so that it's not as distracting and disorienting at speed changes, especially the zoom-in.
  • make the rocket less aiming- and more homing-based, so that it is realistic to dodge it if shot from a larger distance
  • add stat visibility to the cars
  • the volume keys could be used as sort of a shoulder button on most devices. Maybe assign the brake there?
  • Add a feedback for hitting your opponents, so you know that e.g. the off-screen mine has been triggered.
  • Maybe add a bonus of sorts for hitting the opponents, to encourage more aggressive gameplay?

Let explore the gardens!

In Don’t Slip! and Blocky Town, there are fun gardens; it would be great to have a way to explore them! Could fences have an automatic opening that let the gardens look inaccessible, but would allow to explore them if you present your car there?

Please change the control input

The game (or what's yet there of it) is fun so far, thanks for that, but the control scheme (Smartphone) is… not immersive. My suggestion would be to either use the gravity sensor for stirring and de-/accleration, or at least to have the buttons for stirring on their corresponding side of the screen. Maybe different options in the settings would be helpful. Speaking of options, one for reversing the stirring direction when going backwards would be cool as well.

GdxRuntimeException

com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: ui/uiskin.atlas (Internal)
at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.(TextureAtlas.java:103)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java:231)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java:226)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java:216)
at com.agateau.ui.StrictTextureAtlas.(StrictTextureAtlas.java:36)
at com.agateau.ui.UiAssets.(UiAssets.java:36)
at com.agateau.pixelwheels.Assets.(Assets.java:57)
at com.agateau.pixelwheels.PwGame.create(PwGame.java:88)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:311)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1555)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)

Race time for racers behind the player is wrong

When the player crosses the finish line, the simulation is ended, causing the times of all racers after him/her to be set to the player time. The simulation should continue so that other vehicles have enough time to finish.

First car should not always have mines

I understand why the first car should usually prefer have mines than other gifts, but I think it should sometimes be allowed to have other ones. Let’s say that probably the booster is not a good idea (it would made best scores more random), but having a rocket or other weapons would be great, when you’re taking a lap to followers.

Add a restart button

When playing against AI, being able to restart whenever we want would be great.
When I'm trying to win a race, and I know I'm way too far behind, I'd like to restart immediately :)

Taking backward accelerators

When you take an accelerator (yellow arrow) in the bad direction, you’re boosted; I’m not sure that’s the perfect behaviour, did you try lowering the car speed?

And, taking an accelerator by moving your car backward makes your car being stopped, even if you take the accelerator in the correct direction; that really feels odd.

(As minus by minus gives plus, taking backward an accelerator in the wrong direction feels ok.)

Display number of laps taken to you opponents

It would be great to display the number of laps you’ve been able to take to your opponents. It might even replace the time when you’ve taken at least one lap (as is done in real-life car/moto championship).

Title image in main menu is corrupted in F-Droid build

As noticed in #28, the image of the title menu is corrupted in the F-Droid build. It looks like that:

bad

It should look like this:

good

This is most likely due to the F-Droid build being done with LibreSprite instead of Aseprite. Possible solutions:

  • Make it possible for F-Droid to use Aseprite in headless mode (license issue)
  • Fix LibreSprite export bug
  • Ship a tarball of the generated assets with each release

F-Droid

Hi,

Since this app is free software, are you considering the fact to add it to F-Droid? There is a strong community behind.

You can find some documentation here.

Otherwise, if you don't want to work on the inclusion of this app by yourself, would it be ok for you if someone else do it for you?

Just to let you know, there is a request for your app here.

Hang on weak smartphones.

When I play, sometimes the game freezes, it’s not very convenient to play, as if frame skipping.

Bunch of glitches

  • Speed-navigating through the menu, especially right after starting the app can lead to some assets not being loaded. Mostly sounds, but I also had a case once where the map textures didn't load at all.

  • Sometimes sound decides to comit homicode on my ears, by completely overdriving the current audio output. Seems to happen on random, but more never happens on first race.

  • The cars drive very differently the first time after app start compared to any following time, which makes going for better times a little frustrating.

  • Using the pause menu restart button removes any sound for the current race.

  • Having multiple attempts (often restarts via going to the home menu and re-entering) progressively makes the game run slower (fps and response time).

  • Launching a rocket at a booster results in you being faster than the rocket.

  • Going out of and back in the app while in the pause menu makes the pause button go a little lower.

  • The last level can be cheesed very badly if, after the first turn you go down into the hole with the missing hitbox and drown near the bridge repeatedly. There's also a missing hitbox right after the last booster.

  • The rocket launcher constantly makes collision sounds, but only with the human player.

  • The lap counter stays at 1 even if making negive laps.

  • If staying in the deep water for too long, but still making it out eventually, an additional helicopter pops up that stays at that place indefinetely.

Helicopter image sometimes fails to display

I regularly have the helicopter images replaced by a black square, or even strange glitches. As that’s the only image that I’ve seen failing to load, I imagine it is loaded during the game as opposed to other images, and, as my phone is not really powerful, prefers failing softly.

Import/export progress and settings

Hi again ^w^

do you think it would be good to have a function, future-proofed as needed, to easily import and export for and from backup? that would be really good to easily backup info to test stuff or just reinstalling the game without losing the data, or maybe even making it possible to add ghosts.

JSON or other formats readable by text viewers is probably an easy way to have this info parsed, but there may be others that may be good...

what do you think? :3

Drop bonus when shot

When a racer is shot, it should drop his bonus if he is currently holding one.

Longer maps

having increassingly longer maps as the game progresses can make it more engaging :3 maps in the range of 40 to 90 seconds per lap (or sprint maps (as in point A to point B)? idk if that would fit the game) are usually good to be considered medium-sized? (idk)

with tips being, each map fitting a certain style, not only for aesthetics, but also for different ways of driving — some with tighter curves, some that gives you an advantage if you can exploit certain mechanics, etc. — while trying to keep a somewhat smooth way of introducing each mechanic along the map. the channel Gamemaker's Toolkit* has some good resources that are worth looking at if you want :3

* i would describe this video i linked as something like "i sneaked in a game design lesson in your Mario Maker tutorial", he does that sometimes lol

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.