Jump to content
SubSpace Forum Network

Recommended Posts

Posted

Hi, another one of my suggestions.

 

It would be nice if the server could define settings for special tiles. Possible attribute could be animation via GIF or tiled images, precise bounce calculations so ships bounce off of non-horizontal/vertical tiles correctly, custom sizes, sound effects, damage, or a server side callback. The attribute would include the position of the tile, such as:

Solid

Fly Over

Fly Under

Transparent

And it will stop the "DCME Feature requests" smile.gif

 

So? Thoughts? Thanks smile.gif

  • 3 months later...
  • 5 months later...
Posted

Sorry for the thread bump, but I was wondering how exactly Discretion plans to handle tilesets, how much will the server be able to configure tile attributes, and how easily would a server be able to implement its own defined object/ship to tile reaction?

 

I assume Discretion will eventually be more flexible than Continuum; will it allow larger/smaller defined tilesets? Will tiles still be restricted to 16x16 pixels?

 

In another thread it was proposed the addition of 45 degree angle walls, will Discretion rely on transparency to guess if it's at 45 degrees, or will there be some kind of configuration file sent to the client to tell it that a specific tile has a specific attribute? I think the latter would be very useful, since you could define various tile properties, and the server could still manipulate the tile by overwriting the client's settings. This saves the trouble of specifying certain attributes to certain spots of a predefined tileset. The way I imagine it is sort of like CSS, where tiles can be assigned an id, which is subsequently manipulated in the configuration file.

 

#16
{
   property: solid;                 //solid, fly-under(%), fly-over(%) -- objects may pass through but their speed is modified (0: solid, 100:no resistance)
   visibility: visible;             //visible, invisible, transparent(%)
   property-bomb-left: fly-over(100);
   energy: none;                    //none, #
}

It's just an example, but I do think separating the actual tileset from the tile attributes would be a good idea. Unless Bak had something better in mind?

Posted

here's what I currently have in terms of map customizability. Changing most of these is untested, it SHOULD work (give it a try). Also it's not yet sent by the server, which is a simple change. Once people start requesting being able to change it server-side, I'll take the 10 minutes to make the appropriate edits.

 

Please please please try editing these then going to practice offline to check for any bugs in them.

 

conf/Modules/default_oldlvl.conf:

; This is the oldlvl configuration file
; Lines begining with ';' are comments, Lines begining with ';;;' are comments about the catagory/setting immediately below them

;;; the old subspace lvl format
[oldlvl]
;;; draw the mouse when we're in safe zones?
DrawMouseInSafeZones = 1

;;; the path to the default tileset, if it's not in the .lvl file
DefaultTileset = graphics/defaultTileset.png

;;; The size of the map, in tiles. Dimensions: "(w, h)"
MapSize = (1024, 1024)

;;; The number of rows and columns in the tileset image. Dimensions: "(w, h)"
TilesetFrames = (19, 10)

;;; an individual tiles width/height, Dimensions: "(w, h)"
TileSize = (16, 16)

;;; the blank tile's value, this gets placed in every position in the tile that's not defined in the .lvl file
TileBlank = 0

; define special tiles within the tileset
;;; the border tile
BorderTile=19
;;; the safe zone tile(s)
SafeZoneTiles=171
;;; fly over tiles(s)
FlyOverTiles=173,174,175
;;; fly under tile(s)
FlyUnderTiles=176,177,178,179,180,181,182,183,184,185,186,187,188,189,190
;;; tiles where we should treat black as being transparent
TransparentTiles=185,186,187,188,189,190
;;; The Flag Tile numbers
FlagTiles = 170
;;; The goal tile numbers
GoalTiles = 172
;;; The wormhole tile numbers
WormholeTiles = 220

; The tile #s for the doors
;;; a set of tiles that define door #1
Door1=162,163,164,165
;;; a set of tiles that define door #2
Door2=166,167,168,169

;;; door animation time, in milliseconds
DoorAnimationTime=300

;Custom Animations / Graphics for tiles
;;; these are tiles which we should not draw, rather they have a custom image as defined in the settings
CustomImage=162,163,164,165,166,167,168,169,     170,172,216,217,218,219,220

Tile170 Name = EnemyFlag
Tile172 Name = EnemyGoal
Tile216 Name = SmallAsteriod
Tile217 Name = BigAsteriod
Tile218 Name = SmallAsteriod2
Tile219 Name = SpaceStation
Tile220 Name = Wormhole

;sizes
SmallAsteriod Size = (1, 1)
SmallAsteriod2 Size = (1, 1)
BigAsteriod Size = (2, 2)
SpaceStation Size = (6, 6)

[images]
FlagPath = flag
FlagFrames = (10, 2)

GoalPath = goal
GoalFrames = (9, 2)

SmallAsteriodPath = over1
SmallAsteriodFrames = (15, 2)

SmallAsteriod2Path = over3
SmallAsteriod2Frames = (15, 2)

BigAsteriodPath = over2
BigAsteriodFrames = (10, 3)

SpaceStationPath = over4
SpaceStationFrames = (5, 2)

WormholePath = over5
WormholeFrames = (4, 6)

[Animations]
EnemyFlag Unique Image = Flag
EnemyFlag Frame Offset = 0
EnemyFlag Frame Count = 10
EnemyFlag Animation Milliseconds = 1000

FriendlyFlag Unique Image = Flag
FriendlyFlag Frame Offset = 10
FriendlyFlag Frame Count = 10
FriendlyFlag Animation Milliseconds = 1000

EnemyGoal Unique Image = Goal
EnemyGoal Frame Offset = 9
EnemyGoal Frame Count = 9
EnemyGoal Animation Milliseconds = 1000

FriendlyGoal Unique Image = Goal
FriendlyGoal Frame Offset = 10
FriendlyGoal Frame Count = 9
FriendlyGoal Animation Milliseconds = 1000

SmallAsteriod Unique Image = SmallAsteriod
SmallAsteriod Animation Milliseconds = 1500

BigAsteriod Unique Image = BigAsteriod
BigAsteriod Animation Milliseconds = 1500

SmallAsteriod2 Unique Image = SmallAsteriod2
SmallAsteriod2 Animation Milliseconds = 1500

SpaceStation Unique Image = SpaceStation
SpaceStation Animation Milliseconds = 1000

Wormhole Unique Image = Wormhole
Wormhole Animation Milliseconds = 2000

Posted

I'll try to give those a spin later on, but I still think that specifying a tile transparency (for example when you're ship passes under a tile) and speed modification when passing over/under certain tiles could be fun to incorporate (imagine a race or golf map where grass reduces your vehicle and weapon's speed). Though I guess if you expand on how regions handle certain attributes, this could work just as well. Though I also have a few questions/comments with what you have so far:

 

1. I would change "DrawMouseInSafeZones" to something more broad. What if I wanted to show the mouse at all times? On another tile other than safe?

2. Why is there only one border tile? (Would it be possible not to have a map border and have players appear on the opposite side?)

3. Why does the goal tile (along with asteroids, wormholes, spacestations, flags...) remain a lvz, yet you have the door spread over multiple tiles?

4. What if we want transparency, but not black? (think about non-space themed zones) At least, we should be able to specify the color that we want transparent.

5. Is it possible to have more than one door animation time?

6. And for error handling, what happens if I specify abnormal values like mapsize 0,-4?

Posted

3. goal, flag and special objects are not lvz's, just bitmaps blum.gif

 

Also, what he posted reflect the current Continuum way of doing it, I'm pretty sure you could define animations for the doors from an image as well, and use only 1 tile for each door set.

 

2. just appearing on the other side would be easy enough, but showing what's on both sides if you're standing near the border could be quite a challenge

 

 

on topic of speedmodifying tiles, I listed 2 types earlier: resistance and speed limit... I'll add a third type: thrust limit (think slippery ice)

 

and yes, this could also be handled with regions... could be much easier, actually. If you want a whole area to be slowed down, you don't want to define duplicate tiles with the same graphics and different speed values...

Posted
What if I wanted to show the mouse at all times?
There's a key for that, "CTRL + m" right now I think. There might even be a setting somewhere too.

 

for transparency you could overwrite the default tileset setting, then not include a tileset with the map. The default tileset can then be a .png with an alpha channel.

 

 

 

For things like slowing down (friction) or speeding up, I think I am going to make a Forces module that will be a generic way to provide this functionality. Probably could even couple it with powerup and such, perhaps safe zones are a specific instance of a region with special properties. Still thinking about it.

Posted

3. goal, flag and special objects are not lvz's, just bitmaps blum.gif

The bitmaps are client-side. In the current setup, the server needs to send bitmaps compressed into lvz in order to modify the animations. The only exception are doors: to me, it would only make sense that doors be no different from the rest of the animations. This way, all you need to do is specify the image for door#=, which also allows various sized doors.

Posted
In the current setup, the server needs to send bitmaps compressed into lvz in order to modify the animations.
In continuum you don't need to compress things as lvz, you can just put the image (tileset.png, for example) as the levelfile to download.

 

in discretion, lvz isn't in yet, so you need to do each file like that, although you can specify an url for fast http downloads from the web.

Posted
In continuum you don't need to compress things as lvz, you can just put the image (tileset.png, for example) as the levelfile to download.

 

in discretion, lvz isn't in yet, so you need to do each file like that, although you can specify an url for fast http downloads from the web.

And here I was all this time putting everything in lvz. If Discretion allows http downloads though, that would save a lot of time.

Posted

might as well allow zip files instead of using lvz's just to pack files

Well zlib is much better at compression and decompression than zip is. For that matter, when it comes to archivers, rar is slightly better than zip, while 7-zip (which uses lzma compression) owns them all.

Posted
arenas should have a setting that loads a bmp or image uploaded on the server instead of building it inside the map.
I don't understand, you mean like an LVZ mapobject?
Posted (edited)

I thought zip files were made with zlib? :D

So did I. Maybe he is talking about comparing it to window's proprietary library or something. Doesn't zlib also have bzip2 compression?

 

Also bak who are you quoting? :huh:

Edited by Gannon8
Posted

In my opinion, arenas should have a setting that loads a bmp or image uploaded on the server instead of building it inside the map.

I don't understand, you mean like an LVZ mapobject?

Posted
well how to load them, i mean like right below 'levelfiles' make a setting 'tileset' and for fill put "mytilesetname.bmp/png/gif/jpeg. and make a seperate folder in the server files just for tilesets. would make downloading alot smaller considering people share tilesets and only downloading the map itself without the bmp. Would save alot of time IMO
Posted
yeah... makes things easier... fits with the .lvl format, allows backward-compatible elvl stuff hidden in header, makes editing easier (you only need to grab one file from server),
Posted (edited)
hmm okay, but you could also make the tilesets more flexible and have like more tiles in a set and properties for each and export them as like .lvt or something blum.gif Edited by jabjabjab
×
×
  • Create New...