On really old machines with hardware support for tiled graphics, you're restricted to the number of layers that hardware was designed to handle.
For modern hardware there is no strict limit on the number of layers one can have. Your only real limit is how many pixels you can shovel per frame.
Without hardware limiting things, there are several reasons for wanting to put a limit on the number of layers:
Simplify level design. You don't have to worry too much as to which layer(s) you should be painting tiles into as the choices would be obvious.
Puts a maximum limit on the number of tiles rendered per frame. This would allow you to compute the maximum render times and infer performance requirements and minimum specs. If a large number of layers are allowed, one can put together complex scenes with a small number of tiles piled upon each other but this can result in a severe performance hit when that part of the level is on screen.
Semi-transparency is okay, although it does depend a bit on how and where it's used.
For objects that are normally transparent, it is generally okay. Such as glass windows or holo-displays.
Shadows. A semi-transparent black layer is an easy way to add shadows to arbitrary tiles.
Darkening/tinting. This can work, but it does carry the performance hit of need to render the affected tiles twice (once for the normal tile and once for the darkening version).
Rotation and mirroring can work on tiles, although it does require support in the engine being used. You also have to keep in mind any lighting that's baked into the tile will probably look wrong after rotation or flipping.
Being generally useful depends on how similar it is with other tilesets and how much massaging is required to make them work nicely with each other. You might want to browse some of the platformer sets on this site and consider how well they fit together (or don't).
I might work on doing more clothes for that portrait system as time and inspiration permits. However, that will be curtailed somewhat by the fact I'm working on my own portrait template system.
I echo Julius's concerns that it was ripped from a game. If you browse elite001's other submissions you can see people comment on which games they came from, and in one of the dragon submissions even elite001 says the dragon came from Silkroad.
Regarding the female in http://opengameart.org/content/template-portait-half-body , it's not so much that she needs gravity applied to her, but rather she's looks to be wearing something constrictive around the bust, like a corset or a horizontal strap of cloth.
Consideration for shape might be needed if one is doing less restrictive or supportive clothes.
(CC0 for the new pieces, in case anyone wants to use them.)
I've been meaning to respond to this but have been having trouble thinking of something that I _need_. My own personal project is still very much in the engine stage and I haven't quite got to the point of building content which will show up glaring gaps. Plus I'm able to do some art myself, allowing me to plug some of those gaps.
That said, my vague wish list for new/expanded LPC content is as follows:
More styles of buildings.
More detail pieces (interior, exterior and general environment).
More outfit options.
More weapon types and animations.
Common D&D races with non-human proportions (dwarves, halflings, gnomes, etc.).
For non-human proportion races I do have a plan to code something up to intelligently scale humans into something that looks about right. How well that turns out in the end remains to be seen. (Assuming I decide I want them in the end.)
I've gone and uploaded a new map which contains all the corners and junctions constructed with adjacent straights. I think it will be more useful, as the ones made for the sample images don't use all the pieces and were made dense to keep the sample pic small.
Let me know if you still want the maps from the sample pics, or new tiles added to make the your tracks fit together more nicely.
There are a number of solutions to the lack of switch statements in Lua. A web search for "lua switch statement" should turn up a few of varying complexity.
My initial suggestion is to go with the simple if-elseif chains at first and see what patterns emerge. You might find only a handful of NPCs require long conditional chains that justify switch like constructions, or handling everything might be more elegant with dialog text files akin to the example from Flare that Clint linked to.
That said, I do worry that your comments are alluding to plans for a giant monolithic function for all of the player's dialog interaction.
Using a number to store the main quest progress will cause you trouble later if you decide to insert stages into your story line. If you do that you'll find yourself do stuff like: gameStoryVariable = 5.29
Clint's suggestion is good. Using something akin to it will result in your quest state/progress being stored in a table like this:
Checking to see if certain events have happened becomes as simple as this:
if queststate["swamp_defeated_ratboss"] or queststate["swamp_found_ring"] do -- do stuff here end
An example with setting:
function village_search_crate() do if queststate["village_found_key"] then message("You find nothing else of interest hidden among the straw.") else queststate["village_found_key"] = true message("The crate is full of straw, but at the bottom you find an old tarnished key.") --add tarnished key to inventory end end
A slightly fancier example:
function village_talkto_elder() do local talkcount = (queststate["village_talkedto_elder_count"] or 0) + 1 queststate["village_talkedto_elder_count"] = tc if talkcount == 1 do speak("Elder", "Welcome to the village stranger.") end if talkcount == 11 do speak("Elder", "You're a chatty one aren't you.") end --add normal talking here end
You'll want a naming convention for your states to keep them organised. For the examples I used: location_verb_object
For modern hardware there is no strict limit on the number of layers one can have. Your only real limit is how many pixels you can shovel per frame.
Without hardware limiting things, there are several reasons for wanting to put a limit on the number of layers:
I might work on doing more clothes for that portrait system as time and inspiration permits. However, that will be curtailed somewhat by the fact I'm working on my own portrait template system.
I echo Julius's concerns that it was ripped from a game. If you browse elite001's other submissions you can see people comment on which games they came from, and in one of the dragon submissions even elite001 says the dragon came from Silkroad.
Regarding the female in http://opengameart.org/content/template-portait-half-body , it's not so much that she needs gravity applied to her, but rather she's looks to be wearing something constrictive around the bust, like a corset or a horizontal strap of cloth.
Consideration for shape might be needed if one is doing less restrictive or supportive clothes.
(CC0 for the new pieces, in case anyone wants to use them.)
I've been meaning to respond to this but have been having trouble thinking of something that I _need_. My own personal project is still very much in the engine stage and I haven't quite got to the point of building content which will show up glaring gaps. Plus I'm able to do some art myself, allowing me to plug some of those gaps.
That said, my vague wish list for new/expanded LPC content is as follows:
For non-human proportion races I do have a plan to code something up to intelligently scale humans into something that looks about right. How well that turns out in the end remains to be seen. (Assuming I decide I want them in the end.)
I've gone and uploaded a new map which contains all the corners and junctions constructed with adjacent straights. I think it will be more useful, as the ones made for the sample images don't use all the pieces and were made dense to keep the sample pic small.
Let me know if you still want the maps from the sample pics, or new tiles added to make the your tracks fit together more nicely.
I'm glad someone has already found this useful. :)
I've gone and added angled tracks and carts. The junctions now come in 45 and 90 degree flavours.
There are a number of solutions to the lack of switch statements in Lua. A web search for "lua switch statement" should turn up a few of varying complexity.
My initial suggestion is to go with the simple if-elseif chains at first and see what patterns emerge. You might find only a handful of NPCs require long conditional chains that justify switch like constructions, or handling everything might be more elegant with dialog text files akin to the example from Flare that Clint linked to.
That said, I do worry that your comments are alluding to plans for a giant monolithic function for all of the player's dialog interaction.
Using a number to store the main quest progress will cause you trouble later if you decide to insert stages into your story line. If you do that you'll find yourself do stuff like: gameStoryVariable = 5.29
Clint's suggestion is good. Using something akin to it will result in your quest state/progress being stored in a table like this:
queststate = {
village_found_key = true,
village_talkedto_elder_count = 10,
village_talkedto_oldlady = true,
swamp_entered = true
}
Checking to see if certain events have happened becomes as simple as this:
if queststate["swamp_defeated_ratboss"] or queststate["swamp_found_ring"] do
-- do stuff here
end
An example with setting:
function village_search_crate() do
if queststate["village_found_key"] then
message("You find nothing else of interest hidden among the straw.")
else
queststate["village_found_key"] = true
message("The crate is full of straw, but at the bottom you find an old tarnished key.")
--add tarnished key to inventory
end
end
A slightly fancier example:
function village_talkto_elder() do
local talkcount = (queststate["village_talkedto_elder_count"] or 0) + 1
queststate["village_talkedto_elder_count"] = tc
if talkcount == 1 do
speak("Elder", "Welcome to the village stranger.")
end
if talkcount == 11 do
speak("Elder", "You're a chatty one aren't you.")
end
--add normal talking here
end
You'll want a naming convention for your states to keep them organised. For the examples I used: location_verb_object
Pages