Releases Wire XXIV

libjcsi 0.0.2

libjcsi allows you to develop your Java roguelike to interact with an abstract console layer, from which you can later choose a concrete implementation on deployment. This means you forget about IO and concentrate on developing your game!

LambdaRogue 1.3

This version introduces some features which make the gameplay more interesting, although most things are known from other roguelikes

Z+Angband 0.3.0

This revision is a substantial one: the magic system has been changed and substantially expanded. Briefly, players will now have to choose the spells they want to learn, rather than being able to eventually learn every spell available.

noegnud 0.8.5

This release is a bugfix and engine update release.

5 thoughts on “Releases Wire XXIV

  1. libjcsi looks like a very good idea – always difficult to find the balance between abstraction and giving the programmer enough control to do everything they want. I might check it out.

    Slash I think you should give a quick 5 stars to each of the updates – if there is a RL release that you give four or five stars I will check it out, but I don’t have time to check each out for myself. I’m also interested in knowing which releases are a full game and which are still in that stage of development where they can’t be finished yet.

    Keep up the good work 🙂

    Like

  2. My initial comments on libjcsi after only a quick look, the abstraction is not very self explanatory and the example code not commented in detail, therefore the docs are necessary. In a way this form of abstraction replaces one form of inquiry with another – however it does take away some of the coding work. After an update to java the luck example works.

    There should be a base code that can be used as a starting point for a RL. I’m not sure the example below is enough. As you can see it needs more comments on the abstracted functions to make it easier to dive into – my view is an example or base should be readable without reference, at least for the coder to get started, remembering that you want to attract all levels of coders. As a library it looks good although I guess it would need more features, like proper LOS support etc later?

    package net.slashie.libjcsi.examples.luck;
    
    import net.slashie.libjcsi.CSIColor;
    import net.slashie.libjcsi.wswing.*;
    
    /**
     *Version 3.3, 04/09/08,
     *Same as 3.1 but works on JWS.
     *Originally made for the 1st under 1KBRL Challenge
     *
     * Modified to work with the CSIColor construct
     * @author Santiago Zapata
     */
    class Luck {
    
        int a, b, c, d, k, l, o, p, q, w, v, r, i, e = 600, f, h;
        boolean m[][];
    
        int r() {
            return (int) (Math.random() * 17 + 1);
        }
        int[] s = new int[]{0, 0, -1, 1, -1, 1, 0, 0};
    
        void a(int x, int y, char h) {
    //		j.print(x,y,Math.abs(a-x)+Math.abs(b-y)<7?h:' ',1+v%13);
    
            j.print(x, y, Math.abs(a - x) + Math.abs(b - y) < 7 ? h : ' ', CSIColor.DEFAULT_PALLET[1 + v % 13]);
        }
    
        public static void main(String[] p) {
            new Luck();
        }
    
        Luck() {
            j.cls();
            for (;;) {
                if (q == a & w == b) {
                    m = new boolean[20][20];
                    for (i = 0; ++i < 20;) {
                        m[r()][r()] = m[0][i] = m[19][i] = m[i][0] = m[i][19] = true;
                    }
                    q = r();
                    w = r();
                    a = r();
                    b = r();
                    o = r();
                    p = r();
                    v++;
                    m[q][w] = m[o][p] = false;
                }
                if (o == a & p == b) {
                    o = 40;
                    r++;
                }
                d = -1;
                while (d++ < 19) {
                    c = -1;
                    while (c++ ');
                a(o, p, '%');
                a(k, l, '&');
                j.refresh();
                i = j.inkey().code;
                d = s[i % 4];
                c = s[4 + i % 4];
                if (a + d == k & b + c == l) {
                    if (r() > 8) {
                        k = r();
                        l = r();
                    }
                } else if (!m[a + d][b + c]) {
                    a += d;
                    b += c;
                }
                f = Integer.signum(a - k);
                h = Integer.signum(b - l);
                if (k + f == a & l + h == b) {
                    e -= 5;
                } else if (e % (5 - (int) (v / 4.5d)) == 0 & !m[k + f][l + h]) {
                    k += f;
                    l += h;
                }
                if (--e  20) {
                    break;
                }
            }
            j.print(2, 23, r > 9 & v > 20 ? "WON" : "DIE", 4);
            j.refresh();
            j.waitKey(40);
        }
        WSwingConsoleInterface j = new WSwingConsoleInterface("LUCK - libjcsi Testing Grounds", true);
    }
    

    Like

  3. Hello traveller,

    Two of the issues you point out are already on the roadmap (Issues 169 and 170 at http://slashie.net/mantis/roadmap_page.php ).

    About adding a codebase as starting point for a RL, it may come in, as an extended and well commented version of LUCK; however, I must point out, libjcsi is not a library for roguelike games, but has a rather well defined scope, (allowing console input in java, as simple as that), that means it will never have code for LOS, terrain generation, and other nifty things you can see for example on libtcod.

    That doesn’t mean a developer with enough free time can build his roguelike library over libjcsi 😉

    Thanks for your comments

    Like

  4. Ah-ah. So it has even broader scope in abstraction and therefore cannot have the specific things I asked for. It is a good library and a quick way to get started for what it does. Thanks for providing it. You certainly are a prolific producer! But yes more comments regardless ;P

    Like

Leave a comment