====== Helpful Ideas When Building and Programming Big Places ====== This page is for possibly useful tips when building big places with complicated programs running in it. If you have anything you'd like to add, then please do. If the page starts getting too long then we'll split it into multiple pages. === Memories Read Out Page === - Helpful tool for debugging large programs. Build a page somewhere out of the way, and decorate it to show the values of all your memories (and if you want to be complete, any thoughts you may have used as well). That is, decorate it something like this:\\ \\ `bMemories`b MyMemory1 : [m_352]\\ HaveTheySeenThisRoomYet : [m_384]\\ etc. `bThoughts`b Where Are They? : [t_wharearethey]\\ My Thought B : [t_mythoughtb]\\ and so on.\\ \\ When you're debugging, slip in a Show Page pointing to this page at strategic points in your program. The most likely places to put them are just before and just after the part you think is going wrong. Then you can see what is, and isn't happening to your thoughts and memories as your program unfolds, helping you to pinpoint where something is going wrong. This has a second advantage. If like me you use a [[places:advtut7|universal program]] with quite a few programs plugged into it, and then have several room specific programs on top of that; then the output from your debug tool can start getting quite long. Finding something in the middle of it can be quite difficult. Having it broken up by these pages helps you find where you're looking for much easier. === Control Room === - Gives you a feeling of power. Build a room apart from everywhere else, a room for you that your guests never suspect - the Control Room. //Great. Well how do I get in then?// Aha! You have a secret command that whisks you there from anywhere in your Place. Specifically, you have a little program called 'Take me to the Control Room'. First line a Complete Commentary Contrivance set to your secret password. ANY (or ALL) PASS. Next line Warp to Control Room. Now plug this into your universal program. If you don't have a UP, then you'll have to select some special points in your Place and slip Run Programs in there instead. Hint: You'll probably be using this a lot, so pick something short and easy to type for your secret command. Two or three letters long should be enough. //Annnnnd how do I get back// out //again then?// Build hidden one way doors out from the control room to strategic spots. You can build extra ones in whenever the need arises, so don't worry about where too much. Just remember to add a Show Door to the main program in the room. //Alright. My own secret place, but why?// Well for a start you can now travel around the place a lot quicker. There are other things you can add as well though. //Like...// You can set memories. If you want to award yourself extra gold pieces then have a page titled 'Add 10 000 gp' and on it a program which, well you can guess for yourself. Alternatively if there's some part of your programming which isn't working, a memory is increasing when it shouldn't say, then it can be a pain in the arse to keep looping round to test it while trying to correct it. Set up a page in the Control Room which sets your memories to whatever they need to be to test that. Save yourself a lot of time and frustration. Label it so that you know what state your character will be in when you click on it. Make sure you have a door leading out to where you want to test in your Place and you're away. //OK. Not bad - is there anything else?// Decorate this room with a complete list of your memories and what the various values stand for, something like this. Progress Slot 1: 0 - Player has not yet come across the hungry woman. 1 - Player knows about hungry woman. 2 - Player has told the chef about hungry woman. 3 - Player has taken hungry woman to chef. Match made in heaven. Given trinket. Progress Slot 2: 0 - ... Also any other notes you might want to make to yourself. If you start getting too long, then you might want to decorate pages coming off of here that you can refer to at your leisure. This could be invaluable in the future when you come back to your Place after being away for a while. You'd like to see how people are doing, so you look at their memories and see a bunch of numbers. This lets you know what they mean. You've probably got all this written down somewhere, but it's nice to have it stored somewhere permanently connected with where it's actually useful. Given that you can easily end up frequently redecorating to add extra information, it is a good idea to build this room as early as possible, ideally the first built room, so that it's easy to find in the menus. === Leave The Initial Room Spare === As I say. Decorate it with the title 'First Room' and then blank (you'll never go in this room so the decoration's only function is to stand out in the various menus and make them longer than they already are). Then put a program in there which consists of a Warp To Contraption pointing to your real entry room. So why the extra faff? You get several things from this. 1) Invaluable when you want to add something extra at the front of your Place. Instead of going straight into the mansion, you decide to build gardens at the front. Then build decorate and program your gardens as you wish, attach them where you want to the interior of the mansion and then simply change the destination of the Warp in the Initial room. 2) You could have something a bit more complicated in the program, and warp guests to different locations in your Place depending on how certain memories are set. Or at random. Or a bit of both. Or anything else you can test for. Say you have some sort of puzzle house where guests have to progress deeper and deeper by solving different puzzles. Then if a guest leaves and reenters, you can take them back to a point appropriate to their progress. I tend to have beds in my Places, and I know that's all some people want. If I see that the last room somebody was in was the bedroom (special memory slot to record this) then I can whisk them straight back there upon reentry. 3) (A small one this.) Now you can use the Previous Room Contraption to see if somebody's just entered. Point it to the Initial Room. Previously this was not possible. 4) This is a convenient place to initialise any memories. Say you are using one memory to represent gold pieces and you want your guest to start off with 1000. Then you can put a program in that checks that your guest is new and then sets their memories to what you want them to be. ---- [[places:start|Return to Places Overview]]