Game Tile Transitions
Game Tile Transitions
Game Tile Transitions
Game Tile Transitions
Game Tile Transitions
Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions
Game Tile Transitions Game Tile Transitions
Game Tile Transitions
Go Back  Xtreme Visual Basic Talk > > > Game Tile Transitions


Reply
 
Thread Tools Display Modes
  #1  
Old 07-23-2012, 05:17 AM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default Game Auto Tiles


Since i can't sleep tonight (sunday) and it is now after 6am monday,
i was thinking about how Auto Tiles work.

I have a couple of half thought-out tuts that attempt to explain it but
they don't go far enough for me to understand the processes
involved to even begin a very small project like this.

I was just curious if anyone here has ever tried creating a tilebase
game map with auto tiling before.

Last edited by VB_Alien; 07-23-2012 at 05:53 PM.
Reply With Quote
  #2  
Old 07-23-2012, 04:06 PM
hDC_0Game Tile Transitions hDC_0 is offline
Contributor

* Expert *
 
Join Date: Feb 2004
Posts: 559
Default VB_Alien returns..after over a month's absense..

Hey you're back!
Quote:
Originally Posted by VB_Alien
i was thinking about how tile transitions work.
Is this a continuance of your Custom Control Image Property thread and/or your Copying tiles from sheet thread?

I didn't post in your custom control thread because I didn't want to discourage you,
but in this post there is code, for Public Sub New(), to turn on doublebuffering:
Code:
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
Me.UpdateStyles()
Note: This also works on a panel control, which can act as a container control for using "layered on" picturebox graphics.

However, you can also just
load a picture straight from a file into a memory-based Bitmap object
(to basically have a backbuffer for the graphic) using:
Code:
' Load the picture into a Bitmap.
Dim bm As New Bitmap(file_name)
' Display the results.
picImage.Image = bm
picImage.SizeMode = PictureBoxSizeMode.AutoSize
The more "polite" way of doing this is here.

Code for loading to an Image object (using that as a backbuffer),
and then DrawImageUnscaled painting to a panel control is also shown on this jo0ls post.

jo0ls also posted some nice Surface class code on this social.msdn thread.

Personally I think flipping backbuffered graphics directly onto the form,
(with DoubleBuffered property set to true),
is just as valid as using controls so long as a Multiple buffering pipeline
is set up correctly offscreen.

Do you ever have a chance to play around with the
VB_Alien_MapMaker-rev_1_dot_1.zip
that surfR2911 posted as the last post in you tiles sheet thread?

There are a whole bunch of ways to do tile transitions:
1.) A "flip map" hop, with or without a tile map scrolling (1, 2)
2.) A 2D "shoots and ladders" type transition
3.) A teleporter pad (with round go-thru portal or flying pad, DungeonSeige-style)
4.) An alpha-blended transition stairway (like Diablo-style)

Speaking of which, if you look for the links to the old VB6 demo that
rpgnewbie did for alphablended transitioning of Diablo-style rpg graphics
most of the links are broken (because they used the old style thread urls).

Additionally rpgnewbie had trouble getting the whole thing up in one zip
because of the upload limitations (and frequent time-outs) of the forum back then,
so maybe I it's time to try and do a re-posting to restore the attachment to its whole condition.

It's a very humble demo, but it still has gotten over 1000 "views" for parts A & B combined,
meaning close to 600 people at least tried it out to date.

In terms of an alphablending demo, using rpg graphics, that is designed to show a transitioning:
"when you go inside a building or behind a pillar the game "fades out" the blocking wall/roof/pillar."
it's pretty much the best demo available,
even though it uses isometric tiling
(and of course for your purposes would need some VB.Net alphablending code
similar to what is going on now in posts #19, #22, & #25 of the Viewer thread).
Attached Images
File Type: jpg screenshot_alphafade_with_diablostyle_graphics.JPG (123.1 KB, 23 views)
Attached Files
File Type: zip DiabloStyle_AlphaFade_demo_partsA-n-B.zip (688.9 KB, 23 views)

Last edited by hDC_0; 07-23-2012 at 05:53 PM.
Reply With Quote
  #3  
Old 07-23-2012, 05:52 PM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

Thanks for you reply hDC. I'm afraid i may have mislead
you in what i was talking about. Perhaps i used the wrong
wording.

What i meant by tile transition is, lets say you draw a 32x32 water tile
in the map, the drawing automatically draws the grass tiles all around the
water tile, like RPG Maker does. Now that i think about it, isn't that called
auto-tiles?

I'm sorry about the misunderstanding.

[Edit]

I changed the thread title and the post to reflex
more about what i was talking about.
Reply With Quote
  #4  
Old 07-23-2012, 05:58 PM
hDC_0Game Tile Transitions hDC_0 is offline
Contributor

* Expert *
 
Join Date: Feb 2004
Posts: 559
Default auto-tiles

Oh..auto-tiles.
Well that's a totally different thing.

So you basically want to automate the placing of tiles more
than the auto-fill tile routines in the last post in the tile threads cited above..

What type of A.I. criteria are you thinking of
for how this auto-tiling is to be done?

For instance - if you place a set of 4 water tiles then does the
grass tiles automatically get placed surrounding them?

Of are you thinking about being able to place a set of tiles as a
group..like a palace or a fort or group of village huts
and then have an "auto-fill wilderness" button to wrap different
forest and grass tiles around the center cluster of tiles.

Or perhaps you are worrying about "blending" of the autotiling?
I heard it can be an issue with tile sets in RPGMaker.

Last edited by hDC_0; 07-23-2012 at 06:10 PM.
Reply With Quote
  #5  
Old 07-23-2012, 06:09 PM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

At this point, i'm not sure of anything. I'm just trying
to pick some brains here to see if anyone has ever
attempted this in vb before. I've never seen it done
yet.

I don't think an A.I. would be used in this case but
maybe more like an algorithm. I'm just guessing though.

Much like RPG Maker, the tiles used as auto tiles would
probably be limited to about 4 maybe 5. Grass, water,
snow, forest.

I know this would be a heavy duty subject to try and explain
so it would be nice if anyone knows of any simple vb projects
that have tried to use this feature in game tiling or maybe a
tutorial somewhere.
Reply With Quote
  #6  
Old 07-23-2012, 06:11 PM
hDC_0Game Tile Transitions hDC_0 is offline
Contributor

* Expert *
 
Join Date: Feb 2004
Posts: 559
Default auto-tiling theory algorithm and some rpgmaker-like source code

Have you seen:
CodeProject: Implementing Auto-tiling Functionality in a Tile Map Editor
..which attempts to give some of the theory/algorithm behind the type of auto-tiling that RPGMaker does..

I remember that was a once a discussion of an "Auto Tile orientor"..
Here is my bookmark for that old thread.

I think the biggest issue is getting the sub-
images of the tile sheet to line up with the script.

That's all I got..I certainly haven't looked at the source code for RPGMaker to know
exactly how it works internally..but someone did try to create something called the: "RPG Maker 20XX Engine".

There is some auto tile code C++ code inside the "wcmapdraw.h" file here,
but this code seems more oriented to emulating the rpgmaker player (RPG_RT.exe)
than the editor.
The whole thing can be downloaded as a C++ solution here.

Last edited by hDC_0; 07-23-2012 at 07:35 PM.
Reply With Quote
  #7  
Old 07-23-2012, 11:37 PM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

I've already seen most of what you posted, except for
a couple of links and those really made no sense to me.

I've seen the Code Project one before to. I really don't
understand what it is trying to tell me but maybe i should
just buckle down and study a little harder on it.

I'd like to eventually see a demo of auto tiling posted
here, either by me or someone else. I know there are
people wanting to know how this is done, but no one
wants to invest the time it would take to learn how to
do it from scratch....

This is going to be a big learning curve because, once
someone learns how to correctly draw the auto tiles,
then they will need to learn how to save the map a little
bit differently, unless the auto tiling is strictly an algorithm
process that happens as you load the map. I've got lots to
learn i guess.

Thanks for your help, hDC....
Reply With Quote
  #8  
Old 07-31-2012, 01:32 AM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

I was trying my hand at auto tiling but i was stopped real
quick. The tiles that i am using are from RPG Maker VX.
The tiles in the editor are 32 x 32. When placing a tile in
the game map area:

1: Referring to the darker blue water tile that is automatically
drawn on a blank map, if you lay out some grassy area and then
right click on that dark blue water tile and place it on the grassy
area, the tile is not the same one you just copied.

2: After you lay a tile, a border is drawn around that tile. The
tile you layed is 32 x 32 and with the border, it's around a
40 x 40 tile altogether.

Question is, where did that border come from? I can't find any
tile that is bigger than a 32 x 32 and i have all the new VX game
tiles.

I'll attach 3 images of what i'm talking about.

The first image "Sample1" is a snapshot of the map editor drawing
area of the RPGMake VX. To the right are ocean tiles and to the left
are grass tiles. In the grassy area, you'll see two single drawings of
the ocean tiles. Looking at the bottom one, you can see the tile selector
square. It is 32 x 32 and then you see the border around that. Where did
the border come from?

The next image "Sample2" are all the water tiles, as seen in the editor.

The next image "TileA1" are the first set of the original tiles that come
with RPGMaker VX.

These are the only water tiles that the editor offers.
Attached Images
File Type: png Sample1.png (23.7 KB, 11 views)
File Type: png Sample2.png (41.4 KB, 11 views)
File Type: png TileA1.png (349.7 KB, 15 views)
Reply With Quote
  #9  
Old 07-31-2012, 12:44 PM
hDC_0Game Tile Transitions hDC_0 is offline
Contributor

* Expert *
 
Join Date: Feb 2004
Posts: 559
Default missing autotile code

Quote:
Originally Posted by VB_Alien
1: Referring to the darker blue water tile that is automatically
drawn on a blank map, if you lay out some grassy area and then
right click on that dark blue water tile and place it on the grassy
area, the tile is not the same one you just copied.

2: After you lay a tile, a border is drawn around that tile. The
tile you layed is 32 x 32 and with the border, it's around a
40 x 40 tile altogether.

Question is, where did that border come from? I can't find any
tile that is bigger than a 32 x 32 and i have all the new VX game
tiles.
Where did the border come from?, you ask..
Probably from something you are doing in you autotile code?

However since you haven't shown any code it's a mystery
as to exactly what in your code might be causing this..
Reply With Quote
  #10  
Old 07-31-2012, 02:43 PM
passel's Avatar
passelGame Tile Transitions passel is offline
Sinecure Expert

Super Moderator
* Guru *
 
Join Date: Jun 2003
Location: Upstate New York, usa
Posts: 8,012
Default

It's not from his code, it's a screenshot from RPGMaker VX.
And I thought this effect is what you were referring to from the start.

When two dissembler tiles abut one another, code is run to auto generate texture to blend/blur the edges of the two tiles so you don’t have a sharp line transition between the tile edges.
There are a number of ways this can be done. One of the simpler is have pre-canned combo textures for all combinations that can be placed next to each other and painting that along the edge.
But if you have many combinations, rather than pre-generate and store all possible combinations, the border texture may be generated on the fly when the two tiles are next to each other by shifting and fading, portions of the tile along the edge.
__________________
There Is An Island Of Opportunity In The Middle of Every Difficulty.
Miss That, Though, And You're Pretty Much Doomed.
Reply With Quote
  #11  
Old 07-31-2012, 04:03 PM
surfR2911 surfR2911 is offline
Contributor
 
Join Date: Oct 2009
Posts: 719
Default fading = alpha fading?

Quote:
Originally Posted by passel
..the border texture may be generated on the fly when the two tiles are next to each other by..fading, portions of the tile along the edge
We are talking alpha fading - probably by the use of some color matrix code, right?
Page 2 of the Viewer thread does have some alpha fading examples.

I hate threads that are mostly theoretically and don't have much in the way of code examples.

The CodeProject AutoTile link that hDC_0 linked to back in post #6 of this thread is not all theoretical though.
The author, Colin Vella, did post his tIDE code (even though it's not VB.Net code).

Last edited by surfR2911; 07-31-2012 at 04:18 PM.
Reply With Quote
  #12  
Old 07-31-2012, 04:16 PM
passel's Avatar
passelGame Tile Transitions passel is offline
Sinecure Expert

Super Moderator
* Guru *
 
Join Date: Jun 2003
Location: Upstate New York, usa
Posts: 8,012
Default

I wouldn't necessarily assume alpha fading.
I haven't read a lot of the links that closely, but I believe there are various techniques discussed that one may use, such as interleaving pixels, or manually combining the pixels through some other process.
Since it is already covered in the links, I wasn't going to speculate on any particular method.
__________________
There Is An Island Of Opportunity In The Middle of Every Difficulty.
Miss That, Though, And You're Pretty Much Doomed.
Reply With Quote
  #13  
Old 07-31-2012, 05:13 PM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

Ya. All the sample images came from RPGMaker VX. I haven't
done any coding yet. I can't code, if i know nothing of the
process, which is why i am here.

So maybe what passel is talking about is tile transitioning, at least
in part. This is a process that blends two different tiles (water to grass)
together, so that straight lines are removed. The tiles are feathered together
sort of.

The rest of it probably is like what passel described to. Auto-generated textures,
It's the only thing that makes sense.

There is a lot of tile shifting when using RPGMaker. That first water tile that i
supplied, has very little water in it but when you start placing them on grass
tiles, it creates more water with borders where they belong.

Maybe this project is best left to the experts. This is way over my head.

Thanks for the information guys. It really helped me understand how the process
of auto-tiling works.
Reply With Quote
  #14  
Old 05-25-2013, 10:48 AM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

Opps. Forgot to post the zip file.
Attached Files
File Type: zip Auto-tiling-algorithm-for-RPG-Maker-VX-tile-set.zip (10.5 KB, 3 views)
Reply With Quote
  #15  
Old 05-25-2013, 10:54 AM
VB_Alien VB_Alien is offline
Senior Contributor
 
Join Date: Apr 2004
Posts: 842
Default

Some how, i screwed up my post. I got the cart before the
horse, so to speak.

As you can see, i have already posted a zip file, that contains
the javascript source code that contains the rpg maker vx code
on how to do auto tiling.

I was hoping if someone that is able to, to please convert this
java script to c# or vb.net, if possible.

Here's the web site.

Auto-tiling algorithm for RPG Maker VX tile set
http://jsdo.it/kjirou/auto-tiling-for-rpg-maker-vx

You can also download the code, by clicking on a
download button, at the bottom of that page.

Any help would be appreciated.
Reply With Quote
  #16  
Old 07-16-2013, 01:29 PM
ephestion ephestion is offline
Newcomer
 
Join Date: Aug 2006
Posts: 10
Default

I would probably go with Map templates with randomised variables. Much better than pure random and better than one standard way of producing maps.

Dungeons and walls would probably need hardcoding since you will need to ensure they close properly and have doorways. Open area maps can be script based. For example you have a text or xml file with a format similar to this:

//Player Startup Objects
Player Sprite
Player Location (specific or variable +- 5 tiles)
Place Player On (Grass, Mountain, Walkable, or any other tile specs you want to define.)

//Land Fill
Base Land (First Layer, Water or Grass or other)
Player Start Base (Some template to draw a starting town or village or outland area on which player starts...may inlcude hardcoded things like preset encounters, tavern, inn etc.)
Player Avoids (Trees, Unwalkables, Water, buildings or any other class you defined for your tiles.)

//Place terrain
Place Terrain Objects X On (Base Land/Water, trees, grass etc)

//Create Rooms
Area To Turn To Building (Define a Rectangle or select tiles to be used for buildings)
Enclose Building (a method fires to draw all around the tiles needed)
Make Exits On Walls X (Where X can be Number of Doors min to add to walls)

You can also use your pathfinding procedure to outline a particular path you want kept clear and the rest of teh specified area can be filled with walls, doors and items.

Script like this are used in Random Map Generation for games like Empire Earth, Age Of Empires and Age of Mythology series.

An Alternative is just have template blocks of say 5 x 5 tiles of predefined things. Like a 5x5 Village, A 5x5 Forest area with a small path, a 5x5 Dungeon and all these are added upto the number of tiles wide and high you want to append them. If entire map is 25x25 tiles then you place 5 (5x5) chunks randomly together or base don some % chance.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Forum Jump

Advertisement:





Free Publications
The ASP.NET 2.0 Anthology
101 Essential Tips, Tricks & Hacks - Free 156 Page Preview. Learn the most practical features and best approaches for ASP.NET.
subscribe
Programmers Heaven C# School Book -Free 338 Page eBook
The Programmers Heaven C# School book covers the .NET framework and the C# language.
subscribe
Build Your Own ASP.NET 3.5 Web Site Using C# & VB, 3rd Edition - Free 219 Page Preview!
This comprehensive step-by-step guide will help get your database-driven ASP.NET web site up and running in no time..
subscribe
Game Tile Transitions
Game Tile Transitions
Game Tile Transitions Game Tile Transitions
Game Tile Transitions
Game Tile Transitions
Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions Game Tile Transitions
Game Tile Transitions
Game Tile Transitions
 
Game Tile Transitions
Game Tile Transitions
 
-->