Comments (20)
Custom Level Improvements
Custom Generation
Currently a level will use specific templates depending on the type of level generation. For example 1-1 will never look for and use setroom templates as it expects to be procedurally generated. It would be nice if possible to tell a level to use setrooms for creators who want to build a non-procedural level.
Custom Level Files
To expand on the previous section, currently we have very limited ability to override an area per level. There are some areas that get custom overrides like jungle has blackmarket, tidepool has lake and lakeoffire, etc. dwelling for example doesn't have any overrides other than 1-4. If someone wanted to build a non-procedural experience for dwelling they'd end up with the same level played 3 times. It would be nice if we had some possibility of override per level within an area to support different setrooms for levels 1,2,3,4, etc. We might want to allow this to be dynamic for example if someone wanted to build a longer dwelling mod. (dwelling is just being used as an example here, this applies to all areas)
Expanded Rules
Currently 1/N spawns for traps and monsters are hard coded per area. e.g. you can only do a percentage spawn of moles in dwelling or 1/N spawn. Expanding support for all monsters/traps to have percentage based spawn rules in all areas would be helpful.
from playlunky.
Pet menu added to pet entity sheets
from playlunky.
also, it would be nice if when we get the community rules, if we could define the spawn conditions such as
rule_spawn_condition(function (x, y, layer)
if get_entities_at(x+1, ...) == {} then -- if nothing to the right of this tile
spawn_entity(ENT_TYPE.MONS_SNAKE, ...) -- spawn the snake
end
end, "snake") -- would override default game rule handling for rule \+snake
from playlunky.
can we get:
get_heart_color
is_female
set_heart_color
for characters that are not in the current level? maybe as entityDB functions?
from playlunky.
Might be neat to specify the full level file hierarchy so you could say
["generic.lvl", "custom-level.lvl"]
or any other hierarchy you want
from playlunky.
One thing I did learn this morning is there is a lot of space for adding your own symbols as well so I wonder if we wouldn't want to leave open the option for people to make their own previews with additional symbols which makes me think having something merge-able would be good regardless, with a stretch goal for automating previews if no custom one is provided.
from playlunky.
"Option to block saving the game to savegame.sav" wouldn't be easier just to make copy of the savefile at the start and then replace it after finish, i guess it depends what this point actually means.
Suggestion: can we look on how the entities are controlled? we can see button presses in movable, but can't force them, is it just a read only and the controls are done differently? there is also the whole logic of they behavior
from playlunky.
@Mr-Auto: It sounds sensible but that's not possible. There's no guarantee that the game shuts down cleanly, so if that doesn't happen we can't copy back the save data. It's also just much cleaner and more accurate to the intent to just not write to the save file as opposed to moving files. The intent is to let people play the game with mods without unlocking new things, some people might not want to unlock stuff while having mods that make the game easier for example.
Regarding your second point I don't know much. Only for HH and the Player I have some idea, but I never even looked at the buttons field of other entities.
from playlunky.
Could we please get "community rules" like we have "community tilecodes"?
from playlunky.
@C-ffeeStain could you share some links or explanations around what "community rules" would mean, how they would work and even what "vanilla rules" are doing right now?
from playlunky.
@C-ffeeStain I would imagine the interface for the procedural spawns to be the same as it is for tile codes, so exposing a set_pre_procedural_spawn
and a set_post_procedural_spawn
. We'll see how that pans out, if it is possible or not.
from playlunky.
Manually updating decorations on newly spawned blocky floor tiles etc. would be sweet!
from playlunky.
Using custom .lvl files
Maybe New worlds/themes
from playlunky.
sound callback giving you entity that produced the sound, and position
also ability to set position for sound you start, so the game handles the volume correctly
from playlunky.
A proper detoured callback for the current ON.LOADING stuff and/or something that runs right after the prng is initialized with a new seed.
from playlunky.
Changing constellation names
this is done with the strings functions, unless you want to make special function for it or not overwrite when language change
from playlunky.
Composable dmpreview.tok
dmpreview.tok provides the previews for arena levels in the menus:
Now that we understand the format for dmpreview.tok it'd be neat to try to auto generate and update the dmpreview.tok
for any arena files included in a mod.
and/or
provide a more composable format such as dm1-1.preview
that contains the byte preview for only a single level.
from playlunky.
Do we understand just the format or also how the game uses it? For example, is it possible to add new arena levels there (and for arena in general)?
from playlunky.
The game only uses these to display a preview of the level and is orthogonal to the level files themselves. Currently the game just has 40 hard coded arenas and this file has the previews for all 40 arenas. People like to make arena packs but the previews don't get updated currently. Now that we know the format we have a few options. I could write something to just generate these and people could ship it with their mods but it loses composability. It might be annoying to rewrite the level parser for playlunky so another option is individual preview files I could make a tool to make them from modlunky easily and playlunky just merges them.
from playlunky.
Maybe we don't have to rewrite the level file parser, maybe we can load the level in-engine and pull all data we need from there. I'd have to look into how likely that is to work (or not work I guess) and if it does we can auto-generate these in Playlunky. Otherwise something mergeable as you suggest would be rather simple as well and it would most likely produce faster results.
Now that we talk about this though I'm curious as well whether we could load more than those 40 level files.
from playlunky.
Related Issues (20)
- Patched exe HOT 6
- patched exe error message HOT 7
- Transparent entity sprites fail to merge
- calling draw_text_size on script load/games start returns garbage
- Game version updated to v1.25.2d HOT 2
- Adding launch settings to play_launcher to support renaming Spel2.exe [enhancement] HOT 6
- Transition tiles do not connect properly HOT 9
- Playlunky tab won't load HOT 1
- playlunky_installer is very broken
- This version of Spelunky 2 is not supported by playlunky Error upon launch HOT 1
- Modlunky refuses to start
- Modlunky refuses to start HOT 1
- Possible memory leak with scripts mods on Linux under wine HOT 7
- Don't premultiply cached/vanilla images
- Playlunky and Overlunky won't start for me HOT 1
- Hundun slows down every restart? HOT 4
- Generated entity _grid is off by one pixel HOT 2
- Playlunky doesn't work for me. HOT 8
- Modlunky launching through Discord HOT 1
- Mod Options panel has no scroll bar HOT 1
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 playlunky.