I don’t have time to maintain the native app any more. I’ll try to get a web app version up soon that can be played on mobile.
chr15m
Creator of
Recent community posts
@AetherWindZ would you be interested in offering a lifetime sub to Jsfxr Pro to the winner? https://pro.sfxr.me if you want to check it out.
Just a quick note to let you know that Roguelike Browser Boilerplate is now open source under the MIT license.
The boilerplate is a JavaScript based game template that takes care of all the annoying stuff like splash screen, start screen, credits screen, instructions screen, settings screen, menus, pixel styled UI, win/lose condition screens, sound effects, animations, etc. so you can get on with making the actual game.
I wanted to make sure this happened before the 7DRL jam so you can use it. Hopefully it gives you a head start on your game. Enjoy!
Thanks for reporting the level generation bug. It is in the issue tracker to be fixed. Sorry you got stuck because of the bug!
I thought the music was from Holst’s The Planets suite. I think Ayaka Hirahara used the theme in her music too. Or did I use the wrong version?
Thanks for playing the game and giving me feedback - much appreciated!
Thanks for trying the game. I had the emoji idea a while ago, and then after seeing Wordle I thought it was a good fit, and I could apply the Wordle daily-puzzle mechanic to a simple roguelike.
A good point about the holes. They would work well as a trap! I will make a note of this for future dev. I also like the idea of rocks being there to block enemies. Will think about that, thanks.
Hey all,
I’m excited to participate in this year’s 7DRL. I’ll be building Rogule - an idea I came up with the other day. The name is a play on “Wordle” and from that you can probably figure out the game design. A minimal coffee-break Roguelike where everybody gets the same dungeon each day. Expect emojis in great number.
PS I’ll be posting updates on this Twitter thread: https://twitter.com/mccrmx/status/1498647995163705344
Hello Scott_Bro_1, and sorry for the slow reply. There is some example code in the other questions on this board that you can follow. Basically you have to change Game.monster
to be Game.monsters
which should be a JavaScript array like []
. Then add new monsters to that array like in this example:
https://itch.io/post/4901482
Good luck.
It’s quite easy to do this using seedrandom. You simply load the library in your index.html:
<script src="//cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/seedrandom.min.js"></script>
Then early in the main script call it with your string as the seed:
Math.seedrandom("your seed string");
This will replace Math.random()
with a deterministically seeded version and you will get the same results each time.
One other option is to seed ROT.RNG.setSeed()
and/or use a cloned RNG with ROT.RNG.clone()
which may give you more control in specific circumstances.
Our collective has a bot that tells us the follower count from Twitter, Mailchimp, etc. once every month. We would also like to get the follower count from Itch but I can’t see a way in the API to do this. Is there any plan to add follower count to one of the current API endpoints?
Hey sorry for the delay. I fixed your bug and moved the conversation to the “questions” section: https://itch.io/post/4901605
Debugging @MisterAtompunk’s monster issue.
@MisterAtompunk was adding a new monster when the old monster died. What happened was an invisible monster was created that hit the player every move. I suspected the issue would be an error with the monster’s position. I added some console.log()
statements and I saw this output:
5,4,undefined
The undefined value printed there tells me there is an issue. Two variable are printed: _x
and _y
and it looks like "5,4"
is being set to the first variable, and the second is undefined
.
If you look at the makeMonster(x, y)
function you can see it accepts two arguments, one for x and one for y, whereas the old code was doing this: makeMonster(Game.alienfort)
which can never work because it’s only passing in the one argument (a string with “x,y”).
The fix is to get the x and y values separately out. So I changed his code to this (line 850) and it fixed the issue:
const pos = posFromKey(Game.alienfort);
const m = makeMonster(pos[0], pos[1]);
Always check the “arity” of your functions to make sure the arguments going in match what is expected. Using console.log()
is a useful way to see if variables hold the value you expect.
Yes what you can do is create a new div on the same position, similar to the way the ghost is created.
You should make sure you have a blank tile in the tilemap and assign it to the space character like “ “. Then you can create the empty sprite and put a number inside it:
const number = createJuiceSprite([p._x, p._y], " ", "float-up");
number.innerHTML = "23";
That should create a number 23 which floats up and then disappears.
Hey, I think this is happening because you are pushing an array in there not the actual object.
Change this:
game.monsters.push([createBeing(makeMonster, freeCells)]);
To this:
game.monsters.push(createBeing(makeMonster, freeCells));
Removing the square brackets will just push the one monster into the monsters array.
Hey do you want to send me your code and I’ll see if I can debug what is going on. Basically what I’ll do is sprinkle console.log statements throughout the code to check that each variable holds the values I’m expecting them to hold. For example I’ll put some log statements inside monsterAct
so I can check why the monster is hitting you but not getting drawn. I suspect it is to do with an undefined/null value somewhere, so I’ll be trying to track that down.
If you do console.log(Game.alienfort)
immediately after creating it, you will see the position printed. Note that the position is a string like “5x7” not an object like {x: 5, y: 7}
.
So in your code where you say makeMonster(Game.alienfort.x + "," + Game.alienfort.y)
you probably want to change it to this: makeMonster(Game.alienfort)
because the variable is already in the correct x,y
string format.
Putting it in a function is a good idea.
You should open the browser console and see what the error was. That will help you fix it. Really take care and time to read and understand whatever the error is. Pasting the error into a search engine will help. You can find the developer console in the developer tools menu in your browser.
The freeCells
array is only available inside the generateMap
function. You will need to make it available outside if you want to use it outside, e.g. Game.freeCells = freeCells
.
You could then pick a random cell like this: ROT.RNG.getItem(Game.freeCells)
.
Good luck!