Oct 1 2013, 10:31 am
|
|
It's definitely helping me... Somehow or another, I'm a few days away from having a release-quality game. All because I've been fooling around with 500 a lot.
|
In response to Ter13
|
|
Ter13 wrote:
That looks awesome! Another neat effect might be sequentially having the blocks above collapse, and do a jello-like effect when they hit the block below them by scaling axes but preserving total area. I gave this a go, having the blocks in each column drop sequentially as opposed to all together, and with a quick little squishy effect as they land. I will eventually get around to rewriting this and turning into some sort of game, but for now it's fun to tinker with. |
In response to Danny Roe
|
|
Danny Roe wrote:
I gave this a go, having the blocks in each column drop sequentially as opposed to all together, and with a quick little squishy effect as they land. I will eventually get around to rewriting this and turning into some sort of game, but for now it's fun to tinker with. Holy crap, that looks great! I'd say it's "game" enough as-is, at least for someone who wants a neat little time-waster. (I'd guess that the majority of the "game" trappings that could be added on probably lie in a scoring system and the test for round-end/no moves condition) |
In response to Fugsnarf
|
|
Fugsnarf wrote:
I think the electrons should move faster overall. And I think you're right! (I snuck a few extras in there while I was at it; triggered by verbs. I might just cram all kinds of settings and options into this thing with some slider or toggle interface elements and put it out as a "game") C'mon! Anyone got any more stuff to show off? Or is everyone keeping their cards close for the contest? :) |
Nothing I can really show off very well at the moment. I have made a slight improvement to sidescroller graphics, rather than having 4-directional icons with 2 unused, I'm just setting up a couple of matrixes to handle directional facing from a single-directional icon:
var This setup, by the way, utilized my InputHandler library, as well as my DatumPoint library and a matrixstep function I wrote: var |
In response to SuperSaiyanGokuX
|
|
SuperSaiyanGokuX wrote:
Holy crap, that looks great! I'd say it's "game" enough as-is, at least for someone who wants a neat little time-waster. I still need to come up with a better way to track empty columns and slide the remaining columns to the left (I'll probably start a topic to get some input) and locate the source of a couple of random crashes. There are also a load of other features I want to include after I get the basics done, such as ledges, bombs, reinforced blocks, different modes of gameplay etc.. |
In response to Ter13
|
|
I really dig the side-scroller method you got goin there. For some reason it annoys me that you can't pick two or three directions if you want to.
|
In response to Ter13
|
|
I'd recently (some time this summer) tried out Unity and I really like how they handle input. I've been using my own input system inspired by Unity's Input.GetAxis() in all of my latest test projects.
client This isn't related to v500, but I just was curious if other people would benefit from this kind of style. |
Just as a complete aside, here's some undocumented goodness if you don't want to use multiple lines to setup a datum:
matrix(angle, MATRIX_ROTATE) // although this is equivalent to turn(matrix(), angle) Those don't work at compile-time for initializing a var (they could, I just didn't want to try working the same logic into the compiler part), but they'll work dandy in a proc. The result is a /matrix and can be used with operators. I didn't document this for the reason that it's more or less too complex to bother with in the reference. The matrix() proc is rather a workhorse, but all most people really need out of it "above the hood" is the ability to make a new matrix or copy one. But I'll leave it as an exercise for the curious how they can copy a matrix's values into a 6-item list. |
In response to Lummox JR
|
|
I think there's a memory leak in those 3 functions.
mob The output, after using the verb a few times: 4 When the matrix(...) line is replaced with just matrix(), the output is consistently: 2 edit: Interestingly, the leak is causing subsequent matrix() (no arguments) calls to take longer. |
A very rough little experiment, not sure how clear the bullets are. Something along the lines of changing the range in a Tower Defence game.
|
In response to Kaiochao
|
|
Fantastic catch! Please post that as a bug report and I'll get that resolved.
|
In response to Kaiochao
|
|
Kaiochao wrote:
I'd recently (some time this summer) tried out Unity and I really like how they handle input. I've been using my own input system inspired by Unity's Input.GetAxis() in all of my latest test projects. I don't like your approach quite as much, actually Largely, it's the Tick() function. You should check out InputHandler's source code. It is pretty clean and doesn't depend on infinite loops. More or less, it detects input cleanly using registered axes similar to yours, but handle_input() is only called on a keypress or a keyrelease of a registered axis. It lets you make repeating processes via code similar to how I handled it in input_repeat(). It also has an option for a buffer size, which lets you keep track of things like combos and double-taps. Unity's approach always felt a little... 1980s to me. |
In response to Ter13
|
|
The Tick() function runs off of one global infinite loop. I like using a main game loop for my physics stuff.
For example, when you release all your keys, you shouldn't instantly stop moving just because your character is not receiving any input, because it's a physical object; that's what the vel_x line implies. The lerp() allows it to gradually accelerate and decelerate based on player input. edit: Unity has options of easing (with the same curves that animate() now uses) player input, which means the value you get for GetAxis() (as opposed to GetAxisRaw()) changes according to the duration the key is held. I'd like to add that, but I... haven't needed it yet. edit: The point of my system is that having neither D nor A down is the same as having both D and A down, according to the controls manager. Instead of, say, checking each key and setting up a BYOND direction to determine which direction to go (or even worse; stepping right and then left in the same frame), we just get 0 as the "Move" input, which automatically translates to no acceleration along the x-axis. |
If you look at a lot of games like Super Meat Boy, responsiveness of controls is a big thing for the game.
One of the things I did for physics, was essentially only running physics code as far as it needed to be run. With gravity-enabled objects, I'm using a special type of movable called a collider. Basically, it has a bounding box that matches the width of the bounding box of the attached object. The collider detects dense objects one pixel beneath the mob while it's considered grounded, which allows it to count the number of supporting tiles. //override move to provide a Moved() function Now, platforms allow players to jump up through them, but not pass through from the top. They also count how many supporting platforms are beneath the object, by incrementing and decrementing the support variable of any colliders crossing this platform. obj Since fall() is independently operating, and all physics behavior is determined by the object itself, only moving objects have live physics loops running. |
In response to Kaiochao
|
|
I'll just go ahead and post that report.
|
In response to Lummox JR
|
|
Lummox JR wrote:
I'll just go ahead and post that report. Kaiochao is the laziest person ever when it comes to submitting bug reports. |