Project in progress
-
I built this over the last two days:
It's the core of a simple Roguelike, implemented as a web server. It currently generates an endless dungeon full of goblins that just stand around waiting for you to kill them. More content will be added soon...
-
Comments so far: (having tested only on Desktop)
Would be nice for a "Press any key to launch browser" option for the uninformed. Just something that will shell execute the URL would suffice.
It appears scrolling has not been implemented yet? You mentioned the dungeons are "endless"? So far each generated map has been fully enclosed...
There's apparently no session expiration? They all just kinda...collect. Also, why are they Base64 encoded?
Wait, are you sending the whole "screen" for each update? Huh. Simple, but effective.
Why did you include the PDB files? Should I attach a debugger in case it crashes?
I noticed it didn't prompt for firewall access, which I assume means it's binding to localhost only, so I guess I'm not going to even try seeing if it works on mobile...
-
@tsaukpaetra said in Project in progress:
Comments so far: (having tested only on Desktop)
Would be nice for a "Press any key to launch browser" option for the uninformed. Just something that will shell execute the URL would suffice.
Yeah. I'm sharing this with a community of programmers who know how to deal with that, because it's much simpler than setting up a server on the Web somewhere. The end goal will be to actually make a site.
It appears scrolling has not been implemented yet? You mentioned the dungeons are "endless"? So far each generated map has been fully enclosed...
As in, it's an endless series of fully-enclosed dungeon levels. :P
There's apparently no session expiration? They all just kinda...collect.
Is this a bad thing? One thing that really drives me nuts is when you log in to a website and it says "ο remember me on this site", and then a few days later you find that it has disregarded your explicit instructions on the matter and it's making you log in again.
Also, why are they Base64 encoded?
Why not?
Wait, are you sending the whole "screen" for each update? Huh. Simple, but effective.
For the moment. This represents 2 days of work. Further refinements will follow. :P
Why did you include the PDB files? Should I attach a debugger in case it crashes?
Oops. I basically just dumped everything in the build output into a ZIP file, and I forgot to filter out the PDBs.
If it does crash, I'd very much appreciate hearing about it, though!
I noticed it didn't prompt for firewall access, which I assume means it's binding to localhost only, so I guess I'm not going to even try seeing if it works on mobile...
Again, 2 days of work. This definitely won't work on mobile at the moment. Not sure what it would take to make it work, but it won't be easy; roguelikes traditionally depend heavily on the sort of rich input that you can really only get with a keyboard.
-
@masonwheeler said in Project in progress:
This definitely won't work on mobile at the moment. Not sure what it would take to make it work, but it won't be easy; roguelikes traditionally depend heavily on the sort of rich input that you can really only get with a keyboard.
document.getElementById('invisible-text-input').focus()
-
@masonwheeler said in Project in progress:
Is this a bad thing? One thing that really drives me nuts is when you log in to a website and it says "ο remember me on this site", and then a few days later you find that it has disregarded your explicit instructions on the matter and it's making you log in again.
Except that sessions in this implementation aren't identified by anything but the connection (apparently) which means each time I refresh it's a new session . I'll just assume partial implementation and not willful ignorance that everything you said in that sentence currently applies to this version.
-
@masonwheeler said in Project in progress:
Also, why are they Base64 encoded?
Why not?
Are you storing binary data that would otherwise be mangled on a transfer protocol that supports only seven bits? No? Then you shouldn't be incurring the overhead of converting it to base64 in addition to the overhead of converting your data model into JSON...
-
@tsaukpaetra said in Project in progress:
I'll just assume partial implementation and not willful ignorance that everything you said in that sentence currently applies to this version.
Yeah, right now there's really no such thing as a "session" here: no login function and all of the game talking to the server runs over a web socket. The session cookie is just sort of sitting around waiting to be used.
-
@tsaukpaetra said in Project in progress:
Are you storing binary data that would otherwise be mangled on a transfer protocol that supports only seven bits? No? Then you shouldn't be incurring the overhead of converting it to base64 in addition to the overhead of converting your data model into JSON...
You make a good point. I'll look at it.
-
@masonwheeler said in Project in progress:
roguelikes traditionally depend heavily on the sort of rich input that you can really only get with a keyboard.
That I can't open the virtual keyboard on Android every time I feel like it is something that really annoys me.
-
Just updated the project with stats and a very rudimentary combat system. Now the goblins will fight you and eventually wear you down. (No healing yet.)
-
After a bunch of work, I've actually got this to a point where it's beginning to look like a real project. I've got a Web server set up with a registration system and a working quest, to reach the bottom of the dungeon, slay the Goblin King, and escape with your life. It's still very basic and limited, but it works!
-
Heh.
Just checked the database, and apparently a few people have tried to sign up, and they all seem to have thought there's no email validation, with addresses like "someone@example.com" and "HopeYouWontCheck@nonexistant.com"
Just so we're clear, this is intended to be a real website, and there's real validation in place, of the standard variety: you give the site an address, it sends you an email with a validation link, you visit the link and your account gets activated.
-
@masonwheeler said in Project in progress:
"HopeYouWontCheck@nonexistant.com"
Yeah, that was me.
Why do you want our email addresses? I mean, you're way before alpha.
I know MVC gives that for free, but hey!
-
@kt_ said in Project in progress:
Why do you want our email addresses? I mean, you're way before alpha.
*Because* I'm way before alpha.
If I have email addresses, I can set up a script to mail people with updates when new features come out, so they don't just try it once, say "wow, this is way before alpha and there's nothing to do here" and never come back.
-
Oh good, the names can have spaces in them.
-
@pie_flavor Yeah, that's always annoyed me when websites arbitrarily disallow spaces in names. I mean... certain characters I can understand, but that one's not even a SQL injection vulnerability for badly-coded sites!
-
@masonwheeler I must be missing something here. I assume this is a staircase? How do I go down it?
https://i.imgur.com/PvrCVQN.png
-
@pie_flavor I can't see the staircase you're presumably standing on, but if you are standing on a down staircase (a
>
symbol;<
is an up staircase) you use the>
key to go down it. (Guess how you go up an up staircase?)This is 100% standard Roguelike convention that those familiar with the genre will already know about, but I should probably put in a helpfile to explain it for everyone else. I'll add it to the to-do list.
(BTW if you're having trouble with this, you'll probably also want to know that pushing
s
activates the Search function, which will search nearby walls for hidden doors. They're a thing that exists.)
-
Why do I need to log in to play something that looks like this:
@masonwheeler said in Project in progress:
This is 100% standard Roguelike convention that those familiar with the genre will already know about, but I should probably put in a helpfile to explain it for everyone else. I'll add it to the to-do list.
Bullshit, it has nothing to do with the genre. My first Roguelike was Mission: Thunderbolt; it's UI looks like this:
And before you're all like "oh but that's a brand-new one!" it came out on Macintosh in 1991, which is roughly when I played it.
Anyway, "roguelike" = "shitty text-based UI with obscure-ass controls nobody can figure out" is not a relationship that exists.
-
@masonwheeler Your generation is slightly wonky.
-
@blakeyrat This is done in the style of the classic text-based roguelikes such as Nethack, Angband and ADOM. (People familiar with that last one will note the UI takes a lot of inspiration from it.) Anyone who plays those, or the countless games based on them, should feel at home with the controls.
-
Aaaand stuck.
https://i.imgur.com/oMXGYH9.png
(I'm standing on the up staircase)
-
@pie_flavor Wow, 3 in a row?
I'm aware that corridor and door generation is a bit weird. That's on the to-do list too. I have an idea about how to improve it but it would take a non-trivial amount of effort.
BTW if the levels start looking weirder and weirder once you hit floor 5 or 6 (don't remember offhand which it is) that's not a bug; the dungeon is supposed to do that.
-
@masonwheeler Right; but "text-based roguelike" != "roguelike". That was what I was getting at.
So you can't just say "people used to roguelikes will know my shitty controls and tolerate my awful graphics" because even back in 1991 we had roguelikes which had good controls and decent graphics.
-
@pie_flavor said in Project in progress:
Aaaand stuck.
https://i.imgur.com/oMXGYH9.pngIn the room north of you, where a 1-tile corridor sticks out on the west side, there's almost certainly a secret door there. Use
s
earch while standing on that 1 tile.
-
@blakeyrat said in Project in progress:
@masonwheeler Right; but "text-based roguelike" != "roguelike". That was what I was getting at.
So you can't just say "people used to roguelikes will know my shitty controls and tolerate my awful graphics" because even back in 1991 we had roguelikes which had good controls and decent graphics.
Fair enough. Adding support for graphical tiles is also on the to-do list. It wouldn't actually even be all that difficult to implement. But I'm a developer, not a graphic designer. Anything I tried to draw would look far worse than the ADOM-esque interface I'm using now. :(
-
These secret doors are bullshit.
https://i.imgur.com/Pga7rvE.png
That door was an octothorpe. No indication, no weird flanges in the wall shape. Just a blank wall. The exit to the level should not involve walking around spamming 's' on every wall.
-
@masonwheeler Man now I want to play Mission: Thunderbolt. That game rocked.
-
@blakeyrat What's your opinion of The Binding of Isaac?
-
@pie_flavor Genre convention. They're supposed to be rare, and they'd be less annoying if my corridor generation algorithm wasn't so b0rked. But they're expected to exist, and to work exactly the way you're complaining about.
(Toby Faire, you're also expected to have other ways to figure out where to search, such as Magic Mapping spells/scrolls, or Detect Item/Detect Monster magic that shows you there's stuff over in this unexplored region, etc. That's on the to-do list.)
-
-
@pie_flavor Yeah, randomness means that that does happen occasionally. I have a bit of code in there to guarantee that staircases are never generated right next to each other, but most of the rest of the level is fair game.
The only exception is at the bottom of the dungeon, where the entrance is guaranteed to be on the far right of the level and the goal is at the far left.
-
-
@pie_flavor You haven't reached the bottom yet...
-
Held a direction, game lagged, and apparently registered ten turns of the burly goblin hitting me while I was shoving my head at a wall. GG.
-
@pie_flavor said in Project in progress:
Held a direction, game lagged, and apparently registered ten turns of the burly goblin hitting me while I was shoving my head at a wall. GG.
There's supposed to be code in there to keep lag from screwing you over in exactly that way. I'll have to look at it a bit more...
-
@pie_flavor It's cute, I played it for awhile. Didn't buy the expansion.
-
@blakeyrat Afterbirth is worth it for the content. Afterbirth+... they introduced so little actual new content that I was shocked that they made it the same price as Afterbirth. Everything was basically just a clone of something already in the game.
Unless you're talking about the original and Wrath of the Lamb.
-
@pie_flavor I think I have Wrath of Lamb, or whatever the first DLC was, but I can't remember.
Anyway, that game has basically nothing to do with Mission: Thunderbolt, so.
-
@blakeyrat When people say 'roguelike', I think TBoI.
-
@pie_flavor Binding Of Isaac is a real-time dungeon crawler. It has more in common with Diablo than with a traditional rogue-like like Mission: Thunderbolt.
-
@pie_flavor I hear "rogue-lite" more often for Isaac.
-
@blakeyrat @hungrier Then clearly I don't understand the classification. What is roguelike?
-
@masonwheeler said in Project in progress:
@kt_ said in Project in progress:
Why do you want our email addresses? I mean, you're way before alpha.
*Because* I'm way before alpha.
If I have email addresses, I can set up a script to mail people with updates when new features come out, so they don't just try it once, say "wow, this is way before alpha and there's nothing to do here" and never come back.
I won't give you my real address, sorry.
Will you be ok with a throwaway one?
-
@kt_ As long as you can receive an authentication email at it, that'll work.
-
@pie_flavor said in Project in progress:
Then clearly I don't understand the classification. What is roguelike?
Turn-based, has RPG-like stats (Binding of Isaac kindof has stats) and equipment. Levels are randomly-generated, or at least randomly laid-out. There's usually a goal requiring you to descend to the lowest level, grab a unique item (in Mission: Thunderbolt, you're tasked with retrieving the LAMB, Lightweight Anti-Matter Bomb) and ascend back to the exit. Enemy creatures usually interact with each other to produce emergent gameplay.
-
@masonwheeler said in Project in progress:
@kt_ As long as you can receive an authentication email at it, that'll work.
Mailinator time.
-
@masonwheeler said in Project in progress:
@pie_flavor I can't see the staircase you're presumably standing on, but if you are standing on a down staircase (a
>
symbol;<
is an up staircase) you use the>
key to go down it. (Guess how you go up an up staircase?)This is 100% standard Roguelike convention that those familiar with the genre will already know about, but I should probably put in a helpfile to explain it for everyone else. I'll add it to the to-do list.
(BTW if you're having trouble with this, you'll probably also want to know that pushing
s
activates the Search function, which will search nearby walls for hidden doors. They're a thing that exists.)100% discoverable, seven thumbs up...
-
@blakeyrat Rogue is circa-1980 per Wikipedia. Thereβs nothing more like Rogue than a text-based UI.
-
I wonder how long before @ben_lubar does the Rog-o-Matic for this.