Announcement

Collapse
No announcement yet.

How to develop a FTPS/RPG MMO Sandbox single-handedly...

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

    #31
    Originally posted by Amelia_P View Post
    Acquiring skills during the gameplay, like flying, is fun. Cool mechanic! (Your record video program is slowing down your videos? I'm using Shadowplay GeForce experience and it's smooth, having 0% of dropping my FPS rate. Many devs said it's terrible, but it works fine for me).

    Thanks for the recommendation Amelia_P,

    I updated my NVidia Drivers and installed GeForce Experience. Sadly, my video card is too old...

    Click image for larger version

Name:	mygeforce.PNG
Views:	1
Size:	215.5 KB
ID:	1658747
    GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

    Comment


      #32
      HTML Application + Batch Hybrid Form Launcher (Windows)

      *.bat File Example
      Code:
      <!-- :: BATCH SECTION
      eCHo off
      color F0
      mode con: cols=64 lines=16
      goto beginform
      
      ::HTML Application + Batch Hybrid Form Launcher v1.0
      ::GOD of DREAMS FPSRPG Creation Sandbox Multiverse Online
      ::https://TheGameDevStore.com Game Asset Modding Community Marketplace
      ::Specializing in Modular Assets and Kitbash for Game Development
      ::Become a Vendor https://thegamedevstore.com/v2/my-account/
      
      ::REFERENCES:
      ::HTA Input Forms" in Batch files by Antonio Perez Ayala aka Aacini, Aug/08/2015
      ::  https://www.dostips.com/forum/Hiewtopic.php?t=6581
      ::    http://www.dostips.com/forum/Hiewtopic.php?f=3&t=6581&p=42362#p42362
      ::http://www.quackit.com/html/tags/html_input_tag.cfm
      ::https://wiki.unrealengine.com/How_To_Test_Dedicated_Server_Games_Via_Commandline
      ::https://docs.unrealengine.com/en-US/Programming/Basics/CommandLineArguments/index.html
      
      :beginform
      cls
      if exist HTML del HTML
      :formbody
      set /p "=GOD of DREAMS Net Launcher v1.0..." < NUL
      call :Form result= 0 0 512 512
      call :RadioButton /H "NetRole" "Server" /H "NetRole" "Host" "NetRole" "Client"
      call :Textarea /H 2 32 "EditorPath" "%UE4EDITOR%"
      call :SetEnvarButton "EditorPath"
      call :Textarea /H 2 32 "ProjectPath" "%UE4PROJECT%"
      call :SetEnvarButton "ProjectPath"
      call :Textarea 2 32 "ServerDNSPort" "god.servegame.com:7777"
      call :Textarea 2 32 "APIHandler" "https://assmod/wp-content/plugins/WoOSAH/inc/api.php"
      call :Inputfield 32 "MapName" "LevelOne"
      call :CheckBox /H "Options" "Windowed" "Options" "Log"
      ::call :Inputfield /H 8 "ResX" "800"
      ::call :Inputfield 8 "ResY" "450"
      call :Submit /H
      echo "%result%"
      call :%result%
      timeout 3
      :endform
      goto :EOF
      
      ==================================================================================
      ::This is :HTA-Form Form subroutine; include from this point until EOF in your code
      ::Don't forget to also copy *the first line* in this file!
      ::
      ::Orginally developed by Antonio Perez Ayala aka Aacini,
      ::Modified by Frankie Techlord Taylor 08/24/19
      
      :Form result= col row width height
      ::setlocal EnableDelayedExpansion
      :: result=
      set "res=%1" & shift
      :: col row width height
      set "pos=%1 %2 %3 %4"
      exit /b
      
      :Button name value ...
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set /p "=<input type="button" onclick="radiobox('%~1=%~2')" value="%~2">%~1%ver% " >> HTML < NUL
      shift
      shift
      exit /b
      
      :RadioButton name value ...
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set "button=%~1"
      if not defined button goto endButton
      set "checked="
      set /p "=<label><input type="radio" name="%~1" onclick="radiobox('%~1=%~2')" value="%~2">%~2</label>%ver% " >> HTML < NUL
      shift
      shift
      if "%~1" neq "" goto  RadioButton
      :endButton
      exit /b
      
      :CheckBox name value ...
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set /p "=<input type="checkbox" name="%~1" onclick="checkbox('%~1=%~2')" value="%~2">%~2&nbsp;%ver%" >> HTML < NUL
      shift
      shift
      if "%~1" neq "" goto CheckBox
      exit /b
      
      :Inputfield maxlength id value
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      if "%~1" neq "" (set maxlength="%~1") else set "maxlength="
      set /p "=<label>%~2</label>: <input type="text" id="%~2" onclick="textbox('%~2='+document.getElementById('%~2').value)" onchange="textbox('%~2='+document.getElementById('%~2').value)" value="%~3" %maxlength%>%ver%" >> HTML < NUL
      exit /b
      
      :Password maxlength id value
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      if "%~1" neq "" (set maxlength="%~1") else set "maxlength="
      set /p "=<label>%~2</label>: <input type="password" id="%~2" onclick="textbox('%~2='+document.getElementById('%~2').value)" onchange="textbox('%~2='+document.getElementById('%~2').value)" value="%~3" %maxlength%>%ver%" >> HTML < NUL
      exit /b
      
      :Textarea rows cols name text
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set /p "=<label>%~3</label>: <textarea name="%~3" rows="%~1" cols="%~2" onclick="textbox('%~3='+document.getElementById('%~3').value)" onchange="textbox('%~3='+document.getElementById('%~3').value)">%~4</textarea>%ver%" >> HTML < NUL
      exit /b
      
      :Submit [/H]
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set /p "=<button onclick="closeHTA();">Submit</button>%ver%<button onclick="exitHTA();">Cancel</button>" >> HTML < NUL
      call :GetHTAreply
      set "%res%=%HTAreply%"
      exit /b
      
      :SetEnvarButton [/H] Envar
      if /I "%~1" equ "/H" (set "ver=" & shift) else set "ver=<br>"
      set /p "=<button onclick="closeHTAwithVars('%~1');">Set</button>%ver%" >> HTML < NUL
      exit /b
      
      :GetHTAreply
      set "HTAreply="
      for /f "delims=" %%a in ('(echo %pos% ^& type HTML ^) ^| mshta.exe "%~F0"') do set "HTAreply=%%a"
      del HTML
      exit /b
      
      :SetEnVar var1 path1 ...
      echo Setting Envars
      echo %*
      set envar=%1
      shift
      :getEnVarLoc
      if "%~2" neq "" (goto appendEnVarLocShift) else (goto appendEnVarLocBreak)
      :appendEnVarLocShift
      set loc=%loc%%~1 & shift
      ::echo %loc%???
      ::pause
      goto getEnVarLoc
      :appendEnVarLocBreak
      set loc=%loc%%~1
      shift
      ::echo %loc%###
      ::pause
      :setEnVarLoc
      echo setx %envar% "%loc%"
      pause
      setx %envar% "%loc%"
      exit /b
      
      :StartNetAgent result
      echo Starting Net Agent
      echo "%UE4EDITOR%\UE4Editor-Cmd.exe" "%UE4PROJECT%" %*
      "%UE4EDITOR%\UE4Editor-Cmd.exe" "%UE4PROJECT%" %*
      exit /b
      
      :Error Message
      echo ERROR!!! %*
      goto formbody
      exit /b
      
      :cancel
      echo Cancelled
      goto :EOF
      exit /b
      
      -->
      
      <HTML>
      <HEAD>
      <HTA:APPLICATION INNERBORDER="no" SYSMENU="no" SCROLL="no" >
         <link href="https://fonts.googleapis.com/css?family=Amatic+SC&display=swap" rel="stylesheet">
         <style type="text/css">
         body {
             background: white;
             background-image: url("GODofDREAMS.gif");
             color: black;
             font-family: 'Amatic SC', cursive;
             font-size: 32px;
             font-weight: bold;
         }
         </style>
      </HEAD>
      <BODY></BODY>
      <SCRIPT language="JavaScript">
      var fso     = new ActiveXObject("Scripting.FileSystemObject"),
         stdin   = fso.GetStandardStream(0),
         stdout  = fso.GetStandardStream(1),
         pos     = stdin.ReadLine().split(" "),
         winLeft = 0,
         winTop = 0;
      
      window.moveTo(pos[0],pos[1]);
      window.resizeTo(pos[2],pos[3]);
      
      document.title = "GOD of DREAMS Multiverse Online v1.0";
      document.body.innerHTML = stdin.ReadLine();
      
      var options=[], keyvalue=[];
      
      function checkbox(opt){
         keyvalue = opt.split("=");
         options[keyvalue[1]] = keyvalue[0];
      }
      
      function radiobox(opt){
         keyvalue = opt.split("=");
         options[keyvalue[0]] = keyvalue[1];
      }
      
      function textbox(opt){
         keyvalue = opt.split("=");
         options[keyvalue[0]] = keyvalue[1];
      }
      
      function StartNetAgent() {
      
         //Server UE4Editor-Cmd.exe "%UE4PROJECT%" LevelOne -server -game -log
         //Client UE4Editor-Cmd.exe "%UE4PROJECT%" open god.servegame.com:7777 -game -ResX=800 -ResY=600 -Windowed
         //OptKeys UE4Editor-Cmd.exe "%UE4PROJECT%" LevelOne?opt1=val1?opt2=val2
      
         var cmd = "StartNetAgent ";
         var optkey = "";
         var errorcode = 0;
         var errormsg = "";
      
         switch (options['NetRole']) {
             case "Server":
                 cmd += options['MapName'] + " -server -game -nosteam";
                 break;
             case "Host":
                 cmd += options['MapName'] + "?listen -game -nosteam";
                 break;
             case "Client":
                 cmd += "open " + options['ServerDNSPort'] + " -game";
                 break;        
         }
      
         if (options['Windowed']=='Options') {cmd += " -Windowed";}
      
         if (options['Log']=='Options') {cmd += " -log";}
      
         //Validation
         if (options['MapName'] == undefined ) {
             errorcode = 1;
             errormsg = "MapName " + options['MapName'] + ". Click or Type MapName Field to SET. " + errormsg;
         }
      
         if (errorcode>0) {
             window.alert( errormsg );
             return ("Error " + errormsg);
         }
      
         return cmd;
      }
      
      function SetEnvar(opt) {
         var cmd = "SetEnvar ";
         var varname = "";
         switch (opt)
         {
             case "EditorPath":
                 varname = "UE4EDITOR";
                 break;
             case "ProjectPath":
                 varname = "UE4PROJECT";
                 break;            
         }
         cmd += varname + " " + options[opt];
         return cmd;
      }
      
      function closeHTA(){
         var reply = StartNetAgent();
         stdout.WriteLine(reply);
         window.close();
      }
      
      function closeHTAwithVars(opt){
         var reply = SetEnvar(opt);
         stdout.WriteLine(reply);
         window.close();
      }
      
      function exitHTA(){
         var reply = "cancel";
         stdout.WriteLine(reply);
         window.close();
      }
      </SCRIPT>
      </HTML>
      GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

      Comment


        #33
        Community/Looking for Talent?/job Offerings...?

        Comment


          #34
          Originally posted by TechLord View Post


          Thanks for the recommendation Amelia_P,

          I updated my NVidia Drivers and installed GeForce Experience. Sadly, my video card is too old...

          Click image for larger version

Name:	mygeforce.PNG
Views:	1
Size:	215.5 KB
ID:	1658747

          Aw, so that's the reason your FPS is dropping. But, you can take advantage of it. If you develop a game with this specs, more players will be able to play your game (you know, not every player is a hardcore player tech head with a 10,000 machine to play games ^^)

          Comment


            #35
            Originally posted by Djinghis View Post
            Community/Looking for Talent?/job Offerings...?
            I'd love, but it's out of my budget... yet.

            Comment


              #36
              WordPress Online Subsystem API for HTTP (WooSaH)

              WordPress Online Subsystem API for HTTP - Wordpress/Woocoomerce Powered Online Subsystem Services for Games featuring User Authentication, Presence, Server Presence & Matchmaking, Friends, Tournaments, Store, Licenses.

              I could not locate an equivalent Console Command or Blueprint to get Dedicated Server IP & Port. So this feature will be part of WoOSAH (OSS) C++ Plugin.


              GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

              Comment


                #37

                "Voice of an Angel"
                Incorporating Text-to-Speech/Speech-to-Text Powered by Google WaveNet Technology.

                To be used in Story Narration, Dialogues, Voice Commands, and much more.
                GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

                Comment


                  #38
                  How to develop a FTPS/RPG MMO Sandbox single-handedly...
                  1. Incorporate Procedural Generation/AI Everywhere Chatbox/Dialog, 3D Content: Landscape, Architecture,: Generative Design, Animation, Music:1, Voice, Machine Learning for Bot Behaviors.
                  2. Outsource Content Creation to Players --> in-game Collaborative tools for rapid content assembly.

                  Last edited by TechLord; 10-03-2019, 02:53 AM.
                  GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

                  Comment


                    #39
                    Integrating Skeletal Mesh Merge Plugin to support performant mass customization in real-time.
                    GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

                    Comment


                      #40
                      Originally posted by Amelia_P View Post

                      I'd love, but it's out of my budget... yet.
                      I realize that one would ideally pay fellow developers as they work on a project for/with one, but I'm not convinced that model need always be applied. Assuming it can be agreed upon at the onset of a project, hungry devs looking to get their teeth wet can sink them into a small or medium-size project and agree to a share of all earnings from said project. Of course there's a risk of the end result not earning much, but ultimately the quality of the underlying game concept and the production of assets, etc., are what will determine the success of the game, and these are very much factors under the control of those responsible for their creation. Anyhow, clicked to these posts from another thread where TechLord had linked to it. Saw this comment, felt I should give my two cents, whatever that's worth.
                      "True individuality comes not through defiance but with indifference."

                      Comment


                        #41
                        Originally posted by Aquarian Rising View Post

                        I realize that one would ideally pay fellow developers as they work on a project for/with one, but I'm not convinced that model need always be applied. Assuming it can be agreed upon at the onset of a project, hungry devs looking to get their teeth wet can sink them into a small or medium-size project and agree to a share of all earnings from said project. Of course there's a risk of the end result not earning much, but ultimately the quality of the underlying game concept and the production of assets, etc., are what will determine the success of the game, and these are very much factors under the control of those responsible for their creation. Anyhow, clicked to these posts from another thread where TechLord had linked to it. Saw this comment, felt I should give my two cents, whatever that's worth.
                        It's extremely rare for that kind of project to ever work, even to get finished much less be any kind of success. There's too many problems, from lack of time to work on unpaid projects to lack of motivation to difficulty in getting good developers who would be interested in doing that, among many other things.
                        Also, you can make a good game that doesn't make any money. Some of success is just due to luck and timing.

                        Comment

                        Working...
                        X