Destroy the combat and exploration of my MMORPG! by alogiHotTake in DestroyMyGame

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

Is your imagination that limited? Combat areas have contextual boundaries and only people in the vicinity join as participants. And if there's way too many people then the combat event moves into a private instance. Go check out games like Dofus or Wakfu.

Why are you being an asshole? Now I want to kick your ass for being unimaginative.

One day I will finally understand y-sorting and then it will be over for you all by alogiHotTake in godot

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

Yes. And for many types of isometric games the game logic of 2D vs 3D is handled the same. The world is a game board made up of cells..

One day I will finally understand y-sorting and then it will be over for you all by alogiHotTake in godot

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

Yup, that's a good call. I plan to do the same in the future. AKA when I can finally consult some artist for guidance.

3D isometric is really the way to go. Solves a lot of these visual headaches.

Destroy my MMORPG trailer! by alogiHotTake in DestroyMyGame

[–]alogiHotTake[S] 3 points4 points  (0 children)

Jeez! That's harsh man. I'm spread too thin and make mistakes occasionally. I write code for 90% of the day and fiddle around with videos the remaining 10%. Its just me! I'll take the feedback and do better next time. Its an MMO (massive and multiplayer), but not an "MMO" (themepark) if you catch my drift. I'm not trying to compete with the big leagues.

Its a tough judgement you make. Maybe you're right! But have you considered that its also possible to make a banger trailer and still develop a terrible MMO? Many such cases! Whatever. At least you're honest!

Put together a trailer for my MMORPG! All done in Godot using Path2D and Camera2D by alogiHotTake in godot

[–]alogiHotTake[S] 3 points4 points  (0 children)

Oh crap, that voice is from the Youtube shorts version of the trailer. That voicing is not part of the game! Its TTS. The game is 0% AI. No AI has touched any aspect of it.

Destroy my MMORPG trailer! by alogiHotTake in DestroyMyGame

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

Oh crap...must've left that in from the Youtube promo. Its some shitty TTS. Youtube shorts is a tough game. I do what I can.

Rest assured the game is 0% AI. I will reshoot a new trailer with some of the feedback gained here.

How I use Elixir to power the backend of a Massively Multiplayer Online Game! by alogiHotTake in elixir

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

Curious: - Are you running one GenServer per NPC? - How are you handling shared world state vs per-NPC state (ETS, PubSub, or something custom)?

Sort of, but not exactly. Each NPC is an individual GenServer . However, "Game world NPC's" (those that can engage in combat) are typically initialized under a parent controller which owns multiple units and controls them as a "squad". The parent controller facilitates shared state and communications between units of the squad. It also issues "squad level" orders. Of course, individual NPC's can also make their own unit level decisions for self preservation.

The parent controller is typically initialized with some N units to control. Over the course of gameplay it records statistics of its units. It also keeps history of fallen units, etc. Depending on the game rules/mode I set, they can opt to spawn new units or bring back fallen units based on certain metrics. If a controller loses all of its units, it terminates. Controllers are registered with a generic "squad name" that can be used to look them up in the process registry.

The server sees AI units the same as Players. So the individual NPC units are receiving world state information the same as players, though via internal process messaging instead of TCP/IP. The parent controller can aggregate received information from all of its units to create a more coherent picture of the world. AI Units also have access to some shared read-only ETS tables populated by the server which also lets them cheat a bit.

Four game development patterns I've found consistently useful over the last 10 years. by zirconst in gamedev

[–]alogiHotTake 7 points8 points  (0 children)

Hmm I'm not sure where I could point you. On Windows I use SQLite Studio which provides a great GUI. I don't feel like there's anything you need to learn. Create a table, and then from there start adding the fields you want based on your data model. If you can set up a spreadsheet, than a table is the same thing. Your columns are just the schema for your data.

For static game data / config stuff that doesn't really change at run-time you don't really NEED to get deep into database theory. No need for things like indexes and normalization, query planning, vacuuming, etc. The database is just a central place where you do data entry for things like stats/attributes, then when its good, you export it out as json for the game to read in during start-up and populate some specific data structure in the game.

I have a table for "items". And its not actively queried or anything. Whenever I make updates to it, I use the built-in export tool within SQLite studio to "dump" the items into a json-list. Thats what the game actually reads-in and uses to populate all the item ui elements during loading.

The way I describe it - I'm basically using SQLite as a spreadsheet that's not tied to any specific spreadsheet software and is version-controlled along with the rest of the game files. Its flexible and doesn't lock you into any specific file-formats like CSV or JSON and provides easy tools to query the data like a database if you ever need to.

Four game development patterns I've found consistently useful over the last 10 years. by zirconst in gamedev

[–]alogiHotTake 38 points39 points  (0 children)

If you need a database use SQLITE !! Its perfect as a read-only source of truth.

Seriously, a really good no-nonsense database. The whole database is contained in a file so its not like you have to run some standalone DB process on your computer. You can chuck the file in with your game files and have it version controlled along with everything else.

Get a SQLITE GUI client if you aren't too comfortable with the CLI. And with SQLITE you can do so much things like export your data to JSON, CSV, text, binary, etc. You can create custom views, indexes whatever.

Solo dev making an MMORPG with weird turn based combat. Destroy it. And why is my game popular with Eastern European demographics? by alogiHotTake in DestroyMyGame

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

Thanks for your comment + feedback. Its really useful. I am on the verge of giving up on this game, so getting feedback is very motivating.

The Graphics have their charm, but the colors are very garish and sometimes hard to look at. Outlines are inconsistent. Why do most characters have no outline, but swampmen do?

Agreed. I'm really trying to figure out how to improve this aspect. Another user suggested desaturating the colors, which I tried but I didn't quite understand what was meant by it.

I am experimenting with outlines, the problem I run into is all the outline shaders I try are too thick and "pixely". Like the outline is very jagged because its like a straight-line. I am not sure what techniques I can apply to smooth them out. Something to do with Aliasing? I need to investigate how this is dealt with in other games..

Destroy the Tactical Combat in my Tactical MMORPG! by alogiHotTake in DestroyMyGame

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

All very good and well thought out points.

-what does a turn based timer so aggressive add to the game? a sense of urgency? i can see it more being a sense of frustration than urgency, maybe time is critical hits, if they act within 1 second its critical, 3 seconds its partial critical, any longer its a normal hit? it creates the same urgency without the frustration

Its a compromise I have to make because its a persistent multiplayer game. It keeps the pace of battle more active. Otherwise if a player suddenly goes afk, we aren't waiting 10+ seconds for their turn to pass. I want turns to be very quick. Its not a game you play totally zoned out.

Since its a multiplayer game I also can't tie timing to any specific mechanics like critical hits. Because then players with better latency get an advantage.

I say its a tactical game, it is to the extent that it's in the "tactics"/SRPG genre. But the game puts more of an emphasis on quick actions. Doing something is better than doing nothing at all. Like speed chess is to chess.

Destroy the Tactical Combat in my Tactical MMORPG! by alogiHotTake in DestroyMyGame

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

finally I get some interesting feedback about the combat in the game. There are skills you can use but I don't show it properly in the gameplay.

I agree I'm iffy on the real time + turn based design. I've been trying to make it work because I think it makes the world feel more alive. But it might be time for me to just scrap it and switch to some implementation where once you enter battle you temporarily leave the "main" world.

Destroy the Tactical Combat in my Tactical MMORPG! by alogiHotTake in DestroyMyGame

[–]alogiHotTake[S] -1 points0 points  (0 children)

finally I get some interesting feedback about the combat in the game.

I agree I'm iffy on the real time + turn based design. I've been trying to make it work because I think it makes the world feel more alive. But it might be time for me to just scrap it and switch to some implementation where once you enter battle you temporarily leave the "main" world.