Dynamic Wilds


  • retired

    I should also point out at this juncture that I also have quite a bit of OLC stuff for the wilds as well. Things like "stat wilds", wedit (wilds editor), enhancements to aedit to allow the list of wilds sectors to be displayed, size tweaked etc. Prolly should post that here too for your perusal. I did start work on an in-game wilds editor for smaller wilds sectors, but actually I can't remember how far I got. Plenty of time for that I guess. With the flying machines, there's absolutely no reason why you couldn't have (x,y,z) coordinates. the z-coor would simply correspond to the entity's height above the ground/sea, i.e z = entity height above terrain + terrain height above sealevel. You could do stuff like casting an airship-shaped shadow on the terrain simply by dimming the terrain colour, or using grey. You'd have to give me more details about how you'd want work work it. I assume an airship would be quicker than a mount, but slower than say, a flying dragon. Flying should not be the same as floating (mebbe rename the "fly" spell later on). Vizz.

  • registered

    Just for shits and giggles, I took our current map and placed it on a MUCH BIGGER map, then took a screenshot of that to give perspective on how BIG this could get…

  • registered

    Well, something that came to mind when hearing about this and the thought of having to make a NEW map (or several) .. It occured to me that we could add more to the game as far as emersion by ONLY dealing with the TERRAIN on the wilds map. No named regions like "An Elven Forest". Just have the terrain type "The Open Ocean". That would simplify the terrain tiles greatly by consolidating ALL duplicate terrains that were different due to their NAME into a single tile code. But what about the names? Well, we could create zones in the game that hold region specifications. The names could either be globally known, OR have them done as player memory lists. A player could associate an area or region to a particular name. Of course, we could also do both. Have the names already defined, but then have exposure to them being required to KNOW the names of them just by sight alone. Maps wouldn't count. Speaking of MAPS… with the newfangled wilds... we could introduce a cool new MAP object that can show the wilds when looked at. They would take the map info, throw in a scaling factor to shrink the map and some other stuff. ```` v0: scale (level of detail, 0 being NONE to disable the feature on the map) v1: map number (which map to view from) v2: center X v3: center Y v4: radius v5: flags (what all can be shown, not sure right now) ````

  • registered

    Other things… yes... more! Stuff mentioned about elevation sparked the idea of having the ocean FLOOR mapped out, giving them negative elevations or just give them REALLY low elevations. Then, it occured to me that we could do this for all bodies of water. Put the underwater surface as part of the terrain map, then use WATER regions, each having a type (fresh, salty, brackish, swamp, blood?!), level and dimensions. If you are ABOVE the level, surface is shown along with all surface terrain. When you go below, the terrain switches to the underwater surface (with a color hue shift for each type of liquid possibly?) with all above surface terrain gone (displayed as black spaces). This could lead to have places like Undersea as an area you actually have to SWIM down toward. This could also have things like having too much weight could make you SINK.. and TRULY drown. :D Ships could sink and their wreckage could fall to the ocean depths! Now what about the air? Well, I think I saw mention of altitude based flight. Well, I think that as you get higher up, the smaller everything below gets. Imagine looking down and seeing the world like Eagle Eye! Hell, what about this... from the ground, looking up will show the sky (weather? clouds? stars? constellations? MOON?! floating cities! flying creatures, etc). While flying, looking around will either show the terrain or sky (depending on your altitude). Looking DOWN from an altitude will show further down. Looking up will do the same from the ground, only closer. Now some questions: How would links from normal areas to these new wilds work? For instance, the east gate of Plith would have an east exit that goes out to the wilderness, but how would I, as the builder, do that? Also, what about exits like the PoA door in the Abyss work? Doors have two sides (or not, depending on your universe!), so things like "bar" would need to be workable on both sides.

  • retired

    Heya! Lots of food for thought there Nib - thanks! The thing to remember is that we have to work within the constraints of the interface we have available to us right now, which is effectively an 80x24 text interface. Perhaps later we could use some funky routines to generate a medium-res picture to the user via something like XML or MXP. I think you would need a higher res interface to do the kind of altitude map-scaling you were talking about. To turn to your more immediately relevant point about area links, I considered the very same problem. The issue as I saw it was that both the static area file (say plith, for the sake of argument) and the wilds area both have to have exits defined and pointed at each other in order to have a two-way link between them. To this end, I implemented what i called VLinks. Essentially, the definition for the two-way link is defined only in the wilds area, with a blank wall at the appropriate position in the static area to be linked to. The static areas are loaded up by bootdb() and if there's a link into the wilds, the exit is mapped onto the static area at that point. The link back from the wilds to the static area is created/destroyed as required when someone is standing in the wilds room containing the VLink. Using this method, the static area files don't have to contain any inter-area links at all as they are applied when the wilds are generated. The other nice thing about VLinks is that you can (potentially) use scripting to manipulate the link. For example, a mob could change where a VLink goes depending on some interaction, like a different object being handed over etc. I had been experimenting with shifting-mazes - mazes that auto-randomise while morts/mobs were in them. In order to do this, it was sometimes necessary to relocate the VLink to another part of the maze. (make the maze no-recall too, add a few deathtraps, and suddenly you have a maze that is practically impossible to use an unattended bot in btw). Vizz.

  • retired

    Actually - I just had an idea about the scaling thing you were talking about. I have a nice piece of code that properly handles telnet option negotiation, and part of that is NAWS support. Effectively, with NAWS support, any time the user resizes their viewport window, the server will be informed of their new screen size. So for example, myself with my 1600x1200 TFT, could select small fonts and have a mud window of in excess of 132x100 characters. There's no reason why we couldn't work out the appropriate algorithms in conjunction with NAWS to generate a wilds map for the user that contains more or less detail depending on how big their viewport is. NAWS is an RFC standard - I refer you to the IANA site if you really really want to know how it works. =) Vizz.

  • registered

    Well, what I meant by scaling was more of using the same display size and applying a dominance algorithm to the terrain such that the most dominant one is chosen over a grid… such as taking a 5x5 grid on the original scale that is 75% grassland and just showing the tile for grassland for that 5x5 grid. Now a taste of having underwater stuff! You know Undersea... well... How about having the area itself UNDERWATER, far below the surface of the ocean? Imagine if you will a palette of cyans, blues, greens and a few yellows in this environment surrounding a domed area.

  • retired

    Yeah that's entirely doable without any more coding work. Please have a look at my wilds editor 'wedit'. It provides you with an illustrative palette of terrain types that you can both define and use. You'll continue to use your plugin for much bigger wilds, but this should give you some idea of the flexibility of the terrain token based wilds:

  • registered

    Can the editor handle multiple width tiles? Because, let's face it, the available space for single character tokens is getting slim, and if we add ALOT more to the map, that will require more named zones and such. Also, could it be done such that the loader (and possibly the editor!) can read the pixel color from the image to identify what it is. Perhaps have an internalized tiling scheme for use with the editor, and have a global list of types that can be modified by an imp IN-GAME. Another idea that I've tinkered with on virtual maps regarding elevation. Since it makes no sense that you can see the other side of something that blocks your field of view, I added a way to conceal the terrain beyond tiles whose effective elevation/altitude blocked things behind it from your position. It was fairly straight forward, where by it went out radially, extending a sloping height that was used to conceal things as it went along. If more distance locations were above what the threshold was, it set the new threshold and displayed that tile.

  • retired

    > Can the editor handle multiple width tiles? Because, let's face it, the available space for single character tokens is getting slim, and if we add ALOT more to the map, that will require more named zones and such. I don't see any reason why not. I stayed with the 1-visible char per tile format because it was easy to handle while i experimented. Right now I figure you've got A-Z, a-z, 0-9 and the visible punctuation from the keyboard available to you for tile tokens. We could always move to an integer-based system, potentially giving you 65535 possible terrain types (/geek in the strictest sense, an "int" is 16-bit - in practice most if not all 32-bit C compilers provide 32-bit integers that look and operate just like a "long" - unsigned longs can provide storage for values up to 4.2 billion or thereabouts /ungeek). My problem with doing this is in the inevitable question, "What would this give us?" Since we only have 26+26+10+34(ish) visible tile characters available to us for use in the displayable map in-game, and only8-10 unique colour variations (ANSI), we're never going to be able to use all the integer space for terrain types. It might seem worth it ostensibly, given the extra few terrain tiles you'd gain, but the implications for memory management of using tiles 32-bit in size instead of 8-bit can't be ignored. That said however, you would still be in a better shape than right now with a process size of over 300 meg. Nib I think you and I need to have a geek chat session about how to better utilise your image converter plugin with the new wilds. > Also, could it be done such that the loader (and possibly the editor!) can read the pixel color from the image to identify what it is. Perhaps have an internalized tiling scheme for use with the editor, and have a global list of types that can be modified by an imp IN-GAME. Two parts to that one - answered in reverse order. My wedit code already allows you to create/destroy/edit terrain types in-game, although the terrain type is a subset of the wilds itself, so right now there's no global level list of terrain types that can be imported into multiple wilds. There's no reason we couldn't do that tho - each terrain type is essentially a room definition tied to a terrain tile token. We could have a linked-list of generic terrain types available for import into the discreet wilds sectors - or are you talking about moving the terrain type out of the seperate wilds sectors themselves, and have them as inheritable entities from a larger central store in the code? IMHO, terrain types are data, and as such should be kept in files, not in the code (but I'm willing to listen to argument heh). Read the pixel colour… hmm. You're talking about parsing the image file directly and matching the colour code to a terrain type. I remember we talked briefly about this before, and it's an intriguing idea. How many colours does the image type your plugin produces support? I don't see any reason why we couldn't lift the terrain type straight from the colour code. > Another idea that I've tinkered with on virtual maps regarding elevation. Since it makes no sense that you can see the other side of something that blocks your field of view, I added a way to conceal the terrain beyond tiles whose effective elevation/altitude blocked things behind it from your position. It was fairly straight forward, where by it went out radially, extending a sloping height that was used to conceal things as it went along. If more distance locations were above what the threshold was, it set the new threshold and displayed that tile. What you're talking about here sounds a lot like 3d-clipping algorithms, of which i do have some experience. The problem is, how do you get a decent representation in text where you are limited to a 25x25 effective resolution in characters? I could see clipping getting used if we decided to go graphical, certainly. I did actually play briefly with 3d-representations of the wilds map in-game on continuum, playing with sloping map prints, but the staff I had at the time gave it a mixed reception so I decided to shelve the idea in favour of more in-demand features. It would be cool, IMHO if we could render a map on the fly in-game for the players visible surroundings, and deliver it to the user with the likes of MXP support but then we'd be tying the games performance to the amount of bandwidth the user has available to download the picture after every room move. I'd be worried what that would do to both the servers link and the hosting company's good will! =) Better stop now. My capacity for excessively long posts is legendary. Food for thought tho. Vizz.

  • registered

    > My problem with doing this is in the inevitable question, "What would this give us?" Since we only have 26+26+10+34(ish) visible tile characters available to us for use in the displayable map in-game, and only8-10 unique colour variations (ANSI), we're never going to be able to use all the integer space for terrain types. It might seem worth it ostensibly, given the extra few terrain tiles you'd gain, but the implications for memory management of using tiles 32-bit in size instead of 8-bit can't be ignored. That said however, you would still be in a better shape than right now with a process size of over 300 meg. Nib I think you and I need to have a geek chat session about how to better utilise your image converter plugin with the new wilds. Well, the reason I mentioned multiple width is, being able to handle, say, two character tiles would only be needed if the used tile space for one character (keep in mind, non-control characters! so it's anywhere from 0x20 to 0x7E, minus the tilde which is the string terminator) is reached, and it is pretty close as it is now. With regards to the png->area utility, I merely assign a tile code to a particular color value, much like you would in indexed color palettes in GIFs. When the utility reads the png image, it takes each pixel, matches the color to the list of valid colors, and converts it to the particular tile code. Nothing overly magical. 8) Also, what's your AIM!

  • retired

    Contact details: Email:sc0jack@yahoo.co.uk YIM: sc0jack AIM: sc0jackuk ICQ: 173402032 MSN: sc0jack (i'm still trying to recover my password for this one) Skype: sc0jack I have a cam and a mic as well, so please feel free to conf me if you have the same (this goes for any of you in imm-land). I'm working and living away from home right now so apart from anything else I'd appreciate the company! :mrgreen: Sitrep - spent today building a new ubuntu vmware box on my laptop, so i've got a dev environment again. Just need to get my work-in-progress code off my home machine and I'll be back in business. Gotta talk my gf through tar'ing up my dev folders - that'll be fun lol. (she hates PC's). Scott. (Vizz)

  • registered

    AIM: Xevira Email: mdkurtz@gmail.com That's in… don't have many messengers. Don't have a mic or cam. *is a stone age geek*

  • registered

    Conversation: Me (7:48:57 PM): question, … two actually Vizzini (7:49:05 PM): uh oh Me (7:49:09 PM): 1) how would one make a one way exit TO the wilds Vizzini (7:49:31 PM): that's an interesting question Vizzini (7:50:01 PM): i'm sure i could make it so you could have those Me (7:50:04 PM): and on that question, how do you transfer someone to the wilds? Vizzini (7:50:21 PM): we'd need a modified transfer command Vizzini (7:50:23 PM): like Me (7:50:26 PM): *nods* Vizzini (7:50:40 PM): transfer Vizzini (7:50:44 PM): or Vizzini (7:50:52 PM): it could look at where you are Vizzini (7:51:03 PM): and pick out whatever information is relevant Me (7:51:13 PM): *nods* Vizzini (7:51:16 PM): but yes - good point Vizzini (7:51:21 PM): write that down lol

  • registered

    Me (8:03:20 PM): idea: exit colors! Me (8:03:42 PM): for the vlinks Vizzini (8:04:36 PM): yes good one Vizzini (8:04:45 PM): so you can have blue underwater ones Me (8:04:55 PM): *nods* Me (8:05:14 PM): I had done that before by specifying a different color for codes 0 - 9 Me (8:05:40 PM): so if you wanted a dark grey O, you'd use the tile for dark grey Me (8:06:04 PM): hrm Me (8:06:20 PM): another idea… allow for a string for the exit link itself Vizzini (8:06:28 PM): you need to write this shit down in the coding forum or i'll forget Me (8:06:49 PM): instead of a {BO (blue Oh).. we might want to do a {B@ Me (8:07:02 PM): oh, I've pasted :D Vizzini (8:07:18 PM): oh ok Vizzini (8:07:57 PM): well if we allow different chars for vlinks, how will people know what to look for? Me (8:07:57 PM): like the last one I pasted Me (8:08:18 PM): well, it would have to be carefully chosen Me (8:08:56 PM): like the vortex for Undersea (which I think should ALL go away whenever we can do underwater stuff) Me (8:09:16 PM): @ looks like a vortex Me (8:10:18 PM): could do stuff like ... a {y= for a drawbridge. or some such like that Vizzini (8:10:30 PM): interesting. ok point taken Me (8:10:37 PM): *nods* Me (8:10:45 PM): granted, most will likely be O's

  • retired

    Progress note to self. Wilds integration continues at a slow pace. The more i add, the more i break. 1) Need to sort out the terrain template loading. Sent uses a custom routine called new_load_room(ROOM_INDEX_DATA *room, AREA_DATA *pArea), which is incompatible in format to my own routine. It makes more sense for me to port the actual wilds code to utilise this routine, rather than the other way around. 2) Sent's char_to_room() and char_from_room() routines are wildly different from both stock rom and my own routines. These will need some serious porting. 3) My join_world() routine will need ported into the sent code. This handles the chars entry into the world, and handles whether or not they pop into a wilds room or a normal static room. 4) All the nice code optimisations I worked in around not using vnums in the wilds anymore will have to be reengineered for sent all over again. rooms, mobs, objs, scripts x3 5) Consider ramifications of token logic for virtual rooms. 6) update routines will also need audited. Scott (Vizz).

  • registered

    Me (7:34:54 PM): yo sco! Vizzini (7:35:06 PM): wazza! Vizzini (7:35:14 PM): man i'm nearly finished! Me (7:35:19 PM): *nods* Me (7:35:29 PM): I… added a field for terrain passability Vizzini (7:35:42 PM): ya cool Me (7:35:45 PM): instead of trying to keep a list of terrains that are impassable Vizzini (7:35:53 PM): nods Me (7:35:55 PM): I added a field that defines passability Me (7:36:03 PM): so you won't care which tile is which Vizzini (7:36:23 PM): nods Me (7:36:25 PM): it's a line above the Terrain 0 Vizzini (7:36:26 PM): that'll work for now Vizzini (7:36:32 PM): till we come up with something better Me (7:36:34 PM): a number Me (7:37:03 PM): basically you have the 0 for the Terrain section before the standard room section Me (7:37:22 PM): before that on a line by itself is a number.... 0 = impassable, 1 = passable Vizzini (7:38:11 PM): yes - that's how my terrain format works Vizzini (7:38:20 PM): uhm Vizzini (7:38:27 PM): can't remember which way around it was tho Vizzini (7:38:37 PM): 1 was impassable i think =p Me (7:40:58 PM): ? Me (7:41:07 PM): oh, that's what the 0 means? Me (7:41:26 PM): that's the impass field? Me (7:41:38 PM): (you never did tell me what the fields were for Terrain! :P) Vizzini (7:42:02 PM): oh yeah sorry - i gave you the vlink thing Me (7:42:09 PM): *nods* Vizzini (7:43:23 PM): if you have a look at the wilds.h file i uploaded to the coders forum, it's in there Vizzini (7:43:35 PM): it's the wilds_terrain structure Me (7:43:35 PM): ok Vizzini (7:43:43 PM): mapchar Vizzini (7:43:46 PM): showchar Vizzini (7:43:48 PM): showname Vizzini (7:43:52 PM): briefdesc Vizzini (7:43:54 PM): nonroom Vizzini (7:44:01 PM): room template Vizzini (7:44:11 PM): nonroom is the 0 you were talking about Vizzini (7:44:14 PM): it's a boolean Me (7:44:26 PM): ahhh Me (7:44:31 PM): ok Vizzini (7:44:32 PM): 0 = normal room, 1 = nonroom, as in, never load it cos it's impassable Me (7:44:35 PM): ok Me (7:45:10 PM): there Vizzini (7:45:14 PM): crap - it's 1:45am... do i go out for smokes and continue, or go to bed? Me (7:45:14 PM): figst it! Me (7:45:26 PM): both Me (7:45:36 PM): you have a laptop Vizzini (7:45:42 PM): lol Vizzini (7:45:45 PM): twisted logic Me (7:46:03 PM): though.. I hate laptop mice Me (7:46:10 PM): err.... trackballs Vizzini (7:46:18 PM): it's a touchpad on this one Me (7:46:23 PM): *nods* Vizzini (7:46:34 PM): sony vaio Me (7:46:39 PM): heh Me (7:47:18 PM): yeah, getting the PNG writer to work was fun at first..... until I had the brilliant idea of swiping GIMP's source and looking at its PNG plugin Vizzini (7:47:36 PM): ah yes - nice one Me (7:47:38 PM): to see wtf it did for the api calls Vizzini (7:47:44 PM): why re-invent the wheel Me (7:47:59 PM): to make it out of a different material! Vizzini (7:48:05 PM): the sign of a good coder. i think i'm going to enjoy working with you =) Me (7:48:12 PM): *cackles* Me (7:48:34 PM): ;.; damn ... I just realized.... after next sunday.. I'll have two years til I'm 30 Me (7:48:51 PM): *feels old suddenly* Vizzini (7:49:03 PM): fucksake - i'm 34 next year Vizzini (7:49:07 PM): thanks for reminding me Me (7:49:08 PM): heh Vizzini (7:49:34 PM): man i gotta get some serious amounts of sex in in the next 6 or so years Vizzini (7:49:53 PM): after that it's too gross to think about Me (7:49:53 PM): my oldest cousin is 46! Me (7:50:18 PM): he was 18 when I was born *is the youngest* Me (7:50:43 PM): well, around 18 Me (7:50:48 PM): I forget! Me (7:50:52 PM): he may be 45 Me (7:50:55 PM): who knows! Vizzini (7:51:08 PM): right fuck it. i'm gonna nip down to the garage for smokes. you bad influence you. Me (7:51:15 PM): actually Vizzini (7:51:17 PM): i'll be like 5 mins - you gonna be here? Me (7:51:20 PM): k Vizzini (7:51:35 PM): actually what - you gonna go mary poppins on my ass now? Me (7:51:54 PM): depends on what woman you're with.... there are some damn fine sexy 40 somethings out there! Vizzini (7:52:03 PM): oh right Vizzini (7:52:04 PM): lol Vizzini (7:52:15 PM): yeah but how much of it is fake man Vizzini (7:52:20 PM): think about it Vizzini (7:52:22 PM): brb Me (7:52:31 PM): does it matter?! Me (8:03:55 PM): :D you're gonna kill me for this Me (8:03:57 PM): bbl! Vizzini (8:06:56 PM): ok Me (8:24:00 PM): back Vizzini (8:24:15 PM): ello Vizzini (8:24:37 PM): just sorting char_from_room, then got do_look to rewrite Me (8:24:42 PM): *nods* Vizzini (8:25:01 PM): i'm a bit fucked off actually Vizzini (8:25:17 PM): i asked for another testport to be opened up on the sent box, so i could run a second testport Vizzini (8:25:31 PM): and the admins started giving me static about it Vizzini (8:26:37 PM): i thought they were cool. wtf? Me (8:31:44 PM): O.o Me (8:32:15 PM): which admins? Vizzini (8:32:46 PM): Jamie = Soupboy? Vizzini (8:33:24 PM): Dunno - started talkin bout ways to crash the server using code... bleh Vizzini (8:33:35 PM): maybe i'm being oversensitive, but it was a bit off Vizzini (8:36:43 PM): you can't accept files... oh ok Me (8:42:44 PM): I'm behind a proxy Vizzini (8:42:57 PM): s'ok - no big deal Me (8:43:05 PM): yeah .... that's what gmail is for! Vizzini (8:43:29 PM): s'alright - i'm just being a big girl about it Me (8:43:40 PM): ... girl? Me (8:44:05 PM): *peers* you have anything you wish to tell me? *peers* Vizzini (8:44:15 PM): no - it's just an expression Me (8:44:18 PM): heh Vizzini (8:44:44 PM): man that would shock you all if i turned out to be a girl after all these years lol Me (8:45:30 PM): yeah, an interesting twist of fate Me (8:46:13 PM): all these years I thought you were that drab geeky guy and you turned out to a hot, sexy buxom blonde Vizzini (8:46:43 PM): rofl Vizzini (8:46:46 PM): if only Vizzini (8:46:57 PM): nope - just a drab geeky guy Me (8:53:16 PM): hrm... I wonder... Me (8:53:45 PM): would it be possible to have adaptive tile names? Me (8:53:59 PM): based upon what is around it Vizzini (8:54:01 PM): what do you mean Me (8:54:04 PM): like Me (8:54:11 PM): a sand tile Vizzini (8:54:16 PM): char_from_room done Vizzini (8:54:22 PM): ok Me (8:56:10 PM): completely surrounded by water and itself.... it could be called "A Sandbar"... but if it's next to say... grass it would be a beach Vizzini (8:56:31 PM): yeah i could code that Me (8:56:39 PM): though it would be tricky Vizzini (8:56:44 PM): naw Vizzini (8:56:58 PM): we just do a check as to what the adjacent terrain is Me (8:57:11 PM): well, say you have a five pixel wide span of beach? Me (8:57:45 PM): it would need to be somewhat intelligent to do that Vizzini (8:58:08 PM): well we'd consider each pixel as the centre of a 3x3 square Me (8:58:21 PM): *nods* Vizzini (8:58:35 PM): if the pixel is surrounded on at least 6 of the adjacent squares by water, it's a sand bar Vizzini (8:58:47 PM): or something like that Me (8:58:50 PM): something like this though could be used to alleviate the need for making special terrain tiles Me (8:59:03 PM): that are not named Vizzini (8:59:07 PM): well yeah that's an interesting idea Me (8:59:44 PM): and if the sand is surrounded completely by enough non-sand land tiles... it would be a sand dune Vizzini (8:59:51 PM): perhaps it would be easier if there was the height above sealevel thing Me (9:00:04 PM): well, general elevation Vizzini (9:00:12 PM): as in, if the squares around are not only water, but -1 sea level Me (9:00:36 PM): I don't want absolute above sealevel... I want an absolute elevation.... from the ocean floor Vizzini (9:01:10 PM): yeah but if you do that, where do you measure from? Vizzini (9:01:25 PM): the ocean floor will be at different heights in different places Me (9:01:30 PM): one unit below the lowest level Me (9:01:42 PM): or THE lowest level Me (9:02:01 PM): or have a normal sealevel "0" Vizzini (9:02:04 PM): the water will always be at the same level, and if we measure from sea level, we can modify sea level to cause flooding Me (9:02:06 PM): and have negative elevation Vizzini (9:02:12 PM): yes Vizzini (9:02:17 PM): sealevel is 0 Vizzini (9:02:21 PM): normally Me (9:02:35 PM): except when you take into account tides :D Vizzini (9:02:53 PM): -100 is below sea level, but depending on where it is, it doesn't mean its underwater Vizzini (9:03:04 PM): but it does mean that if you connect it to the sea, it'll flood Vizzini (9:03:15 PM): dams, etc Me (9:03:19 PM): *nods* Vizzini (9:03:27 PM): so i can flood an entire area by blowing a dam Me (9:03:34 PM): 8) Vizzini (9:03:41 PM): or tsunami's etc Me (9:03:53 PM): exactly Vizzini (9:04:03 PM): make areas accessable at low tide, inaccessable at high tide etc Me (9:04:41 PM): yeah, and with the tidal function I provided (albeit, likely highly simplified) ... that would be computable :D Vizzini (9:06:01 PM): have i seen that? Me (9:06:10 PM): it's in the coding forum :P Vizzini (9:06:28 PM): ah ok Me (9:06:29 PM): been there for over a month Vizzini (9:06:34 PM): i've been a little preoccupied Vizzini (9:06:56 PM): prolly read it and went, oh wow that looks nice, and went back to this mess Me (9:07:04 PM): heh Me (9:07:31 PM): I still want to see about having the UNDERWATER part of the wilds part of the map and not HAVE ocean tiles Me (9:08:07 PM): which will require having an elevation map Vizzini (9:08:13 PM): yes Vizzini (9:08:20 PM): i suppose we should start looking at that Me (9:08:26 PM): *nods* Me (9:08:34 PM): hrm Vizzini (9:08:40 PM): how will you reflect elevation on your util? Me (9:08:48 PM): not sure Me (9:08:59 PM): I guess we need to figure out what kind of range we want Vizzini (9:09:00 PM): hues of blue? Vizzini (9:09:42 PM): or you could go for a contour map - but that would be complex to calculate i guess Vizzini (9:10:12 PM): in effect that's what we're going to end up with tho Vizzini (9:10:48 PM): a steep drop will consist of adjacent rooms with a high delta in elevation Me (9:15:38 PM): *nods* Me (9:16:02 PM): well, what I meant was.... how LOW will the oceans be and how HIGH will the mountains be? Me (9:16:45 PM): so we can decide what the elevation elements would have to be Vizzini (9:17:04 PM): well there's the thing Me (9:17:11 PM): yeah :P Vizzini (9:17:17 PM): we know that sea level will be 0 Me (9:17:31 PM): I mean, will we have Everest mountains? Vizzini (9:17:34 PM): but we have to decide how high the mountains will be, relative to that value Me (9:17:44 PM): will we have Challenger Deep channels? Vizzini (9:17:44 PM): well i'd like to Vizzini (9:18:30 PM): i want to implement falling/floating/flying at some point, and that will rely on the HAS of all these terrain features Me (9:18:34 PM): we don't need SUPER high detail elevation Vizzini (9:18:39 PM): HAS = height above sealevel Vizzini (9:18:59 PM): well i spose it depends on how big you want the wilds to be eventually Vizzini (9:19:02 PM): we can work up to it Me (9:19:04 PM): *nods* Vizzini (9:19:21 PM): gradual resizing of the wilds. let's just call this phase 2 Me (9:19:26 PM): well, it also depends on what the file format Me (9:19:36 PM): is ^ Me (9:19:58 PM): binary format would be simple to deal with say... 16-bit values Me (9:20:08 PM): but ASCII? Vizzini (9:20:17 PM): yeah, we will prolly have to go binary at some point Vizzini (9:20:30 PM): right now tho, we're just building the framework Me (9:20:36 PM): yeah Vizzini (9:20:47 PM): but yeah - we're on the same page i think Me (9:20:53 PM): hell.... ha... could just have a 16-bit tile and a 16-bit elevation Me (9:21:01 PM): stored as an RGBA png Me (9:21:17 PM): and use a standard PNG loader Vizzini (9:21:28 PM): we might need two - one for terrain type and one for terrain heights Me (9:21:49 PM): you mean like a section of forest.... have the height of the trees? Me (9:22:27 PM): hell, can just use the PNG writer and WRITE the file out Me (9:22:35 PM): when needed Vizzini (9:22:56 PM): well your picture format can only store one piece of detail per pixel Me (9:23:10 PM): not really! Vizzini (9:23:13 PM): but we need to know what the terrain type at that pixel is, and also the height Me (9:23:23 PM): 32 bits is 4 billion values Me (9:23:51 PM): splitting to two 16-bit groups... that's 64k each Me (9:24:09 PM): what the numbers are to USE is irrelevant Me (9:24:12 PM): US ^ Vizzini (9:24:27 PM): ah yes - i suppose you could use your util to split out the bit values Me (9:24:30 PM): and I'm refering to an image file YOU can load up Vizzini (9:24:37 PM): use the high range for height and the low range for terrain Me (9:25:14 PM): like GREEN<<8+RED for terrain index... and ALPHA<<8+BLUE for elevation Vizzini (9:25:31 PM): nods Me (9:25:54 PM): and PNG loaders are not that hard to use.... I use it! Vizzini (9:26:07 PM): if we use hex, 0000000000000000 to 00000000FFFFFFFF for terrain type Me (9:26:21 PM): well, more like Me (9:26:28 PM): 00000000 to 0000FFFF Vizzini (9:26:30 PM): 000000001FFFFFFF to FFFFFFFFFFFFFFFF Me (9:26:34 PM): 32-bits :P Me (9:26:44 PM): not 64-bits Vizzini (9:26:52 PM): ah sorry Vizzini (9:26:54 PM): yes Me (9:26:57 PM): heh Vizzini (9:27:02 PM): i think in longs =p Me (9:27:09 PM): 8) Vizzini (9:27:14 PM): but you know what i mean Me (9:27:22 PM): yeah Me (9:27:46 PM): and you'd still need 4*W*H memory to hold all that Vizzini (9:27:55 PM): if we assume that these are unsigned integers, that gives us the full 16 bits for each type Me (9:28:05 PM): a 6000 x 6000 -> 144Meg Vizzini (9:28:19 PM): yeah but it's still less that the 300 meg we're using right now Me (9:28:23 PM): yeah Vizzini (9:28:31 PM): so we're still winning Me (9:28:34 PM): and you can add another 50% for your affects Vizzini (9:28:40 PM): and look how much more that would give us to work with Me (9:28:46 PM): yeah Vizzini (9:28:54 PM): by that point i might have worked out a compression system Vizzini (9:28:54 PM): or Me (9:28:59 PM): *nods* Vizzini (9:28:59 PM): sectorized loading Me (9:29:04 PM): yeah Me (9:29:16 PM): and abusing locality :P Vizzini (9:29:27 PM): ? Me (9:29:40 PM): you don't need the map info from 0,0 when no one is even NEAR it Vizzini (9:29:47 PM): ah yes Vizzini (9:29:50 PM): that's what i meant Vizzini (9:30:00 PM): only loading the occupied sectors Me (9:30:06 PM): *nods* Vizzini (9:30:27 PM): anyhow - it's definately time for bed now Vizzini (9:30:29 PM): 3:30am Me (9:30:31 PM): hah Vizzini (9:30:32 PM): up at 7 Me (9:30:35 PM): *so bad* Vizzini (9:30:56 PM): gotta draw the line somewhere. mud coding doesn't pay the bills =)_ Me (9:31:13 PM): heh Vizzini (9:31:19 PM): don't get me wrong - if i could i'd just stay up all night. made some serious progress tonight Vizzini (9:31:31 PM): can you paste all this into the wilds thread? Me (9:31:37 PM): *nods* Vizzini (9:31:38 PM): we talked about some good stuff Vizzini (9:31:54 PM): and at least some of it is actually doable lol Me (9:32:00 PM): *nods* Vizzini (9:32:22 PM): do you rekon you could have a think about the elevation representation thing tho? Me (9:32:36 PM): hrm Me (9:32:52 PM): well, I'd use a seperate image for that stuff Vizzini (9:32:54 PM): try and flesh it out a bit Me (9:33:22 PM): as far as my constructing it Me (9:33:59 PM): hell, we could get rid of impassable terrain 8) Me (9:34:19 PM): anywho... night! Vizzini (9:34:37 PM): nods Vizzini (9:34:40 PM): nite =)

  • retired

    I'm 22 going on 40\. It's all about how young you feel :D

  • retired

    Ok, testport2 is now up on the mud server for those not aware of it. The port is 7000, although only a small number of imms have their pfiles transferred onto it, so if yours isn't there you may need an imp with shell access to set you up. Wilds v2 core code is there, although this is still a very heavy work in progress. Lots of things will crash it, but don't worry too much about that - it should bounce back up within a few seconds. UPDATE: I've had to move into a hotel until I go home on Friday this week - I'll be off the net until then (they only provide net access to those who enjoy consentual rape by credit card companies). I'll continue to work on bug fixes and further code-integration until then, hopefully with a decent update on Friday/Saturday. Vizz.

  • retired

    Offline fixes: * Fixed do_where() crash bug. This is to do with the legacy use of the in_room->parent pointer all over the place for the old wilds. I'll strip them all out. * Fixed wilds exits not being correctly loaded with their destination details. * Fixed vlinks being displayed in the wrong place on the map. * Fixed do_exits() showing "none" in the wilds even when this was incorrect. Vizz.

Log in to reply