Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create initial port prototype for Nintendo 3DS using LÖVE Potion #51

Open
5 of 10 tasks
Matriks404 opened this issue Mar 24, 2023 · 5 comments
Open
5 of 10 tasks
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@Matriks404
Copy link
Owner

Matriks404 commented Mar 24, 2023

Since I got a New Nintendo 3DS XL, this could be a fun exercise.

Also see #93 for 3DS "fun exclusive features".

Ideas for optimization and small improvements for the prototype:

  • Readd controls that are currently missing.
    • In the level editor menu show appropriate controls for entering levels (Implemented in 4457eda).
      • Implement 8x8 graphics for buttons (Implemented in 6fedd58).
  • Update README.md with current controls (see aaa5e4f and 6f77d2b).
  • Use love.graphics.getStats() to print stats on screen and investigate bottlenecks (implemented in e9fd008, but note that this function doesn't exist in LÖVE Potion, so it was disabled for this port).
  • When starting a gamepack, write log what's happening behind the scenes on screen (use love.graphics.present() for that?).
  • See whether or not there's better way of drawing graphics, especially tiles from the tilemap (Use drawTexture()?). Maybe draw tiles to the background using canvas? Could do segments that appear when character is moving through them.
  • Maybe use some dialog system like talkies, since there is no way to display system dialogs on LÖVE Potion (or just write one ourselves, old Pokémon-like dialog system should be fine, so message on bottom and Yes/No choice on the right).
  • Having graphics atlas might be better for performance on 3DS (let's check that), although this might cause the code to differ too much between master and 3ds branches.
  • Level editor menu should have clickable buttons on the bottom screen with level labels, so user doesn't need to remember weird button combinations to access the level editor.

Temporarily (or not) add controls instructions on the bottom screen (maybe add them later to a submenu that opens by touching some button). This can be accomplished by writing a function that prints the table on some coords (printInstructions(text, x, y, width, height, line_spacing)) I really think that's bad idea (this will just crash the console when we approach the sprite limit) unless we use system font. I think having instructions graphics is a better approach (see #93) though. And this can be used on PCs (or more correctly: all compatible devices with keyboards attached) as well. MAYBE JUST USE CANVAS?

@Matriks404 Matriks404 added the enhancement New feature or request label Mar 24, 2023
@Matriks404 Matriks404 added this to the Future version milestone Mar 24, 2023
@Matriks404 Matriks404 self-assigned this Mar 24, 2023
@Matriks404
Copy link
Owner Author

Matriks404 commented Aug 30, 2023

Very primitive support is implemented on 51-3ds_support branch. This is not officially supported.

If basic stuff is resolved and functionality of the 3DS port is the same as on the master branch, code will be moved to port_3ds branch. 3DS/LÖVE Potion related stuff probably will never be merged back into master to not overcomplicate code, but I might change the apparoch in the future for that port.

Some stuff still can be made more portable between these versions however, need to investigate on that though.

@Matriks404
Copy link
Owner Author

Matriks404 commented Sep 6, 2023

Some of the stuff for reworking controls is done on f0951ef. Level editor have been disabled for now, will work on this either tomorrow or some other day. Also I need to update controls section in README.

@Matriks404
Copy link
Owner Author

Matriks404 commented Sep 17, 2023

Last bits of level editor controls were implemented in 62938f7.

I didn't implement some minor stuff though that's not really needed for anything on 3DS. I will make a Wiki article about this later though.

@Matriks404 Matriks404 pinned this issue Sep 23, 2023
@Matriks404
Copy link
Owner Author

I have no idea how do I optimize font drawing, it seems to drop to 9 FPS when doing anything with text, regardless how much is loaded.

@Matriks404 Matriks404 changed the title Create a port for Nintendo 3DS using LÖVE Potion Create initial port for Nintendo 3DS using LÖVE Potion Sep 30, 2023
@Matriks404 Matriks404 changed the title Create initial port for Nintendo 3DS using LÖVE Potion Create initial port prototype for Nintendo 3DS using LÖVE Potion Sep 30, 2023
@Matriks404
Copy link
Owner Author

So... optimizing font drawing was not needed after all :)

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant