Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - koiwai

Pages: [1] 2 3 ... 7
Early Dev / Re: Demon: A monster collection roguelike
« on: March 14, 2015, 04:35:15 AM »
Yeah, looks super awesome!

Early Dev / Re: Wanderers / open world RL
« on: March 14, 2015, 04:29:49 AM »
Tried to run it on mac os x. Installed ocaml.
But when running make I've got this:
Code: [Select]
ocamlopt \
  -I lib/ -I src/      -ccopt -Llib/ -ccopt -Lsrc/     graphics.cmxa unix.cmxa str.cmxa bigarray.cmxa  lib/sdl_stub.o lib/glcaml_stub.o -cclib -lSDL  -o wanderers \
lib/sdl.cmx lib/glcaml.cmx src/prob.cmx src/base.cmx src/fencing.cmx src/item.cmx src/inv.cmx src/common.cmx src/global.cmx src/trade.cmx src/org.cmx src/simtrade.cmx src/simorg.cmx src/carvebase.cmx src/carve.cmx src/genreg.cmx src/globalmove.cmx src/genmap.cmx src/vision.cmx src/politics.cmx src/top.cmx src/simobj.cmx src/console.cmx src/barter.cmx src/state.cmx src/sim.cmx src/grafx.cmx src/view.cmx src/main.cmx
File "_none_", line 1:
Error: Cannot find file graphics.cmxa

This is interesting. "graphics.cmxa" is a part of the OCaml itself, not my code. Maybe the compiler cannot find the path to the standard library?

To test if "graphics.cmxa" can be found, there is a short program:
save the file as "" and compile it as follows:
Code: [Select]
ocamlopt graphics.cmxa
In any case, thanks for trying the game.

Any reason why there's no diagonal movement?
Does it need 8 directions?  :)

Temple of the Roguelike / Re: Maintenance tasks
« on: February 18, 2015, 03:24:51 AM »
I think, it looks great!

Early Dev / Re: Wanderers / open world RL
« on: January 22, 2015, 11:38:08 AM »
Hi Ferret, thanks a lot! This is by far the best in-depth feedback I've received on the game!

I think, that's awesome that certain roleplaying came naturally. Particularly because the game does not really have any story, lore, or custom character creation ;D I was always a big fond of computer RPG games, especially those that could create immersive experience, Fallout and Neverwinter Nights were my favorites ::) What I want to say is that many games had a great looking facade, which was hopelessly dead and static, and that was a major turn off. So, making a living and breathing world is probably my dearest goal in all game programming. Haha, of course, it's not a simple task to say the least.

Adding more social interactions will be a definite improvement. Randomly wandering NPCs can be entertaining for some time, of course, but more complex behavior is definitely desirable. I am planning to have rumors and other information spreading. So you can ask a n NPC if they know some news, or maybe if they know something about a particular NPC, or other topics like wars, dungeons, good shops, craftsmen, etc. Bards will work nicely, they may really add depth and character to the game..

DEF = the percentage chance that an attacking blow will be blocked. However, when the attack is blocked the player still absorbs full momentum of the blow.

Also, the recommendation to have CONS > 65 with the introduction of magic became a bit obsolete. However, it's still true that if the Constitution is < 60 you better rely on ranged weapons and magic. With 60-70 you can do both ranged/magic and melee. Even heavier guys are primarily melee fighters (however, they are still good at using bows: their shooting rate is a bit low due to poor Reaction, but they are strong and deal good damage nevertheless).

By the way, there is one very rare type of character: those who are have very high CONS (e.g. CONS > 120). The thing is that the magical abilities increase for those overweight dudes, and so it's possible to make a fat slow mage ) Well, such guys are extremely unlikely, I don't even know a seed for such a character, but they are possible.

One useful hint. It did not make it to the README somehow, but now I see that it's important. There is an indincation that an NPC has a weapon (or money). You probably have noticed yellow, orange, and red dots near some NPCs. Those dots tell you an estimated strength of a mob (it's a very rough approximation based on the total price of the items the mob has, but nevertheless it's quite accurate and very useful):
- The mobs with two yellow dots are a somewhat weaker than you although still can be dangerous.
- The mobs with three orange dots are comparable to you and dangerous.
- The mobs with four red dots are stronger than you and you should be very careful.
So, you may want to fight only with those enemies who have those markings, which means that they carry weapons.

About the bazaar! Hahahah, I like hordes of merchants. Although seeing 0, 1, or 2 of them is more common ;D The fruits, meat and other stuff for sale is completely fake and is not related to the number of merchants in the area, unfortunately). The merchants themselves are normal actor NPCs that are created from normal civilians. So, they they don't spawn specifically at the market. But when they are wandering around, they prefer highly populated freindly areas, and once they find a market location, they prefer to stay there for very long time (if not forever, don't remember this partular detail). I kind of like that you came across such a big group.  I should say that merchants try to offer you only those objects that you will be able to buy, and they try to hide the total amount of money they have (so you saw them offering 1 coin, because the price of your sling was 1 coin, however the metchants might have 50-100 coins). The merchants get new weapons from other NPCs (whose guys with shield like badges). So, you can come later and they may have new items, although it's unlikely to find very high quality weapons there. Dungeons are the best place to get new equipment.

I'd say that your first two runs were quite successful. You are right that the sing is very weak. I'd describe it as an auxiliary weapon if the enemy is much stronger than you, you may want to shoot from a distance, run away and shoot again. Alternatively, shoot a few times and go melee, it still gives you little advantage, which does matter in the early game. Going deeper into the dungeons is a sure way to get much better weapons and armor, of course. A more long term goal would be to find a new inhabited valley (it's possible to get there through some of the underground tunnels). Even more advanced goal is to find very deep dungeons, the 19th level is the deepest in the current vesion (I've never been below 14th level deep, and it was a couple of months ago), so I'm not even sure what is going on there really ;D

It is also good that you could got this "prisoner" scenario. Such situation happens when player's faction gets completely wiped out at the preliminary world simulation stage. It's a tough scenario, it feels kind of sad, you may start in the wilderness (and the woods may be pretty nasty), or you may spawn in a hostile village. In any case, it's quite a challenge to start in such conditions. However, it's not a hopeless situation! Even though your native faction have not survived, there may be a friendly faction somewhere on the map.

I don't feel like I want make this game advertised to a wide audience at this stage of the development, so I don't have many sources of feedback at the moment (Roguetemple and TIGSource forums + a few friends), so getting reports like this a big deal for me. Thanks a lot! The suggestions and comments are very helpful!

Early Dev / Re: Wanderers / open world RL
« on: January 21, 2015, 02:48:52 AM »
Hey guys, a new Windows build is ready.

>>> Download for Windows:
Download the latest Windows build (January, 20, 2015).

How to play: README at Github.

>>> Download for Linux (and probably OSX):
Get the source code from Github. Compilation is straightforward. install the latest ocaml package for your system. Make sure you have your SDL1.2 and OpenGL libraries installed. Then just execute make.

How to play: README at Github

Also, the first post is updated.

Early Dev / Re: Wanderers / open world RL
« on: January 18, 2015, 10:16:34 PM »

More complex overworld:

Disjoint pieces are connected by underground tunnels:

Early Dev / Re: Demon: A monster collection roguelike
« on: January 14, 2015, 12:35:02 AM »
If you don't mind, I'll comment more on the art. First of all, I like your art work quite a lot. It's very imaginative, and to get even better, what is needed is just practice more, and you will be really great at it.

I especially liked your lizards and snakes, as you said they were hard to draw, but I think they turned out to be pretty good! I don't have screenshots with the snakes, but I have some other good examples:

My main suggestion is about drawing humanoids. There are a few tricks you can use to draw then better:

1. When drawing a human-like creatures (or any other famililar object), many people have some sort of check list: a torso, a hand, anoter one, a leg, etc.. So, instead of drawing how the whole creature would look like, you get a certain list of pieces to put in the tile. The result is often some sort of abstraction or a stick figure (or a fat figure, but still very abstracted). I read that teachers suggest to draw not "what you think you see" (a human, an apple, an orc, or any other abstract term), but the colors you see (a big green circle, with a smaller circle on top, with a grey rectangle across it..). Maybe this is why your lizards and other monsters (where your drawing is more free form rather than the humanoind check-list-type) turns out to be more effective.

2. Unnecessary one-pixel features will be most likely invisible to the player, unless they zoom in. If possible, don't draw them. This is actually related to the previous point about the check-list type of drawing. 1-pixel features add noize without conveying much information to the player. Simplify the drawing.

This general suggestion works almost always for any drawing. For pixel art, there is another thing I should point out. That's the granularity of pixels. It is a constraint and we should use it to our advantage. In general, the goal is usually to mitigate this granularity, so that the player does not see the pixel grid. There is a very good text about it from PixelJoint (see link [1] below).

I took the liberty to edit your tiles a bit to hopefully show what I mean:

3. Also, try use color to emphasize the shape of the obect. Exagerrate features if appropriate.


[1] Tutorial from PixelJoint (I especially like the chapter "Things to avoid", in particular, the "Jaggies" and "Banding" sections).

[2] Pixel Art Tutorial WIP - very nice and clear.

Early Dev / Re: Demon: A monster collection roguelike
« on: January 12, 2015, 12:19:09 PM »
I think, I could get pretty far. I've got to the 10th tower and doing alright.

However, it was not easy to start. I died several times somewhere around 2nd-3rd tower, basically in the beginning. Finding a good starting combination takes time, but eventually I chose a pretty good one: 2 Electricity skills + Wraith touch, and a Malingee as the first demon. At the first few levels, also picked Slime, Gandayah, and Faerie demons.

Both electricity spells are strong enough to kill most of the the enemies, but because they use quite a lot of Stamina (SP), it's convenient to have Gandayah summoned: it shares with you its stamina, so you basically get a lot of extra stamina to cast your spells.

I think, Slime and Malingee are pretty awesome melee demons for the early stages.  Although both have their downsides (Slime is weak to a lot of different damage types (e.g. Pierce damage), and Malingee has rather low HP). However, I used Melingee to train Pierce protection to the Slime, and used the Slime to train the Healing (Reshape) skill to myself and Malingee. So, their weaknesses were maybe not completely removed, but lessened at least.

Faerie and Gandayah were ok with their healing spells / buffs.

So, if somebody else has trouble in the early game, this combination was pretty successful for me and I would recommend it.

I'm really impressed by the depth of the game: Even though you are saying that there is not enough content yet, I'd say there is a lot of fun already! Well, there is probably more than enough for several runs. Dr West and the Headless were mentioned already. Usually, there are at least 1-2 unique monsters per level (those who are super tough, those who summon other monsters, a dude with resistances, etc).

Well, another great feature is the the metagame of choosing your best 8 demons: it is quite tough sometimes, particularly, when you want to take a new demon, but before you see their abilities, you have to discard one of the demons you currently have..  :-\  well, sometimes, it feels like losing your good friend ))

For me, levels 3-6 were the hardest. The first two levels seem to be intentionally simple, but then it becomes much harder, and it seems that the most fun uniques are also found somewhere there.

The game is very addictive, I played the whole night. 90% encounters make you think, and only occasionally 10% are simple nobrainers. Which is quite refreshing, most games get this ratio the other way around  ;D

Is the tileset your original? Some monsters, especially the later ones, are very nice! On the other hand, some of the early game monsters don't look that good, imho. Maybe the tileset can be improved a bit.

One last thing, about the map. The basic map topology is fine: 2-tiles wide corridors make a lot of sense. The dimensions of the rooms are fine. What I mean is that once you get to a fight, there is very little incentive to move around, or use the terrain in any way. Do you have any plans to make the map more elaborate? That is, some features of the map that can be used in combat, adding another tactical dimension to the game. This is not necesarily a good thing to have, but I'm just curious about what's your opinion? What are your plans regarding the map generation?

Early Dev / Re: Wanderers / open world RL
« on: January 10, 2015, 06:11:23 AM »

This is a big update.

1. Added merchants, who are basically travelling shopkeepers. This is a big deal, because not only the player, but all player-like NPCs (actors) can barter with them selling useless loot and buying better equipment.

Merchants are not stationary and can travel like any other NPC, however, when possible they prefer hanging around at markets:

The guys with a dark strap/cloak on their right shoulder are the merchants. This update is quite a big improvement actually, and a lot of new code was added.

2. Added Barter interface and improved visuals for the Inventory. To enter the barter mode, come close to a merchant, press v, choose the tile with the merchant, and press v  or Enter again. The barter mode works the same way as the Inventory mode.

To confirm your purchase, use the Enter key.

3. Fixed a weird bug: Previously, one faction (the orange nation) had more actor NPCs that any other faction. It turns out, the problem was in the way I sample from a discrete distribution (it turns out, it was caused by <= instead of <, but the bug was vary hard to pinpoint and it had a huge effect on the game simulation..)

As a result, non-human factions (the Undeads) start getting a lot more actor NPCs (including merchants), so the underground dungeons are probably a nasty place now. I did not test the the dungeons much this time, but that's what I expect.

4. Unfortunately, I started observing an unpleasant bug: The player, when walking from one region to the other, if collided with another unit, may get stuck in the terrain. It seems, I have to pay for the complex walking mechanics.  ;D

I think, a new Windows build is coming soon! Linux users, get the game from github.

Early Dev / Re: Demon: A monster collection roguelike
« on: January 05, 2015, 08:24:05 PM »
Happy to hear that you have made good progress with the game and there is a new release.

The Linux build works fine. Also, what's good is that the native Linux build runs with very small CPU load (compared to running the Windows build with wine  ;D).

Early Dev / Re: Wanderers / open world RL
« on: January 04, 2015, 10:22:43 PM »
How do you generate the names now?
Sorry for replying late. I will give a very broad picture of the generation procedure:

To generate a name, each language has a set of 15-30 syllables, an evaluation function to evaluate the words, and the transition matrix with the transition probabilities from one syllable to the next (i.e. Markov chain). We generate 5-10 random string of 2-4 syllables and choose the one with the best evaluation.

How the evaluation function works: It scans through the string and evaluates every pair and/or triple of characters and gives the score.   

Each language has its own evaluation functions. The syllables themselves are generated individually for each language with a genetic algorithm: They continuously mutate and exchange letters, trying to optimize for 1) better evaluation score of the generated words 2) more unique syllables, 3) syllables that are not too long and not too short.

This is the general idea.


1. New map ('M') visualization mode, see the screenshot above. You can move the map cursor with the arrow keys and < >.

2. New debugging command line interface ('*'), with a few simple commands: 'heal', 'item', and 'blink'. Of course, only for testing.

Early Dev / Re: The Temple of Torment
« on: November 21, 2014, 08:03:41 AM »
Great news!
I think, it's good that the quest givers will be marked. The maps are rather big, and trying to talk to every single person in the city is not particularly fun. Especially with unlockable quests.
I thought about playing the game again and trying different fun classes. (Last time I only played as a simple melee fighter). What are your favorite classes in the game?

Challenges / Re: Procedural Jam has started
« on: November 20, 2014, 08:17:45 AM »
I entered.  I didn't make a roguelike but I did make a tool to generate pixel art tiles of various kinds, which hopefully should be useful for other Roguelike devs:
Wow, Paul, your program looks very cool. I especially like the composability of different generators. And the quality of the generated tiles is really impressive. And you can choose the periodic boundary conditions, so the pictures can be tiled seemlessly? I think, it's just awesome.


The documentation says that you can pickle lists, tuples, etc as long as they contain only "picklable" objects. So, I guess, you should try to pickle the entire thing. Unless there are some bad objects, the pickle module should recursively serialize it all. Did you try to do it?

Early Dev / Re: Wanderers / open world RL
« on: November 17, 2014, 06:06:31 AM »
Added slimes. They are not just another melee mob. The idea was to make a mob type that is dangerous in groups, when they surround you. I also wanted them to push the player (although, in this current implementation, they don't push too much, and probably I'll keep it this way).

The slimes don't have a real melee attack, but they deal damage when when you and them are on the same tile. So, they run, smashing into the player. It's very easy to get rid of a single slime, you don't even need a weapon, but a group can be dangerous if you are not armed well, or especially if they could surround you.

I will play with them and try make them more fun, maybe add some random behavior. They don't merge, but big slimes split into a bunch of small ones. They are abundant in swamps, and also ought to be present in caves, but I could not playtest it succesfully. The thing is that the caves are deep underground ~ usually starting at the depth level 6-8 (if a dungeon goes that deep). I don't have a way to teleport in the game, and I don't have a good development/debugging/visualization tool that shows the map, and the population distribution. Probably, I have to do it now, when the game gets bigger, and it's difficult to get to the place you want. Maybe, adding a "developer's terminal" with certain cheat commands would not be a bad idea too )

Also, for several weeks, I've been playing with the names (and ~ "language") generation, but I'm still not happy with the results. The idea is to make a distinctly sounding randomly generated set of syllables for each nation, which can be combined to produce the names for all non-player characters. Examples:
Code: [Select]
Surnames: Banoru  Fanoru  Hesese  Heseviru  Miruno  Nobanomi  Nonono  Noruseru  Noseruce  Ruvimi  Senono  Sesemiru  Vinovi  Vipami  Vizinono
Male given names: Eyquaceru  Eyruno  Hevirunoba  Luwavi  Miquavihe  Nobaheru  Noruruzi  Noseru  Noseru  Rugaru  Rugeseru  Ruvilu  Serunoqua  Viziwa  Zinonozi
Female given names: Fabanoke  Fanobanoba  Ganorupa  Henoseno  Mieynono  Nobanomi  Nobaseno  Ruganoba  Selunono  Senobakeno  Senono  Senonose  Vikelu  Viseno  Wanono
Code: [Select]
Surnames: Jalulu  Jarostronu  Nurodestro  Rolutrode  Ronuro  Rorodese  Sestrosetha  Strodeya  Strogenu  Stromiro  Strothatharo  Strotrostro  Thastroya  Trotharostro  Yarotr 
Male given names: Jarostrotha  Lustroge  Nuberode  Nugerotha  Nuronumi  Nutronuci  Semironu  Strodenumi  Strodeyastro  Stronuro  Strororo  Strotroja  Thastrodede  Thastronutha  Yagestronu 
Female given names: Cinujaro  Delucinu  Deroro  Desestro  Deyaro  Jaronuro  Mitharo  Miyanu  Nujanu  Roselu  Royaroro  Sedelu  Strosero  Stroseroro  Strotharose
Code: [Select]
Surnames: Hihigi  Hihiluhi  Hinuru  Hitharuhi  Kelurubo  Mutsawi  Nunuhi  Quenunu  Shenufi  Toxanubo  Tsanutsado  Wishenubo  Xahihi  Xahisheamu  Yanu 
Male given names: Amutonushe  Dovonufa  Luyconu  Nudedo  Peadonu  Peperu  Rutofi  Setonu  Sherudodo  Toboshehi  Tochafato  Tomuamuco  Vohito  Vonuwi  Wiruhi 
Female given names: Anuxa  Ayanu  Cothanu  Doxanuhi  Hiamurugi  Hiatha  Hinunu  Mushexanu  Nudenu  Peruthaki  Pexanu  Sedoxanu  Tofanu  Xafanu  Xahia

They don't look very good to me. They are not bad, but sound too foreign. Well, I've taken 3 different approaches to do this names already, but eventually, hopefully, I'll get it right  ;D

Ferret: Thanks for the comment. It's always great to know the opinion of a new player who sees the game for the first time. I think, I'm not planning to change the notification colors at the moment, but I will consider this in the future. Especially if there will be other people suggesting/complaining.

Pages: [1] 2 3 ... 7