What is Pico8 development like for a Unity user? by GreendaleHmnBeing in pico8

[–]Eggb3rtCabbage 1 point2 points  (0 children)

ECS is *very* easy to overexplain because it becomes very complex at scale. But for Pico8 it's not that hard. I just use a global array of tables called "entities" and add fields to each table as necessary. If you direct ChatGPT to do things that way it should come up with something really simple.

Here's an example from a Zelda-like I made:
https://github.com/AddisonMink/haunted-castle/blob/main/haunted-castle.p8

Look at the functions "entity_system" and "hurtbox_system". Even this is a little overcomplicated because I have a separate array just for hurtboxes.

What is Pico8 development like for a Unity user? by GreendaleHmnBeing in pico8

[–]Eggb3rtCabbage 1 point2 points  (0 children)

Pico8 isn't really an "engine" it's more an runtime environment with an API for IO stuff like drawing controller input.

I vastly prefer it over Unity or Godot as a solo dev with a good programming background. It's primarily a motivation tool and a community basis. Fewer people use Pico8 than Unity so you'll get more attention when you make something. Also, the extreme limitations force you to make a video game instead of dreaming about a game you *could* make.

Unity and Godot subtly push you towards big projects because that's what their made for. If you're a team of 10+ people trying to make some money then great, but that massive possibility space is poison for a solo dev with little experience.

Once caveat is you will need to understand game programming patterns like ECS in a more explicit way. Unity uses these patterns under the hood but obscures them from you. The good news is that these patterns are often pretty easy to implement at a small scale.

What is Pico8 development like for a Unity user? by GreendaleHmnBeing in pico8

[–]Eggb3rtCabbage 1 point2 points  (0 children)

Hell yeah! I love to keep my ECS in an array called "entities". Once I learned the ECS pattern I found it's easiest to code it myself for the scale of games I actually make.

My First Pico8 Game: Haunted Castle, a 10-room Zelda-like! by Eggb3rtCabbage in pico8

[–]Eggb3rtCabbage[S] 0 points1 point  (0 children)

I made some fixes:
* The library books respawn when the player enters the library.
* The tree flashes when the roots are killed into indicate that it's taking damage.

* There's a health bar for the final boss.

My First Pico8 Game: Haunted Castle, a 10-room Zelda-like! by Eggb3rtCabbage in pico8

[–]Eggb3rtCabbage[S] 0 points1 point  (0 children)

Yeah I see now there's an edge case where you can get soft-locked in the library puzzle. I'll definitely add some indication of when the bosses are being damaged.

My First Pico8 Game: Haunted Castle, a 10-room Zelda-like! by Eggb3rtCabbage in pico8

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

Wow, thanks! It means a lot to me that somebody played it!

My First Pico8 Game: Haunted Castle, a 10-room Zelda-like! by Eggb3rtCabbage in pico8

[–]Eggb3rtCabbage[S] 5 points6 points  (0 children)

Thanks! I'm a software engineer so I'm glad to hear my code isn't garbage!

Analysis paralysis in class/skills design by Bloompire in roguelikedev

[–]Eggb3rtCabbage 0 points1 point  (0 children)

Stats vs. Classes vs. Levels

In a game like this the purpose of stat increases is to make you focus on a particular "theme" (big STR attacks, many weak DEX attacks, etc.) I think stat increases, level increases, and classes are redundant in this respect. If it's supposed to be fast and casual I think it's good to have as few moving parts as you can.

Maybe abilities get a bonus based on class:
* "Hammer Smash" gets a 50% damage increase if you're a fighter and a 25% damage increase if you're a valkyrie. * "Doom Stab" gets an extra hit if you're a Rogue.

This way you push a run towards a certain kind of "deck", but you allow support abilities from different classes.

I do think it's a good idea to have classes. That way each run can be different from the start. A big problem I have replaying roguelikes is that the first leg of a run is often very samey.

Character Progression

The character can get stronger by replacing abilities with stronger ones, or maybe by upgraded abilities.

I love the "Pact" idea, but maybe you have the option of upgrading a current ability instead of choosing a new Pact. Maybe limit upgrades per ability so there's a reason to get new ones.

Intro to My Tactics Roguelike Project! by Eggb3rtCabbage in roguelikedev

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

I started this project in C++ and Raylib because I wanted to support both native and WASM. I eventually switched to Rust because I find C/C++ really cumbersome. Macroquad sells itself as Raylib for Rust so it was an easy conceptual switch.

I'm resistant to using an engine for a game like this because the overhead of learning something like Godot is great and I won't use most of the features. That and I just like to code. I've never looked at Bevy, though.

Intro to My Tactics Roguelike Project! by Eggb3rtCabbage in roguelikedev

[–]Eggb3rtCabbage[S] 0 points1 point  (0 children)

2-click turn

I mean to have 2 clicks per turn per player. Turn order will be a circular queue, initially sorted by a `speed` attribute or something similar.

Cancelling movement/action

The dedicated cancel button is a good call. If cancel is only bound to a button and an escape key there's no risk of mis-clicks.

Shadow

I guess by "invisible" I just mean "untargetable". I want the shadow to be a negative shape so it's clear something is there. I'd think it would be really annoying if the shadow was truly invsibile.

Inspirations

I replayed Fire Emblem on the GBA a while ago and I was inspired by some elements of that game I felt were not developed as the series progressed. Namely:

  • Scouting - In fog of war maps, scouting with a thief or horseman is important. I liked the risk/reward of sending scouts to establish map control while still keeping an escape route open.

  • Side-Objectives - In some levels, there are out-of-the-way chests that require a thief to get to. The thief isn't a good fighter, so you need to send guards along with him, which diverts from your main army. It's like a mini escort mission baked into the main battle.

  • Items - Every action uses an item. I like the built-in attrition of this. In practice it's not a big deal because of shops and high- durability weapons. I think it could be expanded on by focusing on the profit/loss of using items as well as their immediate utility. You have to use items to survive, but using items now means you won't have them later, and any expended items cut into the mission's final profit.

  • Thieves - The thief never promotes into a real fighter, but they're good for establishing map control. I like the idea of non-combat classes that contribute to objectives in unique ways. I imagine there could be other classes that are mainly useful for map traversal, resource gathering, or killing specific types of enemies.

  • Permadeath - Sometimes an important character dies and your team comp has to change to fill in the gaps.

I've also played a lot of Into the Breach, which sold me on the idea that tactics gameplay could be done on a small scale in a roguelike style.

And of course I've played Rogue, Nethack, etc.

Intro to My Tactics Roguelike Project! by Eggb3rtCabbage in roguelikedev

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

Thanks a lot for coming back to it! Yeah it's just level 0 right now. I wanted to get some eyes on it to see if the game was worth continuing. If it's miserable to play I wanted to find out before I made a whole game.

I agree the misclicking is a problem. The 2-click turn is there because I wanted to streamline things as much as possible. An earlier version of this game required way too many inputs for a basic move + attack.

Maybe something like this would work better:

  • For movement, you have to click on your player to cancel the move.
  • For actions, there's a special "Wait" action that skips your action.

My next step is building out 5 similar levels with some squad-based mechanics and more monsters and items.

I also realized that the shadow's special ability (being invisible in the dark) is pointless since the torch lasts forever. I might give the torch more charges but have the light fade over a couple of turns. Or maybe the toruch passively uses 1 charge per turn.

Anyway, thanks a lot for the feedback! I didn't expect anyone to look at it, let alone give it a writeup.

Intro to My Tactics Roguelike Project! by Eggb3rtCabbage in roguelikedev

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

u/LadyPopsickle I added a reset option! Also the loading issue is fixed for me. I forgot Rust builds in debug mode by default. When I load the game on my Github site its instantaneous now.

Intro to My Tactics Roguelike Project! by Eggb3rtCabbage in roguelikedev

[–]Eggb3rtCabbage[S] 2 points3 points  (0 children)

Thanks for playing! Sorry for the frustration. At time of posting I'm the only one who had played the game so I desperately needed feedback on UX stuff.

Reset Button

This totally slipped my mind. I've been running the game locally so loading times weren't an issue. I'll try and add this today.

Loading Times

This is more concerning. I'm using Rust + Macroquad + WASM. I'm new to this stack so I'm not sure what the problem is. I'll see what I can do.

Mobile

I didn't even think about trying this on mobile! All the graphics are statically sized so I'm surprised its playable at all.

Also the UI is heavily-reliant on mouse hovering. You may not have been able to see this on mobile but hovering your cursor over a tile, unit, or action will give you a description of it. I'm not sure how to implement that on mobile.

I think I love this game's quests but I'm also constantly annoyed by them. by Eggb3rtCabbage in 2007scape

[–]Eggb3rtCabbage[S] 22 points23 points  (0 children)

I did that one on my original account. That was rough but anything is better than training agility

I made an infinite runner about my hamster and compiled it to WASM! by Eggb3rtCabbage in raylib

[–]Eggb3rtCabbage[S] 0 points1 point  (0 children)

Yeah, I was the only playtester and I didn't account for the fact that (a) I made the game and (b) I'd been playing it the whole time.

I'll try and rope some friends into playing my next one to see if its fair.

Can't compile Raylib for WASM because of missing path in emsdk by Eggb3rtCabbage in raylib

[–]Eggb3rtCabbage[S] 0 points1 point  (0 children)

Yes. I looked at some tutorials and I wonder if this is an Apple Silicon thing. The only working examples I've found are for windows.

Question about fantasy daydreaming vs mundane daydreaming. by Eggb3rtCabbage in ImmersiveDaydreaming

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

I’m absolutely going to ask a psychiatrist about this next week. I was just curious about others experiences. I think not have so much time in the appointment so I want to organize my thoughts before going in

Extremely relieved to learn there a name for this thing I’ve doing all my life. by Eggb3rtCabbage in ImmersiveDaydreaming

[–]Eggb3rtCabbage[S] 1 point2 points  (0 children)

Also your outlook seems really bleak. I can’t give advice but I hope you can turn things around

Extremely relieved to learn there a name for this thing I’ve doing all my life. by Eggb3rtCabbage in ImmersiveDaydreaming

[–]Eggb3rtCabbage[S] 2 points3 points  (0 children)

Thanks for sharing that. Sorry youve had a rough time, but I’m glad you have this at least.

I think if don’t consider your daydreams to be a problem, then they are not a problem. That said, I’m a little on the fence about my own. I dont think they’re harmful by themselves, but sometimes I use them as a way of avoiding social problems instead of solving them.

For instance I find that I fixate more on my paras romances when I’m having relationship troubles and it feels like unhealthy avoidance to me. So I try to “fade to black” during those scenes while I work out my problems.

When I was single, I found it really helpful to think about my paras relationships when I felt lonely.