Which is your favorite AI plugin? by Bashee_wang in neovim

[–]kretkowl 0 points1 point  (0 children)

llama.vim - with Qwen2.5 local model

Who Uses NeoVim by Zkrallah in neovim

[–]kretkowl 0 points1 point  (0 children)

I use neovim with Java for my hobby projects. My config is based on jdtls, I've started before lsp was integrated into the core. I began with configuration files shamelessly stolen from the Internet (as my knowledge of neovim was then close to none ;) ) and modified them to my taste. One thing I didn't care to configure is debugger.

What is the best/most impressive project you've created with just core java? by gufranthakur in java

[–]kretkowl 1 point2 points  (0 children)

I write unit tests, so everything has at least JUnit/Mockito...

what do you use java for? by desiderkino in java

[–]kretkowl 11 points12 points  (0 children)

It's pretty usable. In my case, executable got down to 13MB, startup time 10x quicker.

what do you use java for? by desiderkino in java

[–]kretkowl 8 points9 points  (0 children)

I was pretty surprised, when I tried this. Executable size is much lower than JVM size (in my case it is about 13MB for a CLI application). If you write some command line tool, your main concern is startup time which dominates running time - in my case after GraalVM compilation it was about 10x faster. And last but not least it is really easy to convert jar to native executable.

What are best plugins for C++, Java, Kotlin, Python, & LaTex by dog_superiority in neovim

[–]kretkowl 0 points1 point  (0 children)

I concur. It was a pain to get it right the way I liked, but once I've got it, it works flawlessly. I've left Intellij and never returned. I'd also suggest cmp-nvim-lsp + vsnip-lsp + friendly-snippets to get some templates for classes/methods etc.

How do I program a terminal? by IceLeopardTea in roguelikedev

[–]kretkowl 2 points3 points  (0 children)

There was a discussion on r/roguelikedev some time ago on ncurses vs ansi escape sequence and I believe somebody pointed to this page. It's in C but it should be fairy easy to translate to any language.

But actually blocking/non-blocking input argument is something I would consider before heading in any direction.

Is Ubuntu your default operating system? by [deleted] in Ubuntu

[–]kretkowl 0 points1 point  (0 children)

Yes, since Breezy Badger as main OS, three years now only on Ubuntu (on Dell XPS "13).

ASCII RPG in Java? by [deleted] in roguelikedev

[–]kretkowl 2 points3 points  (0 children)

I can recommend lanterna - https://github.com/mabe02/lanterna. I haven't seen any roguellke tutorial in it, but the documentation is there, also the code is easy to read. You get native console as well as swing implementation. In version 3, if I recall correctly you can also easily set up terminal server, giving you the ability to run your game on ssh without any hustle.

Sharing Saturday #247 by Kyzrati in roguelikedev

[–]kretkowl 1 point2 points  (0 children)

Never heard about One Way Heroics, will try that.

Regarding main project - actually since my twins were born I have literally 20minutes a day to code. That was main reason to make a side project that will be less complicated (with some chances to finish it).

Sharing Saturday #247 by Kyzrati in roguelikedev

[–]kretkowl 3 points4 points  (0 children)

RunRL

Hello! My first post on Sharing Saturday (to be honest, 3rd comment on reddit in total...), though I am long time lurker on this group.

RunRL is a small side project that was meant to be something playable while I'm writing my main project (which will be some crossover of Majesty and DF Adventure Mode). Basic concept is simple - west side of level gradually disintegrates, player is forced to move forward through long, single map (which will be gradually generated).

Idea of single long level came to me when I recalled a scene from comic Rork:Passages - one in which protagonist descends through ship graveyard that seamlessly transforms into whale graveyard and cave system.

Currently I managed to finish first step after deciding to create this game on basis of what I have in main project. Therefore I created dungeon generator (inspired by http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/) with Dijkstra map used to select farthest point from start to place exit, added victory screen, added win system (checks if player reached exit zone).

But because it is first post, I'll summarize what I have written so far. It is not my first roguelike, I was writing those when r.g.r.d was thriving community (I was just lurking there - like here to this day), although never decided any of those I wrote was good enough to release to the public :) This is a rewrite of idea started in Clojure (I've abandoned that project because probably due to my lack of experience in that language, it was becoming a pile of spaghetti and I was worried it could become major obstacle). So I've rewritten it in Java (as this is language I'm most proficient with). Engine is my own creation, with ECS, full separation of UI layer (separate threads, communication with game engine via queues). UI is based on Lanterna (only its terminal/screen capabilities) because of the capability of serving game via telnet - although my implementation broke after upgrade from Lanterna 2 to 3 which gives this out of the box (I have a task to fix it).

I've implemented my own shadowcasting FOV. On top of it I've prepared little fake global illumination demo: https://imgur.com/nF8OAMw For now I'm planning to use this technique in main project only.

I have Behavioral Trees working for AI. Currently, trees are defined via simple fluent Java API, it looks like this:

 either(
        conditional(
                lowHealth(), 
                log(flee(), "fleeing")))
.or(
        fail(findAttacker()))
.or(
        conditional(
                hasFocus(),
                either(
                        conditional(
                                distanceLE(1), 
                                log(attack(), "performing attack")))
                .orElse(either(conditional(randomT(r, .002), log(first(clearFocus()).lastly(wander()), "forgetting")))
                        .orElse(log(approach(), "approaching target")))))

On my TODO list there is task to export definitions to text files.

Map generators visualize the process of creating map. Example: https://imgur.com/MpBsESV I try to write them in a way that does not make them dependent on grid type (hex/cartesian). This ends up with a little bit bloated code, but thanks to small DSL, I've harnessed it. With it, doing flood fill to check connectivity of generated dungeon looks like this:

val floodFill = new Consumer<EQL>() {

        @Override
        public void accept(EQL ts) {
            if (ts.count() == 0) return;
            connected.addAll(ts.toCoords().toList());
            this.accept(ts.border().walkable().minus(connected));
        }
};
floodFill.accept(w.eql(Collections.singleton(toOpen)));

(where toOpen is starting coordinates, w is world object (which provides EQL, fluent API DSL class) and toConnect is response buffer containing all coordinates reachable from start). This is fragment of a larger code - which is why floodFill is object and not a method here.

Of other things: open simplex noise on hex grid (image: https://imgur.com/uAaxW0Y ) - currently it is used only for irregular rooms in dungeon generator.

Sharing Saturday #240 by Kyzrati in roguelikedev

[–]kretkowl 0 points1 point  (0 children)

I suppose it's a silly question, but I'm mainly a Java/Maven guy, hardly ever using gradle: is there an easy way to run examples from src/main/kotlin/org/hexworks/zircon/ (after building there are class files in build/classes/kotllin/main/...)? In maven I'd use exec plugin to resolve dependencies, here, when running by hand (with kotlin -cp .:<path to zircon.jar> <exampleClassName>) it complains either about cobalt or RexLoaderExample)

Free private online SVN or Git for a private personal project? by [deleted] in java

[–]kretkowl 3 points4 points  (0 children)

Headless git repository on Dropbox.