Chex Quest Fan Forums

Chex Quest => Chex Quest and Related Topics => The Lost Quest => Topic started by: arch129 on February 01, 2014, 07:38:28 PM

Title: A Change of Plan
Post by: arch129 on February 01, 2014, 07:38:28 PM
A change in plan is practically necessary, development at this point of time has reached a impasse, the biggest obstacle to progress is the difference between the capabilities of the Doom engine and my original plan. Taking into account everything I decided to change course with the direction and goals of Chex Quest: The Lost Quest.

Original Plan
•   A multi-episode mega wad
•   Tons of RPG elements
•   A full length plot
•   New mechanics
•   Tons of new flemiods

New Plan
•   Single episode, focusing on quality rather than quantity
•   RPG elements, but not as much as previously planned
•   Shorter and simpler story, more focus on gameplay
•   Refining old levels to better standards
•   Some new flemiods
•   Possibly original music, going to need help with this

"What about the other episodes?"
When I get this done I might do another episode as a sequel, think Chex Quest 2.

"What about the original story?"
I still planning on making a game out of my original idea, but it definitely won't be on the Doom engine.

"How much are the current levels going to be changed?"
It really depends on which level your talking about, some levels such as E1M6 are going to get a major renovation.

"Will the completed episode have the same amount of levels as the current beta has?"
No, there will be completely new levels.
Title: Re: A Change of Plan
Post by: MajorSlime on February 01, 2014, 10:38:43 PM
Well, fair enough. I like TLQ a lot, and hope it gets completely finished, as that would be amazing :) Also, I have a curious question; are you planning on ever making it more coop-combatible? Not that it has problems right now, but the checkpoint saves don't work in multiplayer. If so, I've theorized a way to make it work if you ever want to hear it.


Also, nice to have you back :P
Title: Re: A Change of Plan
Post by: arch129 on February 01, 2014, 10:58:57 PM
Quote from: ChexMaster2109 on February 01, 2014, 10:38:43 PM
Well, fair enough. I like TLQ a lot, and hope it gets completely finished, as that would be amazing :) Also, I have a curious question; are you planning on ever making it more coop-combatible? Not that it has problems right now, but the checkpoint saves don't work in multiplayer. If so, I've theorized a way to make it work if you ever want to hear it.


Also, nice to have you back :P

Given how I'm not as restricted with a story I think I can make the levels way more Coop friendly than I was originally planning.

I would like to hear about your idea for multiplayer checkpoints, I've haven't really tested CQTLQ much (at all) in multiplayer.
Title: Re: A Change of Plan
Post by: Boingo the Clown on February 02, 2014, 12:14:52 AM
Don't get discouraged.

Look at how long I have been working on T.U.C.Q..
Title: Re: A Change of Plan
Post by: 75 on February 02, 2014, 12:27:44 AM
@CM2109

currently the checkpoints just serve to save your game... saved netgames don't really work like that

I'm not sure if zandronum supports saving an online game, and even if it did, the server would have to shut down and reload that old save file, so at best it would be good for private servers with a few players.

If you're thinking of some sort of "survival mode checkpoint", where if you hit the switch it would respawn you there, the easiest way to do that would be to just have the switch open up doors near the start of the map with teleporters that took you right to that switch, it's quite easy to do.
Title: Re: A Change of Plan
Post by: MajorSlime on February 02, 2014, 02:38:27 AM
The latter idea was what I was thinking. Except, often times when you all die in an online co-op game, the level completely restarts. So, instead of that idea, keep a global variable that keeps track of your progress (say an int like CurrentCheckpoint. Based on what number the int is at, where you spawn is different). And then just hook up a respawn/enter script that immediately teleports you to the new area when you spawn. Its simple enough. Arch, I could whip up a quick set of scripts that does this if you want.
Title: Re: A Change of Plan
Post by: arch129 on February 02, 2014, 05:56:07 AM
Quote from: ChexMaster2109 on February 02, 2014, 02:38:27 AM
Arch, I could whip up a quick set of scripts that does this if you want.

That would be extremely helpful ChexMaster.  :whale
Title: Re: A Change of Plan
Post by: 75 on February 02, 2014, 10:07:25 PM
Sounds like a good plan CM,

You probably know this already but I highly recommend making it a 2d array of players vs checkpoint numbers, instead of the hacky clientside nonsense I attempted for ownguns

Also, be sure you can't puke the scripts during a net game (which would allow players to cheat), I forget what the script type was that prevented that.
Title: Re: A Change of Plan
Post by: MajorSlime on February 02, 2014, 11:10:35 PM
Assuming the server has sv_cheats off, and set so players can't turn it on, then you can't puke it. Also, I was thinking that when a player reached the checkpoint, it kept it for all players. It is a cooperative game after all. I could do it the other way though. Thoughts arch?
Title: Re: A Change of Plan
Post by: arch129 on February 03, 2014, 04:23:45 AM
Quote from: ChexMaster2109 on February 02, 2014, 11:10:35 PM
Assuming the server has sv_cheats off, and set so players can't turn it on, then you can't puke it. Also, I was thinking that when a player reached the checkpoint, it kept it for all players. It is a cooperative game after all. I could do it the other way though. Thoughts arch?

I like the idea that only one player is required to reach a checkpoint more.
Title: Re: A Change of Plan
Post by: Atariangamer on February 03, 2014, 09:29:06 PM
Hey, cool to see you alive!

I've got no true feedback other than I really enjoyed TLQ's previous releases. I look forwards to your future progress!

Also, coop stuff would be great.

(I'm so helpful...)
Title: Re: A Change of Plan
Post by: 75 on February 03, 2014, 10:41:49 PM
Quote from: ChexMaster2109 on February 02, 2014, 11:10:35 PM
Assuming the server has sv_cheats off, and set so players can't turn it on, then you can't puke it. Also, I was thinking that when a player reached the checkpoint, it kept it for all players. It is a cooperative game after all. I could do it the other way though. Thoughts arch?

Seems like a good plan but it might be a good idea to make some of the maps harder to compensate for the checkpoints
Title: Re: A Change of Plan
Post by: MajorSlime on February 04, 2014, 05:05:49 AM
Here ya go:




#include "zcommon.acs"


// This must be declared on every map, exactly the same.
global int 1:current_checkpoint_number;
global int 2:current_map_number;
int mapNum = 1;


script 89 (int activated_checkpoint_number)
{
    if (GameType() == 0)
    {
        Autosave();
    }
    else
    {
        current_checkpoint_number = activated_checkpoint_number;
    }
}
   
script 90 ENTER
{
    delay(5); // I like to put in a delay to deal with any issues of code trying to run while spawning.
   
    if (GameType() != 0) // Make sure its multiplayer
    {
        // Make sure the variable is defined and usable.
        if (!(current_checkpoint_number > 0))
        {
            current_checkpoint_number = 0;
        }
       
        // Check to see if this map isn't the same as the last one. If so, reset the checkpoint number
        if (current_map_number != mapNum)
        {
            current_checkpoint_number = 0;
            current_map_number = mapNum;
        }
   
        TeleportGroup(0, 200, 200 + current_checkpoint_number, 0, 0); // Teleports relative to the Teleport Destination
    }
}
   
script 91 RESPAWN
{
    acs_executealways(90, 0, 0, 0, 0); // Just run the ENTER script again instead of copying code.
}



Its fairly well commented. Just put these in every map (including the variable definitions at the top), changing/doing a few key things;


1. Change mapNum to the number of the map your on. It doesn't actually matter what number it is, as long as its different for every map.
2. Place a TeleportDestination with a tag of 200 in the middle of your spawns on every map.
3. Place a TeleportDestination with a tag of 200 + the current checkpoint's number in the same relative location for every checkpoint you have. In other words, make a small spawn room next to every checkpoint. Make it obvious what it is, because you don't want players wandering around in it when they don't have to; its possible to be telefragged by a newly spawning player.
4. Put a Script Execute linedef action in replace of your Autosave linedef actions. Have them activate script 89, with the first argument being what number the checkpoint is.


Essentially, what this will do is perform the Autosave as normal if its Singleplayer, but do this new script if its Multiplayer. The script will then spawn players at the currently activated checkpoint number for that map, even if the map resets. If the map changes however, then the current checkpoint number is reset to 0, or none. Also, the angle on the TeleportDestination matters. You can change the script numbers if you want, obviously. Just make sure to account for it in script 91.


And yes, I tested it.
Title: Re: A Change of Plan
Post by: TrueDude on February 04, 2014, 07:39:16 PM
Are you gonna bring back the cereal people since the story's not very central anymore? I was a bit disappointed when you said you were making them into humans, half the fun of Chex Quest is the ridiculous in-your-face advertising everywhere.
Title: Re: A Change of Plan
Post by: MajorSlime on February 04, 2014, 08:22:50 PM
Hmm... hey Arch, what map format is TLQ currently in? The last public beta was a Hexen format, has that changed? If not, have you ever considered switching to UDMF? You can do SO much more with it.
Title: Re: A Change of Plan
Post by: 75 on February 04, 2014, 10:58:22 PM
Quote from: ChexMaster2109 on February 04, 2014, 05:05:49 AM
its possible to be telefragged by a newly spawning player.

sv_unblockplayers is a fairly recently added feature to zandronum that prevents telefragging, it's on on my servers and I highly recommend that anybody who runs coop servers to turn it on as well.

Quote from: ChexMaster2109 on February 04, 2014, 08:22:50 PM
Hmm... hey Arch, what map format is TLQ currently in? The last public beta was a Hexen format, has that changed? If not, have you ever considered switching to UDMF? You can do SO much more with it.

UDMF has serious problems in zandronum due to buggy fractional precision vertex coordinate support. Non integer vertexes cause invisible blocking walls, HOMs that only show up in opengl, other HOMs that only show up in software, strange collision with walls, etc...

It's not impossible to use but it can cause some really strange and difficult to find bugs. After using UDMF to make most of the maps in chex pack, I regret using UDMF and I have no intention of using it again for zandronum (despite the great features it has) until the non integer vertex bugs are fixed. zDoom should support it fine, though.

GzDoombuilder supports a mode that allegedly restricts vertexes to integer coordinates, but from my experience with it those vertexes still manage to slip in, especially on diagonal linedefs.
Title: Re: A Change of Plan
Post by: arch129 on February 04, 2014, 11:18:35 PM
Quote from: TrueDude on February 04, 2014, 07:39:16 PM
Are you gonna bring back the cereal people since the story's not very central anymore? I was a bit disappointed when you said you were making them into humans, half the fun of Chex Quest is the ridiculous in-your-face advertising everywhere.

The characters will be cereal people again.

Quote from: ChexMaster2109 on February 04, 2014, 08:22:50 PM
Hmm... hey Arch, what map format is TLQ currently in? The last public beta was a Hexen format, has that changed? If not, have you ever considered switching to UDMF? You can do SO much more with it.

I'm unfamiliar with UDMF. I've read 75's post about his problems with the format, can you tell me what kinds of stuff you can actually do with UDMF?
Title: Re: A Change of Plan
Post by: MajorSlime on February 04, 2014, 11:32:15 PM
K, as far as the non-integer vertex's, just make sure you don't make any -_- The only times I've ever ended up making some is when I cross two lines. It'll automatically make a point in the middle, which most often is non-integer. Its an easy fix though; just drag it around after you've created it to re-align it to the integer grid.


As far as the features, UDMF supports full texture/flat manipulation. By this, I mean you can scale, rotate, and offset both walls AND floors/ceilings any way you want. (Except for rotating wall textures. Can't do that). Linedef actions are a bit easier, as instead of selecting from a drop down how you want it to be activated, there are a bunch of check boxes. In other words, one linedef action can be activated multiple different ways. You can also tag linedefs like you would actors, so you don't need the Line_SetTag (or whatever it was called) action special anymore. There are a bunch more features, such as individually setting fog colors/intensities in different sectors, alpha channel manipulation, sound properties, etc.


Easiest way to see for yourself is to create a new map in UDMF format, edit a sector, and you'll see a third tab in the edit box. Check that out; it has all the options/etc. Most of the same options exist for linedefs via a new button next to where you edit the sidedefs. The only downside I know of is that with the non-integer vertex's. Although, honestly, its rather easy to avoid... Just make sure to jiggle any vertex created by the intersection of two lines.


Also, do you like the scripts I made?
Title: Re: A Change of Plan
Post by: 75 on February 04, 2014, 11:45:19 PM
I've had to jiggle most of CTF03... several times over. Admittedly it's a pretty complex map, sector-wise but it took a really long time to fix and I still find bugs. Mostly happened in the stair areas, I think it depends on how you draw the maps.

Probably a good compromise would be to draw the layout without linedef actions or sector actions in hexen or doom format, then copy/paste that layout into a window of DoomBuilder using UDMF and decorate / detail the map in UDMF.