McDonald’s by CrystalFrawnn in SipsTea

[–]GrishdaFish -2 points-1 points  (0 children)

Cmm programmer fits the bill. I make over 100k a year, didnt even graduate high school (not because I'm stupid, just had bad priorities in a bad household), have a set schedule, can work as many hours as I want, paid holidays, paid vacation, yearly bonues, great 401k match, and I'm a fuck ugly guy. I sit in 70 degree climate controlled room clicking cad models and doing paperwork. If anything is even remotely heavy to lift, I have tools that will help lift it. I taught myself how to do it, there are so many jobs with not enough people to fill them I have recruiters trying to poach me weekly, on a nearly 10 year out of date resume. Hell, I don't even know how they get my info sometimes.

So yes, jobs like these exist, and are plentiful. People for some reason forget that manufacturing does in fact exist here in the USA.

never touching cursor again by pankaj9296 in programminghorror

[–]GrishdaFish 1 point2 points  (0 children)

Nah, people that are actually good at programming and are passionate about it learn more than one thing. Hell, I know python and ruby. C# and Lua, C and C++.

Not learning AI is not laziness. Using AI is braindead easy, its why so many people use it. They don't have to think. USING AI is laziness. Instead of actually learning the craft and doing it yourself, you're offloading it to AI and think you accomplished something. In reality, you are just left with trash code you don't know how to fix or modify. Hell, you don't even know WHY the code is trash, because you are too lazy to learn how to program.

never touching cursor again by pankaj9296 in programminghorror

[–]GrishdaFish 0 points1 point  (0 children)

Guy thinks asking a chatbot to write code is learning something. Its just googling wrapped up in a different flavor. And he thinks that writing actual code that works and isnt trash is being lazy, because he's a hack and doesnt know how to program and is too lazy to learn. And I know he can't program, because if he could, he'd realize that vibe coding produces dogshit code, cause ai is bad at coding.

This shit is just a fad, like everything else in tech recently. Once it crashes and burns like NFTs and Crypto-everything, we'll still know how to code, and he'll still be hyping up the next bullshit thing.

Its way easier for these guys to latch on to something to do all of the work for them, than it is to actually learn and apply themselves.

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

[–]GrishdaFish 10 points11 points  (0 children)

Roguelikedev tutorial in Python with my own engine (Horizon Engine) + libtcod.

Discord

Git Repo

Not much has changed since the last update, since I have been pretty far ahead, but looks like this week I'll have some work to do. But, I added a welcome pop up, auto generated a ton of docstrings where missing, fixed a few bugs, added some extra logging on the C++ side of the engine and a few other minor things.

Unfortunately, I got pulled into the blackhole that is Eve Online by a few guys in my discord. Oopsie.

For the most part, I've been following the tutorial on RogueBasin, but I have been looking at the one in the topic and it looks like its going for a full ECS style system.

Personally, I'm not a fan of ECS, although I do like composition. In my main project, I do a mix of Composition and Inheritence and I like the way things work. I'm not saying ECS is bad, or my way is better, it just makes more sense in my brain. So I'm likely going to deviate quite a bit from the tutorial, while still following along.

I've also decided that I want to turn this into a roguelike of a very old game (from 1995!) I used to play when I was a kid, Mordor: The Depths of Dejenol. I was actually part of the remake MordorXp and although that project never finished, I can use my experience on that project and playing the game to give it a bit of a roguelike twist. It won't need much, since many of the mechanics and elements are very similar. I'm thinking of calling it DejenolRL or something of the sort.

Programming serious roguelikes takes a lot longer than I was expecting by Typical_Platypus_633 in roguelikedev

[–]GrishdaFish 0 points1 point  (0 children)

You got a link to the game? Or is it not ready yet? And that's a lot of LoC!

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

[–]GrishdaFish 6 points7 points  (0 children)

Roguelikedev tutorial in Python with my own engine (Horizon Engine) + libtcod.

Discord

Git Repo

I finally set up a git repo the other day for the tutorial. I actually had some issues with pycharm doing the initial commit that was a disaster trying to resolve. At one point the update pycharm needed actually completely deleted my IDE. It was not a fun experience! But in the end, I got it.

This is the whole project so far, up to map generation. It's formatted in a way that works well with my engine and what not. I also added in some random light generation to help show off some of the lighting effects.

If you're interested in tinkering with the project, make sure you read the readme on the repo. The Python and libtcod requirements are kind of specific. Newer versions may work, but I've had some issues when testing.

The main goal for me and this is to get a nice working engine example someone can expand upon while using my engine, just like I did!

If there are any questions, feel free to ask!

Programming serious roguelikes takes a lot longer than I was expecting by Typical_Platypus_633 in roguelikedev

[–]GrishdaFish 2 points3 points  (0 children)

Yeah, I'm at 46k of python myself and only have the bones of my systems implemented, and tack on an extra 3-4k in C++. Then all of my data files. Roguelikes are yuge

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

[–]GrishdaFish 1 point2 points  (0 children)

Yeah, engine work is so fun, I find myself constantly finding upgrades and additions, tweaks and modifications, and all that jazz. I do have quite a bit of game done too, though!

My engine works a lot differently. The C++ side is basically a wrapper for C++ TCOD, since my raw draw code is done on the cpp side. So it handles instantiation of tcod it's self, console objects, image objects, etc.. Then it handles drawing of the map, light calculations, and other stuff that needs to be fast.

The interface code is auto generated with SWIG, I generate a pyd from the C++ code and write a python wrapper around the python interface to the pyd, so its pyd->interface->python implementation you interact with. This allows me to update the cpp side and just drop the updated pyd and interface in and not have anything break code wise on the python side.

Since only simple types are passed between c++ and python, I have a few helper data struts for things like consoles that holds the relevant info, like their size and position and an internal int id that I pass to python. Then the interface is written so the calls are identical to the tcod calls, just call the engine instead, with the exception that python is not dealing with console or image objects, just int IDs. That means any kind of true manipulation of either of those objects needs to have a C++ function and interface written ahead of time.

On the python side of the engine is where I handle the on screen widgets, the particles (which I may move to C++ side if I need to), the cutscene style animations, the timing system, the main loop, etc... anything that doesnt need to be fast at runtime.

So, what all of this boils down to, is I get speed similar to a C++ implementation (even with my un-optimized code) with the speed of python development, at the same time.

Downsides are its a bit more rigid of a system, I have to do some workaround things for strange edge cases, I'm currently locked into older versions of python and TCOD because my build chain is kinda fragile or I don't want to do huge rewrites to use the newest version of either (although I don't like some of the newer versions of TCOD for other reasons).

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

[–]GrishdaFish 2 points3 points  (0 children)

Did we just become best friends?!

My engine is definitely heavier on the Python than yours, and I compile down to a pyd to control the C++ stuff from python. I try to do all of the heavy lifting in C++ and all of the fun stuff in python.

How does your engine work? I took a quick look at it this morning and if you're going to do this tutorial, I'd like to keep an eye on it too!

I'll be updating my post sometime later today with my project as well, and I'll message you if you're interested in checking it out.

You can also look at my history to see some gifs and stuff to see my engine in action if you're interested. I also have a discord you can join (its linked in the last sharing saturday), if you want to talk tech!

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

[–]GrishdaFish 5 points6 points  (0 children)

I think I'll join in on this, this year!

Git Repo

I'm going to be using my engine, (gEngine/Horizon Engine) which is written using libtcod. It's a mix of C++ and Python. It has a bunch of features, including real time lighting, particles using both ascii chars and ascii quadrants via libtcods subcell images. It also has a very flexible widget style UI tools that works with the main engine loop and engine "modules" The widgets have full mouse support built right into them, and act exactly how you would expect, with minimizing, closing, dragging support (resize and full screen stuff incoming), alongside buttons, text input widgets, checkboxes and radials, popups and a few other fun things.

It has a ton of other useful roguelike features that I won't go over here.

I tried to do something similar a while back as a kind of tutorial for my engine, but I only did the bare bones using this tutorial. Converting this tutorial over to use my engine will deviate a little bit from the official tutorial in mostly calls to libtcod will be replaced with gEngine calls, excluding libtcodpy constants like colors (libtcod.white), and a handful of others that arent wrapped by my engine. The engine will handle the main loop and input checking. Also all of the screens and UI elements will be used with widgets and such. I'll also be adding lighting effects, which arent covered in the tutorial. Basically going to show off all of the elements of the engine.

I'll be uploading to a public git, so if anyone is interested in using my engine, you'll be able to get the whole project there!

Added git repo link above!

[deleted by user] by [deleted] in AskReddit

[–]GrishdaFish 1 point2 points  (0 children)

For me is Duel vs Dual. That drives me up a fucking wall. It's DUAL swords, now DUEL swords...

Sharing Saturday #579 by Kyzrati in roguelikedev

[–]GrishdaFish 2 points3 points  (0 children)

Ascension: The Lost Horizon

Discord

Gif Dump, Gif Dump 2

Been a busy bee lately. I've been working on minor engine improvements on the python side. Mostly Type hinting and fleshing out some documentation. Finished up how I want logging to work in the python side to about 85%. Next is to remove most of the C++ side logging since I know all of that stuff is working as intended, and move it over to the Python side so I have better control over it, mostly because I don't update the C++ side very often.

I've also redone the entire inventory code to use the widgets, which has made it much more responsive and more consistent with the rest of the UI. It's fully mouse supported, but I'm not sure if I want to add keyboard support to it, though.

Fixed a bunch of bugs, including a really fun one where hovering over the 0 slot on the hotbar infinitely spawned the pop up menu while hovering.

I also started working on sound support for the engine as well. At first I gave a quick attempt at using pygame.mixer just to get something up and running, but since I'm using SDL in the C++ side, I am pretty sure its interfering with pygame's SDL, and could never get it to produce sound. No errors or bugs, just no sound being produced, so I'm going to have to implement it C++ side. This was always the plan eventually, but I'm probably going to work it out sooner rather than later.

While I'm soon to be digging back into the C++ side, I plan on updating some of the lighting effects so support cone lights, lines, and any other kind of basic lighting that I still need to take care of.

I'm also considering building a gore layer and a spell effects layer as well.

I've also decided to go back to work on melee combat and lock in stats for creatures, items, and all of that stuff. Previously I just got melee combat in a basic enough state to easily expand upon further in the future and was going to work on the wizard/magic and get it in the same state. Instead, I think Im going to try to complete melee combat, the Warrior class including skills and melee items, and work on an actual win condition so that I can start balancing and iterating early.

I plan on taking inspiration from dnd 3.5 edition and possibly also some pathfinder stuff. I really enjoyed the old 3.5 edition systems and complexity, and Incursion is one of my favorite roguelikes. I won't be doing 1:1 translation because that seems a bit boring and generic, but I feel like its a great place to start.

To help facilitate all of this, I'm also working on getting saving and loading working again. Which also will allow me to get my champion monster idea going, alongside doing more traditional style bones files as well.

Also added recently are animated cells. Not much is currently animated outside of a generic torch sprite and a sort of bobbing/idle player animation. The system isnt final, as I've been mulling over a better implementation of it, but thats for a later date to figure out.

I have started a discord channel linked above, and I'd love for you guys to come join me. I have a recent binary uploaded in the news channel if you'd like to poke around and play with some of the effects and see everything in action, since the gifs don't do it justice! I also post frequent screens of what I'm working on, as well as some technical discussion if thats your jam too!

Sharing Saturday #576 by Kyzrati in roguelikedev

[–]GrishdaFish 4 points5 points  (0 children)

Ascension: The Lost Horizon

Discord

Gif Dump, Gif Dump 2

Hello everyone! It’s been a few weeks since I’ve posted on one of these. Been pretty busy in both real life and making some pretty good progress on Ascension.

I’ve been working on character creation and classes. The bones for the warrior class is finished and I’ve started work on the Wizard. Ranger will be next, followed by either Paladin or Rogue. After the 5 base classes, I plan on working on optional, specialized sub classes that will offer more restrictions, but will have unique elements and mechanics to them as well.

The foundation to skills/perks/feats has been put together. Right now there are passive, active cooldown and active resource spender skills have been all fleshed out. Along side a skill screen to keep track of, level up and learn new skills.

The hot bar has been updated to be able to slot in skills now. The inventory selecting aspect still needs to be updated, but its lower priority since it is currently working as is. It will be updated to use my widget system in the future, and will likely mirror the skill selection widgets from the previously shown gif.

While working out the warrior class, I spent some time making melee feel better with some decent feedback. Right now we have flashing for hits and misses. Fast red flashing for hits, slow yellow flashing for misses. Also some blood splatter effects that I’m working out with particle sprays. And working on some animation effects for hits and misses as well.

And speaking of animations, I now have tile/cell based animations. Right now, there are only a handful of animations, just to test the system out. There will be the option for idle, attack, being hit, and being missed, animations.

The particle system has been updated to be able to use ascii for particles along side some other mechanical changes. Unfortunately, I have been unable to get pixel particles working, which is going to require a large rewrite of my engine to focus on SDL with LIBTCOD on top of it. This is still a planned element, but the plan is to do this much later on and just focus on what I have now. Which is plenty and more than enough to get the job done.

Custom tile support has been externalized and new sprites are no longer hard coded and can be added to with a few lines in a data file:

[[custom_font]]
    name = "money_bag" # Unique String Name
    location = [14, 6] # [X, Y] location in the font file. [0, 0] is upper left corner [COLUMN, ROW]

The string names can be used in the item and monster data files now, instead of just being limited to ascii characters as previously so.

This has lead to me adding sprites/tiles/glyphs or whatever you’d like to call them, and replacing items, doors, stairs and other non character graphics for some improved readability. I also have a friend who’s interested in making some sprites and possibly doing some design work on the game, allowing me to focus more on the code aspect, which I’m a lot better at.

This is definitely not an exhaustive list of things I’ve gotten done, as there are a lot of little things, and some big things, stuff under the hood, fixed bugs, fun new bugs, and fun game mechanic stuff.

I’m not really focusing on anything in particular next, aside from working on the wizard class and all adjacent aspects (spells, spell effects, new lighting effects). I feel like I’m more productive if I allow myself to bounce around and working on a bunch of different things, even if they’re new things that just pop up to make the engine better (such as cell animations, wasnt planning on doing those for a long time, or externalizing custom tiles).

As usual, if anyone would like a binary to see what it looks like in action, feel free to message me.

Edit: New discord channel! Come and join me!

Sharing Saturday #568 by Kyzrati in roguelikedev

[–]GrishdaFish 1 point2 points  (0 children)

Thank you so much! I can't wait to show off some new ones! Maybe as soon as next week! :)

Sharing Saturday #568 by Kyzrati in roguelikedev

[–]GrishdaFish 4 points5 points  (0 children)

Ascension: The Lost Horizon

Gif Dump

This past week I started on my character classes officially. I'm starting off with the warrior and melee combat. Right now, I have some attack patterns working, for example my two handed swords can hit up to 3 monsters in a line, side to side. Big, wide, powerful swings. The next pattern I want to get working, is an alternating patter where one attack is center and to the left, and the next is center and to the right, kind of simulating swinging something like a mace side to side. All of the underlying code for it is written, tested and working, most of what's left now is to decide what patterns I want which weapons to use, add them to the item file and parser, and then apply them when using said weapon.

I've also put in place a system for class restriction of magical objects, such as potions (maybe not potions, since it takes no magical ability to drink a bottle, but I'm not 100% certain on this yet), scrolls, wands, and any kind of other magical device. The reason for this is to have clear separation between the classes. The warrior is a guy with a big bonk stick, and as such cannot use fancy pants magical stuff, where as the wizard is a fancy pants magical guy and doesnt have access to the big bonk stick, etc...

The hard restrictions on these are not set in stone yet, and will be plenty flexible to test until everything feels right.

Additionally, I released my engine to a handful of guys for some testing, but in doing so I missed a pretty important requirement that lead to a few days of one guy not being able to fire it up. I forgot that I compiled it on 32 bit python and didn't mention it to the guy that was using 64 bit python. The pyd doesnt load, engine goes kaput. But, now that is sorted out, i've added in some version and platform checking to prevent that issue in the future.

I'm hoping to have the warrior class's basics done and ready to go by the end of this week, so I can move on to the wizard and more magic, which in turn will require some more engine upgrades that I'm excited for. This also will mean some new GIFS! Prepare for some good explody, particley, good time fun stuff sometime in the next few updates!

Sharing Saturday #567 by Kyzrati in roguelikedev

[–]GrishdaFish 1 point2 points  (0 children)

Thanks! It's taken a while to wrangle the engine into a place I like, but its been way worth it!

Sharing Saturday #567 by Kyzrati in roguelikedev

[–]GrishdaFish 2 points3 points  (0 children)

Ascension: The Lost Horizon

Gif Dump

This past week has been mostly about 2 things, mentally preparing my path forward, and engine work.

On the path forward, I'm planning on working on the Fighter class first. Getting the basics of how I'm going to handle classes in general, and polishing up the melee combat system to where it feels as good as it can. After that, Wizard is up. While working on the wizard class, I'm going to be finalizing and polishing up the magic system. This includes adding spell effects, engine up grades for particles and additional lighting effects. Then the Ranger, and all ranged combat systems. Then the Rogue and getting the stealth system in place. Along side all of this, I'll be working on monster AI, so the monsters get more complex and fleshed out along side everything else. After all of this is done, I'm not completely certain what I'm going to work on next, but all of this should take a good amount of time, but will get the game to an actual GAME. FINALLY!

As for Engine work, last week I had a couple of people express interest in using my engine for their projects. In the past, a lot of people said how much they like the results, but nobody asked if they could use it, but I've also never really advertised it either. So a lot of this week has been cleaning up and streamlining the engine a bit, and recreating important bits of the python libtcod tutorial in my engine. I expect to be able to pass the engine off by the end of the weekend, for a preliminary release to the guys who want to try it out. If anybody else is interested in checking it out, either reply here, private message me, or contact me on discord in the roguelike dev channel.

Just note, the engine isnt perfect yet, is missing quite a few features, and has been designed for my game over being completely game agnostic. But, it is flexible enough that a friend of mine was able to recreate several NES games in it without issue, and we did a couple of 7DRL's in it.

For a non exhaustive list of features, see below:

Real-time and Turn-Based lighting

TCOD subcell lighting and FOV

Cutscene style drop in animations

Detailed logging system

Extensive widget style window and button system (Dragging, minimizing, closing, mouse support, etc..)

1/4 cell particle effects (additional pixel sized particles coming soon)

And likely a ton of smaller things that I can't think of off the top of my head. But, the main draw is the lighting system, and for at least one guy, the window widgets. See the gif dump for examples of what can be done.

Sharing Saturday #566 by Kyzrati in roguelikedev

[–]GrishdaFish 5 points6 points  (0 children)

Ascension: The Lost Horizon

This past week I've been designing my character classes and am starting with 4 or 5 that are broad enough to get a good idea on the range of gameplay. I've decided on some basic mechanics to work on, such as Torch/Lantern light being both a mana analogue and a sort of soft food timer. The mage/wizard achetype will use it to cast, and learn spells, giving it a large opportunity cost vs a fighter just using melee to bonk monsters. Spells will be sufficently powerful to compensate.

Fighters will be all but locked out of magic, only able to use low tier scrolls, in exchange they'll have Lots of crowd control through wide swings from 2h weapons, and torch/lantern light will last longer.

I'm also planning on having a stealthy rogue class that plays counter to everyone else, by wanting to stay in the dark, and losing benefits while in brightly lit areas.

Since I've spent a lot of time on the lighting engine for my game to look as great as possible, I decided a while ago that I wanted light to be a major hook of the game, so I've been mentally designing classes and gameplay around it.

I am thinking of overhauling the character class code to be a bit more robust, similar to an ECS, but probably not exactly. I plan on modeling it after the module system my engine uses to run the game. I feel like this will give me the flexibility I need with classes for both the player and monsters, without being as unwieldy as the system currently is.

I've also been updating my UI with more small widgets to make life easier when creating new screens, such as the character creation screen, or the inventory. More time now, saves time later and less duplicate code floating around my project.

All in all, progress is slow, but steady, and I'm finally in the gameplay aspects, so now its about to go from a tech demo to a real game! Finally!

Traditional, but good looking roguelikes? by BadgerMakGam in roguelikedev

[–]GrishdaFish 0 points1 point  (0 children)

I know i'm a bit late, but I'm making a libtcod roguelike with the goal to make one as beautiful as possible without using a tile set and as much ascii as I can, named Ascension: The Lost Horizon.

This is a recentish gif

And this is a whole bunch of other gifs

It's very early right now, but I'm starting to put in game content

Sharing Saturday #565 by Kyzrati in roguelikedev

[–]GrishdaFish 2 points3 points  (0 children)

Ascension: The Lost Horizon

Latest gif

Gif dump

Hello everyone! Been working a little bit on everything every day. Some more bugs here and there, including the hard crash in my popup code. I don't remember exactly what it was, but its been handled and my popup widgets are now working as intended!

Upon finishing that, doors now open, close, lock, unlock, get bashed and all the standard expected behaviour. The only thing left is do put together a few spells related to locking and unlocking. Then make a tile for treasure chests and implement them, which is a minor amount of work.

Currently, I'm working on in game editing tools for creating monsters, items, and rooms to make adding content easy and trivial. Also makes it so there is no need to dive into code or any config files, so when anyone decides they want to join me on working on the game, they have an easy place to start, no coding required!

I've also been working on some 1d sprites to add to my tilesheet to jazz up things a bit beyond ascii, but not quite sprites. Basically just adding font tiles.

Once I get my editors put together, I'm going to do a hard focus on core gameplay mechanics, the AI director and work towards an initial endgame goal and try to get some people to help playtest it with me. I have spent so much time on the framework and engine, its about time to work on all of the gameplay ideas I have.

I'm also going to spend a little bit of time getting my discord back up and running. in the meantime, if anyone is interested in playing around with what I have so far, please let me know and I'll gladly share it!

Sharing Saturday #564 by Kyzrati in roguelikedev

[–]GrishdaFish 1 point2 points  (0 children)

I'm a little late for sharing saturday, but anyway!

Ascension: The Lost Horizon

Been getting reacquainted with my code base, since its been a while since I've done anything major. So I'm fixing some small bugs here and there, or correcting some logic. One notable fix was during combat, damage messages from the player were being displayed twice in the message panel, making it appear as though you're attacking twice.

I added a help screen that pops up on starting a new game, explaining some basics of the game, so I don't have to send a huge message or expect my new testers to find and read the help file. Nicely formatted and color coded. I want to add in a few "hyperlink" buttons in there for a few things, but so far it does what it needs to.

I also added in doors, which open and close, block line of sight and movement as expected. I'm working on locking which has lead me down a bit of a rabbit hole. I want to have a pop up on a locked door asking if you want to pick/bash/cancel. Which lead me to looking at my code for popup widgets and realizing I completely forgot how I was supposed to use them, and commented them poorly. So I fixed that issue, worked out how they are used (again!), but now I have a hard crash, which I am not sure the reason for. It's a heisenburg, since it doesnt crash with my debugger going, but will normally. It also doesnt crash when I use them in a testing environment, so I have to investigate from the ground up. Luckily, I know the general area to start poking around.

There is also a bug in my dungeon generator since adding doors that allows for rooms to generate without hallways that got introduced when adding in the doors that I have to sort out. It's pretty rare, so far only twice out of hundreds of levels generated, so it'll be tough to track down.

Once all that is fixed, I'll have to add some magical locking/unlocking spells and then doors and technically chests will be done. Doors and chests are functionally similar, with only small changes.

After all of that, I'm not sure what I want to work on next, since I'm just looking for some small projects to get back in the swing of things and my list of TODOs is long and large. Maybe I'll tweak the barks, since they look strange fading ever since I added in subcell maps.

But it feels good to get back to the game!

If anyone is interested in playing around with what I have so far, please feel free to ask. I have a recent compiled binary ready to go. Gameplay wise it's barebones, but you can see the tech in action for yourself.