Git Product home page Git Product logo

klooni1010's People

Contributors

andidevi avatar atrate avatar goyalyashpal avatar jaeheonshim avatar licaon-kter avatar lonami avatar muhaaliss avatar pickfire avatar poussinou 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

klooni1010's Issues

Add new themes

Design and contribute your own theme for Klooni! The only requirement is it has to be playable and not hurt players' eyes :)

To create a new theme, clone the repository, open themes/create-theme.html on a browser, and start designing. Then, show me your result and if it's pleasing enough we can integrate it in the application.

You can also modify existing themes to make the sprites or colours more pleasing. To modify or add new sprites, please use Inkscape.

Preferrably, provide screenshots, they will make my task easier :)

For more information about the hacktoberfest and how you can get a free shirt, check out https://hacktoberfest.digitalocean.com.

Time mode is not challenging enough

I believe the time bonus is 5 seconds? It seems a bit too much and you usually loose because there is no space anymore and not because time runs out. Maybe 3 seconds time bonus is sufficient?

Copyright violation

If you find any other application violating the GNU GPL v3 license, please comment it here so that we can take action. Thanks! -- Edit from @Lonami

Hi @LonamiWebs

I found this app and also this one, this one and this one on the Google Play Store. This guys just took your source code, added sometimes some ads in it and put it on the Store...

As you are the owner of the source code, feel free to open a request to google here to remove each false app from the Store, if it's your wish ;) (I assume it will increase the number of downloads from the original app made by Gram Games too)

Don't forget to tell Google that:

  • The app is licensed under GNU GPL v3 license and this guys are violating it;
  • They are falsely claiming they made the app.

Maybe add a link to this repo in the request, some screenshots of your original app...

Btw, thanks for this game ๐Ÿ˜„

Current score is not displayed in time mode

In normal mode the current score is displayed where in time mode there is the countdown. So in time mode you only see the countdown and the highscore.

The time should be displayed somewhere else, maybe in the center?

HTML support

Awesome job on this project! Very instructive.
I managed to make it work on Android and iOS, but on HTML, I get the following error.

I see that GdxDefinition.gwt.xml already contains:
<set-configuration-property name="gdx.assetpath" value="../android/assets" />

com.badlogic.gdx.utils.SerializationException: Error reading file: skin/uiskin.json

Following https://stackoverflow.com/questions/31574577/libgdx-error-reading-file-uiskin-json, I tried removing parts of the uiskin.json, but then I get: Uncaught Error: java.lang.RuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error loading font file: font/x0.75/geosans-light64.fnt

screenshot 2018-10-28 11 50 28

screenshot 2018-10-28 12 26 45

more "magnetic" pieces

Some touch screen are not very good or too old and it's not allways easy to add pieces at the right place. For example I often lose a few seconds because the game refuse the piece which is not exactly upon the right background.
The pieces could be more easily added at the right place with some "magnetic" feature. Dropping the pieces near the grid should be enough. This can be default or an option.

Ghost

I need function to show a ghost โ€” where the block will be placed exaclty. It's really hard to set block where I want. Maybe you need to do something with it. Ghost would be nice. But that's not all. How about snapping to grid?

Unclear button function's

First of all, Thanks a lot for this grate Tetris like game! Bit when i go to settings I've got the problem that i am unsure about many oc the button functions. What effect has for example the hash (#) button?

Could you please add some explanation for that buttons, maybe like longpress shows description like in some android apps, or maybe some help pages where all functions are explained in detail.

Thanks a lot in advanced!

Add new effects

Can you think of any new crazy effect? Adding them is super trivial. Import the repository on Android Studio and check out the effects/ folder. Simply create a new class for you new effect and add it to Effect.java!

If your effect is cool enough, it will become part of Klooni!

For more information about the hacktoberfest and how you can get a free shirt, check out https://hacktoberfest.digitalocean.com.

Crash When Sharing at End of Timed Game

EXPECTED BEHAVIOR

Tapping the Share button when a game ends presents options for how to share your score.

ACTUAL BEHAVIOR

Tapping the Share button when a game ends crashes the application.

HOW TO REPRODUCE

  1. Launch 1010! Klooni v0.8.1 on Android 8.1.0
  2. Tap the red clock icon
  3. Play until the time runs out
  4. Tap the Share button

TESTING ENVIRONMENT

  • Device: Pixel 2 XL
  • OS: Android 8.1.0
  • App Version: 0.8.2

RECORDING OF THE BUG

CrashOnShare.gif



Posted on Utopian.io - Rewarding Open Source Contributors

assets MUST NOT be loaded in static code

There are issues when loading asses in static code as that is exposed to a race condition. Loading assets with SkinLoader must not happen before class Klooni is initiated. In other cases Gdx.graphics will be null. It happens that this condition is accidently met for the current state of the code.

The order classes are loaded and initialized is subject to the class loader involved and that may change in the future, especially as this is an Android app and Google is experimenting much with it's runtime.

There are more reason to not load assets in static code, ie. error handling and the like.

Example of issues (initiate effects in static code from class Klooni):
SkinLoader static
Exception in thread "main" java.lang.ExceptionInInitializerError
at io.github.lonamiwebs.klooni.effects.WaterdropEffectFactory.(WaterdropEffectFactory.java:38)
at io.github.lonamiwebs.klooni.Klooni.(Klooni.java:46)
at io.github.lonamiwebs.klooni.desktop.DesktopLauncher.main(DesktopLauncher.java:34)
Caused by: java.lang.NullPointerException
at io.github.lonamiwebs.klooni.SkinLoader.(SkinLoader.java:43)
... 3 more

Can't run build jar due to java.lang.NoClassDefFoundError

Hey there,

I imported the project to my IntelliJ.
Afterwards I ran the ./gradlew desktop:dist command from the root project folder.
Output states that the build has been succesfull.

Afterwards I run the build .jar with java -jar xxx.jar

It then states the following exception;

java.lang.NoClassDefFoundError: com/badlogic/gdx/ApplicationListener (sounds a little bit like my system can't find libgdx in the build .jar)

When trying trying to start the DesktopLauncher manually via my IDE the following exception comes up:

Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: ic_launcher\icon128.png (Internal)

I'm using newest IntelliJ Community Edition, Java 9 and build in Intellij Gradle. Any ideas why this happens? I'm assuming that it's a problem on my side.

Help or hints are much appreciated! Thanks for your work.

Difficult to see cells using the bulb theme

I usually run on lowest lighting on my phone to conserve power, and for the most part it's not an issue, but the bulb theme's cell grid is practically invisible at that lighting.

Feature request: Selectable time mode difficulty

Something like "Easy", "Medium" and "Hard".
I know it's already asked for, but just to keep it as a separate issue.
To other users with the same wish, please use the "add your reaction" button in top-right corner of this comment, instead of commenting with "me, too", or "+1".

Wrong game over message in time mode

It would be more precise to say "Time's out", or something like that when game is over because of the timeout. If you decide to change this, be careful not to rely on the game mode only, but on the reason for game over, too.

Feature request: Make piece generator always generate fitting pieces

First of all, thank you for creating an open source version of 1010!. My undergraduate final project is implementing a validator to avoid unfit pieces being generated, and your project had helped fasten the coding stage. The validator was tested on various device, and so far the longest time recorded was 75ms, so hopefully attaching the algorithm won't slow down the piece generation process.

If possible, would it be okay if I patch the game with an option to always generate fitting pieces and create a pull request as a part of the next Hacktoberfest? By checking this option, the only possible way to lose a game is by misplacing any blocks.

Pieces are not moving at same speed as touch

Hi,
First of all, terrific work, this game rock man :) I kinda am addicted already.

Second, I've just installed update in FDroid, and it seems to me, that something related to touch/move detection changed.

Compared to v0.1 I struggle with

  • Getting pieces to move (touch/drag fails a lot, detection area could be full 1/3rd of space below game board)
  • When I move the piece up it flings beyond my finger (previously was right under it)

Wouldn't bother me in normal mode, but it's really much different and I fail the quick-time mode because of it ;)

Also I expected the stats/leaderboard to be fixed. Do you plan to provide that later or did you dismissed the feature completely?

Thank you!

.

.

UI is slightly too small in Nexus 6p

Hi
The UI elements (menu and game oder screen) are a little too small on my device. I noticed that on the screenshots in this repo the UI is way bigger. It would be nice, if the size scales with screen resolution :)

Nice game though :)

The package appears to be corrupt - download to android and install

I ran the android build and had an apk created:
build/outputs/apk/android-release-unsigned.apk
I downloaded to my android ( nougat Samsum S8 )
I see do you want to download.. I say Download followed by download complete.
I click Install at the Do you want to install this application prompt and I get
1010! Kloone
App not installed
the package appears to be corrupt

and that's all she wrote...

what am I missing?

  • jack

Feature request: Pause button

When I close the app theres the "pause menu" but there should be some on screen buttons like on the top to pause or restart.

Change "share" button with "quit" button upon losing

Hi
Your game is really too addictive :-)
One problem is that one can't quit easily, when the game end. One must press "home" first.
For the sake of my mind and peaceful with my wife, please add a direct "quit" button when one lose the game.
Xavier

Main screen's menu seems overly zoomed-in

Hello,

I'm using a Fairphone 3 with Android 9 (latest update from April 6, 2020, with kernel 4.9.112), and the main screen's menu is "out of the screen", it seems that it's zoomed-in.
See the screenshot below.

( otherwise thanks for this great game ! :) )

image

Ads issue

I am developing different game with Klooni1010 based
But, when I add Google Ads my game I'm having trouble. adding ads.
There are some Gradle issue.
Please give advice. If you have experience.

Wrong ending checking function

1
2
See attached screenshots. Bug appears after placing one or two block of loosing session. Don't know, how to explain it better.

Better RNG

https://harddrop.com/wiki/Random_Generator is a useful link.

Quoting @bb010g:

basically, you don't normally want an algorithm that's friendly in certain ways, you want randomness that's less prone to dick the player over and that advanced players can work with at a higher level. Tetris handles this by allocating a "bag" of each piece type when new tetrominoes are needed, shuffling that, and then passing out from there.

Bags let you do things like avoid really long runs of certain pieces and adjust rarity without being complex or too deterministic.

alternatively, Akira's The Grand Master traditionally handles this by keeping a history of the last N pieces, and then generating a new piece up to M times until a unique piece appears or the limit is reached. https://harddrop.com/wiki/TGM_randomizer

huh, Terror Instinct does a thing where it keeps a 35 piece bag for that generation that starts with 5 of each piece, and when a piece is genned (pulled) from it a piece of the least recent type is put in its place, which keeps pieces from not showing up for a long while.

https://tetrisconcept.net/threads/randomizer-theory.512/page-9#post-55478

# PETE ROOLZ
#
# you can get a quick sequence out with
# python -c 'import tgm; r = tgm.TiRandomizer(); print "".join([r.next() for i in range(70)])'

import random
import collections

# On a Ti randomizer bug:
#
# > When these 3 conditions are met:
# >
# >     1. The randomizer has just chosen the most droughted piece
# >     2. A reroll happened during the choice of that piece.
# >     3. Excluding the first piece of the game, and including this chosen piece, you have received at least one of each of the 7 piece types.
# >
# > Then the roll that chose that most droughted piece will not update the bag of 35 pieces.
#
# -- colour_thief, http://tetrisconcept.net/threads/randomizer-theory.512/page-7

def TiRandomizer():
    bag = ['j', 'i', 'z', 'l', 'o', 't', 's'] * 5
    history = collections.deque(['s', 'z', 's', 'z'])
    drought_order = ['j', 'i', 'z', 'l', 'o', 't', 's']
    count = { 'j' : 0, 'i' : 0, 'z' : 0, 'l' : 0, 'o' : 0, 't' : 0, 's' : 0 }
    n = 1

    # first piece is special
    first = random.choice(['j','i','l','t'])
    history.popleft()
    history.append(first)
    yield first

    while True:
        for roll in range(6):
            i = random.randint(0, 34)
            piece = bag[i]
            if piece not in history:
                break
            if roll < 5:
                bag[i] = drought_order[0]
        count[piece] += 1
        emulate_bug = all ([
            piece == drought_order[0],
            roll > 0,
            0 not in count.values()
            ])
        if not emulate_bug:
            bag[i] = drought_order[0]
        drought_order.remove(piece)
        drought_order.append(piece)
        history.popleft()
        history.append(piece)
        yield piece

if __name__ == '__main__':
    r = TiRandomizer()
    print "".join([r.next() for i in range(70)])

anyways, point is that you can keep randomness in a lot of ways while not just calling rand and being done

I should probably just PR something for this

Discussion: New game modes

The game feels very much the same when starting out and when you have tons of points, there is no sense of progression.

The game has two game modes, although one is hidden #69 . Maybe there could be space for more game modes? Some examples:

1: Additional tile sets (classic Tetris, FITS set, etc)

2: Bonuses for each new cleared line size (so first time you clear 2 lines at the same drop you get a bonus, also first time you clear 5 etc).

3: Possibility to discard a piece, limited in number of times you can do it, possibly combined with the above bonus to get discards this way.

4: Variation in board size

5: Progression in what tiles you are given, the more points you have the more and harder pieces may appear. Introduced as rewards, things you unlock with higher score.

6: Combining 4 and 5, so that you start off with a small board, few and easy pieces, and progress to bigger boards and more difficult pieces. Possibly set up as 2 different ways to play, one a "story mode" with progression and levels to clear, and the other "arcade" when you choose a board size and corresponding difficulty of pieces.

7: A countdown mode where you do not count down time, but score. You start off with 10 points, gain the score you gain now for everything, but every placement means you lose 1 point. Then after a while you start to lose 2, then 3 etc. so it becomes steadily harder, a bit like Tetris speeding up but in a relaxed way where you have time to think. If the score ever goes down to 0 you lose. The actual score you get is the number of pieces you manage to place.

Improve F-Droid listing

I've seen this app on F-Droid, but it lacks screenshots, changelog and a translatable description there. It's pretty easy for you to add these information. Please have a look at this example or at the F-Droid docs or fastlane docs.
After you have commited these files to your repo and tagged a new version, you need to remove the Description and Summary from the metadata file in the F-Droid Data repo.

Restore data (highscores, themes) from old versions (before 0.8.3)

I'm using version 0.8.2 downloaded from f-droid, if I install a new version it installs another app ( I think that is for a change in the package name) that don't use the data of previous versions, I wonder if there is a way or can be implemented a way to import the data (high scores, themes) from versions previous of 0.8.3

Official desktop build?

I tried to build following the documentation, but couldn't set up android sdk, and gave up. Can you post desktop .jar builds here on github or on the website? I guess you have a working development setup unlike me...

None of the set of three pieces matches

I recently had the following situation:

screenshot_2017-02-16-08-37-14

Immediately after the new set of three appeared, the game was lost because none fit. Could you implement a check so that at least one of the tiles matches?

continue but lose your score

Many have requested something like selectable time (because 30 seconds is too short). Here's another and may be more pleasant way :
In the lgames serie, when you lose, you will be asked to continue but losing all your score. As quick sample see lbreakout2

Unable to build with F-Droid

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':android:lintVitalRelease'.
> Could not resolve all files for configuration ':android:lintClassPath'.
   > Could not find org.jetbrains.trove4j:trove4j:20160824.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
       - https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
       - https://oss.sonatype.org/content/repositories/snapshots/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
       - https://oss.sonatype.org/content/repositories/snapshots/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
       - https://oss.sonatype.org/content/repositories/releases/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
       - https://oss.sonatype.org/content/repositories/releases/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
       - https://dl.google.com/dl/android/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom
       - https://dl.google.com/dl/android/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar
     Required by:
         project :android > com.android.tools.lint:lint-gradle:26.5.0 > com.android.tools:sdk-common:26.5.0
         project :android > com.android.tools.lint:lint-gradle:26.5.0 > com.android.tools.external.com-intellij:intellij-core:26.5.0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 9s
16 actionable tasks: 16 executed

What am I missing?

Game is not saved when Android moves Klooni into cache

Hi,

I switched to a different app for a while and when I went back to Klooni through the "Recent Apps" view (left soft key) I couldn't resume the game. Klooni only showed me the start screen.

I assumed that Android in the meanwhile had killed Kloonie and Klooni had nowhere to resume the game from.

###My setup

  • Android KitKat 4.4.2
  • Fairphone 1, 1GB RAM
  • MT6589

PS: Thank you for porting this great game, it's been keeping me busy lately! :)

Multiplier - No issue

Hi Lonami!

I love our game - it's the only game on my phone and I'm pretty addicted.

But... what about multipliers? The more lines you clear, the higher the score you get? Like in Tetris, where clearing four lines have a higher value then clearing four times one line.

Or is such a thing already implemeted and I just missed it?

Squares in preview don't have same size

Hey! Great game - I like it very much.
But I would prefer the pieces in the preview to have the same size.
Maybe you've got your own opinion - it's only my thought.

screenshot_20170207-222018

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.