Comments (27)
Suggested by @terpyderp on the Discord: add 1-4 unused buttons that mod makers (modes, rulesets) can purpose into their own creations.
from cambridge.
Millisecond based tuning settings
Unfortunately impossible. Would require a large amount of migration as well as adapting the code to not run at 60FPS.
from cambridge.
Not sure if this is already planned because of the new high score system, but having built in support for showing scoring information on the side of the board without manually having to draw the text with LOVE 2D would be nice lol.
from cambridge.
Making it so when you game over, the board only gets slightly darker instead of making everything disappear completely. Also maybe displaying some text like "GAME OVER" or "FINISH" when you finish idk. I just think that the current game over is boring and it makes it so you can't see your stack at the end, which is especially important when playing invisible modes imo.
from cambridge.
Not sure if this is already planned because of the new high score system, but having built in support for showing scoring information on the side of the board without manually having to draw the text with LOVE 2D would be nice lol.
I'd rather have mod makers choose what to draw and what not to draw in a mode. What will be drawn with the highscore overhaul is the highscore(s) for each mode on the mode select.
from cambridge.
Millisecond based tuning settings
from cambridge.
Making it so when you game over, the board only gets slightly darker instead of making everything disappear completely. Also maybe displaying some text like "GAME OVER" or "FINISH" when you finish idk. I just think that the current game over is boring and it makes it so you can't see your stack at the end, which is especially important when playing invisible modes imo.
I could probably make it slightly lighter, but I probably won't add text simply because it could clash with text that a mode maker chooses to use.
from cambridge.
I'd rather have mod makers choose what to draw and what not to draw in a mode. What will be drawn with the highscore overhaul is the highscore(s) for each mode on the mode select.
Ahh, I just thought it would be nice if there was an optional function that would draw whatever text you wanted, without manually positioning it. Like maybe you could just send an array of strings. Plus then it could be transformed with the board easier. ¯_(ツ)_/¯
from cambridge.
I'd rather have mod makers choose what to draw and what not to draw in a mode. What will be drawn with the highscore overhaul is the highscore(s) for each mode on the mode select.
Ahh, I just thought it would be nice if there was an optional function that would draw whatever text you wanted, without manually positioning it. Like maybe you could just send an array of strings. Plus then it could be transformed with the board easier. ¯_(ツ)_/¯
In all fairness, there are onGameOver and onGameComplete functions, which trigger on self.game_over
and self.completed
respectively. In vanilla modes, onGameComplete is a redirect to onGameOver, but you could make it do different things if you wanted, like drawing text to the screen. Something like this:
function YourMode:onGameOver()
YourMode.super:onGameOver() -- remove for no default effect
love.graphics.printf(...)
end
from cambridge.
I'd rather not have default functions programmed to do specific things especially when the feature requested is fairly easy to do yourself, because then the documentation grows unnecessarily long (when I do end up writing that).
from cambridge.
I'd rather not have default functions programmed to do specific things especially when the feature requested is fairly easy to do yourself, because then the documentation grows unnecessarily long (when I do end up writing that).
understandable, have a nice day
from cambridge.
Suggested by AgentBasey on the Discord: add DAS to the menus so people don't strain their hands navigating things like the mode select.
from cambridge.
More flexible / user BGM support is almost if not fully complete.
Broad description:
If there exist files in the save directory like such:
<save directory>/res/bgm/track1.mp3
<save directory>/res/bgm/track2.ogg
and so on... (extensions can be changed, mixed, and matched, the engine supports many music formats)
A mode maker can play them with:
switchBGM(1)
switchBGMLoop(2)
and so on.
Tracks are searched until a number is reached for which the track does not exist. For example, if track3
did not exist but track1
, track2
, and track4
did, only the first two tracks would be loaded.
from cambridge.
New feature thought of by me: allow mod makers to add more next sounds, for the purpose of creating polyomino rulesets. For example, in the current system, I had to reuse the 7 base next sounds for all pentominoes in the PAIRS ruleset (https://github.com/MillaBasset/cambridge-modpack/blob/0e72e403e024646687e9ad1c0e123f1fbafedbca/tetris/rulesets/pairs.lua#L51). Ideally, someone creating a pentomino ruleset would be able to supply 18 of their own next sounds and use those. Or, alternatively, allow the player to select 18 next sounds that they'd want to use.
When this is finished, next sounds would be dragged and dropped into <save directory>/res/se
. How I want it structured in terms of filenames I haven't decided yet.
from cambridge.
@terpyderp reminded me I have to refactor the entire draw code for the game scene.
from cambridge.
Base refactor of game scene draw code done. New code:
function GameScene:render()
self.game:drawBackground()
self.game:drawFrame()
self.game:drawGrid()
if self.game.lcd > 0 then self.game:drawLineClearAnimation() end
self.game:drawPiece()
self.game:drawNextQueue(self.ruleset)
self.game:drawScoringInfo()
self.game:drawReadyGo()
self.game:drawCustom()
love.graphics.setColor(1, 1, 1, 1)
love.graphics.setFont(font_3x5_2)
if config.gamesettings.display_gamemode == 1 then
love.graphics.printf(self.game.name .. " - " .. self.ruleset.name, 0, 460, 640, "left")
end
love.graphics.setFont(font_3x5_3)
if self.paused then love.graphics.print("PAUSED!", 80, 100) end
if self.game.completed then
self.game:onGameComplete()
elseif self.game.game_over then
self.game:onGameOver()
end
end
I've yet to add board / screen transformations.
from cambridge.
Perhaps a system for checking finesse for faults and counting them? I don't know how easy that'd be to implement though, especially with varying rotations systems
from cambridge.
@PyrbatNeoxi: I'd most likely be able to implement a sort of lookahead that doesn't depend on the rotation system being used but this sounds like something that might be better suited implemented in a single gamemode, rather than globally
from cambridge.
beta6 will come out soon, which means any feature still listed at the top is scheduled for beta7.
from cambridge.
I forgot I had finished giving control of board and screen transformations to the mod maker. Whoops.
from cambridge.
- Campaign has been started, first 5 missions done.
- My idea: add a color scheme selection in the settings that can go beyond Arika and TTC colors.
- Suggested: add a randomizer test script utility that can run outside the game, or add a sandbox mode to test randomizers.
from cambridge.
Suggested by Electra on the Discord: separate the menu bindings from the game bindings so people can use different, more convenient keys in the menu.
For right now, arrow keys, enter/return, escape, and backspace work in the menus by default.
from cambridge.
Suggested on the Discord by @nightmareci and others: instead of giving buttons an explicit label, give buttons a name, such as A, B, C, etc. The context for what the button does would then be dependent on the mode, going hand in hand with giving mod makers extra virtual buttons to do with as they please.
from cambridge.
Suggested on the Discord by Kirby703 and others: Toggle the fade out on game over or just include a better default game over effect. (Makes me wonder why I did that to begin with.)
from cambridge.
This issue is severely out of date with the progress that's been made - in fact, the last comment was 3 months ago!
Even though v0.3 has been released, there are still features on this list left unimplemented. This will remain open as a general progress thread.
from cambridge.
Strikethroughs have been added through completed tasks. Those that are uncompleted shall be worked on whenever.
from cambridge.
Going to close this and make a new progress issue as this one hasn't been updated for a while.
from cambridge.
Related Issues (20)
- Buffer lock inputs do not work as expected. HOT 1
- Double mapping does not work as intended.
- Change the big piece coordinate system. HOT 5
- If a directory contains non-ASCII characters, it breaks saving. HOT 1
- Migrate the random generator from Lua's to Love2D's. HOT 5
- Black box renders over frame.png instead of being a part of it HOT 4
- Create a "partial piece" class, for use in next queues. HOT 1
- smooth piece drop not off HOT 4
- survival_a3 missing levelstop chime HOT 1
- Refactor gamemode / randomizer / ruleset interaction for piece sets that are not 7 in length. HOT 1
- Input is broken HOT 2
- Widescreen and HD Resolution Support HOT 8
- Starting on Mac HOT 5
- Cambridge Development Progress Thread HOT 2
- Suggestion: Optionally disable status bar during gameplay HOT 1
- Bug: Cambridge locks up on macOS HOT 3
- Bug: Piece visibility dependent on background image HOT 1
- Before reporting an issue, make sure you're not using LOVE 11.4!
- manual lock is not implemented correctly for ARS HOT 6
- Replay saving is a potential CPU hog and replay file names are not representative. HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cambridge.