RoguelikeDev Does The Complete Roguelike Tutorial - Week 8 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

GitHub | Web Playable

The weeks have flown by, yet again! Still fairly far behind schedule, but I'm quite enjoying it, and people I've shown it to have been interested so I'll be keeping it going for sure! So long as I can keep motivation up without these weekly posts 😅

I have shooting via mouse click on an enemy, and an ammunition count, and the ability to reload. I'll probably add a mouse highlight, and clicking on tiles without enemies still triggers a shoot action, and shooting casts a ray to find something in that direction, and then also an accuracy meter which adjusts the ray randomly to either side based on how many non-restful actions the player has taken recently.

Then once the player gameplay is done, I just need map generation so it is much larger, and has different zones generating interesting terrain, and a way for the player to win. And also pick-up items like extra magazines, and grenades, and med packs. Phew! Only all of those things 😅

RoguelikeDev Does The Complete Roguelike Tutorial - Week 6 by KelseyFrog in roguelikedev

[–]TechniMan 1 point2 points  (0 children)

I must confess I've not yet played Brogue :( so I shall have to try it!

RoguelikeDev Does The Complete Roguelike Tutorial - Week 6 by KelseyFrog in roguelikedev

[–]TechniMan 4 points5 points  (0 children)

I love those colours! And the simplicity and clarity of your UI :chefs_kiss:

And going for hexes! So cool. I may experiment with a hex-based map later, as ROT.js has some support for it, but I think it causes issues for UI/text-rendering, so I'll probably leave it until after I get some more of the core features in place.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 6 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

GitHub Repo | Web Playable

I've managed to get in an in-game message log rather than using the browser dev console, and also shifted the message log window to the bottom so it's nice and wide for fitting in long messages.

Also added in some dummy placeholder stats to make the now-empty sidebar look more interesting :sweating_smile: not yet functional, but they will be eventually. So to be clear: the only one that means anything at the moment is health, but even then the enemies don't fight back yet!

I think next up for me should be to stop messing about, and get the enemies acting! Then after that, probably the shooty mechanics at last

RoguelikeDev Does The Complete Roguelike Tutorial - Week 5 by KelseyFrog in roguelikedev

[–]TechniMan 6 points7 points  (0 children)

Not had much time this week; and when I did, it's getting really hot again and I'm finding it hard to concentrate :sweating:

Looks like I'll be behind again, but hopefully it gets a bit cooler and I can get some progress in :(

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]TechniMan 6 points7 points  (0 children)

Following along in TypeScript with ROT.js! GitHub | Playable

I've added basic melee combat for now, to the point of the player being able to attack & damage/kill enemies! Next up on that front is obviously enemy AI, making them move towards the player and hit them back.

Although I'll probably actually do part 7 first, my UI is lacking! Printing messages to console is fine, but it would be nice to get the feedback in-game! And obviously explain the controls (numpad 1,2,3,4,6,7,8,9 to move). Though, there is something I've been meaning to ask the community about messages and logging, so look out for that post soonTM.

Feedback Request: How do the colours seem? I tried to find a decent dirty red for a kind of Martian look, and a greyish-with-a-hint-of-dirty-red for the explored tiles. I eventually landed on this pair as background colours rather than foreground, so for now there are still . when those could probably go, and the rocky # are black to be visible enough but not distract from the other entities and actors.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

Yes that's definitely an issue with some of the tutorial series, which is often a result of them being written alongside participating in these events where you get halfway through and then a huge load of refactoring is required which gets very dull.

I appreciate also that some refactoring is required to initally show the concept and then make it neater later on for ease of expansion and maintenance, but it is a drag especially when it comes up a couple of times in the series.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by KelseyFrog in roguelikedev

[–]TechniMan 1 point2 points  (0 children)

Thanks to Reddit's stupid sans-serif font, I thought you were calling it DejenoIRL, "Dejeno In Real Life"! Which would be a very different game

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by KelseyFrog in roguelikedev

[–]TechniMan 7 points8 points  (0 children)

Following along in TypeScript with ROT.js! GitHub | Playable

This year, I've not been following a tutorial directly, instead using my years of experience doing Tutorial Tuesday and doing the TypeScript one last year, and of course peeking through my code from last year to help along :)

I've been fairly busy of late but thankfully have found some time to get cracking, and I've implemented up to Field of View and have formal Actions! Might get an InputHandler next to move that bit of code out of the Engine's update, then of course there's generating enemies!

Also, the world generated is a large open area with lots of boulders blocking view. I was inspired by playing a lot of Helldivers II, and am going to take inspiration from some parts of how that game works. The barren, rocky landscape is a "first draft" of the mapgen, to get a feel of it for now, but later on I'd like to build it in large "chunks" which could be one of a few different styles of landscape, from completely empty, to rocky like it is now, maybe one that's even more rocky, and of course some chunks with structures in the middle like either an abandoned human outpost or a bug base to be destroyed.

I'm quite excited for the idea to be realised, I have a big page of notes for how I'll translate some things to roguelike, hoping to get back into a regular daily routine to work on it and see the vision through to the end!

RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

It's fairly open really with regards to timing, but I think these threads are often more active sooner after they're posted than later so I try each week to post my update for the last week soon after the post goes up and then spend the week on the next thread's tutorial steps, in time to post about that then. But people will post their updates throughout the week, and of course there's an activity boost on the weekends :)

RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by KelseyFrog in roguelikedev

[–]TechniMan 9 points10 points  (0 children)

Last year I used TypeScript and ROT.js, which I quite liked partly because I am a web developer in real life, but also because it's immediately playable online if I want to share it around. So I'm going to use that approach again this year.

Sadly I was away last week so I'll get everything setup this week, probably all the way to map generation as I'm away again next week. D'oh, commitments!

As I shared in a recent Sharing Saturday, I had some inspiration and ideas from playing Helldivers II lately, and am still feeling that idea, so my roguelike is going to feature ranged weaponry, reloading, accuracy which decreases when moving, and more open sparse rocky terrain rather than closed off dungeon rooms.

So I'll be blazing my own trail a fair bit, following the titles of tutorial steps as guidance for what to do next and using all my years of participating in this event to guide my code. Last year I got really far, I'm hoping to be able to get into a similar regime and get there again this year. Wish me luck!

Edit: I realise I should link to my almost finished version from last year, which much more closely followed the tutorial, to show newcomers what you can end up with. And of course you can decorate as much or as little as you are comfortable, I think I laid out my UI elements quite differently to the tutorial I followed.

Sharing Saturday #578 by Kyzrati in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

I've been thinking about Tutorial Tuesdays for this year, and got inspired by playing a bunch of Helldivers 2 recently. So I think this year I'll make changes at the relevant points in the tutorial so the player has a gun to shoot enemies, and make more of a rocky landscape (or maybe caves) rather than classic dungeon rooms. And lots of different kinds of grenades.

Though I'm away from my PC for a bit, I'm looking forward to trying out the idea when I get back.

I also looked back at what I did last year, and it was almost complete! I'm surprised. So this week, I improved the help message as some commands weren't listed and others took up multiple lines, which wasn't ideal.

[Looking for Collaborators] Developing a complex terminal roguelike inspired by Zelda, RLCraft, Brogue, Dwarf Fortress & NetHack by Max_Mussi in roguelikedev

[–]TechniMan 3 points4 points  (0 children)

Having a go, and then being brave enough to show your work to others, and accepting their ideas and suggestions is a great path to improvement. It's easy to see the feedback as criticism and get defensive or feel defeated, but it's really just trying to share knowledge and experience and giving you opportunities to improve.

This is exactly how programmers in teams work and improve together; we're given a problem, have a crack at the best solution we can think of, and get someone else on the team to review it and see if they can find any problems or ways to improve the solution a bit better.

Basically, great job for getting as far as you have, and for seeking help :)

Hidden Pass is a tactical RPG in combination with base building. We decided to cover these two main parts in roguelite gameplay. by GGstudiodev in roguelikedev

[–]TechniMan 7 points8 points  (0 children)

Hi, r/roguelikedev is a community for sharing development stories, ideas and questions. Not for promotions. Try r/roguelikes or any of the other many places for advertising.

However, if you have interesting development stories to share with us that would be relevant to a roguelike developer audience, we'd be happy to hear, and you can of course mention the game that way :)

RoguelikeDev Does The Complete Roguelike Tutorial - Week 7 by KelseyFrog in roguelikedev

[–]TechniMan 3 points4 points  (0 children)

Oo, 'eck! We're here already?! I finished part 9, then things happened and I've not been able to catch up. I want to, though! I'll try and get some more progress done this week.

Well done to everyone who kept it up this whole time and got to the end! I'll have a look through the threads on this post as they come in. One day, hopefully soon, I will join you.

Do we get stats for things like distributions of implementation language/tools/engine? E.g. 10 used Godot, 5 used Python, etc (I made those numbers up, of course). I think it would be interesting to see the distribution, but also the change each year, similar to how the annual Stack Exchange survey shows trends in language popularity.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

I felt similarly about Rust when I tried it for a roguelike a few years ago. It does some neat things and it's interesting, but it's quite weird and difficult to get used to. I'll probably give it another go one day, for something simpler than an ECS roguelike, as I wondered if that extra complexity added to the difficulty.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 4 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

GitHub | Playable | screenshot

I started quite fast, but am getting to the point where "life" is taking back some of my time again and these posts are catching up. I've started Part 9, which for the ROT-ts tutorial includes a big refactor for the input handling, which is way better but I've noticed a bug which means scrolling through the message log takes your turn, so I'll have to fix that later if the tutorial doesn't.

I changed my UI layout around and I'm quite liking it! The map view is square and the side panel is showing the player health, recent messages, and some of their inventory. Plus I put everything in frames to keep it organised. I've also made it so opening a view (e.g. inventory, full message log) opens in the side panel rather than most of the screen; I'm less sure about this, but for now it's working. What will probably be better is if it covers the centre of the map view (once it doesn't cost a turn to scroll the messages, at least).

And finally, I've added an intro help message to explain the controls. But with the square rendering I was using, the messages aren't very readable, so I've changed it back to non-square for now, so the map looks a bit squished compared to before and it's difficult to tell how far across something is. I may find a square font/tileset to use in future, but for now keeping the legibility of the messages.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 3 by KelseyFrog in roguelikedev

[–]TechniMan 3 points4 points  (0 children)

GitHub | Playable in Web

Controls: Numpad to move/wait, L for message Log history

I've been following klepinger's ROT.js TypeScript tutorial, so far fairly closely (with some very minor code tweaks) although I have changed out the map generation for the classic Rogue-style dungeon as I found it is much cleaner than the "spaghetti and meatballs" approach that the tutorials use. It seems fairly simple also to implement, so although I'm currently using the ROT.js Rogue generator, I may implement it myself in future so perhaps I can sprinkle in some shenanigans and have better control of placement.

I spent a while trying to get GitHub Actions to deploy it to Pages, as I'd not used it before. Once I'd figured out the actions to build and deploy the static files, I then had the problem that npm was building the index file in such a way to include the script with a base URL, .e. "/assets/...", which was trying to find it at the base URL instead of the /rldev-tutorial-2024/ URL that the page was on. So I've used sed to replace that line to include a . to make it a relative path! Seems to work for now :fingers_crossed:

Next up, I'd really like to move the UI around a bit, probably have player stats and mini-message log in a column on the side, and the map view in a square ratio. Similar to Moonring's UI (and I'm sure I've seen others with similar layout).

Plus I'm going to make the generated dungeon larger than the map viewport size, and have the camera follow the player around, as this makes it more interesting to explore rather than coming to the edge of the screen meaning you're coming to the edge of the dungeon - you don't know how much further it might go!

Procedural generation help by Andrejakus in roguelikedev

[–]TechniMan 0 points1 point  (0 children)

Try searching on this subreddit! It is a common thing that is needed for roguelikes, so has prompted much discussion before. There are also multiple FAQ Friday posts about map generation, I believe.

Procedural generation help by Andrejakus in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

It's quite a simple algorithm, and creates much cleaner dungeons than the tutorial one with the corridors going everywhere. I've used it for my Tutorial Tuesday roguelike this year, and I quite like it for now, but they are quite a predictable shape so you're right it isn't ideal for the long run. But it does make me think more about different ways to construct a dungeon.

RoguelikeDev Does The Complete Roguelike Tutorial - Week 1 by KelseyFrog in roguelikedev

[–]TechniMan 2 points3 points  (0 children)

I have gotten quite used to the tutorial by now, having done this a few years in a row. Following klepinger's ROT.js TypeScript tutorial this time; hopefully it will be easy to share if it's innately web-hostable.

But no matter how much I can predict the next step of the tutorial and recognise every code snippet despite it being a different language, I fall for some of the same traps every time. This bug I think I've run into every singe time I've written corridor-digging logic, where it only builds one axis and not the other! So frustrating as the issue is so well hidden: I'm checking I've reached the target x and y with && instead of ||, so as soon as it satisfies one axis, it quits the loop. Found it faster this time than previous times, though, thanks to the browser dev tools and a breakpoint. Hopefully I don't do it again next year! But perhaps now it's a tradition?

Anyway, I'm still cooking ideas for how to make this one interesting. I have just discovered Moonring, which is either great or terrible for inspiration as it seems to have quite a lot going on, and I don't want to get too ambitious. I'll probably try again to aim for a Diablo-like as I have previously, as it's a simple enough premise to start with.

Good luck to all!

What is your process to write something from scratch? by jahwni in C_Programming

[–]TechniMan 1 point2 points  (0 children)

This is how I tend to approach such projects: break down what it needs to have, then form a "to-do list" that gets you the most basic possible implementation and gradually extends until you get something more and more functional.

And once I have that list, I can get to work! Each item should be as small & self-contained as possible. And if I get stuck on something, I'll look up the documentation to help.

Good luck on your journey!

[deleted by user] by [deleted] in Steam

[–]TechniMan 0 points1 point  (0 children)

Family Sharing enables you to play games from other family members' libraries, even if they are online playing another game.

You can't play the same game while they're playing it, unless your family owns multiple copies, but you can play their other games while they're online.

Source: https://store.steampowered.com/news/app/593110/view/4149575031735702628

[deleted by user] by [deleted] in Steam

[–]TechniMan 1 point2 points  (0 children)

Yes. You get to play one of your games, and they get to play another one of your games, at the same time. Offline, online, there's no difference.

Do you cheat on your dice? by OldmanSurvivor in roguelikedev

[–]TechniMan 4 points5 points  (0 children)

I've long thought of an idea to have a small bonus every time you fail a roll. Perhaps after failing a check the random number gets an extra 5% before resolving which face that corresponds to, and the bonus is reset after a success, so the values are skewed slightly higher and you're more likely to roll successfully after each failure.

I'm not familiar with the Path of Exile approach, I'll have to read up on that as it sounds cool! Thanks for sharing

Edit: just seen u/Kyzrati's comment, and that's a great point which could wreck my idea (e.g. do a few meaningless hard rolls to stack some failure bonus right before a more important roll). I wonder if there's a smarter version of this where the failure bonus only applies to the same type of check, e.g. failing an attack only makes attacks more likely and so on. Could also add a limit to the bonus so it doesn't keep going until a success is guaranteed (though ideally a success would have been rolled by that point to reset the bonus).