A Change of Plan

Started by arch129, February 01, 2014, 07:38:28 PM

Previous topic - Next topic

arch129

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.

MajorSlime

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
Shh!  I'm taking a break from reality.

arch129

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.

Boingo the Clown

Don't get discouraged.

Look at how long I have been working on T.U.C.Q..

75

@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.
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

You can find me on the CQFF discord: https://discord.gg/AgNhjem

MajorSlime

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.
Shh!  I'm taking a break from reality.

arch129

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

75

#7
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.
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

You can find me on the CQFF discord: https://discord.gg/AgNhjem

MajorSlime

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?
Shh!  I'm taking a break from reality.

arch129

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.

Atariangamer

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...)
Don't remember me as I was...I was an idiot.

75

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
"Give us those nice bright colors, give us the greens of summer, makes you think all the world's a sunny day."

You can find me on the CQFF discord: https://discord.gg/AgNhjem

MajorSlime

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.
Shh!  I'm taking a break from reality.

TrueDude

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.

MajorSlime

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.
Shh!  I'm taking a break from reality.