Skullstone - a dungeon crawler game

Any chance that this will be released as open-source? Looks pretty awesome already.

No :wink:

One new screen:

2 Likes

Very nice project. I wanted to do the same and it inspires me.

Is an engine that we will be able to use to create our own adventure like Legend of Grimrock? or have you a particular game project in mind? In this last case, I’m sure everyone want to know more !

A guess you will have a very better result with faster cam rotation, including accel/decel.

Do you have any map editor for now?

Good luck !

Makes me think of Bard’s Tales… loved that game.

This is a closed game project, without opensource, without editor (at least at the beginning).

We have our own map editor, but that editor will be used only to create dungeon’s structure (walls, doors etc). Items, monsters will be placed by ‘player-designer’ in a special god-mode. It’s much easier than implementing a special interface for placing item in the dungeon map, we can just spawn an item (from editor) in player’s hand.

Btw, our dungeons are programmable. A few simple program patterns are able to set all the logic. Every object (door, switch, trapdoor, keyhole etc) is a two state machine, which can have state 0 or 1. ‘Programs’ can operate on these states, for example moving state from object A to object B (when you click a button the dor wil open), blocking particular state of object A if object B is in some particular state (the door will not open until you put some item on so called ‘floor trigger’) etc etc…

4 Likes

Main menu (with a placeholder for title/logo):

2 Likes

I made a great optimization of shadow rendering mechanism. In default, all shadowmaps are rendered every frame. WHY? In my specific environment (the dungeons) most of shadowmaps are generated the same as before, so I decided to test, if the shadowmap would change. The idea is simple - for every camera I made a ‘checksum’, an float[] where every single value represents a sum of translation and rotation of an geometry. If there is no change the shadowmap will not render. It works for doors, objects that I can throw, removing and putting new torches does not generate any artifacts. I don’t know what to do if there is an animated object, which does not change its translation/rotation, but it animates all the time. The best solution would be probably to mark such geometries with some user data, don’t know, I’ll check it later.
The performance increased, on my test scene (and on my wooden pc) it changes from 50fps to 60fps.

And now some new screen: the container and its GUI element:

Hm interesting,

for the animation one could probably just test for the AnimControl being present&running or?
And add that to the hash building process. So if it animates the hash changes constantly.

Looks nice! Peruna == potato in Finnish. Potato music in dungeon… :smile:

What would Perun say, if he knew it.

Maybe some phun about fertilizing the potatoes

Here you can listen to the band, which creates the soundtrack for us.

Which GUI system are you using?
Any of the known GUIs (NiftyGUI, Lemur, tonegodgui) or your own?

There is only one place where I’m using Nifty. It’s an textbox, I was too lazy to make my own control for entering the text.

All other panels/windows are images placed on the GuiNode, drawn in AWT way, scaled from HD to fit the actual resolution. Every single image is implemented as GuiWindow with GuiControls placed on it. Few interfaces allows me to process simple events like MouseEnter, MouseExit, MouseMove, MouseClick, and some more complex ones like ButtonClick, DialogResult etc…

I can do everything much faster than using Nifty, which is just too huge and too complex for my needs.

:slight_smile: Sounds like you rewrote parts of Lemur. No matter… just made me smile.

I don’t know Lemur so I do not know if I rewrote it or not. Anyway, the code is 100% mine so it meets 100% of my needs. And that was the idea: to have something both small and flexible. In my other thread there you can see how much time I wasted to force one Nifty’s control to work properly :wink:

Oh, I feel your pain. I went through the same thing which is why I wrote Lemur. And I wrote it modularly to help other people write their own GUIs (even if they didn’t use the main Lemur GUI classes).

I’d be evangelizing harder if I had better docs… your solution is probably optimal for your needs. In any case, someday you might look at the source code for Lemur to see if it gives you ideas. My mouse/cursor related events can work on objects in both 2D and 3D, for example and only requires a handful of classes to use. There is a Lemur Gem (small tutorial example) for that if you are ever curious.

I read this in my spare time, but not because it may be I’ll need to use it. Rather, in order to compare my solution with yours. Writing my own GUI gives me some fun.

Original soundtrack by Popiół Kurhanów. Enjoy!

8 Likes

Amazing! keep working!