Return to “Dev Logs”

Post

Re: [Adam] Thursday, February 15, 2018

#31
Talvieno wrote:
Fri Feb 16, 2018 3:36 pm
Damocles wrote:
Fri Feb 16, 2018 3:13 pm
Thats actually another interesting question: will the game have fixed saves, or will the game revolve around respawning at some save location, continuing with a default ship.
I actually dont like to have the option to save at any second (in a battle) and then have the game end on death.
It just translates any encounter into a repetitive trial and error (reload and play) to beat a specific situation. There is not deeper meaning in death, other than having to reload.
Games like GTA or Empyrion come to mind, that use a re spawn mechanic, I actually like that more.
Judging by what Josh has said, as well as Freelancer, Morrowind, and the prototype, I'm pretty sure LT is going to get a system where you can have multiple savestates. I don't know about quick loading and quick saving - I'm thinking those possibly won't happen, but I don't know for sure.

Are we going to have to have the "respect for players means letting them save game state when they want" discussion?
Post

Re: [Adam] Thursday, February 15, 2018

#32
Looks like we might. And if we are I'd like to start out by saying that as long as I have the option to continue playing after I die, without having to go back in time, I will be a happy traveler.
Spoiler:      SHOW
Ideal game:

Starts game, saves game whenever I want to, I die, able to continue playing as someone else. Exit game.
Next day, Load game from where I last left off, build huge business, get killed by pirates, play as one of my workers with only the ship and cargo permanently lost (unless I decide to reload a previous save).
Image
Post

Re: [Adam] Thursday, February 15, 2018

#34
Flatfingers wrote:
Sat Feb 17, 2018 1:09 am
Are we going to have to have the "respect for players means letting them save game state when they want" discussion?
All I know is that Josh hasn't ever shown any interest in quicksaves. :P I could be wrong, though: they're not very functionally different from being able to save-as-filename whenever you want - it just removes the extra steps.
Have a question? Send me a PM! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: [Adam] Thursday, February 15, 2018

#36
I dug around for a bit and found this:
JoshParnell wrote:
Wed Dec 12, 2012 5:25 am
It is optional. Savegames will work like Elder Scrolls in normal mode. You can quicksave, there will be autosaves, etc. In "hardcore" mode, your save gets deleted when you die :( This is the meaning of perma-death! And maybe I will implement some trickery so that it knows if you try to copy/paste a savegame that was made with hardcore mode. Bahahah. Evil Josh.
So it seems like he's interested in them after all. :) That was posted while the Kickstarter was still going, too. I'll ask him at some point if this is still part of his plans, and if so, add it to the features list.
Have a question? Send me a PM! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: [Adam] Thursday, February 15, 2018

#37
FormalMoss wrote:
Fri Feb 16, 2018 5:08 pm
...
There's some cool information in here, thanks for the detailed post. I didn't know there was a difference between :: and rem

FormalMoss wrote:
Fri Feb 16, 2018 5:08 pm

for f "tokens=* delims= " %%I IN ('do a system command')


or


for /f %%I IN (LIST.txt) do (
call :PROCESS %%I
)
The problem here is the 'real time' requirement. Using a for loop in the first batch script waits for the command to finish before processing the output. Using an intermediate text file still appears to cause the second batch file to wait until the command finishes. Also, as an efficiency minded programmer, I find it absurd that we have to drag file IO into a trivial task that should be done in memory. I intentionally avoided even trying that solution because I wanted to see if it was possible to do this 'the right way' with cmd.exe.

And no solution to this specific problems deals with that fact the batch is incredibly unintuitive (to me personally, at least) and you have little to no visibility to be able to debug when things go wrong. Like above when using the intermediate text file, why does it cause the chain of events to serialize? Is it because the of the use of the for command waiting for and EOF marker in the file? Is it because the file isn't actually written to disk until the command is complete? I have no reasonable way to understand what is happening other than Google searching.

On a side note, while testing the intermediate file solution and timing the output I realized that somewhere along the lines I broke the asynchronous part of the solution. I suspected I did because it felt like it was hanging when invoking the compiler. I swore if I had to touch it again I was going to rewrite the whole thing in another language. Time to brush up on Python I suppose.
Post

Re: [Adam] Thursday, February 15, 2018

#39
:) The mailing list Batchworld has a wealth of knowledge, and it's where I learnt most of what I know, the rest is all about being creative. :D
This guy passed away last year, and feel his loss, even though I never met him.. have a look through his posts, ignore Google, check out foxidrive
AdamByrd wrote:
Sat Feb 17, 2018 9:50 am

The problem here is the 'real time' requirement. Using a for loop in the first batch script waits for the command to finish before processing the output.


TL;DR
Adam, use my code, mess around with it, go check out foxidrive's scripts, join Batchworld and ask them before you do another Google. Please? **HUGz**

Actually, there is a way to do this.

Just a note regarding GOTO.
I limit its use with strict rules, and as such, prefer the CALL statement to implement a function based system to all my Batch scripts (Have a look through the python link in my sig, both for getting back into Python ;) and I think I have a DOS script somewhere in there, otherwise it was a PM to Silverware).
The other joy is to liberally use the START function when I want to perform multiple simultaneous functions, with no waiting around, at the same time.
NB, you have to call the function from outside a FOR loop, otherwise the information you want to use gets messed up, big time, and you'll start shedding hair!




@echo off
setlocal

:: if this doesn't work, just comment out all
:: three lines of this for loop..
for /L %%I IN (1,1,3) do (
call :CREATEREPORT %%I
)

:: and remove the :: from these 3 lines
:: set REPORT1=%CD%\REPORT-1.TXT
:: set REPORT2=%CD%\REPORT-2.TXT
:: set REPORT3=%CD%\REPORT-3.TXT

set REPORT=%CD%\REPORT.TXT
break > %REPORT%

echo.
echo You should have 4x report files:
dir REPORT*.TXT /b

call :WAIT 5

echo hi > %CD%\LIST-HI.TXT
set LIST=%CD%\LIST-HI.TXT

for /f %%J IN (%LIST%) do (
call :PROCESS %%J
)
copy %REPORT1%+%REPORT2%+%REPORT3% %REPORT%
goto :END

::_______________________________
:: Start of FUNCTIONS

:CREATEREPORT
set NUM=%1
break > REPORT-%NUM%.TXT
set REPORT%NUM% = REPORT-%NUM%.TXT
goto :EOF

:WAIT
set WAITTIME=%1
ping -n %WAITTIME% 127.0.0.1 > NUL
goto :EOF

:PROCESS
set VAR1=%1
start call :SCRIPT1 %VAR1%
start call :SCRIPT2 %VAR1%
start call :SCRIPT3 %VAR1%
goto :EOF

:SCRIPT1
:: NB create a lock file
echo %DATE% - %TIME% >> %REPORT1%
echo %1 - SCRIPT1 >> %REPORT1%
echo. >> %REPORT1%
:: NB delete the lock file
goto :EOF

:SCRIPT2
:: NB create a lock file
echo %DATE% - %TIME% >> %REPORT2%
echo %1 - SCRIPT2 >> %REPORT2%
echo. >> %REPORT2%
:: NB delete the lock file
goto :EOF

:SCRIPT3
:: NB create a lock file
echo %DATE% - %TIME% >> %REPORT3%
echo %1 - SCRIPT3 >> %REPORT3%
echo. >> %REPORT3%
:: NB delete the lock file
goto :EOF

:: End of FUNCTIONS
::_______________________________


:END
:: echo.
:: echo Waiting 2 seconds..
:: call :WAIT 2
start %REPORT%
endlocal




Ok, so I wrote the above script from my head, so completely untested. But do create an empty directory and paste into a new batch file in the new dir.
All it does is create a list file, with hi in it, then creates 3 report files, also with hi in it, then merges them together.
At the end it opens the REPORT.Txt file and it should show

hi
hi
hi

But the exercise here is to show how the start statement should initiate the SCRIPT "function", not wait for a response and continue to the next, and the next.

Now, be careful here. Timing is of the essence, which is why I have the "wait 2 seconds" at the end.. you may find that REPORT only has one entry, but the SCRIPT report files are fully populated.. this may serve your purposes, by breaking down what you need into individual scripts, and have a fire-and-forget function.

Ive added the date time to each of the reports now, which could help understand the process flow.
I think goto :EOF is a way to tell DOS that you want to return to the point where the function was called from.
In olde DOS days, the batch interpreter would jump to the end of the script (end of file), realise it still had a call statement flagged, and return processing to the end of the call statement, and resume whatever came next.
Olde DOS used goto statements everywhere, which is why I include meaningful names for my "functions" and include as much info as I can when testing/debugging.


P. S. I've edited all this on my phone, so please excuse any typos, and i think I have a rogue icode statement somewhere, I'll check back later as driving up North mow to test an emtb in Rostrevor (@Naed :D)

P. P. S.
Be wary of the difference between;
> (overwrite, i use to create a new file)
and
>> (appends to an existing file, or adds to a new file)
Also check out this post on how to create a zero sized file (for reporting), and search for "foxidrive"..
break > newfile.txt
.. is astounding, I only knew of a crazy thing using NUL (I'll post it when I find it)
The reason is that Windows sometimes doesn't know if you're creating a file or a directory. So create a null file, then link that with a report variable, less chance of errors, and then no requirement to use a single > and lose those important reports :D

P. P. P. S.
Be wary of the indexer you use in FOR loops.
You'll notice that I use %%I for creating reports, and %%J for the main process loop.
Just something I was taught by foxidrive, as DOS holds onto variables until you either exit the program (hence why I use setlocal and endlocal, so they aren't kept in the DOS window afterwards) or you explicitly clear it by stating;
REPORT1=
It also reduces the potential of wtf moments, when a previous function used a different type of info to the one you want to use..
createreport uses /L for integers
process uses /F for strings/ text


oh my word, Ive been editing, reediting and adding new code and functionality for the last hour.. this is mad!
Adam! What hae you started! :D
It's all good, I like helping people (anyone tbh), as I tend to learn something new in the process :)
YAY PYTHON \o/

In Josh We Trust
-=326.3827=-
Post

Re: [Adam] Thursday, February 15, 2018

#40
Talvieno wrote:
Sat Feb 17, 2018 8:57 am
I dug around for a bit and found this:
JoshParnell wrote:
Wed Dec 12, 2012 5:25 am
It is optional. Savegames will work like Elder Scrolls in normal mode. You can quicksave, there will be autosaves, etc. In "hardcore" mode, your save gets deleted when you die :( This is the meaning of perma-death! And maybe I will implement some trickery so that it knows if you try to copy/paste a savegame that was made with hardcore mode. Bahahah. Evil Josh.
So it seems like he's interested in them after all. :) That was posted while the Kickstarter was still going, too. I'll ask him at some point if this is still part of his plans, and if so, add it to the features list.
I can't overstate my interest in confirming this. It really is a major contributor to my being able to enjoy most games I play.
Post

Re: [Adam] Thursday, February 15, 2018

#41
and a shoutout to Frontier Pilot Simulator because it seems to be input handling week
Spoiler:      SHOW
Image
configurable dead zone, zero point, sensitivity and inversion options individually for any and all axes

thats how inputs are handled properly
(the only improvement would be adaptable input-output mapping curves)

the interface also provides direct graphical feedback as to how the output behaves with the current input state.
i can see how the sliders change the behaviour of the mapping function.

its great :D


edit: because i forgot yesterday:
runtime autodetect of removed/added input devices
Last edited by Cornflakes_91 on Mon Feb 19, 2018 4:05 am, edited 1 time in total.
Post

Re: [Adam] Thursday, February 15, 2018

#44
Cornflakes_91 wrote:
Sun Feb 18, 2018 7:08 pm
DoctorGester wrote:
Sun Feb 18, 2018 6:53 pm
Reading on your ramblings about shell scripts and exceptions, how excited you are about Jai on a scale from 1 to 10?
as its not available to the public theres not much to be excited about but promises :ghost:
What is Jai? I did a Google and it came back with Indian stuff?!
YAY PYTHON \o/

In Josh We Trust
-=326.3827=-

Online Now

Users browsing this forum: No registered users and 4 guests

cron