ID:1282133
 
(See the best response by Kitsueki.)
Problem description:
How can I make it so that when I maximize my client, the map doesn't stay lets say 17x14 and increases to fit full screen instead of me seeing black edges when its maximized and none when its in it normal size?
anchor the map in the interface and run this when a player logs in.

        init_resolution(){
var
info = winget(src, "default.map1", "size")
delimiter = findtextEx(info, "x")
map_width = text2num(copytext(info, 1, delimiter))
map_height = text2num(copytext(info, delimiter+1))
view_width = round(map_width / world.icon_size)
view_height = round(map_height / world.icon_size)
client.view="[view_width]x[view_height]"
client.perspective = EDGE_PERSPECTIVE
}
Set the map to "Stretch to fit". This will make your icons ugly though, because like the option says, it stretches them.

If you are using an interface file, you can dynamically change the view size to keep the icons the same size but show more to the player.
Changing the number of tiles you can see based on window size gives unfair advantages to players with bigger screens. There are no AAA titles that do this (Starcraft, Warcraft, Graal, Realm of the Mad God, Runescape, Tibia, etc. etc.)

I don't understand why byond games do this, its just annoying and makes the games look even less professional than they already do. It also doesn't make any sense from a game-logic point of view. You should be trying to do 1:1 / 2:1 / 3:1 or even 4:1 pixel-perfect ratio stretching to avoid blur and to fit on the screen, or forcing the game to fit in a window. For example: http://www.chasmgame.com is always ran at the same resolution and same window size.

Here are tons more examples of games that have fixed view size and resolution:
http://www.tibia.com/ abouttibia/?subtopic=screenshots&screenshot=swimming
http://www.mmorpg.com/gamelist.cfm/game/780/view/screens/ display/24568
http://www.graalonline.com/playerworlds/community/gallery
http://www.mmorpg.com/gamelist.cfm/game/12/view/screens
http://us.battle.net/sc2/en/media/screenshots/#/1
http://www.runescape.com/media_screenshots.ws
http://www.gamershell.com/pc/warcraft_iii_the_frozen_throne/ screenshots.html
http://photo.mmosite.com/tricksteronline/

If you need more examples, look at just about any 2d game, ever.
In response to Gokussj99
How do I put that in because when I do it keeps saying that view and perspective is not being used.
In response to Hector24
Hector24 wrote:
How do I put that in because when I do it keeps saying that view and perspective is not being used.

its a mob proc so just place it under whatever your player path is then call init_resolution() under mob/Login() or whatever path you use.

But as they pointed out above you should take that into consideration depending on your project.
Best response
Here's how I do it;

    resize_map()
set hidden = 1
var s = winget(src, "MainMap", "size")
var list/dimensions = dd_text2List(s, "x")
var nx = text2num(dimensions[1]), ny = text2num(dimensions[2])
client.view = "[round(nx / 32)]x[round(ny / 32)]"


You'll need Deadron's text procs for that to work, but I can't think of any reason why you shouldn't already have that library!

Oh yeah, run it when your character logs in -and- set this as the resize command for the map. That way it's updated everytime it changes.
In response to Kitsueki
Kitsueki wrote:
Here's how I do it;

>   resize_map()
> set hidden = 1
> var s = winget(src, "MainMap", "size")
> var list/dimensions = dd_text2List(s, "x")
> var nx = text2num(dimensions[1]), ny = text2num(dimensions[2])
> client.view = "[round(nx / 32)]x[round(ny / 32)]"
>

You'll need Deadron's text procs for that to work, but I can't think of any reason why you shouldn't already have that library!

Oh yeah, run it when your character logs in -and- set this as the resize command for the map. That way it's updated everytime it changes.

Prob the best way to do it Hector i recommend his approach. ^
Yea did. Didn't work for some reason but I have have everything. And your first code worked but not the way I wanted. I just keep my game unresizeable.
In response to Hector24
Hector24 wrote:
Yea did. Didn't work for some reason but I have have everything. And your first code worked but not the way I wanted. I just keep my game unresizeable.

Did you make sure to point it to the correct window? like default.map

var s = winget(src, "default.map1", "size")
winset(src, "default.map", "icon-size=64")


If your icons are 32 it pulls them to 64 and doesn't blur them.

Simply change the map's and interfaces size and set the icon size. If you anchor everything in the skin the resizing should work just by changing the main window's size but you still need to set the icons size.