Soon my boulder army shall be powerful enough to crush all opposition!
There are several features and bugfixes that didn't make it into this update, but it's been over a week since my last update, so I figure it's about time to push this out. Boulders and tutorial messages were my main priorities for this update, and I got those working at least.
Changelog:
* Added tutorial level 3
* Improved boulder AI
* Added tutorial messages. At the moment they use the same syntax as in the original game, although I plan to add alternate syntax for them in the future.
* Added stalagmites
* Stalagmites and stalactites now kill you
* Press ESC or K to pause
* Many bugfixes:
Spoiler:
* You will now break wooden crates when being warped up onto a platform
* You will no longer be pushed left when inside the center of a block, you will only be pushed if near the edges
* You will no longer collide with falling wooden crates
* Fixed a bunch of bugs that were introduced while coding these features
* Press S to skip to the next level
* Press I to toggle invincibility
Those last two are for testing purposes only and won't be in the final game.
Regarding the username form, can you put focus on the text input when you click Load User Level? And then have Return click Okay as if submitting a normal form. Just mildly jarring that it doesn't behave like a normal web form.
Great progress so far - it's really starting to shape up now! Thanks for sharing the cascading algorithm the other day - I'm curious about what changes you've made that warrant it being called an "AI" now.
Currently the username input is handled via a built-in function, so I can't change it without re-implementing that functionality myself. I plan to do that at some point, but it'll take some work.
And I'm just being cheeky when I call it boulder AI, although after playing Chaos Theory with this physics, you might think the boulders are trying to kill you.
One major change I made since I posted the algorithm was that boulders will now remember which direction they were rolling if they land in a spot where they can cascade either direction. I also fixed the bug which caused the boulders to pile up in towers as seen in the boulder preview video.
One change I had made when that preview was posted was that boulders would not cause blocks above them to fall after rolling (to match the original game), but I reverted that change because I prefer the way the physics behaves when rolling boulders do cause other boulders to fall. It's very noticeable in the lower left corner of Chaos Theory, in the current system the diagonal boulder chain gets broken down and the boulders are neatly piled into a mound rather than getting jammed once a few have gone through the gap at the left.
You should be able to load user levels, but dynamite, water, and enemies are not implemented yet, so any caves with those blocks won't function properly. There also aren't any fake crates, fake crates will be replaced with air.
Well, I wouldn't say jumping through diagonal spikes is a feature so much as it's a consequence of Hannah's midair hitbox being super skinny. I could replicate that behavior fairly easily, but IDK if I want to. In general I'm trying to keep hitboxes consistent.
So it's really hard to test levels for this because when I upload caves and play them on HATPC Reborn, then upload an updated version on the same account, it takes a long time for the level to change in Reborn.
Also, I made a level with dimensions of 76x44. The top few layers of the level were cut off when I tested it. I assumed this was because of some max height, so I managed to make my level a smaller 76x40, but somehow even more of the cave was cut off?
Why does HATPC Reborn still pull level codes from Neopets? Wouldn't it make cavemakers' lives easier to have a level code paste box in HATPC Reborn? Also removes the dependency on Neopets.
Kro, that is a known issue that I'll fix in the next version. The game is getting a cached version of the level rather than the current version.
As for the cutting off, could you show me the level code(s) that had that issue so I can try to debug it? There shouldn't be a max height, so there must be some sort of bug causing it to be cut off.
As for pasting level codes directly into HATPC reborn, I'd be all for that, but as far as I can tell, pasting text larger than 1024 characters into HTML5 Gamemaker games just doesn't work. I can't read the clipboard and the keyboard_string tops out at 1024 characters. Theoretically we could host the files somewhere besides Neopets, but then we'll need to have some ID to access them like the Neopets account acts. We probably want that eventually to get around the Neopets uploader.
Droid, if the text was pasted somewhere else in the webpage, would the HTML5 Gamemaker app be able to pull the value of that element? I'm totally ignorant about how Gamemaker generates the web code, so I don't know how tightly your hands are tied.
How are you currently getting the codes from Neopets? Ideally, we'd detach ourselves completely from them and host the levels ourselves. Two ways we could do that:
* Livio adds an API to the Interguild website to expose all the hundreds of levels we already have on here.
* I start hosting levels on CaveGen. This is on my to-do list after migrating it to React/AWS.
Kro, I'll check that cave out when I get a chance and see if I can figure out the issue.
There's no way to get data from elsewhere on the webpage as far as I know. Theoretically it should at least be possible for a javascript outside the game to insert data into the game, but I don't know how that would be done.
Both of those level hosting options sound reasonable. It actually would be possible to access the Interguild levels as-is, but only by numerical ID and with a script to remove the backslashes. Probably another anti-xss PHP page as well. So it's possible, but it'd be nicer if we could have the files accessible via friendly names on a custom PHP page.
Actually, I just discovered that the last speed trap in that level is cheatable, since with the current physics it is possible to jump onto the edge of a block that has spikes on it. I might change that, since not being able to jump on spike-covered blocks is an important feature.
Yeah, that puzzle may or may not work. I never really got to test it out, since it's an unpublished level. That spike-on-terrain thing should definitely be fixed.
Was playing the Valen level just now and noticed that you can't push boulders on to stalagmites. I'm sure you could do this in the original - was this intentional?
EDIT: actually, when boulders land on stalagmites, they both occupy the same tile without the stalagmite being removed. See http://imgur.com/a/yc7Jx
That (not being able to push boulders into spikes) is a known issue that will be patched in the next version. As for boulders and spikes occupying the same tile, that should never happen in HATPC Reborn unless the boulder is falling through the spike. Any time a boulder lands, it destroys any spikes that occupy the same tile as it.