Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / Ideas for Upgrade 6

Author
Message
Fallout
23
Years of Service
User Offline
Joined: 1st Sep 2002
Location: Basingstoke, England
Posted: 31st Aug 2003 00:04
Hell yes! polygon to polygon collision! Bring it on! That's what stopped me creating my greatest game of all time ...... uhh ... or what could've been my greatest game of all time, maybe.

Insiiiiiiiiiiiiiiiiiiiiiiiide!
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 31st Aug 2003 00:16 Edited at: 31st Aug 2003 00:16
Raven - interesting ideas, but I think that there are some more immediate language requirements which need to be addressed, such as an OPTION EXPLICIT compiler directive.

Actually, the OPTION EXPLICIT part would probably have to be a checkbox under Project Manager.

And, dare I say it, the debugger could use some work.

Easily Confused
23
Years of Service
User Offline
Joined: 22nd Oct 2002
Location: U.K. Earth. (turn right at Venus)
Posted: 31st Aug 2003 00:25
Forgive my ignorance, but I'm not familiar with the terms "Node Trees & Portals", what are they and why/how would they make our programs faster?

Programming anything is an art, and you can't rush art.
Unless your name is Bob Ross, then you can do it in thirty minutes.
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 31st Aug 2003 01:38
Short explanation:

They are a way of removing polys which are not visible from the scene to speed up the framerate.

Long explanation:

Node Trees basically means dividing your world up into equal-sized cubic spaces or "nodes". By means of various checks and tests, it is possible to find out which nodes are visible from any given node, and which nodes are not visible from that node (because they are hidden by other nodes in front).

DBP checks to see which node the camera is currently in, then calculates the nodes which are visible from that particular node, removing ones which are obscured. For example, if you have nodes A and B, and the camera is in node A:

A
--
B

where there is a wall completely covering the side of the node facing node B, DBP calculates that anything in node B will not be visible, therefore there is no need to draw it.

By only passing the polys in the visible nodes to the renderer, it is possible to drastically reduce the polycount of a scene. Less polys = more speed.

Easily Confused
23
Years of Service
User Offline
Joined: 22nd Oct 2002
Location: U.K. Earth. (turn right at Venus)
Posted: 31st Aug 2003 04:01 Edited at: 31st Aug 2003 04:02
Interesting

Is this technique only for BSP or will we be able to use this for any 3D environment?

If the latter, then VERY interesting

Programming anything is an art, and you can't rush art.
Unless your name is Bob Ross, then you can do it in thirty minutes.
Terabyte
23
Years of Service
User Offline
Joined: 28th Dec 2002
Location: UK
Posted: 31st Aug 2003 04:58
BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG! BRING BACK FOG!


What the hell happened to the brilliant dark basic fog...

dbpro fog looks crap.

If you look across diaganals you can see clearly. and if you look on one of the adjacent diaganals you cant see anything.

the fog in dark basic pro just isnt even.
quite frankly it sucks and its crap!
i used matedit and put fog on. and remebered how decent fog was in db. some of you might disagree so couldnt we have an option like

Decent fog on
and
crap fog on
(joke)

so.... why what happed whats gonna happen what can we do

>>TerraByte. Putting the Byte back into Terragramming<< If my post has less than 20 typos then it wasnt me who wrote it!
Luke
23
Years of Service
User Offline
Joined: 29th Aug 2002
Location: United States
Posted: 31st Aug 2003 05:24
arrays should have no limit to the amount of dimensions.

the rotate object command needs to automatically wrap the angles, you have to do that nearly everytime you use the command anyway.

these are some commands I'd like to see eventually in Darkbasicpro, even if they can't get into U6:

show matrix
hide matrix

save matrix(like an object)
load matrix(like an object)

make matrix from mesh
make mesh from matrix

glow object(like using a pixel shader to brighten the area / pixels around the object, so there is a glow effect.

blur object(with a frame amount of blur)

free flight commands for limbs

and, of course, the particle commands should be fixed and with more commands.

But I'd say focus mainly on fixing bugs until new commands, like the ones I mentioned, are added.

www.CyberLuke.com
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 31st Aug 2003 13:46
I guess DBP just uses the standard DX commands for fog - which changed from DX7 to DX8 perhaps?

MicroMan
22
Years of Service
User Offline
Joined: 19th Aug 2003
Location: Stockholm, Sweden
Posted: 31st Aug 2003 14:32
I'd like a better TYPEDEF structure with the possibility of arrays inside the typedefs. That's high on my wishlist. Also an unequivocal GLOBAL command -- the one that now exists doesn't seem to work...

I'd also like a clearer SUB structure. Both QBasic and Visual Basic has it, so there's precedence for it in the language. With SUBs the code would be clearer and could be broken down into more manageable chunks -- and you could get it out of the way when you're done with it.

I know you can do this with the LABEL: return stuff, but the esthetic in me require a proper SUB -- ENDSUB structure. That's my wishlist, but I don't expect them to be in the next upgrade.

-----
They SAID that given enough time a million monkeys with typewriters could recreate the collected works of William Shakespeare... Internet sure proved them wrong.
-----
DarkRevolution
22
Years of Service
User Offline
Joined: 31st Aug 2003
Location: CyberSpace
Posted: 31st Aug 2003 17:06
What i would like is an option to reduse the strain put on the processor, if you want to make a background prog you cannt because dbp programs use all of the processor

Welcome to my Revolution
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 31st Aug 2003 17:13
Global works fine for me. Also, a sub is just a function that doesn't return a value, and we have that already.

I'd like to also see 'pass by reference' for variables, types and arrays.
Rye
23
Years of Service
User Offline
Joined: 30th May 2003
Location: United Kingdom, Blackrod
Posted: 31st Aug 2003 17:13
There have been a lot of good ideas that i hope will be put into an upgrade even if it is Upgrade 1000. I didnt think there would be this many replies.

Its been an interesting read!
Duffer
23
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 31st Aug 2003 19:34

Glad to hear that Save Object is penned in for Upgrade 6 and that BOTH Save Object and Append Object are scheduled to work with .dbo.

Couple that with the new Vertex and CSG stuff and the saddos amongst us can write the 3D Object Designer / Animator that we've always wanted to...

One or two basic 3D Object Animation Frame commands (saving a new frame, copying a frame from one Object to another?) would go down well too...

the_winch
23
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 31st Aug 2003 20:04
I would like to see a cbaracter that could be used like this
position object 1,%,%+0.1,%
sprite 1,x#,y#,%
insted of typing out
position object 1,object posision x(1),object position y(1)+0.1,object position z(1)
sprite 1,x#,y#,sprite image(1)
The character that did it could be any unused one.
Another job for a pre-processor I think.
ZomBfied
23
Years of Service
User Offline
Joined: 2nd Oct 2002
Location:
Posted: 31st Aug 2003 20:37
And how would you know when you've finished one case statement (and you dont want it to fall through to the next one), without an endcase ?

Well VB seems to work fine without Endcase. When you hit a Case Statement or an ENDSELECT there's your endcase. Actually it's really no big deal. I'm just lazy.
ZomBfied
23
Years of Service
User Offline
Joined: 2nd Oct 2002
Location:
Posted: 31st Aug 2003 20:41
position object 1,%,%+0.1,%??

Hell yeah that would rule.
Duffer
23
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 31st Aug 2003 22:46
Some sort of cross-over between 3d object commands and 3d matrix commands and/or terrain commands would be neat now that we have the one internal format...

why cant matrices become more like 3d objects? and as the chap above says, why not convert object to matrix and vice versa...

also, what about effects for matrices ie. ripple, wave, sea, splash, general water etc - or even for objects... after all, we have the snow and fire particles...

and what everyone else above has said about arrays and UDTs
jrowe
23
Years of Service
User Offline
Joined: 12th Oct 2002
Location: Here
Posted: 31st Aug 2003 23:11
I'd just like them to get rid of matrices and finishe LOD terrains.

For Fathers and Sons who enjoy wholy spirits.
http://www.tinnedhead.tk
http://www.exor-mk1.tk
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 31st Aug 2003 23:37
Quote: "Some sort of cross-over between 3d object commands and 3d matrix commands and/or terrain commands would be neat now that we have the one internal format..."


There was a big debate about that on DBDN recently. Everyone agreed that it would be good if everything was an object, so bump mapping could be used on a matrix for example. The tricky bit was converting between the old and new systems - the suggestions being:

Handles - Like Blitz (myobj=CREATE MATRIX())

Association - (ASSOCIATE OBJECT WITH MATRIX, applying bump mapping to the associated object would make the matrix be bump mapped)

Conversion - CONVERT MATRIX TO OBJECT, turn a matrix into an object.

Duffer
23
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 1st Sep 2003 00:39
@ Rob K,

what would be excellent would be if you could texture and tinker with the texture on each of the 'tiles' on the 'matrix' individually - even if it wasnt then a matrix - if you see what I mean...

Conversion is probably neatest - would it slow it down chronically to have all the 'tiles' as limbs - or will this new vertex level stuff solve our probs?
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 1st Sep 2003 01:26
I think you misunderstand how it would work.

Basically, if matrices were objects, you could use the standard object commands on them, PLUS the existing matrix commands like GET GROUND HEIGHT() and so on.

IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 1st Sep 2003 02:34
Just to put everyones mind at rest, a very large part of the discussion was how to do all this without breaking any existing code.

There were a lot of good points there ... the best were mine of course
Rwilson
23
Years of Service
User Offline
Joined: 19th May 2003
Location: United States
Posted: 1st Sep 2003 05:46
What I Would like to see is the ability to return multiple values from a single function. Man oh MAN would that shrink some of my code! I'm running 10 functions for something that could easily be crammed into 2 or 3 funcs. I had heard it mentioned that this was planned for Update 6, but just making sure someone mentioned it.

Beyond that, this node-tree stuff sounds nice, and bug fixes are always welcomed.
MicroMan
22
Years of Service
User Offline
Joined: 19th Aug 2003
Location: Stockholm, Sweden
Posted: 1st Sep 2003 08:04
Quote: "
Global works fine for me. Also, a sub is just a function that doesn't return a value, and we have that already.
"


GLOBAL doesn't work for me, for some reason. I don't know if it's because of my setup, or because I'm doing something wrong --so I won't start screaming "Bug!".

In any case, if I declare a variable global in the main program, it doesn't become global.

As regards FUNCTIONS/SUBS, it's not a disaster if I don't get my subs, but I still want them because I like them. Gosubs are too reminiscent of my spaghetti-code days.

-----
They SAID that given enough time a million monkeys with typewriters could recreate the collected works of William Shakespeare... Internet sure proved them wrong.
-----
MicroMan
22
Years of Service
User Offline
Joined: 19th Aug 2003
Location: Stockholm, Sweden
Posted: 1st Sep 2003 08:15
Actually, there's two more items on my wishlist that I realized now. I want to new core commands: KEYDOWN() and MOUSEKEYDOWN() and JOYSTICKKEYDOWN() to check whether a user is holding a keyboard key, a mousekey or a joystick key pressed.

That would be good for, for example, an FPS with a sniper rifle, or for a paint program, or for anything.

-----
They SAID that given enough time a million monkeys with typewriters could recreate the collected works of William Shakespeare... Internet sure proved them wrong.
-----
Moriar
23
Years of Service
User Offline
Joined: 26th Dec 2002
Location:
Posted: 1st Sep 2003 09:07
How about fixing the help! Right now the help system sucks. The descriptions are usually too short, and the examples links don't point to any examples of the command half the time. There needs to be a serious update to the help. If the help was as indepth as MSDN then there would not be half of the postings for help that exist right now and we could concentrate on writing some serious applications. That's all I want! FIX THE HELP!
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 1st Sep 2003 12:52
Quote: "What I Would like to see is the ability to return multiple values from a single function"


ie. the ability to pass UDTs out of functions would be very handy.

Currently though, you can easily code around this my having a global array called FunctionParams() with about 10 indicies. Create functions to push values into the array PushResult(result), and functions to get the values from the array GetResult().



Duffer
23
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 1st Sep 2003 22:16
@ RobK,

See what you were saying now - sounds good - will become a believer when Save Object and Append Object *.dbo are introduced in Upgrade 6...
greenlig
22
Years of Service
User Offline
Joined: 30th Aug 2003
Location: Melbourne
Posted: 2nd Sep 2003 07:46
I agree with moriar

I got best and fairest for soccer WHOOHOOO!
DMXtra
23
Years of Service
User Offline
Joined: 28th Aug 2002
Location: United States
Posted: 2nd Sep 2003 13:31
The help is currently being overhauled according to Rich. I don't know when its going to be finished, just that its being worked on in many formats and being updated with examples and all that.

Saving/Loading DBO objects are still a part of Upgrade 6, unless Lee changes his mind, it should be in there. I will update you if things change, but thats what he told me.

Dark Basic Pro - The Bedroom Coder's Language of choice for the 21st Century.
AsCii
22
Years of Service
User Offline
Joined: 2nd Sep 2003
Location:
Posted: 6th Sep 2003 17:14
First of all,I'm sure that the endcase command is not at all useful. Anyone remember QuickBasic (any ver of it).It never had a command like that.If that compiler can cope with that, I'm 100% sure that DBPro can do the same.
Now, as for suggestions.
What I'd like to see in further DBP vers is some further control over FTP. For example I'd like to be able to have random file access when downloading a file (like Download Managers do). Also, I'd like to be able to manipulate file b4 saving to disk. That means download and save to memory.
Also, I'd like to see some streaming support. I'm sure there will be ppl who'll want to add voice communication between players in a multiplayer game (Voice-Over-IP)
Furthermore what I consider MOST important is the upgrade of the Help System. I'm sorry to say it is pathetic . There should be further explanation over some commands(especially on the 3DMaths commands). There should be a link directing to similar/useful commands (i.e. In the UPPER$ command, there should be a link to the LOWER$ command). Finally there should be explanation of command group (I don't know how else to say it...) i.e.When I open help for the if command block, there is nowhere an explanation for the full syntax of the block.(I hope I made it clear what I wanna say...)
There are other things as well but u guys above covered me

cheers,
AsCii
AsCii
22
Years of Service
User Offline
Joined: 2nd Sep 2003
Location:
Posted: 6th Sep 2003 17:41
Ah,I forgot. I'd also like to see a function declared as user-defined. I mean that for example I have the type:

TYPE coordinates
x as integer
y as integer
endtype

wanting the func to return a value of type coordinates

Now, how about having the support of unions or classes(like some features of C++) I mean giving the DBPro some object oriented features.
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 6th Sep 2003 19:02
Quote: "Furthermore what I consider MOST important is the upgrade of the Help System."


I think a semi-online help system would be even better, where users could submit their own comments and examples.

spooky
23
Years of Service
User Offline
Joined: 30th Aug 2002
Location: United Kingdom
Posted: 6th Sep 2003 19:12
Good idea Rob K, I am currently learning PHP and the main help file you download also has tons of user submitted snippets for each command and has really helped me. In fact PHP's helpfile which is a simple compiled CHM file is probably the best help file I have ever used.

The programmer formerly known as sonic
kevinthekangaroo
23
Years of Service
User Offline
Joined: 4th Jun 2003
Location:
Posted: 6th Sep 2003 19:22
A good function to have would be the "set camera to follow" command to be updated, another flag to calculate if the camera is colliding with an actual 3D object or bsp.
CattleRustler
Retired Moderator
22
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 6th Sep 2003 20:25 Edited at: 6th Sep 2003 20:35
-Option Explicit
-Option Strict
-Intellisense
-regular functions like vb

intVar1=myfunc(9,"s")
Function MyFunc(x as integer, y as string)as integer
...do whatever...
End Function

where the function name IS the return, not just deciding to return any variable - that to me makes no sense and is unreadable

-With-End With would be nice too

With MyType
.prop1=0
.prop2=10
.prop3="Joe"
End with

my 2 cents

EDIT: also some sense of Object Collections would be great or some array of object types that we could access like

intLoop as integer
For intLoop=0 to SoundObjectCount-1
Delete SoundObject(intLoop)
Next intLoop

but for all dbp objects, so we would never need to now specif array indexes, we could use counts and item index values to access things.

-YES THE HELP how did I forget
-and of course all BSP/COLLISION bugs

-RUST-
M00NSHiNE
22
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 6th Sep 2003 23:39
Blending bone animations so there can be third person mouselook systems, portal/nodetree support and a method of scripting (for basic A.I., triggers and the like).

"It's amazin' what you can do with a computer and access to t'internet"
orv
22
Years of Service
User Offline
Joined: 9th Sep 2003
Location: Chicago, IL
Posted: 11th Sep 2003 01:52
ENDCASE is redundant, but I can see how it makes it easier to parse the code for the compiler.
In VB there is no ENDCASE or equiv.

Sample valid Select Case in VB:

Select Case n
Case 99
Case 100, 120, 333
Case 0 To 98
Case Else
End Select

It sure would be nice to have this syntax in DB Pro but I'm sure there's alot of bigger fish to fry. I understand VB's dev team is or was over 3000 developers!

As far as how the parser would check when to stop running the code after the Case statement....
when 1) we run across another case statement (unless their's nesting... this is where it gets sticky)
2) when we hit the End Select or ENDSELECT in DB statement.
Rob K
Retired Moderator
23
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 11th Sep 2003 02:10
@CattleRustler

Intellisense is an editor feature. TGC don't write the editor, and don't have access to the source code I believe.

Quote: "where the function name IS the return, not just deciding to return any variable - that to me makes no sense and is unreadable"


That depends on how you code.

Personally I always put the return value into a variable called "result", usually prefixed with the type.

@Moonshine

Portals & Nodetrees are already in for U6

To further my comment about help systems earlier, Rich has already put some time into that, but he needs volunteers to help enter commands into the database.

Dreamora
23
Years of Service
User Offline
Joined: 20th Sep 2002
Location: Switzerland
Posted: 11th Sep 2003 02:51 Edited at: 11th Sep 2003 02:52
One thing I would be really happy to see would be real pointers so it would become possible to make own UDTs like Bin Trees, Fibonacci Heaps and other things that are needed to make efficient algorithms, since I hate nothing more than have a slow programm just because DBP is to stupid to accept UDTs with list-like structures in.
Other possibility would be allowing arrays in userdefined types *with the capability of making them to lin lists/stack/queue*

Example:

Type Node
left as *Node
right as *Node
value as integer
data as dword rem this is just a Ptr to a memblock for dynamic datatype
ENDTYPE

the * just tells DBP that it must NOT try to preprocess left and right (just a pointer to a variable of TYPE Node, at the moment of compiling with no adress of course). because it is doing exactly this atm which is causing dataexplosion and compiler crash.

The other possiblity would be somehow through arrays / linlists, although I'm not sure how this should work due to the restrictions of DBP.


PS: Just before I forget: don't come over with "stupid" workarounds like right/left as memblock pointer to and arranging the whole structure as a memblock chaos, because memblocks are damned slow, so this would be a performance overkill.
TheOneRing
22
Years of Service
User Offline
Joined: 28th Aug 2003
Location: Right here.
Posted: 11th Sep 2003 03:16
1. Arrays in UDTs
2. Return UDTs from functions
3. The ability to reposition the file pointer while reading a file (unless I missed something in the docs)
4. Bug fixes
5. Better help.
OSX Using Happy Dude
22
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 11th Sep 2003 14:41
Address of variables...


Avatar & Logo by Indi. Come to the UK DBPro Convention in Chichester
Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 11th Sep 2003 18:25
Like I said in my other post (I don't know if anyone has acknowledged it yet), a command like intersect object, but instead of returning the distance from point one to the intersection, it could return the normal somehow (as angles or coordinates). Maybe INTERSECT OBJECT NORMAL(). It would be very handy for sliding collision, deflection of objects off of walls, placing bullet hole plains flat to a wall, and I'm sure quite a few other things I haven't thought of.

I know 1 other person at least would like this command also.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
OSX Using Happy Dude
22
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 11th Sep 2003 18:36
Might be worth e-mailing Lee about it now...


Avatar & Logo by Indi. Come to the UK DBPro Convention in Chichester
Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 11th Sep 2003 19:19 Edited at: 11th Sep 2003 20:04
Gd idea. I've never had to mail lee, just [email protected]?

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
OSX Using Happy Dude
22
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 11th Sep 2003 19:22
That should be it.


Avatar & Logo by Indi. Come to the UK DBPro Convention in Chichester
Wik
23
Years of Service
User Offline
Joined: 21st May 2003
Location: CT, United States
Posted: 11th Sep 2003 23:49
they should add a command to disable dx 9.0b features so u could make it 8.1 compatible even if u lost some features

The rock has rolled!
OSX Using Happy Dude
22
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 12th Sep 2003 01:16
No chance of that, I'm afraid.


Avatar & Logo by Indi. Come to the UK DBPro Convention in Chichester
KOL
22
Years of Service
User Offline
Joined: 10th Aug 2003
Location:
Posted: 12th Sep 2003 03:13
How about a more discriptive error message:
'Runtime Error 7008 - Object does not exist at line 239'
sometimes dosen't help and I have to add more code to find out what's going on.
How About:
'Runtime Error 7008 - Object ##### does not exist at line 239'
Or
'Runtime Error 7008 - Object <undefined> does not exist at line 239'?
KOL
22
Years of Service
User Offline
Joined: 10th Aug 2003
Location:
Posted: 12th Sep 2003 03:26
Here's another:
A real throw back to previous basics would be the use of the ? as a Print command.
Hell, even Timex Synclare understood that...
Hell, even a Vic-20 understood that...
Hell, even a C=64 understood that...
Hell, even GW-Basic understood that...
Hell, even Amiga Basic understood that...
Hell, even VB 6.0 understands that...
Well, DB dosen't understand that!

Login to post a reply

Server time is: 2026-07-26 06:34:44
Your offset time is: 2026-07-26 06:34:44