Current work.

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Current work.

Post by nemerle » Sat Aug 19, 2017 1:43 pm

Current agenda
  • since network layer was fixed, handle more user command packets
  • expose more server functionality to LUA
  • move parts of model and graph loading to common directory and use it when loading a map.

Since I've got back to working on SEGS server part, I thought that some kind of work-log might be interesting :)

2017.Aug.12-20:
  • User command packets were handled improperly, only InputEvents are followed by Command packets ( old code was assuming any packet could be
  • Fix server networking layer to be less sloppy ( bit arrays were badly aligned + other things )
  • Convert ServerEndpoint class from template based to virtual
  • Throttle packet resends ( based on last-send-time, maybe link ping?)
  • Add reliability flag to packets ( only reliable packets are re-sent )
  • Add handling skeleton for the ChatDividerMoved command
2017.Aug.21-27:
  • Start implementing 'physics' ( On the servers side this will require map loading/collision detection/reading surface properties) (1)
  • Changed the entity update time calculation
  • Worked on more map loading components.
2017.Aug.28-Sep-16:
  • Made some progress in implementing the MapViewer
  • Spent too much time twiddling with Lutefisk3D codebase.
2017.Sep.17-Oct.13
  • Much work have been done on MapViewer
  • Integrated LUA scripting into the MapServer
  • Added ability to run arbitrary LUA code from the client
  • Rewritten large parts of network layer to properly handle various network conditions, and close inactive client links
(1) - This has to follow the client side physics as close as possible to reduce desynchronization.
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
broxen
Posts: 62
Joined: Tue Jun 07, 2016 8:26 am
Location: USA
Contact:

Re: Current work.

Post by broxen » Tue Aug 22, 2017 6:19 am

Do you have a patreon or Chip-in account?
-broxen

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Re: Current work.

Post by nemerle » Tue Aug 22, 2017 7:28 am

Nope, neither patreon nor chip-in :)
Never thought I'd need one :P

2017.Aug.21-27:
  • Start implementing 'physics' ( On the servers side this will require map loading/collision detection/reading surface properties) (1)
(1) - This has to follow the client side physics as close as possible to reduce desynchronization.
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
broxen
Posts: 62
Joined: Tue Jun 07, 2016 8:26 am
Location: USA
Contact:

Re: Current work.

Post by broxen » Tue Aug 22, 2017 10:25 pm

Can I PayPal you a thank you for your efforts? Send me a PM

I don't have the time or skillset to do what you're doing, but I can throw some sheckles your way if you'll let me.
-broxen

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Re: Current work.

Post by nemerle » Wed Aug 23, 2017 6:43 pm

I might've fixed time calculation ( or broken it more :P )

Seems the server should send the simulation frame-time duration ( in ms *30 * 100, why *30 ? ¯\_(ツ)_/¯ ) instead of monotonically increasing abs_time as the name of client-side variable suggested.
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Re: Current work.

Post by nemerle » Thu Aug 24, 2017 8:07 pm

Today I'm working on lutefisk3d based map/model viewer, since:
  • player physics requires proper timing and it needs->
  • collision resolution, which in turn needs->
  • implementing the map loading needs->
  • loading scene files needs->
  • loading group files needs->
  • loading models and properly building BVH ( bounding volume hierarchy ) .
And to check all that I need some way of visually inspecting loaded/constructed stuff :)
Right now I have a 'working' mesh loader
A hedge... nay a veritable shrubbery from the past
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Re: Current work.

Post by nemerle » Sat Aug 26, 2017 7:21 pm

Well, today I've fought with model importer, only to learn that the original CoH models were happily broken ( my code of course is perfect :P )

Basically some models have 'triangles' that look like this in exports:

Code: Select all

...
f 97 98 98
f 99 99 100
...
And triangle with 2 same vertices is not a triangle at all :/

Anyway I've added some initial code that colorizes the mesh according to collision info:
Still needs work, but it is a bridge alright
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
broxen
Posts: 62
Joined: Tue Jun 07, 2016 8:26 am
Location: USA
Contact:

Re: Current work.

Post by broxen » Sun Aug 27, 2017 5:52 pm

Awesome progress. Thanks for posting these updates! You rock.
-broxen

User avatar
nemerle
Posts: 397
Joined: Thu Jan 10, 2013 3:40 pm

Re: Current work.

Post by nemerle » Wed Aug 30, 2017 6:55 pm

Since I'm planning on making a map loading into something like a step-by-step tutorial, I've been preparing some preliminary things.

Mainly working on lutefisk3d, to get it to somewhat non-broken state on windows :)

Overall plan is to:
  • Setup ( download and install all prerequisites, including Qt/QtCreator/Segs/Lutefisk3d )
  • Show how to create a simplistic Lutefisk3d based project ( based on Sample code from the engine )
  • Show how to integrate part of SEGS code into the project ( bin loader/support )
  • Explain loaded map format step-by-step
  • Show how to visualize loaded map elements ( either to the leaves of map scenegraph, or to bounding boxes of the models bound to these leaves, we'll see)
After that entertaining and useful diversion I'm going to work on collision detection based on the loaded map scenegraph.
"Ich was in one sumere dale,
in one suthe diyhele hale,
iherde ich holde grete tale
an hule and one niyhtingale."

User avatar
broxen
Posts: 62
Joined: Tue Jun 07, 2016 8:26 am
Location: USA
Contact:

Re: Current work.

Post by broxen » Thu Aug 31, 2017 4:07 pm

nemerle wrote:
Sat Aug 26, 2017 7:21 pm
Basically some models have 'triangles' that look like this in exports:

Code: Select all

...
f 97 98 98
f 99 99 100
...
And triangle with 2 same vertices is not a triangle at all :/
I'm a total noob, so forgive me if I'm failing to comprehend something basic, but doesn't your example describe two unique vertices? With X Y Z points defining it's position in space?

I read it as "f 97 98 98" equaling one point in 3D space, and "f 99 99 100" as a second point in space. So you'd need a third matrix of 3 numbers to define a triangle "face". In my example it would be ok for two of the numbers to be equal because they represent different coordinates in a 3D space.

Maybe I misunderstood the issue, in which case feel free to ridicule me 😁
-broxen

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests