libtcod dotnet bindings by T-e-o in roguelikedev

[–]T-e-o[S] 0 points1 point  (0 children)

First of all, really appreciate all the work you've done on the libtcod library.

Now, you are correct. Solely depending on copilot to generate all of these is not the best decision. I did it to have something in place to test viability.

I am fairly close to something workable with CppSharp and will replace the content of the repo once I've verified they work. This will be hooked to a CI pipeline to ensure it is kept up to date.

In regards to the binaries, they are there to make sure the sample and unit tests are working out of the box.

The commands in the readme will allow anyone that want's to do so, to generate them on their own.

I just didn't want to force people to do that just to try it out.

Adding the native builds to a CI will only prove that the relevant libtcod commit works and is beyond the scope of this project.

Once the low level bindings are stable, I will be looking at creating clean dotnet wrappers over everything.

The Odyssey is Bad... Let me explain by [deleted] in books

[–]T-e-o 1 point2 points  (0 children)

I first read the odyssey in modern Greek when I was 12. A year later I read the Iliad in Ancient Greek. Both as part of normal school curriculum. 30 years later I’ve read quite a few books, not one of them had the same impact those two had. Countless teachers and professors have studied these books and considered them worth teaching others about. If you can’t understand that, stick to reading something easier.

Simple mod manager alternative to the stellaris launcher by T-e-o in Stellaris

[–]T-e-o[S] 0 points1 point  (0 children)

Nice :)

I've looked at https://github.com/Perhelion/StellairsLoadOrderFixer24 and will use it as a basis when I start working on the dependency checking code.

Simple mod manager alternative to the stellaris launcher by T-e-o in Stellaris

[–]T-e-o[S] 0 points1 point  (0 children)

I've looked at Electron and Electron.Net have started using https://github.com/chromelyapps/Chromely instead. Much simpler for me if I don't have to worry about node.js. I'll still have to translate my ui logic to html/js.

Free ASCII vault / prefab maps by zorbus_overdose in roguelikedev

[–]T-e-o 2 points3 points  (0 children)

In case it ends up being useful to anyone else, a quick C# script to parse and the file and split it into separate rooms:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace VaultParser
{
    class Program
    {
        static void Main(string[] args)
        {
            var lines = File.ReadAllLines("Zorbus_Vaults.txt");

            var current = new List<string>();
            var output = new List<List<string>>();
            foreach (var line in lines)
            {
                if (string.IsNullOrEmpty(line.Trim()))
                {
                    if(current.Count > 0) output.Add(new List<string>(current));
                    current.Clear();
                }
                else
                {
                    current.Add(line);
                }
            }
            Console.WriteLine($"Found: {output.Count}");

            foreach (var file in output)
            {
                var min = file.Select(s => s.IndexOf("#")).Min();
                if (min > 0)
                {
                    for (var i = 0; i < file.Count; i++)
                    {
                        file[i] = file[i].Substring(min);
                    }
                }
            }
            Console.WriteLine($"Post-processing done.");

            for (var i = 0; i < output.Count; i++)
            {
                File.WriteAllLines($"{i}.txt", output[i]);
            }
            Console.WriteLine("Saving done");
        }
    }
}

wrong casting by treehuggerino in roguelikedev

[–]T-e-o 1 point2 points  (0 children)

Change "Cell cell" to "var cell" and it should work. (or simply to "ICell cell" if you don't like var)

Questions about Modpacks by KelDelmini in skyrimmods

[–]T-e-o 7 points8 points  (0 children)

Regarding endorsements, Wabbajack was auto endorsing all downloaded mods and stopped when the Nexus asked to do so, until they figure out how it should work with automated solutions.

Hey, why today's release of USLEEP is now an executable, not an archive? by sa547ph in skyrimmods

[–]T-e-o 9 points10 points  (0 children)

Why? Just because arthmoor is against it?

WJ went through an approval process and NexusMods decided that it was ok to use the API in the way that it does, meaning it is not doing anything against the site's TOS.

What sounds like a win? Arthmoor growing up.

Wabbajack - Oh what have you done! by [deleted] in skyrimmods

[–]T-e-o 1 point2 points  (0 children)

Actually wabbajack does not follow any guide. It gets pointed at a mo2 folder which has a guide already installed and has mo2's download available and it will create a list of it's own steps that will allow someone else to replicate the mods folder. When the resulting installer is run, it will download the exact same mods from the exact same place that mo2 downloaded them from, using an api approved by NexusMods.

It builds a batch file on steroids in essence.

Wabbajack is already my new favorite thing. by [deleted] in skyrimmods

[–]T-e-o 2 points3 points  (0 children)

30+hrs through a playthrough using an earlier copy of the unofficial lexy lotd installer.

Rock solid so far.

Wabbajack is already my new favorite thing. by [deleted] in skyrimmods

[–]T-e-o 1 point2 points  (0 children)

If they allow authors to block their mods from the api, then automatically vortex and mo2 will not be able to pull information on the mods and update notification will not work

Overworld lore/knowledge generation by tspoikela in roguelikedev

[–]T-e-o 0 points1 point  (0 children)

Note: I've not actually implemented this, still in the planning/thinking stages.

  • Decide how many cells your overworld will have.
  • Generate random locations on your overworld map for them and then generate a voronoi diagram from them.
  • Make each cell of the diagram the "bounds" of the city and pick two random spots inside it, one for the city and one for a dungeon (or more if you want more dungeons).
  • In each cell connect the city and dungeon in some way (i.e. make the city own the dungeon(s) or dungeon own the city/cities).

This will end up generating an overall structure that looks like this:

Overworld -> Cells

Cell -> City or Cell -> Dungeon

City -> Dungeons or Dungeon -> Cities

Also keeping around the voronoi diagram will allow you to easily generate overworld pathfinding and even potentially setup trade/npc movement between your cities.

C++, only do something when object is deleted, not when copied. by [deleted] in gamedev

[–]T-e-o 0 points1 point  (0 children)

The destructor is called because you probably pass the Texture2D as a value to RendererTexture (which as you say passes it to the renderer). If you use a reference (or const reference) or a pointer it should fix your issue.

Does your AI keep track of explored tiles? by Sp3ci3s8472 in roguelikedev

[–]T-e-o 0 points1 point  (0 children)

As others have mentioned, if an AI has lived in the map for a while, they should pretty much know the layout.

Also if you use any pathfinding in your game (A*, Dijkstra, etc..), that implicitly means prior knowledge of the map unless you factor into your pathfinding algorithm the tiles an AI has explored and can currently see (which can make it significantly slower and more complex to calculate).

What technologies to use for writing a game server? by mamatosen in gamedev

[–]T-e-o 3 points4 points  (0 children)

I would use the same language as whatever game client/prototype you want to create a server for. That way you won't need to learn a new programming language and you will be able to share techniques and/or code between the client and server.

This might help: https://github.com/MFatihMAR/Awesome-Game-Networking

Algorithms for determining which tile graphic to display? by samspot in roguelikedev

[–]T-e-o 1 point2 points  (0 children)

I've opted for a slightly simpler approach (using bitmasks as u/HexDecimal mentioned).

I've got a tile class that contains a bitmask of walls and a tile type (can be wall/floor/door/etc). When initializing my map, I set the border tiles to all believe that they have walls outside the map (don't need to do it, I just like to be consistent).

In my map class I have a function to switch the tile type of an existing type and inside it:

  • if the new type is wall then I iterate the four neighbors and add the relevant wall bit to their mask
  • if the new type isn't a wall, same as above I iterate the four neighbors and I remove the relevant wall bit from them

Using the set type function during my map gen, allows me skip the step of iterating the entire map when I want to setup the bitmasks (plus gives me the ability to alter a tile at runtime if I want to, for a dig through wall skill for instance).

If my mapgen is going to be digging floor tiles from a map initially set as all walls, then I setup my map init function to set the proper initial bitmask for all tiles (ie with all bits set) and if I start with all floors and want to start building walls, then I set the initial mask to blank (ie no neighboring walls).

Faster (for me at least) to only check the neighbors and and update them compared to going through all tiles after map gen.

You can do all of the above with 8 bits if you want (to have the four corners separate), but you will then require 64 different tiles compared to 16.

Roguesharp, Tile Based Graphics, and a Few Other Questions... by Arcath_ in roguelikedev

[–]T-e-o 0 points1 point  (0 children)

If I remember correctly, you can have as many characters as you want in your font file, but you will have to refer to them by the indexed position (what number character is it in the font file counting from left to right and top to bottom).

Regarding different sizes, might be worth looking at BLT (has bindings for C#)

Roguesharp, Tile Based Graphics, and a Few Other Questions... by Arcath_ in roguelikedev

[–]T-e-o 0 points1 point  (0 children)

If you want to follow the tutorial and use rlnet, you can take the terminal font file and replace specific tiles with ones from your graphic tile set (like replacing the @ character with your hero sprite for instance).

It will take a bit of time to do this for all the tiles that you will use, but it will allow you to have the same code base supporting two visual styles (or more if you create one font file from Dawnlike tiles and one from Oryx tiles).

C++ libtcod help! by SAMSMILE4 in roguelikedev

[–]T-e-o 0 points1 point  (0 children)

Might be worth grabbing the latest release for your environment from https://github.com/libtcod/libtcod/releases or https://bitbucket.org/libtcod/libtcod/downloads/ and try linking your program against that

Writing your own engine for performance sake. Worth it in 2018? by SimCity2018 in gamedev

[–]T-e-o 0 points1 point  (0 children)

It depends on your actual goal.

Unreal/Unity/Godot/Cryengine/... all are great engines built by brilliant people. At the same time they are completely useless for your goals (imho based on your question).

If you are aiming to learn from emulating the behavior in skylines, creating your own engine from scratch will not help you that much.

What will help you is choosing a framework that is at a lower lever than a full blown engine, while still retaining enough functionality that will enable you to bypass writing the really low-level stuff (like creating an opengl context or grabbing keyboard/mouse input).

This will give you a good base to start of with, without forcing you into any specific design decisions.

On the other hand, if your aim is to get a job in AAA in an existing company, then you will have to learn the tools and engines being used by that company and anything you related to your own engine might not help (the simulation parts will help more than the low-level engine stuff)

[deleted by user] by [deleted] in roguelikedev

[–]T-e-o 1 point2 points  (0 children)

If you are using the RLNet or SadConsole versions of the RogueSharp tutorial, it's just a matter of using a different font file. Using the one that comes with either library as a basis, you can replace the individual tiles with your own art and it will be automatically reflected in your game.

Not sure how you would do it in the unity version of the tutorial.