51 comments

[ 3.0 ms ] story [ 79.7 ms ] thread
This reminds me of Risk of Rain 2 which is one of the greatest games of the last year IMO.

You emergency land on a alien planet with dangerous wildlife and ancient civilisations and everything wants to kill you. Levels and encounters are semi randomized, and you can buy items that stack idefinitly. Enemies get stronger with time so you need to be fast and activate the portal to the next level. But when you do that too early you won't be able to kill the boss that shows up while the portal is charging. If you die you start from beginning.

Risk of Rain 1 was the same only in 2D. Both are totally recommended for people who like shooters, challenging games and such.

Risk of Rain 1 was super depressing, if you don't know the game good enough your character basically gets old and powerless as the game progresses. A lot of failed runs end with enemies having a bazillion hit points and you running away not being able to kill them faster than they spawn.
Also, it was quite buggy at times.
I played it since it was still in Alpha and didn't encounter any major issues in ~100h, maybe you played in pre alpha?
This was my experience with Risk of Rain 2, too. Couple that with the ~40-60 minutes it takes to get back to the point where you are seemingly out-scaled by the game (of course due to my lack of knowledge) but it was a frustrating experience and one that caused myself and my friends to give up after a while.
It also uses a heavily weighted power curve. It's normal for games to unlock more powerful weapons as the player progresses, but it's generally the case in non-RPG games, particularly single session action games, that it's a good idea to give the player powerful gear immediately or early.

Ie, Doom's shotgun.

RoR doesn't do this, despite being a single session action game. RoR makes the player grind excessively to unlock powerful abilities, rewarding players who play many sessions or who have high skill. This doesn't serve players with little free time or without high skill.

It's not wrong, just a particular style of design that many prefer; kinda a "Soulslike", but it's worth being aware of.

It's mostly that the game continues endlessly (with potential "victory" stopping points) and the larger game is trying to get more powerful faster than the game gets harder. If you do its quite fun to accelerate in strength moving at absurd speeds, esp. in RoR2.

It's a race, even though that's not super apparent up front. What makes it really hard is finding the balance of clearing a level (which stops enemies from spawning, which stops income) as a tradeoff for looking aimlessly for chests, and choosing when to move to the next level. Loosely speaking the meta is to progress very quickly up front because money and loot is easier to acquire in later stages.

But I found that model to be kind of tiresome. They have an alt artifact mode where you don't need to open chests anymore and enemies just drop items instead. I found that to be a lot more fun and help even the playing field for playing co-op. It also encouraged sharing and teamwork in a weird way. When you have to pay for chests, the chest is "your" chest and you don't want to give an item to a teammate even if its better for them. When its a drop, sharing is caring. Your idle time looking for loot drops to zero and you can instead just play the game, go straight for bosses, and advance as fast as possible.

Thats always the issue with these games. I don't want to play a Roguelike ultra difficult game that I also have to race through. If I wanted to do that I'd play online FPS twitch shooters.

However then if you slow down those mechanics enough the brain can out think a computer AI so people complain because the game is too easy. I think the reality is that while these games are cool and fun the AI part needs to be very good and very advanced. Probably several years in the works like dwarf fortress. Most game cycles simply cannot support this so you end up with basically a cool idea that has to be reduced to a gimmick for sales.

Funny, I did base this on RoR2 actually. It didn't get all the features that makes it a RoR 'roguelike/roguelite' as time was limited for the classes and students were new to Unreal.

Perhaps eventually I still get time to evolve it to include proper RNG and procedural content

For anyone interested in 3D FPS Sci-Fi Roguelikes† made with Unreal Engine, you might also want to check The Pit: Infinity :

https://store.steampowered.com/app/577410/The_Pit_Infinity/

It also has co-op, which AFAIK is pretty exceptional for a roguelike† ?

P.S.: It's in a lot of ways a 3D remake of the critically acclaimed Sword of the Stars : The Pit, which is a 2D roguelike† with modern graphics (at least modern compared to most of the other roguelikes†):

https://www.gog.com/game/sword_of_the_stars_the_pit_osmium_e...

(†roguelikes, not roguelikelikes, The Pit isn't going to go easy on you !

The most important skill to learn is how to conserve, and when to use your various resources : health, 'psi'=mana, food, item durability, ammo, inventory space, crafting items, taking character levels which you decide and which also refills your health and psi…

with the hardest probably being to decide which rooms is worth the risk to open, and which is not.)

Sorry, not a roguelike according to the Berlin interpretation [1], and neither IMHO.

At best you could say it's an action roguelike, but it looks like a generic fps, with maybe randomised layout (I hope) and maybe some rpg-like stats.

There's a lot of dilution of the roguelike term, and even while some variety and games that don't fully fit the term could be marginally accepted I don't think a randomised Borderlands could fit the genre at all.

[1] http://www.roguebasin.com/index.php?title=Berlin_Interpretat...

From the steam page:

"Explore procedurally generated hallways, rooms and biomes!"

"Gain Levels to improve your Attributes and Skills!"

"Collect components and craft new items to improve your chances of survival!"

which along with permadeath and makes it a good match for the action roguelike term.

As I said, I could buy it presenting itself as an action roguelike, but not as a "pure" roguelike.

Terms have a meaning, and if we dilute them we will have the literally situation again,in which it's used instead of figuratively.

Literally means “as it is written”; it has always meant both “a thing that actually happened” and “figuratively”.
The only Factors that don't fit (for 3D The Pit) are the High Value Turn-based and Grid-based and for Low Value ASCII display.

It's probably also much less action-based than OP's project(?) and Risk of Rain 2, more of an horror/survival vibe. Especially with how touching an enemy with a shot still requires a skill check roll, and there's no bonus (AFAIK?) for headshots or such.

Not to mention the other aspects, especially resource management being extremely important : expect often dying of starvation (or dying desperately trying to find food and rushing into hopeless fights).

> It also has co-op, which AFAIK is pretty exceptional for a roguelike† ?

Not really. It's pretty common, esp. if you include modern games: Spelunky, Caveblazers, The Binding of Isaac, Son of a Witch, Enter the Gungeon, all have co-op, most of them support up to 4 players.

> Multiplayer support for all features

Impressive. The Stanford course 'CS193u: Video Game Development in C++ and Unreal Engine' sounds good too: https://www.tomlooman.com/stanford-cs193u/

I also happen to be working on a 3D action roguelike, but in the other big game engine: C# and Unity. https://twitter.com/Doomlaser/status/1335652128438820864

OMSCS has a similar course, https://omscs.gatech.edu/cs-6457-video-game-design. It's a semester long project based class where you build a game in Unreal Engine with a small team. It's a pretty awesome class.
Looks really fantastic. its pretty general, but it appears to be “Unity” engine based. (The other major game engine that starts with “U” and is an English word)
Ah of course - thanks for pointing it out!
Unreal's approach to multiplayer is pretty well integrated. Not that hard to get going imo, as someone who never took any CS classes and was intimidated by networking on unity.
When I first read this I hoped this would be a rogue like game implemented using GitHub Actions somehow
Actions can react to issues and comments, so you could probably build a text-based RPG around that. For example, each player gets a branch and comment on the latest commit to trigger the next action (which is a commit). Or comment on an issue.

Anything else than text-based seems difficult though.

Doesn't look like that Stanford course recording is posted anywhere yet.
Very nice. I found some excitement in the topic of game programming patterns after learning about Entity Component Systems. For me it was a huge, well, game changer. I tried for years to build games but always gut stuck and/or lost interest. ECS allowed me to do finally get somewhere. I'm working on a small 2d action rpg [1] and a lot of the requirements can neatly be expressed as entities and components. Even something like a save/load system should fit into this by serializing all entities at once.

[1] https://github.com/pb82/zwei

not to diminish the great creativity but why is it called "roguelike" and not "doomlike"? Aren't most FPS basically versions of wolf3d or doom?
Roguelike implies procedural environment creation and permadeath, so each run is different and flavored by the random nature of the game's possibility space.
ok that makes sense. I typically think of roguelike with the game engine which I immediately think top down 2d. Yet I didn't think of gameplay and outcome. Good description.
Roguelike also imply that the game is a topdown 3rd person view turn based RPG. Please stop the nonsensical subversion of an established genre.
Roguelikes haven't implied isometric, turn based, RPG for a long time. Binding of Isaac isn't turn based, Spelunky isn't isometric or turn based, neither is Enter the Gungeon or Rogue Legacy. In fact, the only recent game that fits that definition that I can see on steam right now is FTL, and that's almost 10 years old. Parent is right, rogue like implies procedural generation, permadeath, optionally intermediate progression.
Your argument is roguelikes aren't this because Binding of Isaac isn't this and Binding of Isaac is apparently a roguelike. Even though the creator of Binding of Isaac said it wasn't a roguelike. BoI as well as OPs game play so ridiculously differently from roguelikes it's almost laughable to compare them or suggest them to people who like roguelikes.
No my argument is that none of the roguelikes released in the last decade are what you described.
The problem is that what you describe as a roguelike is so horribly broad that it doesn't really say anything about the gameplay. If it is just procedural generation and permadeath, then frigging Civilization is a Roguelike. Which is a utterly ridiculous claim.
I’d say this is the standard descriptor of the rogue-lite genre, for whatever value the term has. Roguelikes tend to be more along the lines of parent’s comment. There is a decent discussion of this and some of the points sibling comments make in Game Makers’ Toolkit YouTube Video titled ‘Do we need a Soulslike Genre’

1 - https://m.youtube.com/watch?v=Lx7BWayWu08

Slightly hi jacking this thread but what about a MMO style server for unity and/or unreal? It seems like nothing open source exists
Consider some of the parts of an MMO server backend:

1. Login (Authentication and identity)

2. Persistence of data

3. Social graphs

4. Gameplay

5. Metrics/telemetry collection, ingestion, tracking, presentation.

1,2,3 and 5 are generalizable and a framework can be made to fit almost any game. Metrics/telemetry might be game-specific, but you can come up with an abstraction to fit most of the types of things you might want to collect/observe.

I'm not even talking about operation and maintenance. You can assume those are fairly well-understood generalizable problems. Or the type of networking requirements of WoW vs CoD.

Number 4 is impossible to generalize. A gameplay server will be unique to each game. Frameworks like SpatialOS etc. are not scaling out game play. They are scaling out the persistence and distribution of game state. Those are two very different problems.

A lot of engines (like Unreal) include a "server" component which you can use for upto 64-ish players. After that, any optimizations you need are going to be very, very specific to the game.

For example, the requirements to scale a diablo-style looter game are completely different from an FPS or a WoW-style classic RPG. How many ticked objects you have in a game instance on the server for example will vary from game to game and will drastically alter the scalability.

Many companies, including Unity and Unreal at various points have tried to come up with such a framework and have failed. No such framework exists even at a paid level. Let alone an open-source framework where your users will be mostly non-technical game designers who just want the damn thing to work so they can be creative. As much as I love their creativity, I would go mad trying to satisfy such an audience :-)

TLDR: Gameplay logic is not conducive to a generalized abstraction and thus cannot be scaled independent of game type.

Couldn't you use just a vanilla Golang (or any other language) microservice for all of this? If you know what you are doing you can have a bulletproof basic service with all of the above up and running in no time, just add your game logic. Most of your requirements are part and parcel of any modern commercial Docker microservice. Never mind that such frameworks already exist, e.g. nano [0] specifically designed for games.

Scalability is also not an issue. Number of simultaneous players and objects is limited by bandwidth and latency only. There are certainly no barriers to handling multi-million entity databases on any modern server. You're really only limited by how much data you can push out to your users within an update tick. And of course by how much money you're willing to pay for back end compute capacity on an ongoing basis. But those costs are very low these days, especially if you have dedicated servers rather then AWS/Google/Azure.

I think perhaps the issue is not so much that frameworks don't exist, but rather that no single framework has achieved popularity in the game design community. The indie crowd is not likely to want to, or afford to, run servers for years and years, so the demand is not there. The triple-A studios roll their own.

[0] https://github.com/lonng/nano

For those who aren't familiar, Tom Looman is a legend in the Unreal community. He has given back so much with his Udemy course and constantly helps people out with their projects. His YouTube channel is also a goldmine of information and awesome livestreams.
Thanks for the kind words!
I'd note that this isn't pure C++ at all, not that it claims to be. This is heavily leveraging a lot of Unreal's features and tooling. And that's good. They're good tools. Big unreal fan. Likely a very good resource if learning how to use unreal specifically is what you want.
> I'd note that this isn't pure C++ at all, not that it claims to be

if a C++ compiler is able to compile it, then it's C++, no matter how many layers of macros there are. GCC, Clang and MSVC have no problems compiling my UE projects here.

Is it just me or has the adjective "roguelike" became so ubiquitous and generic as to lose most descriptive meaning?
Really appreciate this post. Means a lot personally, thanks for putting in the time to write it out man!
I think I tried to take one of this dude's Unreal courses... it really wasn't very good.

He insisted on everyone using Visual Assist X (which isn't cheap) and would go through the course using VX keyboard shortcuts. VX is expensive and mutually exclusive with ReSharper (which I was already paying for), but uses totally different navigation and menus.

Then, IIRC, after a brief intro explaining some basic concepts, your first homework assignment is to create a black hole that sucks everything in and then spits it out. Without even really explaining much in the way of 'how' to do so, or what tools you use to achieve that effect, and neither spending much time teaching how to navigate Unreal docs or otherwise find the information on one's own.

Not to crap on this particular project, more that seeing the course ad on the right brought back a wave a bad memories.

Unreal is a beast to learn, and I get that teaching people to code in it is probably not easy. But this guy's course simply did not jive with me.

Contrast that with Ben Tristam's courses at Gamedev.tv, which are considerably longer, but they do a much better job of explaining what the hell is going on and how to figure out how to do what you need to do to proceed. The 4.22 guide even drops Visual Studio entirely in favor of VS Code (which I don't particularly like but will admit that VS trying to Intellisense the unreal engine source slows it down a ton)

same here. he additionally explained several c++ concepts wrong before i gave up.
Having just completed a dark souls playthrough, I am interested in more life like AI. Ie.. archers that don't shoot where you are but where your movement suggest you're going. Baddies that will steer clear of you if you're obviously over levelled or only attack in big groups, etc