- 43
- 599 943
UnitOfTime
Приєднався 19 лип 2021
Making games and other things.
Mythfall Devlog: The Ancient Ruins
⁍ Play: mythfall.com
⁍ Discord: discord.gg/63YeahMKfJ
⁍ Patreon: www.patreon.com/UnitOfTime
⁍ Github: github.com/sponsors/unitoftime
⁍ Twitter: UnitOfTime
// Description
This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Binding of Isaac. My goal is to make a game with interesting build combinations, and fun, replayable dungeons.
⁍ Discord: discord.gg/63YeahMKfJ
⁍ Patreon: www.patreon.com/UnitOfTime
⁍ Github: github.com/sponsors/unitoftime
⁍ Twitter: UnitOfTime
// Description
This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Binding of Isaac. My goal is to make a game with interesting build combinations, and fun, replayable dungeons.
Переглядів: 3 733
Відео
Mythfall Devlog: The Succubus Lair
Переглядів 1,7 тис.Місяць тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // Description This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Bind...
Mythfall Devlog: Banks, Boots, Hairstyles, and the Hanging Temple
Переглядів 1,3 тис.Місяць тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // Description This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Bind...
Mythfall Devlog: My game got banned at a middle school
Переглядів 1,9 тис.2 місяці тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // Description This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Bind...
Mythfall Devlog: The second year of development
Переглядів 2,1 тис.3 місяці тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // Description This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Bind...
Mythfall Devlog: A bullet-hell browser MMO
Переглядів 7 тис.7 місяців тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // Description This week I talk about the current state of Mythfall and all the features I've recently added. Mythfall is a bullet hell browser MMO inspired by games like Realm of the Mad God, Archvale, Enter the Gungeon, and Bind...
I rewrote my dungeon generator!
Переглядів 102 тис.9 місяців тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // References ⁍ Boris the Brave: www.boristhebrave.com/2019/07/28/dungeon-generation-in-enter-the-gungeon/ ⁍ Planarity: www.jasondavies.com/planarity/ ⁍ Force Directed Graph Drawing: en.wikipedia.org/wiki/Force-directed_graph_draw...
I scaled my MMO to 100 concurrent connections
Переглядів 3,3 тис.10 місяців тому
⁍ Play: mythfall.com ⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime // References ⁍ Cod Package: github.com/unitoftime/cod // Description This week I worked on scaling my game to 100 players. I ended up writing my own code generation package to generate my serialization code. The game is handwritt...
I added user accounts... Finally!
Переглядів 1,4 тис.10 місяців тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // References Continuous Profiling: medium.com/google-cloud/continuous-profiling-of-go-programs-96d4416af77b // Description I wanted to add account progression, but to do that I first need user acounts! So this week I worked on ad...
Adding item abilities and 20 new items
Переглядів 91611 місяців тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // References Pixelliverse Loot: zrghr.itch.io/pixel-art-loot-pixelliverse // Description This week I added item abilities! This made the game a lot more interesting interesting because now there's a few different builds you can g...
How I reduced my networking bandwidth by over 50%
Переглядів 1,6 тис.11 місяців тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // Description This week I optimized my networking in two ways. First I added vision based culling so that I could scale the world size without increasing packet size. And second I did some optimizations and bitpackings to reduce ...
New weapons, monsters, and some dungeon walls
Переглядів 69811 місяців тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // Description This week I added new weapons, monsters, and walls for the dungeon! The game is handwritten in Go.
Instanced Dungeons and the First Raid Boss
Переглядів 928Рік тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // Description This week I added dungeons! The game is handwritten in Go. // Chapters 0:00 - Intro 0:30 - Instances 1:30 - Portals 1:42 - Generation 2:43 - Boss? 3:08 - Boss! 3:34 - Thanks!
Adding loot, drop tables, and a doing a little cleanup
Переглядів 1,1 тис.Рік тому
⁍ Discord: discord.gg/63YeahMKfJ ⁍ Patreon: www.patreon.com/UnitOfTime ⁍ Github: github.com/sponsors/unitoftime ⁍ Twitter: UnitOfTime ⁍ Play: mythfall.com // References ⁍ Redblobgames: www.redblobgames.com/articles/probability/damage-rolls.html // Description This week I added lootbags to my game! The game is handwritten in Go. // Chapters 0:00 - Intro 0:12 - Cleanup 1:50 - Loot! 2:...
Wave Defense, Spatial Hashes, and the Pain of Browser Issues [MMO Devlog]
Переглядів 2 тис.Рік тому
Wave Defense, Spatial Hashes, and the Pain of Browser Issues [MMO Devlog]
Faster Renderer, New Minimap, Dockerization, and Service Health Monitoring [Golang MMO Devlog]
Переглядів 4,8 тис.Рік тому
Faster Renderer, New Minimap, Dockerization, and Service Health Monitoring [Golang MMO Devlog]
I spent a year building an MMO from scratch
Переглядів 6 тис.Рік тому
I spent a year building an MMO from scratch
Handling Player Logins and Logouts [MMO 15]
Переглядів 1,4 тис.Рік тому
Handling Player Logins and Logouts [MMO 15]
Building a fast ECS on top of a slow ECS
Переглядів 25 тис.Рік тому
Building a fast ECS on top of a slow ECS
How to code an AutoTiler (Easier than you think!)
Переглядів 6 тис.2 роки тому
How to code an AutoTiler (Easier than you think!)
Building a Proxy Server for an MMO [Making an MMO - E14]
Переглядів 3,3 тис.2 роки тому
Building a Proxy Server for an MMO [Making an MMO - E14]
Networking Concurrency in Go [Making an MMO - E13]
Переглядів 1,4 тис.2 роки тому
Networking Concurrency in Go [Making an MMO - E13]
Networked Physics with Websockets [Making an MMO E12]
Переглядів 1,3 тис.2 роки тому
Networked Physics with Websockets [Making an MMO E12]
Sharing systems between client and server [Making an MMO - E11]
Переглядів 1,4 тис.2 роки тому
Sharing systems between client and server [Making an MMO - E11]
Coding the slowest ECS framework in Go [Making an MMO - E10]
Переглядів 3,1 тис.2 роки тому
Coding the slowest ECS framework in Go [Making an MMO - E10]
[Making an MMO] Episode 9 - Client/Server Rearchitecture
Переглядів 2,1 тис.2 роки тому
[Making an MMO] Episode 9 - Client/Server Rearchitecture
The only time I did something like this, I also ended up with a physics based approach relying on gravity to pack rooms together, then just sorta cut holes in the rooms where they connected to make 'hallways'. Funny that the physics stuff is kinda the best solution, and as a bonus it really does make a cool loading screen
Now do a jump in top down perspective
The very first approach you showed was sufficient. All you need to do to ensure enough distance from spawn to boss room is to perform any pathfinding algorithm that returns the distance between nodes and if that distance is less than your defined accepted threshold, move the boss room and repeat this process until satisfaction of the condition.
But can you please explain the first part were when it going up the stairs it turns slightly up and when it going down it turns slightly down
Yeah basically: If the player is going up the stairs, then they are pushing left on their keyboard. Then we basically detect that they are on top of the stairs, and we want to "fake them out" a bit to make it look like they are walking upwards on every stair step. So we move them "up" (kinda like they were pressing left and up on their keyboard at the same time. making them go diagonally). Hope that helps!
@@UnitOfTimeYT yeah thanks
Couldn't you just add stairs when there were overlaps of rooms? Over simplifying here, but it's a genuine question
Yeah you could definitely do multileveled dungeons. In my case, I'm making a 2D game. and I wanted the connectivity of the dungeon to match the initial DAG that I used so that I could do some preprocessing steps more easily. But yeah, there's lots of ways to go about procedural dungeon generation, depending on the type of game and feel you are going for. Thanks for watching!
Fake solutions to simulate systems are more fun solutions. Applies to a lot of things; kart handling physics, physical health, and yes, also 2D topology.
This is incredible. I feel it would be really easy for you to add dynamically sized rooms as well. For spawn>boss routes, for rpgs with open worlds, it is not that you want them far apart, but just the approach to the boss room being long. Exiting the boss room to somewhere near spawn via a one way avenue (door/height, etc) is often a nicer experience. If you made one vein that somehow looped around or a secret passage hallway, maybe with the rewards? :o Obviously depends on what overall game/playloop is
Yeah there's a lot of cool dag preprocessing stuff that I think I can do!
Is there a binary version of the game client available? Browser version has performance issues for me.
There isn't yet a binary version available. I'd love to understand your performance problems though. What browsers have you tried? Also do you mind checking if your browser has hardware acceleration enabled?
Also if you have the chance can u make a shop for item for honor crystals
Can u add more ways to get honor crystals please thank you for your time
Alternatively, you could create random rectangles with various dimensions, placed all over the map, and then do the crunching together process with collision detection. Then connect them all with a minimum-spanning tree. This would work in 3D, too, for a multi-leveled dungeon.
I liked the part where he said "it's dungeoning time" and then dungeoned all over the place
looks like realm of the mad god
Phew, is there some kind of competition who can narrate the most words within 5 minutes? That's exhausting to listen to.
Out of curiosity, do you have monetisation plans, and if so, what are they?
Yeah I'm planning to monetize similar to how OSRS monetizes. Basically: Free base game, or subscription for some of the more advanced content. I feel like that best incentivizes developer goals with player goals the best. I dont really like microtransactions because those end up causing me to make the game worse to then charge people to make the game better. And cosmetics end up taking my time away from making the game better to add extra items.
While the damage percentage loot system makes sense, what might become a problem (this was in RotMG as well) is higher level players just going through low level dungeons and getting all the kills. They deal so much damage so fast that the lower level players cannot hope to reach that threshold. To avoid this, you might be able to scale this percentage by relative lvl (for example, a lvl36 player and 2 lvl2s, the lvl40 needs to do 90% of the damage to qualify and the lvl2s only need to do 5%. Of course the numbers would prob be lower already as you probably don't want people to count, you just want them to participate.
Yeah this is already a problem in the game right now. I like your idea. I've though about doing something similar so that lower level players can still get drops as long as they try to help. It's a weird balance in games like these where the stronger you are the easier it is to get drops, which makes it harder for newer players to get drops. Then they lose the ability to close the gap
Mind
Reminds me of Tibia, damn the nostalgia just kicked in =,)
Looks like you found a solution, I just wanted to point out that I think wave function collapse sounds like very good solution for what you were looking for. Its very customizable beyond its basic rules. A pretty popular game that uses this algorithm is Bad North (ua-cam.com/video/0bcZb-SsnrA/v-deo.html)
Instantly thoughtof realm, this looks cool tho
Thanks! Yeah, Mythfall is very inspired by ROTMG. But I'm doing things a bit differently
Just wait until you realize you really want it to be 3D 😬
Haha. hopefully I'll never have to go down that road :P
@@UnitOfTimeYT Literally the next video in my feed: ua-cam.com/video/rBY2Dzej03A/v-deo.html ("Procedurally Generated 3D Dungeons" by Vazgriz)
@@UnitOfTimeYT It would be a trick, but crosses in the graph would actually become easier to handle, since you can simply make them different levels within the dungeon, and the hallways with elevation changes would become stairwells. You'd need some checks to be sure elevation changes don't happen too quickly, but it still may make some things actually easier.
I really wish you could log in without steam or google and just use a password and username like everywhere else.
Yeah. A few people have requested this feature. Though it is nice for me to avoid because I don't have to handle user data at all :)
Nice! I feel inspired
big W
Stop bein lazy do all the animations
Interesting! How about Voronoi diagram algorythm with some edges removal? I wrote something similar recently. But instead of gravitating towards the start room - I generated all rooms one by one and slided them to the top left corner. Which is simplier, but the result is not that natural.
Cool! Yeah I didn't start with Voronoi diagrams because originally I wanted to generate a dungeon based on the abstract DAG representation of a dungeon. Gravitating towards a corner sounds interesting, I hadn't even thought about doing something like that.
Reminds me a lot o the dungeons in Mabinogi. Each room can be enered while fight is happening, but many have closted one-way doors. With the standard room, there's a chest in the middle, and opening it locks the room and spawned enemies. Kinda like the trap room in SAO that killed his party, except it's required to progress and is so standard you don't even think about it.
Im curious with your projectiles. Do you instantiate them on the server and send their position updates to the client or do you send an attack event to clients and have them instantiate the bullets and simulate their behaviour? Or do you do neither 🤣🤣
I do the second one. There's too many bullets to send them over the network. The added challenge is that the server and client have to both simulate the projectile trajectories deterministically so that the client and server agree on what collides with what
Cache coherence might not be the correct term to use here as it refers to the differences between multiple caches that reference the same memory space, I think that it would have been better to use cache locality or cache miss rate for this example, either way the intention is understood from explanation and visuals.
Ah yeah you are definitely right. Thanks for calling it out, my mistake!
I've always wondered how someone could recreate a dungeon system like this, very smart! I wonder if it could be extended to place rooms in 3D space, or non rectangular rooms... Thanks for sharing!
Yeah. For 3D it might be a little tricky to route hallways because you need things like stairs. But for 2D I actually use prefabricated rooms (that can be any shape or size, and have custom objects), then I just use the rectangle as a bounding box to make sure the rooms don't overlap.
@@UnitOfTimeYT I got suggested a video by Vazgriz right after watching this that goes into a similar method in 3D, using the 3D A* algorithm to map out grid-aligned hallways and stairwells
So you're recreating Realm of the Mad God?
Yep, definitely inspired by ROTMG
Just enough un-grid looking that the dungeons doesn't feel like city blocks and cubes. Feels more organic. Especially with the varying room sizes. Slick solution to just collapse everything inward without allowing them to violate the basic constraints.
Id peep at the comment below this one, as i had an epiphany while writing it. If you havent yet, you could have a look at A* and Dykstra's algorithms. Then compare against binary tree algorithms. You can then use your gap to prune shortest paths from spawn to boss, until minimum separation is achieved. Graph theory studying could also be helpful. Quantum wave function collapse might be most helpful to you. Worth having a look at. (Start with this actually)
ua-cam.com/video/20KHNA9jTsE/v-deo.htmlsi=nk6JITQyLTgTM1IA This video has been the best explainer ive seen on using the algorithms in games. For your purposes, a biome is a room type, and the ability to designate what kind of rooms can share adhacency should be very helpful. Will also let you retain grid power, and you can even designate dead-end and hallway rooms. You can also dictate the connection count of rooms, their min or max radius from spawn, or any other room. For instance, maybe item rooms are like "islands" and must have four "water" type tiles between them. Much can be done! Could make for maximal replayability with different and new tilesets. Excited to see what you come up with!
I think you got your positives and negatives mixed up. Negative Y moves up, positive Y moves down. As long as the meaning is understandable though, I suppose it doesn't matter.
What's the problem with edge crossing? I mean, what could be a hallway and the other is a small tunnel under it.. right?
I didn't really explain in the video but my game is 2d. So when the hallways overlap they end up making the dungeon more connected then I wanted
hypergraphs son
Fantastic explanation and the visuals were terrific!
Thanks! Glad you liked it!
checkout wave function collapse. u give constraints to the different types of rooms and then it procedurally generates a map.
Dealing with elevation and perspective changes in 2D is always confusing. I'm glad most engines basically have photoshop layers and depth sorting because doing this all through code would be a nightmare.
Whats a simple Explanation for 2-D FPS Racers ? for ex. F-Zero ,Pole Position etc.
Sorry I'm not super familiar with how those were done!
Go does have some things now for creating iterators, might be worth checking out.
Ah yeah I'm very looking forward to iterators! I think they are behind a feature flag still. But I still need to dig into it a bit!
pog
Would love the generation to be available on a website for generating dungeons for TTRPG nerds like myself. Love the generator!
But what are you going ro "DO" with the rooms and layout. Why so you need these layouts at all? Why these many rooms? Why these sizes? Why square?
I solved this problem in the past with Voronoi diagrams (they don't have to use manhattan or l2 distance). Merging nearby cells randomly, allowing for any room size/shape and eliminating any potential for crossing edges. It seems like a very roundabout way to do something, friend.
Could you make a video on it or link to examples or source?
I have zero idea of this, but I have a degree in watching informative youtube videos and I kept thinking about wave function collapse and how it could help with defining room types. Is this, like, an option?
Yeah. I'm not super familiar with WFC, but it might be helpful if my dungeon needed to bridge multiple rooms together. right now the dungeons are designed to have several rooms connected via hallways, so the hallways are kindof the joining point. Maybe I'll use WFC for future dungeons though.
WOW ! This is an incredible project. I hope you make it similar to ROTMG but with less pay 2 win. Since I was I kid and played ROTMG I dreamed about making my own small MMO.
Thanks! Glad you like it! Mythfall is definitely inspired by ROTMG!
the end results in this video are kinda underwhelming
the larger dungeons make me think of Daggerfall... those dungeons could be MASSIVE and often were. is there a way to have rooms that colide during the shift merger into a single larger room? could be neat but could also be pointless as the are just representations of where they are right? They could still be whatever shape that you want/need?
Ah yeah that's an interesting idea. I can definitely merge rooms. but rooms (at least how I have them now) are kinda "prefabricated". Like they might have boxes in a corner, things like that. So if i'd have to ensure the entities inside the room dont end up causing a weird situation.
Rotmg inspired?
Yep! Definitely very inspired by ROTMG!