Showing posts with label markeen. Show all posts
Showing posts with label markeen. Show all posts

Sunday, May 31, 2020

Markeen level project progress 5/30

Today I finished decorating the ninth level in my Markeen-inspired level pack. While playtesting again I noticed that it was not that hard on the "hard" difficulty setting, so I added a couple creatures. I then selected a machine-generated starting point for the tenth level. I'm starting to run out of good material from the original batch of 100 levels: there were none with the last of the four fuse machine colors, so I had to swap out a machine and give the surrounding area a makeover. I've started cleaning up the platform tiling. So far I haven't been able to come up with a route for the player to take through the level, though I do have a theme planned.

Saturday, May 30, 2020

More machine-assisted level design progress

A couple days ago I had started the "fix the glaring tiling errors" phase for the ninth level of my Markeen-assisted level pack. Markeen had produced a neat centerpiece for the level, but I wasn't sure about the route I was going to have the player take through it. Today I punched a small number of holes in the generated structure to create a path for the player that makes me think of convection. The player goes down one side and cannot return up that way, so they must instead return via a door whose path they should clear earlier. I got on a roll and made the level playable, fixed the distribution of point items, and did the background. All that's left to do for this one is decorate.

Saturday, May 23, 2020

Machine-assisted level design progress

Intermittently over the last few years (!) I've been working on a Keen 5 level pack based on levels generated automatically by Markeen. I have a lot of time over the summer, so I have a chance to make some progress. Previously I had fixed all the major tiling errors in the eighth level and made it largely playable, but I wasn't happy with the flow. It's OK to have some optional areas, but it was very difficult to design a route for the player, given the constraints, that would visit even a third of the level. Looking at it fresh today I thought of a new route that I like a lot. It makes the level less sensical as a physical place, but I think a theme of "space station under construction" salvages it. The foreground is done and I just need to finish decorating.

Sunday, September 29, 2019

Poking at the Markeen-assisted levels project

Many months ago, I started a Keen 5 level pack based on maps randomly generated by Markeen. It was coming along well but I left it alone for a long time because of other commitments. I had a couple moments of free time this week to look back at it. I had done my first pass of cleanup on the eighth map, but hadn't decided the flow of play through it. The constraints given to me by Markeen seem to require it to be an easier level than most others, but that's probably OK.

Thursday, January 3, 2019

Markeen maps update 1/3

I've mostly finished the foreground of the eighth Markeen-inspired map. I've fixed all the glaring tiling errors (except pipes), but I still don't know the level flow. I took out one clearly unhelpful gate, but there's the beginnings of one in the leftmost red room that I'm not sure what to do with.


Wednesday, January 2, 2019

Markeen maps update 1/2

Today I started chipping away at the eighth Markeen-inspired map. Some parts of the level were very good in terms of tiling, but there were some messes too. This is the first level in which Markeen used switchable bridges, two in this case. Unfortunately, the switch it provided is pretty much right next to the end of the level, so I'd have to change the level structure a bit to make it useful. Because of that, I'm not yet sure of the flow of play, so I just focused on correcting the tiling, which is almost done now.

Sunday, December 30, 2018

Markeen maps update 12/30

While re-playtesting all the Markeen-inspired maps I've finished so far, I noticed that one of them was utterly devoid of decorations and therefore a bit dull. So I sprinkled a few background arrangements around. I've also selected the next randomly-generated map to polish up. It's moderately messy, but I think it could become interesting:


Saturday, December 29, 2018

Markeen maps update 12/29

Today I finished up the seventh Markeen-inspired map.


Since the level is small and not very complicated, I used creatures to provide most of the challenge. On Hard mode, there are two areas with a Shelley dive-bombing in from both sides, which can get exciting.

Friday, December 28, 2018

Markeen maps update 12/28

With the sixth Markeen-inspired map all cleaned up, today I moved onto a new one. I selected this Markeen-generated starting point:


It's significantly smaller (less than 1/5 the area) and less messy than the previous level I polished. I've already fixed the foreground, determined the level's flow, added a couple secrets, and started adding sprites.


Thursday, December 27, 2018

Markeen maps update 12/27

Today I did some more playtesting and refining of the sixth Markeen-inspired map. There were a few tiling errors and point imbalances lingering, which were easy to correct. Weirdly, there are two versions of the solid platform top tiles - one set as front and one not. I'm not sure when one want might to use the non-front one; I had to replace it with the front version to make climbing look right.

I noticed that part of the space secret area was inaccessible, and when I initially fixed that, it became an inescapable trap. I worked around that by providing a one-way ride out of the hazardous part. (Riding the short lower loop back toward the long loop is deadly.)

When I tested on Hard mode, I found that I had exceeded the objects limit, so I had to take out a few infoplane items. But now the level could be considered done!


Wednesday, December 26, 2018

Markeen maps update 12/26

I'm still working on the sixth Markeen-inspired map. Today I fixed the points distribution and most of the decorations. Previously I just connected all the areas together with secret passages, so most of the secrets weren't worth anything. Now there are appropriate rewards for all of them. The high-scoring point items that Markeen likes to scatter generously have been replaced with normal items.

To put the stars in the space background, I used the random mode of Abiathar's Tile Instance Remapper, though I had to use Contextual Help to remember how to operate it. Pipes are also cleaned up, but I still need to add background decorations for variety.

Monday, December 24, 2018

Markeen maps update 12/24

I'm still working on the sixth Markeen-inspired map. Today I populated the level with creatures, put in the first sketch of the background, and fixed a bunch of solidity errors. Having the background really makes it look like it's coming together. I still need to add some background details to break up the monotony, fix the points, and clean up the pipe decorations.


Sunday, December 23, 2018

Markeen-based level project continues

Today I made a bit more progress refining the very large Markeen-generated level. All tiling errors have been corrected. All optional areas are now reachable through (quite a few) secret passages. The level can be won, though I've barely started placing creatures, so it's not very challenging yet. I am also yet to start on the background and pipe decorations.

The original level generated by Markeen

The level as refined so far

Saturday, December 22, 2018

Continuing the Markeen-inspired project

With some time on my hands now, I'm looking at the projects I left in progress. One was to create a Keen 5 level pack by starting from random Markeen-generated levels. I previously finished five levels but got stuck on a particularly large one. Yesterday and today I chipped away at it by fixing incomplete platforms and smoothing out the structure. That's nearly done now; the next phase is to make it playable.

Wednesday, July 12, 2017

Markeen level polishing project

Markeen is getting pretty decent at generating Keen 5 levels. As of yet, though, it hasn't actually been used for anything other than making pretty pictures for some people to look at. So I figured polishing up some Markeen-generated levels would be a good way to create my "own" levels without spending huge amounts of time building from nothing.

I started by profiling the default Keen 5 levels to a depth of 3, then using editprof noadj to discourage Markeen from placing certain obviously incompatible pairs of tiles next to each other. Then I used that profile to generate 100 starting points. Since Markeen is far from perfect, a lot of those levels are a mess, so I went through and deleted all the ones that would take too much time to salvage. That left me with 22 candidates. By default, Keen 5 only has 13 levels, so I could easily get away with making fewer than 22 of my own. One of my goals is to preserve as much of Markeen's "creativity" as possible, so I want to avoid having to place the fuse machines myself. Unfortunately, only 4 of the 5 were used anywhere in the 100 levels, but a couple of those 4 were used multiple times, so I'll probably use one of the levels containing an extra and just swap out the duplicate machine for the missing one.

So far, I've polished one level. It started like this:


And now looks like this:


With its linearity and lack of switches, doors, and keys, it's a good choice for a first level. This refinement only took about two hours including all the fine-tuning of the secret areas.

Friday, May 26, 2017

Markeen - Equal opportunity for first ring

One of the problems remaining in Markeen is that the first position consulted in the spiral sets the starting weights for the space under consideration. This would not be a problem if the consultation of the other first-ring (immediately adjacent) positions each diluted that contribution so that all four weigh equally. That is, unfortunately, not how the algorithm currently works. So today I tried to fix that and allow other positions to have a fair say in the selection.

First I tried rewriting the scoring algorithm to add up all the possibilities for the first ring, then whittle down the chance of those that don't appear in later rings, but something didn't work out and it just made a huge mess, filling the level with disjointed vertical stripes. Unable to understand the issue, I opted to adjust the previous algorithm instead. Now it averages the weights from each first-ring position and goes back to the old behavior once past that. I'm not yet convinced that it actually makes better levels, but at least it doesn't look too bad for deep profiles, which used to be very broken.

Thursday, March 16, 2017

Markeen - Enjoy this art

At the request of some PCKF members, I generated some more levels with Markeen for art purposes.

This album features levels from all three Galaxy engine games. All three profiles were generated with a profile depth of 2. The profiles were unedited except for Keen 6's, in which I manually banned the inner blue platform tile from being next to air. I had Markeen make 50 levels from each game; I selected the ones that looked the most interesting. Keen 4 is kind of a disaster since it's so open, but the others went reasonably well, Keen 5 most so.

Tuesday, January 17, 2017

Markeen - The candidate problem

Markeen has trouble with the combination of more-than-one-deep profiles and the scarcity of original levels. There are plenty of more-than-one-away tile placements for most tiles that would work perfectly fine but don't appear anywhere in the originals. The candidate scoring algorithm devalues (instead of deletes) not-found options once the depth is more than 1, but the starting list of candidates is taken from only the first present neighbor, usually the top. This isn't terrible, since a tile should have to be seen before next to all its immediate neighbors. It does perhaps get the probabilities of the final candidate list wrong, though. Biasing the selection toward the preferences of one side seems incorrect, so I'll have to see about changing that.

Monday, January 16, 2017

Markeen - Single-thread for seeded generation

When I implemented the multithreaded generation for Markeen, I inadvertently broke the feature that lets the user specify a seed to get a predictable level set. When there are multiple generations going on at once, the random number generator is used from multiple threads in unpredictable orders, completely destroying the whole "same output for same seed" thing.

To fix that, I reshuffled the outermost generation loop to fall back to the old behavior (one level at a time, sequentially) if a seed was specified. Now, most people will enjoy the fast multithreaded generation, but a predictable set can be created if necessary.

Wednesday, January 4, 2017

Markeen - Threaded generation

Markeen can take quite a long time to generate a full level set now that the generator takes multiple passes and has more complex logic. The level generation itself takes place on a single thread, so the problem of generating several levels for one batch is clearly amenable to multithreading. So today, I rearranged the outermost loop to instead queue one thread pool work item for each level. As the levels come in, they are added to the level set object.

Sure enough, building a level set now goes a lot faster. The progress indicators in the console are now intertwined with each other, which looks pretty crazy and conveys no information; I'll need to figure out a system to show the progress. At least Markeen can now take full advantage of the system's processing power.