I'm working on a single player ARPG in Unity3d, currently implementing some features for procedural level generation and dev tools to help with it:
Testing webm embed.
Working on more dialog for my game.
I'm working on a management game called PropulsionFactory where you supervise and build a rocket factory like SpaceX. Currently adding workshops areas where workers can assembly final rocket parts like engines or rockets with basic parts like a engine nozzle,fuel tanks,etc
This webm shows the recently added stockpiles where workers store rocket parts
Always a fun time implementing A* pathfinding. This is on a procedural map, the grid is also generated on a per-room basis
Looks cool! Personally that's a lot of tiles/cells but depends on how much mobility you want the player to have inside the map
Since it's an ARPG I don't have to find complete (or long) paths because movement and direction is mostly controlled by the player, so the A* search can be limited to within an ellipse to simply get around nearby walls and obstacles, and hugely save on performance allowing for a higher resolution grid for more precise movement
The developer for Path of Exile's pathfinding actually introduced this technique to me, so props to them. (oldass video, btw, this was for a multiplayer ARPG I was previously working on)
Well that explains it, check Divinity 2 they use the same thing for combat I think. Will enemies use a cone for vision to detect the player? that could consume more resources, generating a cone each time the a enemy moves
The grid determines line of sight as well, it's super fast to sample a line between 2 points and iterate through the line to check if they are all walkable. This can be done in any shape also, just sample additional lines that make up w/e the shape is and whenever you hit an unwalkable grid point stop and move onto the next line.
i'm working on learning python, i think i prefer how c++ does things because whitespace having meaning is freaking me out
currently working on simulations for a percolation model of sensory transmission
this shit is cool af
Trying to figure out how to do a speedy memory-efficient cosine distance search through a set of ~9mil 150 dimensional vectors to make a chatbot
Fixing a ancient ban issue within Medieval Engineers, new to debugging in Visual Studios so its a great way to get started.
New to .NET Core and Async
My lust for death has never been this high
But I'd say I'm getting the hang of it. Probably making a lot of mistakes along the way though
Looks interesting, whats the goal of your project?
Just a twitch bot, honestly. about /0% of what I use on twitch I've made myself... the other 10% is actually something I actually already wrote,
but someone already has theirs available on the twitch extension platform. Using that just saves me a lot of legal mumbo jumbo
Then I just have libraries and APIs to leech off.
I wrote a webpage (because that's what we use for OBS Overlays) for my own stream alerts from streamjar API a number of months ago. As well as hacking in websockets to teamspeak (via python), for an overlay, which I believe I posted in a WAYWO thread back then.
This shit sometimes drives me nuts, but watching the end result working is the thrill I live for
I wouldn't usually post this shit in WAYWO. it's not even working properly. But since it's the new forum
Care to explain what's going on there?
Ah, it's just an isometric map being drawn and some colliders in red which aren't right. I'm actually rewriting all of this from scratch to fix the collider issue and for more control over how it is rendered, I'm using a framework at the moment.
I have loading the map in to memory done. Just parsing a Tiled map in XML format. I'm pretty happy with this.
private void InitializeStrategyMaps()
{
mapAttributeMap = new Dictionary<string, ReadXmlDelegate>
{
{"width", (r, map) => { map.Width = r.ReadContentAsInt(); }},
{"height", (r, map) => { map.Height = r.ReadContentAsInt(); }},
{"tilewidth", (r, map) => { map.TileWidth = r.ReadContentAsInt(); }},
{"tileheight", (r, map) => { map.TileHeight = r.ReadContentAsInt(); }}
};
nodeMap = new Dictionary<string, ReadXmlDelegate>
{
{"map", ReadMapAttributes},
{"tileset", ReadTilesetAttributes},
{"layer", ReadLayerAttributes}
};
}
//Reads <map .../> attributes
private void ReadMapAttributes(XmlReader r, IsometricMap map)
{
while (r.MoveToNextAttribute())
mapAttributeMap.GetValue(r.Name)?.Invoke(r, map);
}
//Reads <tileset .../> attributes
private static void ReadTilesetAttributes(XmlReader r, IsometricMap map)
{
var tileset = new TileSet();
while (r.MoveToNextAttribute())
if (r.Name.Equals("source"))
tileset.Source = r.Value;
else if (r.Name.Equals("firstgid"))
tileset.FirstGid = int.Parse(r.Value);
map.Tilesets.Add(tileset);
}
//Reads <layer .../> attributes.
private static void ReadLayerAttributes(XmlReader r, IsometricMap map)
{
//Don't need a map, it's only one attriute and a subnode.
r.MoveToAttribute("name");
//It's a closing tag.
if (!r.HasAttributes) return;
//New layer
var layer = new IsometricLayer(map.Width, map.Height)
{
Name = r.Value
};
r.MoveToElement();
while (!r.Name.Equals("data") && r.NodeType != XmlNodeType.None) // format is <layer><dataforthelayer>
r.Read();
if (r.NodeType != XmlNodeType.Element) return;
var mapIndices = r.ReadElementContentAsString()
.Split(',')
.Select(int.Parse)
.ToArray(map.Width * map.Height); //parse csv indices, it's not complicated csv.
for (var y = 0; y < map.Height; y++)
for (var x = 0; x < map.Width; x++)
// ReSharper disable once PossibleMultipleEnumeration
layer.indices[x, y] = mapIndices[x + y * map.Width];
map.Layers.Add(layer);
}
public IsometricMap ParseXML(string filename)
{
var map = new IsometricMap();
using (var reader = XmlReader.Create(filename))
{
while (reader.Read())
nodeMap.GetValue(reader.Name)?.Invoke(reader, map);
}
return map;
}
I had bad experiences with parsing the format myself because i wanted to rush and not do it by myself. Eventually i found this, may come in handy.
TiledSharp
Ah, that may have been smarter. Though, mine works just fine and its fast.
Working on a grocery shopping simulator. Got API calls to the web grocery store ready. Have not gotten further than loading the items into shelfs. The plan is to be able to walk around with a cart and fill it up with items which gets added to the online grocery store checkout. Link to the store: https://kolonial.no/
I would feel totally fucked up if I ever used a grocery store simulator to buy my groceries, but still a cool idea lol.
Its the future. Just needs VR and mulitiplayer. No need for going outside again.
[thumb]http://carp.tk/$/pCRdBp.png[/thumb]
SVG to G Code works well, alright?
Finished rewriting the whole thing. Now I actually know the maths behind it because I wrote it myself. Should make things way easier.
Got some shit done today.
Javascript drives me nuts because it keeps making massive changes over the years
Took this old script I wrote, probably over a year now...
Rewrote the entire thing in about five hours, moving from XHR objects to the fetch API which I only discovered about two weeks ago.
Didn't know for (var x in y) was added to JS, so that's pretty handy. Still feels a little inconsistent with using indexs for arrays
GitHub
here's the old version Revisions · shoutcast · GitHub
var [domStreams, offlineStreamList] = [[],[]];
What's with the brackets around the variable name? That's not something I've seen in any programming language, let alone Javascript, and I'm having trouble finding anything on it.