I’ve tried a few times in the past to get an A* Pathfinding method built, but just couldn’t get it working. Now I have. About 24 hours of work, trying to figure it all out, using 19 scripts in total (EEK) and it works. It is noticeable when it paths, it’s not as instant as I’d like, that’s why I’m building a single script version, putting more values into memory and less processing in real time. I usually jump right in and program stuff to work so I can see stuff moving on the screen, then change it. Which is why nothing ever works. Now I’m trying a new method of planning everything, programming everything, and then hitting RUN, and debug from there.
If you’re still reading this, in the video, the pink Lost Man is looking for the best way to get to the red end square, while trying to avoid the green areas. He also doesn’t want to turn. That’s why I wanted to make my own A*, so that I could generate paths to try to avoid areas, but go through them if it was still cheaper to, and would try to head in the same direction, if its cheaper. Sometimes the paths it makes is a little odd with my costs, it would decide that heading diagonal down then back up would be cheaper than heading straight across… But that’s the way I made it. The costs are a bit extreme here too. H = 10, turn = 10, Diagonal = 20, Avoid Green = 40…
Right at the end you get to see some error message awesomeness.
An elevator in action that isn’t glitching, a trigger/switch, a mostly working seeking rocket, the curving laser for those hard to reach places, and a basic level. Uses a couple of objects with different sprites (just easier for my brain) and cuts into a surface, opening up playable areas. Scaling the sprites causes annoying edges and clogs it up so everything has to draw itself just slightly larger. Obviously there are no graphics yet, just made them now to make it easier to see whats going on (my wife had no idea what she was watching - you probably won’t either ha).
Quick update: yesterday added elevators, curved laser beam weapon, combination triggers, enemies as part of trigger system, spawners, items. Working on some sort of way to build levels. Restrictions are 1 sprite, 1 object, have to be able to be totally random shapes.
Yep, the terrain sliding. Slowed it down and doubled the size for your viewing pleasure. You can also jump from a slide, but there’s no guarantee you’ll hit the other side!
I keep getting into playing ABUSE by Crack Dot Com, and I thought about making something like a clone of it. I spent the past 2 weeks trying to make various versions of collision loops following terrain, and one of my Python programming friends asked my why I’m making it so complicated, so I thought about it, and made this in 2 days, and it’s a LOT simpler, and WORKS. Now all I have to do is basically add graphics, weapons, items, and enemy types. The hardest part I couldn’t figure out with what I already know was homing missiles, which I had to resort to Google, and read up on 2 ways to do it but ended up with YellowAfterLife’s example. In the video, everything is still “debug mode”, and everything should be straight forward. Trigger opens door, spikey grey thing is a death trap, at the end the big door has a combo lock, and a “portal” which teleports you back to the beginning. Ha I forgot to show the terrain sliding in this video, the MAIN THING I’ve been working on for weeks… Check the next post for the sliding video.
I survived America! Los Angeles, really. Disneyland was definitely the best part, but it was all a fun experience. Then horse riding around Griffith Park, and the HOLLYWOOD sign (Hollywood is my last name, so of course I had to get a photo of it), Griffith Observatory, the museum, Universal Studios, Santa Monica Pier, Hollywood Boulevard, the Zoo (worst place ever), Palm Springs, just to name a few places. So I’m not dead, just lazy. And dirt poor now… And the wife has informed me we are going again next year…
Haven’t been doing much programming for a while, just a bit here and there. Much too busy working. Saving up money for next Sunday’s 13-hour plane trip to LA. Scared. Second ever plane trip, and first trip overseas.
Just a bit of theory
I normally like to post a picture with progress, but right now I thought I’d do a bit of theory (as I can’t code anything at the moment). I wanted the monster creatures to run and jump all on their own accord without relying on any other object or value, other than the player (when he is alive). I all the ways I could come up with don’t work in such an environment as this (not efficiently anyway), with no limit in the direction the monsters can go, so this morning I’ve come up with a brilliant plan to try an mix Unreal’s path node system with some A+ pathfinding (which I’ve tried an failed at before). At level creation, spawn node creators that walk across the level, creating nodes, which link to other nodes within a radius, and if there is no ground between linked nodes then that means that it’s a jump destination. Create monsters, and they update their path to the player every second, using the variation of A+… Hopefully this means that the monsters can quickly find a correct route to the player, no heading in the wrong direction or getting lost, and can jump when they need to. Hopefully it will also be faster for the computer, so each monster isn’t doing collisions for jumping and whatnot because the nodes have already done it. Dunno if this is gonna work…
Edit: after some pen and paper debugging, I didn’t realise just how to do this, and with constantly incrementing nodes being checked, I’m limiting the amount of nodes to check, instead of heading all the way to the player. Just head to the closest node after say 10 iterations.
Another Edit: This is stupid.
I haven’t done a lot recently, lots of being busy and Skyrim, and trying to do weird things with code. This video is an old idea put to new, with 6 days failing before I finally got it working.
I went through using nodes and for loops with crazy amounts of collision checking, as I wanted to try and do cool coding using an absolute minimum of variables (which was hectic), but I finally settled on a simpler use of directions and for loops with collisions. The whole code fits nicely on one page in the editor.
The monsters run across the level, checking through below them and above them (relative to the direction its heading in) and checks where it can move to at its current speed, and moves there. There seems to be a step delay between the sprite and the direction change. And they don’t jump properly, but it’s almost there. And for some reason, they get stuck when heading left… That keeps changing as I mess with gravity and directions…
The other problem is making the monsters want to head towards the player, without just aiming straight at him, and also jump towards him, and if something is blocking the path with the shortest distance, then it needs to head away from the player.
Sculptris, Blender, Photoshop. The first one is entirely done in Photoshop, I was trying to learn digital painting and colours, but made level pieces instead. I really like the scuplted painted look, but it is simply just too time consuming to do on a large scale. Probably just make some reusable pieces like they did with Oddworld: Abe’s Exoddus. BTW can you find the skull(s)?