View previous topic :: View next topic |
Author |
Message |
phenex2 Unstoppable!
Joined: 10 Jan 2008
|
Posted: Sun Jan 20, 2008 3:57 pm Post subject: Take part in Zdaemon Development! Get the code HERE! |
|
|
Hello fellow doomers!
This thread is meant for people who would like to help the dev team
by fixing bugs or implementing new features into Zdaemon.
Since the current source is closed we will have to restrict ourselves
to the last public release (1.06).
There is still a subset of bug fixes and new features, which happen to be
independent from the current source (1.08 ) and the ongoing development (1.09),
that can be added to 1.06 and then integrated into the current code
by the dev team. If you are lucky your name will show up in the next changelog Wink
What do you need to get started?
-------------------------
The 1.06 windows binary pack (fmod+zdaemon.wad)
You need this to run your compiled exe so you can
see if your patches actually work :p
-------------------------
The windows source code
This code will compile out of the box in Microsoft Visual C++ 6.0.
Maybe someone can adapt the code to a free compiler or the
'free' Visual C++ 2005 Express Edition. If someone manages to clean up
the code so it will compile in VC6++ and the newer Visual Studios i will reup it.
Danni told me that casting the input parameters for sqrt and fabs should get you
close to compiling code in the newer Visual C++ versions.
I would still recommend Visual C++ 6.0 if you want to get started fast.
If you have trouble finding VC++6 just drop me a line in irc.
-------------------------
old ZDoom code
get all binaries with corresponding source code.
Imagine you want to implement the Zdoom 2.0 texture manager ... you wouldn't want to
write it from scratch, eh? Since Zdaemon is based on ZDoom 1.22 code
you can simply check out features or bugfixes in ZDoom and port them
over to 1.06 if you are lucky.
It is ok to get working code from ZDoom, because ZDoom is distributed
under the Doom License as is ZDaemon.
On the other hand ... don't copy code from any other port, as ZDoom
is the only active Doom port that uses the Doom License.
-------------------------
WinMerge or CSDiff
Visual diff tools are handy if you want to compare old 1.06 code
to more recent ZDoom code or you just want to see changes between code revisions.
This tool can also be used to generate diff files and apply patches to code.
-------------------------
Happy Coding!
Read the next post for instructions on submissions and coding.
Last edited by phenex2 on Fri Oct 24, 2008 7:24 pm; edited 5 times in total |
|
Back to top |
|
|
phenex2 Unstoppable!
Joined: 10 Jan 2008
|
Posted: Sun Jan 20, 2008 3:58 pm Post subject: |
|
|
Guidelines
What to work on:
If you need ideas for what to do, look into these threads:
1.08 bugs
heretic bugs
development wishlist
old development wishlist
or various other threads that can be found in the 'ZDaemon Development' section.
A link to a current "open bugs/todo" list will follow here sometime.
Filter out what has been already done
1.09 thread
current changelog
If you do actually fix a bug or add a feature, do so only to
a clean source as a base. DO NOT add any patches that are independet from what you
are working on.
Usually when you want to fix a bug or add a new feature you first check
if the problem is already solved in ZDoom. Try running the most recent version
and then try to find the first version that fixes the bug or adds the feature.
You then might want to read the corresponding ZDoom changelog to see if you can get
hints where the fix is located. Look at the diff between the 1.06 source
and the relevant ZDoom source and do your best to get the relevant code ported.
Then simply create a patch file or zip the files you changed and post it!
Also try to supply demo wads along to fixed bugs or new features so its easier
to check if your implementation works and what it actually does.
Good luck!
Last edited by phenex2 on Fri Oct 24, 2008 7:33 pm; edited 3 times in total |
|
Back to top |
|
|
Danni Dominating!
Joined: 25 Oct 2003
|
Posted: Sun Jan 20, 2008 7:31 pm Post subject: |
|
|
This is a great idea. We have already had a few people submit patches and put them in.
Also WinMerge is a very useful tool that i use frequently for comparing code with older revisions.
If anyone has any questions about the code, I would be happy to help answer them, I can be found on IRC most of the time. |
|
Back to top |
|
|
EarthQuake Wicked Sick!
Joined: 02 Apr 2004 Location: Athens, Ohio. Dieblieber gonna getcha!
|
Posted: Mon Jan 21, 2008 1:28 am Post subject: |
|
|
One thing that people should be aware of is "defining undefined behavior". Usually when a certain condition arises in the game and the game does not know how to handle this condition, the game does not crash or generate errors, but instead performs or returns an "incorrect" result. This is the cause for many bugs in the game that we consider "features". If you catch these types of inconsistencies and modify the results, wads/ports/etc that utilize these "incorrect" behaviors will sometimes yield undesirable results.
My prime example would be the invulnerability bug that is frequently used in rocket jumping maps. In this case, there is no explainable reason for why the game does this. Somewhere in the code, the game does not know how to handle the conditions leading to this bug, resulting in an "incorrect" behavior that we find as useful.
There are many other examples, but this one tops the cake imo.
Please think about what bugs you're "fixing" if you plan to submit anything to the development team. |
|
Back to top |
|
|
Ronald Rontard
Joined: 17 Aug 2005 Location: Netherlands Clan: [QnB]
|
Posted: Mon Jan 21, 2008 9:00 am Post subject: |
|
|
Is it allowed to write a hardcoded gamemode? |
|
Back to top |
|
|
Stealth Gone with the wind
Joined: 09 Nov 2004
|
Posted: Mon Jan 21, 2008 7:23 pm Post subject: |
|
|
Ronald wrote: | Is it allowed to write a hardcoded gamemode? |
Do you not mean, 'Are you'?
As if I'm answering that question, there is no reason why you couldn't write a piece of code to implement a new gamemode. Though consider the chances of it being implemented in the first place. What might be a better idea is modularizing gamemode code, and/or implement a 'custom' gamemode, allowing a variety of scripts to run or otherwise, to create a customizeable gamemode. Even that won't happen.
I don't see what you can't already do with ACS and the current gamemodes. Deathball, Onslaught and Kill the Cyberdemon all make use of current gamemodes.
Truthfully, I feel that no more hardcoded gamemodes will be written for ZDaemon, and frankly, 4 (3) is enough. Look at Skulltag, gamemodes have caused it to be inconsistent and buggy. Even InstaGib is an entirely different gamemode, which is just stupid, as it should be considered a 'mutator' - it can be used in CTF or other gamemodes as well. Like more gamemodes, then Skulltag's the silver egg. |
|
Back to top |
|
|
Danni Dominating!
Joined: 25 Oct 2003
|
Posted: Mon Jan 21, 2008 7:43 pm Post subject: |
|
|
I agree. There are a few things that the ACS fixes in 1.09 will hopefully address that allow game modes to be developed, CTF did help a little with this as it provided me existing score triggers to marry up with some ACS functions and Specials that SkullTag has and ZDoom has placeholders for.
ZDaemon wants to maintain the traditional doom game play as much as possible which is why uncapped FPS, ZDoom style interpolation, many game modes and bug fixes are not part of ZDaemon.
Please don't be offended if you do develop something and it is not included, there are many things i have toyed with and have not added to the engine simply because it didnt fit. |
|
Back to top |
|
|
Cybershark Spamming!
Joined: 05 Jan 2005 Location: off the grid, but still fighting for the users!
|
Posted: Mon Jan 21, 2008 7:56 pm Post subject: |
|
|
Danni wrote: | ZDaemon wants to maintain the traditional doom game play as much as possible which is why uncapped FPS, ZDoom style interpolation, many game modes and bug fixes are not part of ZDaemon. |
heh right. but see you threw the door open for all kinds of wacky requests the moment you added CTF to ZD. who's to say that those gamemodes would be 'less Doom' than that one? ...unless you take all such suggestions back to iD for vetting that is
also i'd really like to question where the zoom function fits in to this 'traditional gameplay'
anyways, great thread Baah. really gives people chance to put their money where their mouths are |
|
Back to top |
|
|
Ronald Rontard
Joined: 17 Aug 2005 Location: Netherlands Clan: [QnB]
|
Posted: Mon Jan 21, 2008 10:35 pm Post subject: |
|
|
Danni wrote: | I agree. There are a few things that the ACS fixes in 1.09 will hopefully address that allow game modes to be developed. |
I am sure they will.
Danni wrote: | CTF did help a little with this as it provided me existing score triggers to marry up with some ACS functions and Specials that SkullTag has and ZDoom has placeholders for |
What are these going to be? And how will these "triggers" be displayed? Like the scoreboard in CTF? What I am trying to say here is that a scoreboard is the way to "not" confuse people when it comes to new gamemodes. Imagine CTF without a scoreboard. Who could tell which team won? A little more information on this would be very much appreciated.
Danni wrote: | ZDaemon wants to maintain the traditional doom game play as much as possible which is why uncapped FPS, ZDoom style interpolation, many game modes and bug fixes are not part of ZDaemon. |
I agree with Cybershark on this. Where is the border between Doom and "not-doom". Doom was meant to be single player (cooperative) and maybe some deathmatch. CTF is Doom to me with a twist. I am looking forward to hear your opinion on this. |
|
Back to top |
|
|
Kilgore Air Cavalry
Joined: 17 Jun 2003 Location: Up the river
|
Posted: Mon Jan 21, 2008 11:13 pm Post subject: |
|
|
Quote: | Is it allowed to write a hardcoded gamemode? | Isn't this the way TDM and CTF have been implemented? Personally I'm more in favor of a hardcoded rather than an ACS mode.
Quote: | What are these going to be? And how will these "triggers" be displayed? Like the scoreboard in CTF? What I am trying to say here is that a scoreboard is the way to "not" confuse people when it comes to new gamemodes. Imagine CTF without a scoreboard. Who could tell which team won? A little more information on this would be very much appreciated | Yes, it would be appreciated and it will be made available when it's done. There is nothing like that right now, so don't get all excited about stuff that may or may not happen (and we don't even know on which version it might happen). It's far more productive to solve current problems and proceed a step at a time. You won't get any answers about something that's several steps ahead, as no proper analysis has been done, and we shouldn't speculate. |
|
Back to top |
|
|
EarthQuake Wicked Sick!
Joined: 02 Apr 2004 Location: Athens, Ohio. Dieblieber gonna getcha!
|
Posted: Tue Jan 22, 2008 6:23 am Post subject: |
|
|
I actually like Stealth's idea about game modes. We should have generalized game modes with many mutators and options that allow us to define how they are basically played.
CTF mode has been used for a variety of custom game modes where players are involved in taking objects from one place to another. A neat way to expand on this would allow multiple flag things in a single map. VMDX and I played around with this in 1.06 and discovered some really neat things that could be done. However, with the new CTF and team mode standard, things may have changed, so I'll need to test it again.
Some things do not need to be made into mutators, like instagib because wads are capable of doing this very nicely. The only thing that will make this better is allowed stacked dehacked patches, so multiple wads with dehacked can be loaded simultaneously. |
|
Back to top |
|
|
Ronald Rontard
Joined: 17 Aug 2005 Location: Netherlands Clan: [QnB]
|
Posted: Tue Jan 22, 2008 8:37 am Post subject: |
|
|
Kilgore wrote: | Yes, it would be appreciated and it will be made available when it's done. There is nothing like that right now, so don't get all excited about stuff that may or may not happen (and we don't even know on which version it might happen). It's far more productive to solve current problems and proceed a step at a time. You won't get any answers about something that's several steps ahead, as no proper analysis has been done, and we shouldn't speculate. |
Yeah, ok. I was not trying to rush you or anything. The way Danni said it sounded to me that there already was a system for it in place. So I was just curious how it would work. But we will see as soon as the time is ripe. |
|
Back to top |
|
|
Hyper_Eye Dominating!
Joined: 07 Oct 2002 Location: Huntsvegas, Al.
|
Posted: Sun Jan 27, 2008 12:13 am Post subject: |
|
|
Instead of going through all the trouble of installing cygwin simply to make patch files you could just download "UnixTools for Win32" which contains diff. This is much quicker and easier then installing an entire Unix layer like cygwin or mingw/msys.
http://unxutils.sourceforge.net/ |
|
Back to top |
|
|
EarthQuake Wicked Sick!
Joined: 02 Apr 2004 Location: Athens, Ohio. Dieblieber gonna getcha!
|
Posted: Mon Jan 28, 2008 7:16 am Post subject: |
|
|
I'm going to sticky this for great justice.
Edit: Cleaned up and locked for epic justice. If you have anything to add or questions to ask, just PM me in IRC to unlock. |
|
Back to top |
|
|
|