Duke4.net Forums: Extracting from TekWar? - Duke4.net Forums

Jump to content

Hide message Show message
Welcome to the Duke4.net Forums!

Register an account now to get access to all board features. After you've registered and logged in, you'll be able to create topics, post replies, send and receive private messages, disable the viewing of ads and more!

  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

Extracting from TekWar?  "SOUNDS and SONGS files"

User is online   M210 

  • 267

#31

View PostDrek, on 27 June 2016 - 05:13 PM, said:

I like libgdx too, do you use eclipse?


Yeap, I'm using eclipse :)
At this time, I almost have playable version of my port...im working now on porting load/save game states and sounds.

Also I ported smacker library in Java, but it was something wrong, therefore I have a bug in main menu.
0

User is online   M210 

  • 267

#32

I made load from savegam%.tek files, but with one hack for animateptr
Somebody can tell me, why (int) value of sectortype array is equals 14703168 and (int) of wall array - 14046272?
Can I calc this value in Java? it's not like the length of the struct array

sectortype sector[MAXSECTORS];
int var = (int) sector;
var == 14703168;

0

User is offline   oasiz 

  • 554

#33

There are a bunch of bugs that plague the main game in case you are interested on fixing those:
- You generally lose all your weapons on map changes
- Sector -1 (really easy to clip in to) crashes the game. (major)
>One easy instance is to get crushed in the train doors.
- Mouse strafing allows you to move super fast
- New game function is kinda broken and doesn't reset things properly

There are some more minor ones such as music track resetting on save load but that crash bug is the most major one.
I can think of like 3 places where I can perform it easily because Jake Cardigan moves like the wind.

Also one thing to note with music, there are multiple audio card variants on some tunes which change slightly.
Stage2 (Dallas Di Marco) has a completely different tune if you use adlib instead of GM.
Oh yeah, game has some special handling if it fails save loads, it will put you in a dummy map with a single carpet and brick walls, something to take in to account.
0

User is offline   Perro Seco 

  • 108

#34

View Postoasiz, on 28 June 2016 - 03:44 AM, said:

You generally lose all your weapons on map changes
I think that was done on purpose because there's a security checkpoint in all subway stations.

Posted Image
1

User is offline   oasiz 

  • 554

#35

View PostPerro Seco, on 28 June 2016 - 04:06 AM, said:

I think that was done on purpose because there's a security checkpoint in all subway stations.

Huh, good point. Never really thought of it that way..
Just another "feature" which isn't really that obvious or well implemented I guess.
0

User is online   M210 

  • 267

#36

Ok, I try to fix those bugs...btw sector-1 I fixed when I tested my Java port...but in train doors game is freezing now :) Its need to do more fixes

Btw, I saw delayfuncand animpic methods in the src codes...this code works with sprites with lotag = 6, but it seems no this sprites on maps...what is it? I can't to check this part of code


This post has been edited by M210: 28 June 2016 - 05:59 AM

0

User is online   Hendricks266 

  • EDuke32 Senior Developer
  • 5,036

#37

View PostM210, on 28 June 2016 - 02:35 AM, said:

I made load from savegam%.tek files, but with one hack for animateptr
Somebody can tell me, why (int) value of sectortype array is equals 14703168 and (int) of wall array - 14046272?
Can I calc this value in Java? it's not like the length of the struct array

sectortype sector[MAXSECTORS];
int var = (int) sector;
var == 14703168;


You're casting a pointer to an integer, so the value is going to be an unsigned memory address that won't have any meaning to you. I don't know what you have in mind here.
1

User is online   icecoldduke 

  • 1,044

#38

View PostHendricks266, on 28 June 2016 - 09:25 AM, said:

You're casting a pointer to an integer, so the value is going to be an unsigned memory address that won't have any meaning to you. I don't know what you have in mind here.

I wonder if he meant to get sectnum instead of the object.

Unofficial Shadow Warrior eduke32 port
https://github.com/j...3/ShadowWarrior
0

User is online   M210 

  • 267

#39

View PostHendricks266, on 28 June 2016 - 09:25 AM, said:

You're casting a pointer to an integer, so the value is going to be an unsigned memory address that won't have any meaning to you.


Thanks for your question, but it's not true, because as I understood (int)sector gave constant value and it works fine with 14703168 .
There is a code from load save-file method (see my example in next post)
read(fil,animateptr,MAXANIMATES<<2);
	for(i=MAXANIMATES-1;i>=0;i--)
		animateptr[i] = (long *)(animateptr[i]+((long)sector));


This ptr points to walltype structure (at first I don't why it points to walltype and not to sectortype)
some manipulations I managed to get wallid and coordinates of wall. I get this with by adding the bytes of animateptr with 14703168

And I need to do this because Java hasn't pointers(


This post has been edited by M210: 28 June 2016 - 11:18 AM

0

User is online   M210 

  • 267

#40

So, one example...
read(fil,animateptr,MAXANIMATES<<2);
We read first animateptr variable and got -656932. This is INT variable (4bytes)...
We know in advance that it is a pointer to the coordinates of the wall, therefore we need to subtract wall pointer variable....this is a 14046272 and after this we need to add sector poiniter variable - 14703168
So, we have
-656932 - 14046272 + 14703168 = -36
And now we got 36....struct of walltype is equals 32, therefore
int wallid = 36 / 32...we got wallid = 1;
int offset = 36 % 32 ...we got 4, this is a Y coordinate
(0 - 3 bytes - X coord, 4 - 7 bytes - Y coord)

And so, we have pointer to Y coordinate of Wallid = 1

Thats all....but I still want to know why array of walltype is equals 14046272 and array of sectortype is 14703168...this is a constant values which newer changes...but I want to calc it by myself, and dont want to define this values as digits


This post has been edited by M210: 28 June 2016 - 11:37 AM

0

User is offline   oasiz 

  • 554

#41

Sweet!

If you need extra testing on PC, let me know.
I used to speedrun this game and I can easily complete it in under 20min without that mouse movement glitch as needed.

Pretty much know the game inside-out even though it's been like 2 years since I actively played this.
0

User is online   M210 

  • 267

#42

View Postoasiz, on 28 June 2016 - 11:12 AM, said:

Sweet!

If you need extra testing on PC, let me know.
I used to speedrun this game and I can easily complete it in under 20min without that mouse movement glitch as needed.

Pretty much know the game inside-out even though it's been like 2 years since I actively played this.


That is excellent :) Btw I never finished Tekwar, but I remember that I like to play it when I was 12 years old :D Therefore I need your experience :)
Im using old version of Libgdx, which has bug with mouse, therefore I think the first release will be without mouse support and maybe without music.

Btw, somebody know, why Jonof stops his work on JFTekwar?


This post has been edited by M210: 28 June 2016 - 11:45 AM

0

User is offline   oasiz 

  • 554

#43

No worries, It's basically "red herring - the game" when it comes to progression. I recall that it took me over 6hrs on the first try, did a race against a friend and we both were really experienced with older FPS games.
My guess is that JF probably didn't have interest in the game as it's one of the worst build games in many ways and very unfriendly to beginners.

However it did pioneer a lot of concepts and was very ambitious. Which is why I'd love to do some simple map tweaks and removing some of those red herrings / adding actual sense of progression aside from screaming in joy when you find that blue keycard after going between submaps for hours and killing every NPC in sight.

I mean, the game had NPCs with unique AI personalities, police, kinda interesting gun concepts, non-linear progression where some extra keycard could give you a shortcut to the TekLord's lair later, underwater bases and everything but instead of having actual diving, they simply teleported you underwater and no difference in visuals or physics :)
Too bad that almost none of those are fully implemented and another 6 months of polish on the game could have made it very different I say.

Are you porting this to a newer build engine version as well? Would be interesting to have slopes to mess around with, this version still has that groudraw.

Also I used to play this without a mouse for a long time (WSAD + arrows) due to the poor mouse code so it's no biggie.

This post has been edited by oasiz: 28 June 2016 - 11:53 PM

0

User is offline   Micky C 

  • Honored Donor
  • 3,323

#44

Why was it so rushed anyway? Surely for its time it would have been a cutting-edge engine, and the game could have really taken off if it had a bit more care put into its ambitious concepts.

I mean I've never actually played the game but I've read about it Posted Image

Polymer wishlist: Global illumination, SSAO, Bloom, reflective surfaces, adjustable specular (wetness), volumetric lighting.
Mapper of the Month December 2014.

Herbs? Tell me more!
0

User is online   M210 

  • 267

#45

View PostMicky C, on 29 June 2016 - 04:10 AM, said:

Why was it so rushed anyway?


I'm getting ready to start making port of Blood :) But now I want to learn an Engine, before I start it. And my main target - make this port for mobile devices.

Btw, I'm completed load/save states today :)


This post has been edited by M210: 29 June 2016 - 04:47 AM

0

User is online   M210 

  • 267

#46

Quote

Are you porting this to a newer build engine version as well?

Forgot to answer....yes, port working on new build engine version....therefore DOS tekwar saves doesn't works :( I checked it...and now I want try to fix it


This post has been edited by M210: 29 June 2016 - 08:04 AM

0

User is online   icecoldduke 

  • 1,044

#47

View PostM210, on 29 June 2016 - 04:18 AM, said:

I'm getting ready to start making port of Blood :)

Don't do that. Stick with something you have source code too. Otherwise you just end up with a project that nobody on this fucking forum lets you live down :(.

Unofficial Shadow Warrior eduke32 port
https://github.com/j...3/ShadowWarrior

This post has been edited by icecoldduke: 29 June 2016 - 07:50 AM

0

User is online   M210 

  • 267

#48

Don't worry, i'm an author of BloodCM :) It's will be not too hard to replace my BloodCM to my Build Engine :)
I just saw PolymerNG topic, that's your project? If you using shaders, your renderer works on GL20?


This post has been edited by M210: 29 June 2016 - 07:56 AM

0

User is online   icecoldduke 

  • 1,044

#49

View PostM210, on 29 June 2016 - 07:53 AM, said:

Don't worry, i'm an author of BloodCM :) It's will be not too hard to replace my BloodCM to my Build Engine :)

BloodCM is great project, and I was not aware that you are the author of that project. Maybe you will get it all done and not have nasty legacy hanging over your head :P. I kinda feel my point still stands though. You leveraged a lot of work that the eduke32 team spent a lot of time developing, and you will have to code all of that yourself. I just think, a better approach would be using LLVM and Enscripten to compile EDuke32 to Javascript.

View PostM210, on 29 June 2016 - 07:53 AM, said:

I just saw PolymerNG topic, that's your project? If you using shaders, your renderer works on GL20?

PolymerNG is my project and is Direct3D 11.1. It uses shaders, there is no fixed function nastiness in PolymerNG. Looking back at a video I did with PolymerNG and BloodCM running on the Xbox One, I guess I did notice you were the author but for some reason in this topic I didn't put two and two together :). I probably should have asked you before using BloodCM in a PolymerNG XB1 vid, but it would be awesome if you would help move BloodCM over to PolymerNG. Blood and TekWar would look fantastic with the new deferred lighting system I have in place.

Unofficial Shadow Warrior eduke32 port
https://github.com/j...3/ShadowWarrior

This post has been edited by icecoldduke: 29 June 2016 - 08:11 AM

1

User is online   M210 

  • 267

#50

D3D 11 also using VBO as GL20...I just don't know how to separate dynamic sectors from static sectors....because if you will moving any dynamic sectors, therefore in static sector will open a hole and for close a hole it will need to use tesselator and rebuild a mesh of static sector....there is a my main problem and I don't risk to write GL20 renderer :) I just know, that GLUTesselator takes a long time to transform sector to mesh (about 100ms)
0

User is online   M210 

  • 267

#51

View Posticecoldduke, on 29 June 2016 - 08:02 AM, said:

Blood and TekWar would look fantastic with the new deferred lighting system I have in place.

Yeah, is it :) If you using standart engine's methods in your PolymerNG (such as cansee, hitscan, etc.) it will be not problem to use my future Java's src to make Blood :)
0

User is online   icecoldduke 

  • 1,044

#52

View PostM210, on 29 June 2016 - 08:11 AM, said:

D3D 11 also using VBO as GL20...I just don't know how to separate dynamic sectors from static sectors....because if you will moving any dynamic sectors, therefore in static sector will open a hole and for close a hole it will need to use tesselator and rebuild a mesh of static sector....there is a my main problem and I don't risk to write GL20 renderer :) I just know, that GLUTesselator takes a long time to transform sector to mesh (about 100ms)

There is no dynamic and static sectors from the designers point of view. That is based on old information. The engine treats all sectors as static sectors until they move, then the engine handles those sectors slightly differently, but as a content developer you don't have to worry about that. The only thing I've asked content developers to do is not have a lot of moving sectors in view at once. The tesselation code I'm using which is heavily based on Polymer(and does use GLUtesselation) doesn't take long to execute at all so I'm not sure were you got 100ms from. So yes PolymerNG makes heavy use of VBO's, and performance wise that part runs great(less then 1ms in BloodCM, and less then 7ms in clcoast). What I've found is using dynamic index buffers to render the scene instead of using a shit of draw calls also speeds things up.

Unofficial Shadow Warrior eduke32 port
https://github.com/j...3/ShadowWarrior

This post has been edited by icecoldduke: 29 June 2016 - 08:23 AM

0

User is online   M210 

  • 267

#53

Quote

The sector should only have to get retesselated when another point gets added to the sector, which should only happen in the editor

But what's need to do, if another point is moving?
The first thing you can think of - it's run loop through the array of VBO array and change the coordinates of the moving point...but it will be very slow, or use a tesselator......or may be I don't know something?

Or second hint - don't make holes under dynamic sectors, but it can make other bugs with up/down elevators...so I still thinking)
0

User is online   icecoldduke 

  • 1,044

#54

View PostM210, on 29 June 2016 - 08:29 AM, said:

But what's need to do, if another point is moving?
The first thing you can think of - it's run loop through the array of VBO array and change the coordinates of the moving point...but it will be very slow, or use a tesselator......or may be I don't know something?

Or second hint - don't make holes under dynamic sectors, but it can make other bugs with up/down elevators...so I still thinking)

I actually took that out of my original post because that was incorrect. If you want to see how it works, you can check out my Build3D.cpp which in the public repository is slightly out of date, but shows how this part works. Build3D in PolymerNG is a combination of Polymer and some Polymost map -> triangle conversion code that is Rendering API agnostic. It's a very self contained module. So you should be able to use it as a base for your java work.

https://github.com/j...src/build3d.cpp

Unofficial Shadow Warrior eduke32 port
https://github.com/j...3/ShadowWarrior

This post has been edited by icecoldduke: 29 June 2016 - 08:39 AM

1

User is online   M210 

  • 267

#55

icecoldduke, thanks I will try it :) But I willl works o renderer after first beta release :) I completed load/saves state now and working on sounds (i think its almost done too)
After that I want to make musics and fix main menu smacker bug (it's seems wrong picture offset for byte array)
0

User is online   M210 

  • 267

#56

Good news, guys..I fixed smacker video playing today :)
At near future I will release a first beta version....but without music.I didn't think that it uses a format other than the MIDI


Posted Image


This post has been edited by M210: 01 July 2016 - 12:43 AM

2

User is online   M210 

  • 267

#57

Well, I made a release version for tests:) Now you can download it in my site
gdxTekwar

Put this jar file on your Tekwar folder and lanch it :)


This post has been edited by M210: 01 July 2016 - 04:41 AM

2

User is offline   Drek 

  • 1,137

#58

Will this be open source?
0

User is online   M210 

  • 267

#59

I don't know yet. It's necessary? :)
0

User is offline   Drek 

  • 1,137

#60

No, I don't need it. I do want it :)
0

Share this topic:


  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks are property of their respective owners and all comments are owned by their posters. Yes, our forum uses cookies. © 2004-2017 Duke4.net and Voidpoint, LLC

Enter your sign in name and password


Sign in options