Freelance Henchman
Arcane
Improved the snacks colliding on the floor in the dark simulation:
Testing out making the "scanner" actually scan something, now it produces a crude 3-dimensional copy of the environment. Could be a nice gameplay element where you send in drones to scan for enemies etc. Lost of stuff needs fixing to make it look better, but at least the idea works and did not take to long to implement. But to make it look better I think a grid is more appropriate than a radial spread as it is now.
here's my fantasy top-down killer game
http://absum.se/KSWB.zip
AI is fucked up
but at least you can shoot
HOW TO PLAY:
WASD to move
hold mouse button, release to fire arrow
Only 22 bytes and empty when I try to download this, so either I just got a nasty virus by clicking on unknown stuff on the interwebz or something went wrong in your upload
inline float Map::heuristic(size_t n1, size_t n2) {
int16_t d1 = abs(tiles[n1].pos.x - tiles[n2].pos.x);
int16_t d2 = abs(tiles[n1].pos.y - tiles[n2].pos.y);
constexpr float D = 1;
constexpr float D2 = sqrt(2.0) * D;
return D * (d1 + d2) + (D2 - 2 * D) * min(d1, d2);
}
if(cost_so_far.count(next) == 0 || new_cost < cost_so_far[next]) {
cost_so_far[next] = new_cost;
tiles[next].visited = true;
float priority = new_cost + heuristic(next, goal);
frontier.put(next, priority);
came_from.emplace(next, current);
// draw();
// sleep(1);
}
struct TPathNode
{
TBool iOpened;
TBool iClosed;
TInt iVertexLength;
TInt8 iDirection;
TFloat iG;
TFloat iF;
};
std::priority_queue<TPathNode*, std::vector<TPathNode*>, TPathNodeComparitor> iNodeQueue;
class TPathNodeComparitor
{
public:
TBool operator() (const TPathNode* lhs, const TPathNode* rhs) const;
};
TBool TPathNodeComparitor::operator() (const TPathNode* lhs, const TPathNode* rhs) const
{
return lhs->iF > rhs->iF;
}
jumppoint_identified:
/* if we have a backtrack set, that's the jump point otherwise it's the current node */
if (backtrack)
jumpNode = backtrack;
if (!jumpNode->iClosed)
{
TFloat tentativeG = current->iG + Heuristic(current, jumpNode);
if (!jumpNode->iOpened || tentativeG < jumpNode->iG)
{
jumpNode->iDirection = direction;
jumpNode->iVertexLength = Distance(current, jumpNode);
jumpNode->iG = tentativeG;
jumpNode->iF = tentativeG + Heuristic(jumpNode, goal);
}
if (!jumpNode->iOpened)
{
iNodeQueue.push(jumpNode);
jumpNode->iOpened = true;
}
}
break;
cepheiden
It's probably also easier to explain to the player, and overall it's better to have a few large systems that govern a lot of things than many small systems that each govern a few things. Interconnectedness is good.
<insert joke about Russians and their strict mothers here>Been writing some flavor texts for the next X Caeli demo this weekend. Boy, I dunno how broken my english is (or how good of a writer I am, for that matter), but I sure do love writing a sardonic, egocentric, hypocritical, cruel stargod. Why so few games have guys like these as protagonists? Why it's always some bland as hell goodie two shoes with zero personality? Or a brooding mercenary anti-hero?
I won't say that protagonists like that never existed, but the point is when they existed they were pretty good - someone like Caleb, you know, who is very dark and totally enjoying it.
I like when the calculation for a system is something that you can approximate without the aid of a machine. If your calculation is too complicated to explain to a player, it is a lot more likely to have bugs or game-breaking edge-cases. Meeting this condition doesn't require a trivial calculation. You can still do something like (raw damage * (1.0 - deflection %) - absorption #).cepheiden
It's probably also easier to explain to the player, and overall it's better to have a few large systems that govern a lot of things than many small systems that each govern a few things. Interconnectedness is good.
Very good point.
I was tending to either 3 or 4, but seeing as I already have a stamina system, yet another system would have been too much.
I like when the calculation for a system is something that you can approximate without the aid of a machine. If your calculation is too complicated to explain to a player, it is a lot more likely to have bugs or game-breaking edge-cases. Meeting this condition doesn't require a trivial calculation. You can still do something like (raw damage * (1.0 - deflection %) - absorption #).
yes, and thank you!You make the sprites yourself zed? I quite like the middle one.
Stop ruining my dreams of creating the ultimate game developer.This is not a Double Fine game ZZ.
HELLO