Announcement

Collapse
No announcement yet.

MMO Starter Kit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    i want to make a nice mmo i have a lot of brilliant ideas for unique mmo but i'm fixed on one I need a working unreal engine MMO projet T_T I have to do a completely unique thing any mmo template is only for the server connection part chat friend guild shop I can play a very cool game but the mmo part is a problem I need an Blueplrint 100% MMO stand box template I would be delighted to give a royalty only basic things are needed basic damage an 1 attack a 1 spell a 1 skill to gather resources and inventory bags 1 ciaracter 4 stat exp basik UI a craft skill with only 1 craftable item a one resource I do the rest but it must work online from pre pre pre teta

    Leave a comment:


  • replied
    For what it's worth: The authority of externally-visible state should be the database. For preventing multiple logins, this means storing "this character was last seen on server X at time Y" in the database. Make each server update the record every 30 seconds they have the character. When trying to log in, if the record is less than 60 seconds old, assume the player is already logged in. If the record is over 60 seconds old, contact the server that last updated the record, and ask whether it has that character.
    This mechanism lets any server in your system determine whether a player is "already online" or not, and "where it is." Note that, as players travel between servers, there will be small time intervals where you may have to re-try a request. Also, this system lets your servers detect whether two separate servers both think they have the player (this happens in real distributed systems!) -- when a server goes to update the record, if it was recently updated by another server, at a time when the original server believes it should have had the player, sound the alarm!

    Leave a comment:


  • replied
    a promo shot for our game built on mmokit.


    Leave a comment:


  • replied
    8DrunkenGods Your approach with setting "isOnline" in the database is error prone, because imagine the server marks you as online and then crashes? You character becomes forever unplayable.

    Whether a character is online or not must be checked on game server or on chat server.

    But there may be multiple game servers, because an MMO requires many people at once, so one server per large area is the logical thing to do. So you can't check on game server either.

    Chat server is where the check must be made then.

    Just do this: before retrieving your character from DB on game server, game server must ask chat server "is player with this nickname already online?" If the answer is "yes", then destroy player controller - this will disconnect the player. If the answer is "no", then you're good to go to retrieve it from DB and do everything as usual.

    Of course when you start making people travel between servers, this will require sending some additional info to chat server like "ok, this character is now traveling between servers, so allow the next game server to authenticate this player despite him already being online", just using a bool somewhere.

    P.S. as for disallowing multiple characters login on the same account, it just requires one more step, where chat server must make sure that not only this character is not logged in, but neither is any other character from the same account. So this would require the chat server to get a list of all other characters using a php script.
    Last edited by CodeSpartan; 12-27-2020, 09:16 AM.

    Leave a comment:


  • replied
    CodeSpartan I have spent the last 3 days for 8+ hours each day trying to figure out how the hell to get a 'account is already logged in' feature. I can not for the life of me get one to work. I've tried a few differeing ways but the way the kit works with the whole saving character then loading character on map changes and on logout, then there's the issue that the character doesnt actually logout but just saves all info on exit. I just dont know what to do anymore.

    I have tried so many different ways now that my mind is spent and i just dont know what to do. I have succeeded in creating a bool in the characters database called 'isonline' and have successfully made it change from True/False depending on if the character itself is online via the below: You can see i've added a 'savecharacter2' into the enum and connected it accordingly. This is an exact copy of savecharacter but with the addition of a bool isonline set to True. This is fired the moment a player has logged in whereas the normal savecharacter has a bool set for isonline to False, which that one is called as you coded it (when the character changes map or leaves game).
    Click image for larger version  Name:	1.png Views:	0 Size:	517.6 KB ID:	1845264
    Here below is just showing how savecharacter and savecharacter2 are set for the bool:
    Click image for larger version  Name:	2.png Views:	0 Size:	443.2 KB ID:	1845262 Click image for larger version  Name:	3.png Views:	0 Size:	464.1 KB ID:	1845263 and lastly below is just to show that i set it so it launches the function to savecharacter2 right after the character has loaded in.

    Click image for larger version  Name:	4.png Views:	0 Size:	382.1 KB ID:	1845265
    From this point on when i had finally accomplished getting a bool to correctly save and load based on if character is online or not, i tried many different options to setup so that when character trys to login again with same character is spits out a message saying Character is already online. I failed at every single attempt in many different ways across multiple blueprints.
    My main goal here is to stop multiple logins, not multiple character logins but this is just how i started it. I am utterly stumped. I'm new to php so its not so easy to figure out how to code in php to set a field for 'isactive' bool and actually figure out how to link it in correctly with the blueprints. I've only been able to get by so far because i've used your own coded examples and copy/pasted/tweaked (blueprints). php is a whole other animal.

    Please help me figure this out, as a mmokit i honestly thought a multi-login blocker would have been included but im sure you have your reasons :P I just dont know the best way to go about it. If i had to guess the best way would be to add something into one of the php scripts. It just comes down to how the hell to do it. I've spent way longer than it should take anyone to try and figure this out so i need to move on to other things while i wait for your reply

    EDIT: Small step forward. I have finally succeeded in creating my own new php script 'isonline.php' that will save the characters online status as True after character has loaded into server. Upon player disconnect, in the 'savecharacter' request i have it set to change the bool to False. I'm hoping i can figure out some way to delay it when changing map or on exit so to stop players from spamming login to try to get 2 of the same characters online while 1 is transitioning over to another map. This is small progress and its not exactly a login blocker but i feel like its likely on the right track. Still hoping to hear from you CodeSpartan :3
    Click image for larger version  Name:	on.png Views:	0 Size:	408.0 KB ID:	1845322 Click image for larger version  Name:	on2.png Views:	0 Size:	382.8 KB ID:	1845323
    Last edited by 8DrunkenGods; 12-21-2020, 07:54 AM.

    Leave a comment:


  • replied
    The issue with the weapon was having the 'Weapon' component hooked into the master pose stuff. As pictures below, by leaving them not hooked up it fixed the problem.

    My best guess is because the weapon doesnt have a full skeleton bone setup that matches the character's bone setup, it cant follow along? I dont understand how all that works yet but i did manage to get things to work. Once i fixed that issue i went and removed the Weapons 'child skeletal mesh component' and used 'Weapon' component where applicable and now it all works as it should.
    Attached Files
    Last edited by 8DrunkenGods; 12-10-2020, 11:35 PM.

    Leave a comment:


  • replied
    So i've moved on to the next area iive been meaning to work on and ive spent the last 12 hours (literally) trying to set up a weapon that can be equipped/unequipped so that i can then copy/paste more in for item assets. I just cant get this to work. I have the 'Weapon' data all being saved/loaded and such but when i equip it, nothing shows up. if i pan the view left/right in a certain area the weapon will flicker on/off.

    The weapon i used was a static weapon that i exported then imported so i could create a skeleton from it.
    I then added a new socket on the mannequin skeleton called 'Wep' in the Hand_R area as well as a preview mesh inside Wep.
    I rotated the wep the way i want it and continued.
    After that i went into bp_modularplayercharacter and in 'Mesh' i added a new one called 'Weapon' and changed its socket to 'Wep'.
    I then set the weapon and material on it for the first testing phase so that i can see how it all looks without having to have the item just yet. And here we are. No idea why its flickering on/off but 99% off all the time. I know its there since its flickering on that rare 1% occasion when i turn view.

    edit: I think i figured it out. I just happend to right click the 'Weapon' spot on modularcharacter and 'add component' and saw i could add the greatsword. Did that and now it shows in game! I then removed its default to none and went back into the modularcharacter and changed all the 'Weapon' links into 'greatsword' and now i can equip/unequip the weps!
    No idea if im doing all this correctly but it does work so far.


    Click image for larger version  Name:	handr.jpg Views:	0 Size:	290.5 KB ID:	1841117
    Click image for larger version  Name:	layout.jpg Views:	0 Size:	340.5 KB ID:	1841118
    Last edited by 8DrunkenGods; 12-09-2020, 12:17 PM.

    Leave a comment:


  • replied
    CodeSpartan

    Forgive me if this is a stupid question as I am a severe rookie at this point.

    I purchased the MMO Starter Kit a while ago and set it up with the database, etc. and had no issues playing around with it.

    I am now wanting to use the Chaos fracturing in UE4 4.26 as I was waiting for that to come out before I got too far into development.

    My UE4 server source build works with chaos but when I bring MMO Starter Kit 4.26 into it I get the error “Could not be compiled. Try rebuilding from source manually.”

    So I opened MMO.sln in Visual Studio to build the source there and am now getting the following error when starting the build:

    Build started...
    1>------ Build started: Project: MMO, Configuration: Development_Editor x64 ------
    1>Creating makefile for MMOEditor (.uproject file is newer)
    1>UnrealBuildTool : error : MMOEditor modifies the value of bCompileChaos. This is not allowed, as MMOEditor has build products in common with UE4Editor.
    1> Remove the modified setting, change MMOEditor to use a unique build environment by setting 'BuildEnvironment = TargetBuildEnvironment.Unique;' in the MMOEditorTarget constructor, or set bOverrideBuildEnvironment = true to force this setting on.
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: The command "C:\UE426\Engine\Build\BatchFiles\Build.bat -Target="MMOEditor Win64 Development -Project="C:\ROTStart\MMO426\MMO.uproject"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6.
    1>Done building project "MMO.vcxproj" -- FAILED.
    ========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========

    Any direction you could provide would be greatly appreciated as I'm excited to dive in with using chaos as well.

    Cancel this one. I figured it out. Rookie mistake learning to understand the error messages. I now have both the latest 4.26 server source build working as well as the 4.26 MMOKit with chaos now enabled woohoo!! Onward with the development now!
    Last edited by Whiplash7; 12-10-2020, 01:14 AM.

    Leave a comment:


  • replied
    Originally posted by CodeSpartan View Post
    Replace the bools with an enum, do a switch on it.
    CodeSpartan

    oh man you're awesome, you helped me fix 2 things with that same area haha. I was actually already using 1 enumeration for each one of my town teleports but i had it hooked into a sequence with 9 ports (0 through 8) and each one did a true/false and if true, teleport to x town. Now its just using the switch like you suggested and its so much cleaner!

    Happen to know of a way to make it so when looting an enemy, right clicking enemy items wont activate those items?
    Attached Files
    Last edited by 8DrunkenGods; 12-09-2020, 11:23 AM.

    Leave a comment:


  • replied
    Replace the bools with an enum, do a switch on it.

    Leave a comment:


  • replied
    CodeSpartan Hey im trying to add a new item type that teleports me from my chat command that i already have setup. Only problem is i cant figure out how to go about adding a new item type. For example i looked at the equipment stuff since it 'destroys' the item on right click and moves it onto doll but the way all that code is it jumps all over the place and does things in multiple places so i cant make heads or tails of it.

    Basically my goal for right now is to simply make a new item that when right clicked it just destroys a single one (potion). From there i should be able to tweak it however i see fit, but the only code that exist is for equipment. Do you have a guide? Once ive done a single new one i shouldnt have any problems tweaking it from that point for multiple other uses.

    Edit: So far this is as far as i have got. I added a 'IsRecal' bool to the ItemData.h so when im creating the item as data asset, i can check mark the IsRecal. Doing it this way means i would need to have a checkbox for each of my towns (7 towns) since im still inexperienced with the more advanced stuff but thats okay since im doing it the easy way for now.
    Edit2: Spoke too soon it even activates my teleporting while equipping a piece of armor lol.

    Click image for larger version  Name:	IsRecal.png Views:	0 Size:	105.0 KB ID:	1840534
    after that i navigate to bp_modularplayercharacter and you can see the code here i have changed. I know its wrong since i made the change in itemdata.h and this change in image shows i just added a isArmor and isRecal to the Structure FinventoryItem which wont work in this case since theres no link between the itemdata and FinventoryItem, but you can see what im trying to do. I have no idea how to actually get the information from the itemdata.h for isRecal bool and make that the condition. This way if its an equipment piece it'll run the isArmor stuff on right click. If its the isRecal bool then it'll run my MangelRecal function.

    Click image for larger version  Name:	image_208932.png Views:	5 Size:	427.8 KB ID:	1840535

    Edit: Hey i actually got it to work by doing this below. Hopefully i can figure out an easier way of setting up multiple towns without having to add a bunch of booleans (1 for each town)

    Click image for larger version  Name:	work.png Views:	0 Size:	401.9 KB ID:	1840559

    Attached Files
    Last edited by 8DrunkenGods; 12-08-2020, 09:31 AM.

    Leave a comment:


  • replied
    Released the 4.26. It has the new auto-retarget when targeted enemy dies, that I wrote a few posts above.

    Leave a comment:


  • replied
    Originally posted by Verdoom View Post
    U will update this project to version 4.26?
    Of course.

    Leave a comment:


  • replied
    U will update this project to version 4.26?

    Leave a comment:


  • replied
    Perfect Thanks a lot, works great!

    Leave a comment:

Working...
X