Duke4.net Forums: Shadow Warrior - "New Episode" - Duke4.net Forums

Jump to content

  • 44 Pages +
  • « First
  • 10
  • 11
  • 12
  • 13
  • 14
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Shadow Warrior - "New Episode"

User is offline   MrFlibble 

#331

View Posticecoldduke, on 10 June 2017 - 03:59 AM, said:

Do we know if the SW code we have is actually the 1.2 code? I vaguely remember Charlie saying something about him frankensteining the source code release together, and its possible the code we have is code that was further worked on after 1.2 was released.

The readme states that the code is for the v1.2 CD version. However the same readme says (emphasis added):

Quote

SPECIAL THANKS
--------------

Very large thanks to Frank Maddin (one of the original Shadow Warrior programmers) for digging up the code and providing some help getting it off the ground. Also thanks to Jonothan Fowler (responsible for the JonoF port of Duke 3D) for lending his experience with the Build Engine to help track down the last major issues, thus making the released source as full featured and bug free as possible. I couldn't have done it without these guys.

Thanks also to Ken Silverman and Jim Dose for allowing us to include some of their source in this build, so we have it all in one archive.

Finally, thanks to all the fans of 3D Realms and Shadow Warrior. You guys emailing us over and over is part of what motivated us to finally put this release together! We can't wait to see what people do with it. And we really look forward to being able to play the game under XP, with sound, internet play, hardware acceleration and everything else we've seen evolve out of the Duke Nukem 3D source community. :P

I had fun putting this source release together, especially given the lack of a complete source code archive for the game and the challenges that presented.

Charlie Wiederhold
3D Realms

All of this suggests that the code was cleaned up and bug-fixed compared to the DOS v1.2. Further down the readme it is specified that

Quote

====================================================================
MISC NOTES ABOUT THIS RELEASE
====================================================================

- All changes I made from the original are indicated by a "// CTW" style comment. I made as few changes as possible since the fun for people is working on the Shadow Warrior original code, not my personal rewrite/interpretation. Unfortunately, there was a significant amount of work and hacking needed to get this up and running compared to the Duke 3D release. I was provided with a large list of files with no clue how they needed to be organized, what was actually used, etc. Also, several key files were missing entirely and required borrowing from the Duke 3D source code.

- This source includes the Build Engine data (.OBJ files) needed for compiling. The Build Engine is a separate entity from Shadow Warrior, though Shadow Warrior is built upon the Build Engine.

- The KENBUILD.ZIP file contains all of the data you need from Ken Silverman's released version to compile the Build Engine itself. Instructions for doing this are contained within that file. I have tested this with the free versions of Watcom and it works. More information about this code found at Ken's webpage here: http://www.advsys.ne...src/default.htm

[...]

- The files in the EXTRAS folder are there purely for curiosity and educational purposes. You can find a whole lot of potentially interesting tests, as well as older versions of the source files that ultimately made it into the game. None of these are necessary and are purely, well, extra.

The files in the EXTRAS folder might indeed be original stuff prior to the source modifications, but I can't tell.
0

User is offline   Master O 

#332

View Posticecoldduke, on 10 June 2017 - 03:59 AM, said:

That's right you wanted to be able to reassign mouse buttons. To be clear that's the only thing holding you back from playing my port? I'll move this up on my todo list if thats the case, id like to get as many as hands on this as possible.


Do we know if the SW code we have is actually the 1.2 code? I vaguely remember Charlie saying something about him frankensteining the source code release together, and its possible the code we have is code that was further worked on after 1.2 was released.


Judging by that readme file, that's as good as it's going to get. If there really was a problem with the source code, everyone would've known about it by now.
0

#333

I am in the beginning stages of add lua support to Shadow Warrior. I have gone back and forth on this issue because I'm not the biggest fan of scripting languages that you can't debug. I was really considering Mono C# but I feel it would overcomplicate the codebase. So I'm going with Lua for level scripting and some game logic and I'm curious on what you guys think. I have also removed swcustom.txt support.

I have started off by moving data from code into user.lua(https://github.com/j...cripts/user.lua). The branch currently uses everything in there except for episode_count. Development of my 3rd episode idea would benefit a lot from having a level scripting system and a scripting system that would support game logic. Let me know the kind of things you would want to see in a script system for SW.

This post has been edited by icecoldduke: 10 June 2017 - 01:41 PM

0

User is offline   Hendricks266 

  • Weaponized Autism

  #334

View Posticecoldduke, on 10 June 2017 - 01:39 PM, said:

I am in the beginning stages of add lua support to Shadow Warrior.

View Posticecoldduke, on 10 June 2017 - 01:39 PM, said:

I have also removed swcustom.txt support.

View Posticecoldduke, on 10 June 2017 - 01:39 PM, said:

I have started off by moving data from code into user.lua

Three reasons why you still don't understand source port development.
0

User is offline   Hank 

#335

A long shot.
LUA has a horde of sort-of debuggers, perhaps define the most practical to one use, for amateurs like myself?

Long shot 2
A mini guide, what applies to which action.
The enemies for Shadow Warrior move fast, but I would like them to also move a little bit smarter.

Yes, in due time one can figure all this out for oneself, yet I believe learning from a pro, saves time, broken screens and smashed mice. :P
1

User is offline   Forge 

  • Speaker of the Outhouse

#336

View PostHendricks266, on 10 June 2017 - 01:57 PM, said:

Three reasons why you still don't understand source port development.

Posted Image

This post has been edited by Forge: 10 June 2017 - 02:23 PM

2

#337

Yay I missed people being mad at me :P.

View PostHank, on 10 June 2017 - 01:59 PM, said:

A long shot.
LUA has a horde of sort-of debuggers, perhaps define the most practical to one use, for amateurs like myself?

Yeah but there not very good. I've shipped a couple CryEngine games and Lua was a pain in the ass at times but I hope moving forward with it will help me on my 3rd episode mod and other peoples mods.

View PostHank, on 10 June 2017 - 01:59 PM, said:

Long shot 2
A mini guide, what applies to which action.
The enemies for Shadow Warrior move fast, but I would like them to also move a little bit smarter.

Yes, in due time one can figure all this out for oneself, yet I believe learning from a pro, saves time, broken screens and smashed mice. :P

Yeah I will create tutorials for people to make and change content.

This post has been edited by icecoldduke: 10 June 2017 - 02:28 PM

1

User is offline   Hank 

#338

side note, I used the Cryengine as a hobby, loved it, but it has a debugger.

side note two - thanks, old fart is getting exited. :P
1

#339

I have committed to the depot initial level script code. The process is you create a lua script called map_yourmapnamehere.lua in swdata/scripts. Eventually swdata will be replaced with the name of your mod. In your map you will create SCRIPT_STAG st1's(hitag 700), with a TAG2(lotag) of the id of the function you want to be called in your map lua script.

Here is the example I committed to the depot, which currently works.

You make a level like this one and place a SCRIPT_STAG ST1 in the middle sector like so(TAG1(700), TAG2(0)).
Posted Image

TAG2 corresponds to the function your going to call in your map_<yournamehere>.lua script.

function stagscript_function0(myspriteid, mysectorid)
	local playersector = getplayersector(0);
	if mysectorid == playersector then
		displaymessage("Get out of my sector!!")
	end
end


So TAG2 in this case is 0, so the function we are going to call every frame is stagscript_function0. If TAG2 was 1 we would make a function called "stagscript_function1", etc.

So the above script displays "Get out of my sector" when the player is in the sector if the SCRIPT_STAG. And the result is below.

Posted Image

So this example works now in the depot, what do you guys think of the concept?

This post has been edited by icecoldduke: 10 June 2017 - 04:16 PM

1

User is offline   Ninjakitty 

#340

View Posticecoldduke, on 10 June 2017 - 04:15 PM, said:

I have committed to the depot initial level script code. The process is you create a lua script called map_yourmapnamehere.lua in swdata/scripts. Eventually swdata will be replaced with the name of your mod. In your map you will create SCRIPT_STAG st1's(hitag 700), with a TAG2(lotag) of the id of the function you want to be called in your map lua script.

Here is the example I committed to the depot, which currently works.

You make a level like this one and place a SCRIPT_STAG ST1 in the middle sector like so(TAG1(700), TAG2(0)).
Posted Image

TAG2 corresponds to the function your going to call in your map_<yournamehere>.lua script.

function stagscript_function0(myspriteid, mysectorid)
	local playersector = getplayersector(0);
	if mysectorid == playersector then
		displaymessage("Get out of my sector!!")
	end
end


So TAG2 in this case is 0, so the function we are going to call every frame is stagscript_function0. If TAG2 was 1 we would make a function called "stagscript_function1", etc.

So the above script displays "Get out of my sector" when the player is in the sector if the SCRIPT_STAG. And the result is below.

Posted Image

So this example works now in the depot, what do you guys think of the concept?

Looks great! :P
1

User is offline   Kyanos 

#341

Is this extendable to custom enemies, pickups etc...

What other commands can you give it that compare to getplayersector(0) in your sample?
1

#342

So I just added local var support for each st1, so you can store local vars for each st1. I also added a hurtplayer function. I just extended the example so when the player first enters the middle sector then the "Get out of my sector" message appears. Then the second time the player enters the sector and angier message appears and causes damage to the player. This is currently in the depot.

View PostDrek, on 10 June 2017 - 04:38 PM, said:

What other commands can you give it that compare to getplayersector(0) in your sample?


function stagscript_function0(myspriteid, mysectorid)
	local playersector = getplayersector(0);
	if mysectorid == playersector then
		if(getlocalvar(myspriteid, 0) == 0) then -- Only execute the print message if we just entered the sector.
			if getlocalvar(myspriteid, 1) == 0 then
				displaymessage("Get out of my sector!!")
				setlocalvar(myspriteid, 0, 1) -- Signal that we are now in our sector.
			else 
				displaymessage("Why the hell do you keep coming in my sector!!")
				setlocalvar(myspriteid, 0, 1) -- Signal that we are now in our sector.
				hurtplayer(0, 30)
			end
		end
	else 
		if getlocalvar(myspriteid, 0) == 1 then
			setlocalvar(myspriteid, 1, 1)  -- Signal that we have entered the sector at least once.
			setlocalvar(myspriteid, 0, 0)  -- Signal that we have left the sector.
		end
	end
end


Posted Image

View PostDrek, on 10 June 2017 - 04:38 PM, said:

Is this extendable to custom enemies, pickups etc...

I plan on giving you guys the ability to create new enemies. Modifying existing enemy logic will take a decent amount of time to do(since I'd have to move all the logic over from C++ to Lua, and that will require alot of fiddly fucking). Custom pickups will definitely be easy to add to the scripting system.

In the short term I want to get you gives enough scripting logic to be able to create custom level events and custom pickups.

This post has been edited by icecoldduke: 10 June 2017 - 05:09 PM

0

User is offline   Mark 

#343

You lost me with Lua. I'm an old dog that doesn't like learning new tricks. But I still look very forward to playing whatever comes out.
0

User is offline   Ninjakitty 

#344

View PostMark., on 10 June 2017 - 05:34 PM, said:

You lost me with Lua. I'm an old dog that doesn't like learning new tricks. But I still look very forward to playing whatever comes out.

Ah, don't worry :P
Lua's relatively simple.
0

User is offline   Micky C 

  • Honored Donor

#345

The eduke devs plan to implement Lua as a scripting language. Any effort here would ideally be consistent with that planned for eduke.

Although I'm sure you're going to rocket ahead with your system anyway and Hendricks will complain about it not being good for open source ports, resulting in it remaining a seperate independent project :P
0

User is offline   TerminX 

  • el fundador

  #346

View PostMicky C, on 10 June 2017 - 05:54 PM, said:

Although I'm sure you're going to rocket ahead with your system anyway and Hendricks will complain about it not being good for open source ports, resulting in it remaining a seperate independent project :P

Well, blindly rushing ahead and implementing things without discussion usually doesn't result in greatness.
1

User is offline   Mark 

#347

I thought lua was dead after Helix left.
0

User is offline   Hank 

#348

View PostMark., on 10 June 2017 - 05:59 PM, said:

I thought lua was dead after Helix left.

Hendricks266 is keeping it alive.
0

User is offline   Micky C 

  • Honored Donor

#349

The plan is still on the table AFAIK. As with everything it comes down to priorities.

View PostTerminX, on 10 June 2017 - 05:57 PM, said:

Well, blindly rushing ahead and implementing things without discussion usually doesn't result in greatness.


Yeah, I'm not sure if it's because I'm checking up infrequently on my phone and getting it all in one hit, but a lot seems to be happening in a short space of time without a visible planning process, which combined with icecoldduke's industry experience which focuses on (relatively speaking) one-off products and cost-benefit ratios/trade offs, results in a system which isn't neccessarily going to withstand the possibly decades of port development.

Although that's based on only a small amount of observation so I may be missing something.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #350

While I like the idea of scripting in SW, and this demonstration is kind of exciting, as usual the code is unusable. One by one, my projects are falling victim to someone with a thirst for immediate gratification.
0

#351

I just moved over the entire sound fx table(not ambient yet) to the user.lua script, you can see it here.

https://github.com/j...cripts/user.lua

In the next patch by adding a new "addsoundentry" to this file you can expand the sfx st1 sprites can play. Lua scripts will be able to play audio as well. So now you can add custom audio without replacing existing audio.

View PostHendricks266, on 10 June 2017 - 06:12 PM, said:

While I like the idea of scripting in SW, and this demonstration is kind of exciting, as usual the code is unusable. One by one, my projects are falling victim to someone with a thirst for immediate gratification.

Whats unsable about it?

This post has been edited by icecoldduke: 10 June 2017 - 07:39 PM

1

User is online   Danukem 

  • Duke Plus Developer

#352

View PostHendricks266, on 10 June 2017 - 06:12 PM, said:

While I like the idea of scripting in SW, and this demonstration is kind of exciting, as usual the code is unusable.


How is it unusable?

View PostHendricks266, on 10 June 2017 - 06:12 PM, said:

One by one, my projects are falling victim to someone with a thirst for immediate gratification.


Is icecoldduke doing something unethical?
2

User is offline   Mblackwell 

  • Evil Overlord

#353

Pretty sure it's just general frustrated venting. Not any kind of accusation of wrongdoing. I'm sure Hendricks has specific ideas for that very kind of thing, especially considering there's already a partial implementation in the EDuke32 codebase done by Helix.
0

#354

View PostTrooper Dan, on 10 June 2017 - 07:37 PM, said:

How is it unusable?
Is icecoldduke doing something unethical?

I'm not doing anything unethical, Evan doesn't like my file structure among other things. I'm curious if he hates more about my code then just the file structure of my branch. I'm not trying to steal your thunder Evan, I'm trying to get a general purpose system up and running so people can make SW mods. I'm also trying to make a system that I can use for my 3rd episode mod.

Since right now the code is basically in the foundation stage, if you guys don't mind taking a look and seeing anything you don't like so I can fix it. Please also take a look at my digi entries in user.lua https://github.com/j...cripts/user.lua

This post has been edited by icecoldduke: 10 June 2017 - 07:48 PM

4

User is offline   Ninjakitty 

#355

View Posticecoldduke, on 10 June 2017 - 07:47 PM, said:

I'm not doing anything unethical, Evan doesn't like my file structure among other things. I'm curious if he hates more about my code then just the file structure of my branch. I'm not trying to steal your thunder Evan, I'm trying to get a general purpose system up and running so people can make SW mods. I'm also trying to make a system that I can use for my 3rd episode mod.

Since right now the code is basically in the foundation stage, if you guys don't mind taking a look and seeing anything you don't like so I can fix it. Please also take a look at my digi entries in user.lua https://github.com/j...cripts/user.lua

Hm...
The enemies aren't playing their alert or damage sounds.
Is this also for debugging purposes?
1

#356

View PostNinjakitty, on 10 June 2017 - 08:13 PM, said:

Hm...
The enemies aren't playing their alert or damage sounds.
Is this also for debugging purposes?

That is a bug I'm working on a fix right now.
0

User is offline   TerminX 

  • el fundador

  #357

Evan likes to plan things and carefully test them before releasing them, and this is neither. I think the fact that you made a bunch of changes to how sounds are defined and actually pushed a release without even verifying all the sound types still played is a testament to why playing fast and loose is a bad idea. You do good work, but it looks to me like you just kind of spaz and leave half-baked messes everywhere when you don't have management telling you what to do. :P
2

User is offline   Ninjakitty 

#358

I've learned that sometimes it's good to take a few days off and just go on a bug fixing/reorganizing/rethinking rampage before continuing, LOL :P
0

#359

View PostTerminX, on 10 June 2017 - 08:20 PM, said:

Evan likes to plan things and carefully test them before releasing them, and this is neither. I think the fact that you made a bunch of changes to how sounds are defined and actually pushed a release without even verifying all the sound types still played is a testament to why playing fast and loose is a bad idea. You do good work, but it looks to me like you just kind of spaz and leave half-baked messes everywhere when you don't have management telling you what to do. :P

Technically I should have two branches on my github, main and release. I'm treating my main branch as my work branch right now, so there will be some CL's that break things. I'll try to branch my code so the release branch is what you guys would pull from when you want something stable, then when you want the latest code, there will be main.

This post has been edited by icecoldduke: 10 June 2017 - 08:51 PM

0

User is offline   Forge 

  • Speaker of the Outhouse

#360

View PostTrooper Dan, on 10 June 2017 - 07:37 PM, said:

Is icecoldduke doing something unethical?

Posted Image
2

Share this topic:


  • 44 Pages +
  • « First
  • 10
  • 11
  • 12
  • 13
  • 14
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options