All Projects → haxpor → omo

haxpor / omo

Licence: MIT license
Kotlin port with changes and improvements for omo originally by ForeignGuyMike

Programming Languages

kotlin
9241 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to omo

blockbunny
Libgdx-based game for Android, iOS, and PC following the tutorial by ForeignGuyMike on youtube channel. Read more on README.md
Stars: ✭ 25 (+13.64%)
Mutual labels:  libgdx, pc, kt
lin-view-ui
基于vue2.0的pc端组件
Stars: ✭ 73 (+231.82%)
Mutual labels:  pc
Koru
A 2D multiplayer sandbox game.
Stars: ✭ 78 (+254.55%)
Mutual labels:  libgdx
bialjam17
💫 The game that won the BialJam'17 event
Stars: ✭ 55 (+150%)
Mutual labels:  libgdx
sliding-puzzle
Sliding puzzle game implemented in Scala / Scala.js / JavaFX
Stars: ✭ 25 (+13.64%)
Mutual labels:  puzzle
bluebubbles-app
A cross-platform app ecosystem, bringing iMessage to Android, PC (Windows, Linux, & even macOS), and Web!
Stars: ✭ 338 (+1436.36%)
Mutual labels:  pc
cb-spider
CB-Spider provides a unified view and single interface for multi-cloud management.
Stars: ✭ 26 (+18.18%)
Mutual labels:  kt
PuzzleBox
Generate 3D puzzle box (OpenSCAD source)
Stars: ✭ 92 (+318.18%)
Mutual labels:  puzzle
WurfelEngineSDK
Isometric game engine. Open world, block/voxel based and sprite rendering.
Stars: ✭ 96 (+336.36%)
Mutual labels:  libgdx
GDX-lazy-font
auto self-generate BitmapFont for libgdx 1.5.0 +
Stars: ✭ 26 (+18.18%)
Mutual labels:  libgdx
pw
Best websites a Programmer should visit
Stars: ✭ 27 (+22.73%)
Mutual labels:  puzzle
kickoff
Open Kick-Off is a fun rewriting attempt of the cult football game Kick Off 2 designed by Dino Dini and released in 1990 by Anco for the Atari ST and the Commodore Amiga. It is written in Java with the help of libGDX.
Stars: ✭ 32 (+45.45%)
Mutual labels:  libgdx
crackerjack
A collection of crackmes
Stars: ✭ 37 (+68.18%)
Mutual labels:  puzzle
tripeaks-gdx
A simple tri peaks solitaire game using libGDX.
Stars: ✭ 45 (+104.55%)
Mutual labels:  libgdx
avast-ctf-cambridge-2018
🎖 A complete write-up of the Avast challenge given at Hack Cambridge 2018
Stars: ✭ 16 (-27.27%)
Mutual labels:  puzzle
ForgE
Simple clone of RPG maker using LibGdx
Stars: ✭ 17 (-22.73%)
Mutual labels:  libgdx
gdx-gameanalytics
Gameanalytics.com client implementation for libGDX
Stars: ✭ 28 (+27.27%)
Mutual labels:  libgdx
30secondchallenge
Inspired by the newspaper puzzle my wife's grandma tests me with each time I visit.
Stars: ✭ 19 (-13.64%)
Mutual labels:  puzzle
pathfinding
Java pathfinding framework.
Stars: ✭ 94 (+327.27%)
Mutual labels:  libgdx
open-spelling-bee
🐝 Terminal-based python clone of New York Times' puzzle game "Spelling Bee"
Stars: ✭ 38 (+72.73%)
Mutual labels:  puzzle

OMO

Kotlin port with changes and improvements for omo originally by ForeignGuyMike, on PC, Android and iOS (via MOE).

What It Looks Like

High scores feature has been added

OMO gif 1

Smooth and Flexible drag-touch to select & deselect tiles

OMO gif 2

Gameplay

OMO youtube

Changes

Following is changes from original project

  • Support running on PC for any resolution (also support wide-screen)
  • Buildable on iOS via MOE
  • Fixed transition effect between game state to applies to whole screen
  • Fixed touch checking for any screen resolution (via unproject() with specified of current Viewport's width and height)
  • Slightly better organization of Tile class spanning into
    • SizingTile for use as normal tile in gameplay session
    • GlowTile for use as tile effect when touch on tile to select it, it includes ability to set type of do contracting effect as well
    • ExpandingTile for use as transitioning effect when switch between one game state to another
  • Flexible touch to select/deselect tiles via dragging. Support up to 2 fingers at the same time
  • Save save to save highscore for each difficulty
  • Added support for rendering space, + (plus), and - (minus) symbol from spritesheet
  • Safer using of score to save as highscore (if beaten), and supply in Score screen
  • Background music, and sfx across the game

Kotlin notices

Interesting points to look at regarding Kotlin language features used in the project

  • Make use of Array initialization with initializing function that uses also to reduces line of code and manual two-for-loop iteration into just technically 1 line of code.
  • Use forEach whenever possible
  • 2 dimensional array declaration i.e. Array<Array<ExpandingTile>>
  • open class to allow other classes to extend it i.e Tile class
  • Customized getter function for class's properties that not just return its backing field but involves condition checking to return Boolean
  • Use let { } to play music and sfxs across the project in which it sets volume at the same time. Intend to not have a separate class to handle playing sounds.

libgdx notices

Interesting points to look at regarding to libgdx

  • Multiple Cameras and Viewports to achieve rendering normal game state's content, and transition effect together at the same time. Lesson learned, don't forget to call Viewport.apply() for your current active Viewport before rendering with SpriteBatch to make such Viewport active.
  • Use both FitViewport for gameplay content, and ExtendViewport for transition effect (whole screen)
  • Camera.unproject() that applies screen width, and hieght from specified Viewport making resolution independence when check touching position

Music

I made background music using MilkyTracker, you can give me support and download it on Bandcamp. For all sfx, I use bfxr to create them.

Note

If you follow along with the tutorial videos, you can checkout part1 -> part8 branch of this repository to have a ready code for end result from each video tutorial. All in all, it's optional, and master is mostly the one you're looking at.

License

MIT, Wasin Thonkaew
You should not just use code in this project, and make a copy of game to publish. Please note that ForeignGuyMike published his original idea (OMO) to Google Play.

You can use the code, adapt it into your own project, or modify the game further with different game design etc so it's not complete rip-off, then you are clear to publish the game.

For background music, it's under CC Attibution 3.0. That means you are free to use, modify or further use in personal or commercial project but giving credits back to me is required. Anyway for sfxs are free to use in anyway you want.

donate

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].