I cant install the app
A downloadable tool for Android
Handsome Console is a compact 2D game development environment for Android. It consists of a Lua code editor, sprite editor, map editor and a simple Lua API to tie it all together! Now you can make games on your phone whilst on the train back from work, on your break or while half-watching netflix. Actually really good for trying down game ideas quickly.
You can send your creations to your friends, or email them to me (firstname.lastname@example.org) and I'll add them to the import list and everyone will be able to play it!
Still a work in progress:
- Need a good upload mechanism that doesn't involve manual processes
- Music/sfx editor in the works
- API improvements based on user feedback
- Implement settings page
- Add colour palettes!
- Maybe add an in-app API reference
Here's the API reference:
Some variables for UI and drawing
|__gamescale__ : double||A handy double that represents the default size of anything drawn|
|btn_a : bool||Will be true when button a is pressed|
|btn_b : bool||Will be true when button b is pressed|
|btn_d : bool||Will be true when the down button is pressed|
|btn_u : bool||Will be true when the up button is pressed|
|btn_l : bool||Will be true when the left button is pressed|
|btn_r : bool||Will be true when the right button is pressed|
Colors are represented as numbers. They wrap so 17 = 0, 18 = 1 etc
Functions that you can override to make your game
|_init()||Called once at the start of program execution|
|_draw()||Called 30 times per second, safe place to call graphic methods|
|_update()||Called 30 times per second, safe place to respond to input (btn_l, btn_r etc.)|
4. Draw Methods:
Functions that draw things to the game screen when you hit play
|Draw a filled rectangle with x1:y1 being the top left corner and x2:y2 being the bottom right corner. Refer to Colors|
y: double, color: double)
|Write some text at a given point and with the requested color|
|cls()||Clear the screen to black|
|cls(color: number)||Clear the screen to a given color|
|Draws a sprite at the given coordinates. Sprite numbers can be seen in the sprite editor between the sprite display windows and the sprite editor window|
|Same as above, but with optional scale parameter. Default is 4 (based on __gamescale__ constant)|
|Same as above, but with optional flip param. True is flipped, false is not.|
|Same as above but with 90 degree rotation increments (1 = 90, 2 = 180, 3 = 270, 0 = 360). Thiw will wrap automatically to the modulus of these 4 values|
tX: double, tY: double,
x: double, y: double)
|Draw a segment of map from the map editor. fX:fY (from x, from y) the top left corner of the map to draw from. tx:ty (to x, to y) the bottom right corner to draw too. x:y the top left corner of the screen that the map will be drawn from|
5. Game Logic Methods:
Things I'm working on to make development easier
h: double, tile: double)
|Query a rectangular segment of the map to see if it contains a given tile number. A clunky helper method for collision detection. Let me know how I can simplify this!!!|
5. Debug methods
Handy methods for sanity checking all that spaghetti code
|Outputs text to a scrollable debug text area that overlays the game display|
|Throws up an alert dialog with some text and stops execution on the frame the alert was triggered on|
result: bool, message: String)
|Outputs either "Test Passed: " + message or "Test Failed: " + message to the debug text area. It was more for me to test things, but I left it in just in case someone needs it!|
6.1 Code Editor
This is where you write in your lua code!
Initialise values in the _init callback:
function _init() x = 0 y = 0 end
Respond to user input in the _update callback:
function _update() if(btn_d)then y = y + 1 end if(btn_u)then y = y - 1 end if(btn_l)then x = x - 1 end if(btn_r)then x = x + 1 end end
Draw things in the _draw callback:
function _draw() rectfill(x,y,x+8,x+8,4) end
If you wrote all that in, press play in the top right corner and you should have a little white square that responds to the d-pad!
Fairly self explanatory, though 'Settings' doesn't do anything yet
6.3 Save Dialog
The current project should be displayed by default, but you can pick a new name or scroll through the list for any other projects saved to your device if you felt like writing over it! Tapping on one of these will just copy the text across, nothing is committed until you hit save.
6.4 Open Dialog
Like the save dialog, but opens projects instead. Again, you can scroll through the list and select any existing projects you have.
6.5 Import Page
This loads up a list of community-created projects. Tapping on one of them will save it to your device, at which point you can then return to the main window and use the Load Dialog to open it up and play it, modify it or whatever it is you wanted to do with it.
6.6 Export Dialog
Pick a name for the currently loaded project and send it in .json format by anything installed on your phone that can send text. If someone else has sent you a project file made in Handsome Console you can move it to Phone Storage>Android>data>com.example.luainterpreter>files and then load it from the Load Dialog.
6.7 Sprite Editor
You can edit some sprites here! The top radio buttons are different pages of sprites. Click on a sprite to load it into the editor. The number to the left of the pencil is the currently selected sprite number.
- The pencil will draw a single cell of the selected color when you click on a space in the editor.
- The paint bucket will replace all of one color with another color.
- The eraser is like the pencil but with a fully transparent color loaded onto it.
- The second last icon copies the currently loaded sprite to the clipboard.
- The last icon pastes the sprite from the clipboard onto the currently selected sprite.
- Clicking on a color in the color palette will change the pencil/paint bucket color.
6.8 Map Editor
You can use the map editor to create map regions which are just sprites glued together. You can click on the arrows to navigate across the map. the top left corner of the map, for purposes of using the drawmap function, is 0,0, and the bottom right corner is 127,127. Let me know if you ever run out of map space and I can easily make it bigger- it can't be too big though or things get slow.
6.9 Game Page
This is where you can play games! Should be idiomatic, there's a d-pad tied to the btn_d, btn_u, btn_l and btn_r macros for down, up, left and right respectively. btn_a and btn_b are tied to the buttons labelled A and B respectively!
Click download now to get access to the following files:
Log in with itch.io to leave a comment.
Oh no! Thanks for letting me know.
Can you please tell me which version of Android you have?
Can you also please try the following steps:
- Delete the apk
- Download the apk again, but when you get the notification that it has finished downloading, close the notification don't click on it
- Go to your phone's download folder and click on the handsome-console.apk file to install it
- Now try running the application on your device and see if it works
Please let me know if this works or not!
no , same screen , the version is android 6.0.1 , i read something about zipsigner but i dont wanna try that until be sure about the problem, sorry for my bad english.
I have uploaded a new version, please try downloading and installing again and let me know how it goes!
If it still doesn't work, you can try signing the app yourself with apksigner from the Play Store https://play.google.com/store/apps/details?id=com.haibison.apksigner&hl=en_AU