Skip to main content
$12256 / $11500
About
Rules
Blog
FAQ
Style
Forum
OSARE v0.10 Released
FLARE [ARCHIVED]
OSARE v0.10 Released
Clint Bellanger
Monday, October 25, 2010 - 04:28
http://clintbellanger.net/rpg/blog/20101025
Magic, melee, and ranged powers
Action bar support for powers
Click-to-activate action bar and menus
XP bar on HUD
Minimap on HUD
New health/mana bar images
README.txt to help new players
http://www.youtube.com/watch?v=qAJ7ogpcsj4
Hey, congratulations on the release, it's shaping up into a real game. It's a relatively new open source game on the block, but it's already ahead of many other projects, simply due to the fact it has gameplay. In addition, things don't look or feel half stiched together. Best of all, it's a solid foundation with which other people can make their games.
I wish you the best of luck with future development.
Thanks Lamoot! I feel like I'm inching closer to a real game. I'm glad the current demo is playable and somewhat fun, if just for 30 minutes or so.
Here are the next major milestones in my to-do list:
I'll also be putting a lot of effort into moving the game configuration into plaintext files so that most everything about the game can be changed. To test that this works I'll try to make a total conversion into a completely different genre, maybe post-apoc or cyberpunk or modern day zombie survival.
Also I'll try to include new art in each release. v0.10 adds the Minotaur. Next release I'll probably shoot for a new overworld tileset.
Wow. All I can say is "Wow." Runs perfectly on WINE in Ubuntu 10.10.
I'm looking forward to the seeing OSARE grow to be one of the most popular open-source games of all time. I've taken a look at the code and it's very clean and professional. It's going to be easy to make new games from this engine.
Thanks anon, that's high praise!
The code is good enough for Alpha, perhaps. During the Beta phase I'll be moving everything into config files so that a complete transformation of the game (say, into a zombie game or space marine game) can be done without recompiling. By then the code will be much cleaner.
My goal is to make it fun first, then configurable/moddable later. I think the "fun" part is slowly starting to happen.
Congratulations on this release its again a huge step forward and allready very addicting for an alpha. Not least because of your great tileset and models.
I just looked at the txt files : it would be more easy to create new maps with few comments on files structure. For instance in the tilesetdef.txt, it's hard to see what columns are corresponding to. Excepts this I like the logic in the configuration files, I think I could create my own map/cretaures/item within less than a week (using your graphics of course).
Great Job !
Nice, you're moving forward very fast, congratulations to the new release. It is already fun to play!
Tartos,
I need to write up some documentation on the file structures.
If you're mostly interested in making maps, you don't necessarily have to do it by hand. I use Tiled to created the tile layers. Here are the map files in google code. Download the tmx files and those two images and you should be able to edit the maps to see how they work. I use Tiled's "CSV" format for map data when saving. Then I copy those CSV chunks into my map format. Finally, I add enemies and events directly into the map text file.
Eventually I'll write a Tiled plugin to read/write my map format natively.
Well, I am mostly interested with random generation. I will try to play with your mediaval building tileset to generate random buildings. Do you generate files such tileset_dungeon.txt manually ? The first column is for tile ID, then it's x and y, the width and height. What are the two last column for ?
And for the map txt file, the last number in the spawn location is for the orientation ?
Tartos,
I create tileset_dungeon.txt manually. The columns are: id, x, y, width, height, offset_x, offset_y. Offset (x,y) assumes the anchor point is the center of the tile, and subtracting the offset puts you at the top-left corner where you draw the tile sprite (I use this to have various-size tile images).
The last number for spawns is orientation/direction. 0 through 7. 0 is facing the left side of the screen, which corresponds to (-x,+y) on the map I think.
I had some trouble matching tiles and numbers in the map and I found what the problem was: tiles id is given in hexadecimal whereas the id used in maps is the decimal value. I was experimenting with your grass & water tileset and i'm having troubles with transparency : if I copy & paste from the png on a pink image (color 255,0,255), then I have pink arround the grass. If I remove transparency from the source image and then copy & paste, then I have white around the grass. Any hint ?
Tartos,
To convert from a RGBA image to RGB with pink as the background, I use this technique.
In GIMP:
If the result doesn't look right, it could mean the original render wasn't done carefully. I made those grass/water tiles a long time ago and have learned new techniques since then.
(edit)
Yeah I can't get the grass/water tiles to look right. The grass particles are a much lighter color when not against the brown dirt background, so it's causing the tile edges to appear prominently. I'll experiment to see if I can make better grass tiles.
Tartos, I found that for the grass/water tiles, a threshold alpha of 144 got me closest to what I wanted.
I uploaded two "noalpha" versions of the tileset here http://opengameart.org/content/grass-and-water-tiles
I can't wait to see what lies in the future! I have had a great idea for a game for a while now, and it looks like OSARE is the perfect engine to implement it. (Well, once we get some new tile sets...) In the future will there be more powers and options on which powers the developers want to use for their game?
At any rate, I'm already designing maps for OSARE. Keep up the good work!
pennomi, eventually all the powers will be customizable. There will be a few "base types" of powers to build from.
Current base power types:
Eventually you'll be able to set the animation file, sound effect, speed, etc. for new powers. And you can tack on modifiers like causes bleed/stun/slow, damage type fire/ice/etc.
Right now the current powers are fixed. In a future update they will all be moved to config file, where it will be relatively easy to change them or make entirely new ones.
If I get requests for new base power types, and it makes sense for there to be a new base power type, I'll add it to the engine.
I have manage to play a little bit with map generation & integration into the engine. Here is the results :
Here is a map with 100 goblins :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/outdoor.txt (put this file in resources/maps/)
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/tileset_outdoor.txt (put this file in resources/tilesetdefs/)
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/tileset_outdoor.png (put this file in resources/images/tilesets/)
You then have to modify the file spawn.txt in maps/ :
- comment the line intermap=goblin_warrens.txt,28,76 by putting a '#' at the begining of the line
- add a line 'intermap=outdoor.txt,32,32' at the bottom of the file
And the python script used to generate the map (launched in resource directory) :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/generateIsland.py
What took me most of the time was to define the neighborhood rules for the tiles.
@tartos: neat tileset.
@pfunked: Nice release. What's for the next version? NPC's and quests? That would make a full engine out of it. Then it only needs multiplayer, and content. Also: I miss a spell to regenerate mana in expense of health. Of course it shouldn't be profitable to go mana -> health -> mana etc, but, I sometimes have to wait for my mana to regenerate, while my health is still full (as a pure offense lvl 9)
@nander : All art was done by pfunked, I just put 3 tilesets together.
@tartos: Great job! But don't you think that water shouldn't block line of sight? Try changing the collision layer values to 2 instead of 1. Here's the fixed file: http://ubuntuone.com/p/MYI/ Just replace the text in outdoor.txt with this text and it'll work.
Another map generated with another algorithm :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/outdoor2.txt
and in spawn.txt:
intermap=outdoor2.txt,66,66
@pennomi : Thanks for the explanation ! I was wondering what the '2' was used for in the collision map.
For collisions:
0 means no collision
1 means blocks all
2 means blocks movement only (so you can still have line of sight and missile spells across these tiles).
Tartos: nice work on these generated maps. I think you're the first to post algorithmically generated maps for OSARE. I need to make a good outdoors tileset that has more features.
Just curious, what's the 15 supposed to be on the collision layer?
Also some notes for you maphackers:
You'll find many parts of the game aren't really mod ready yet, as the app will crash out in plenty of unexpected situations. I need to make a good pass through the code to add better error handling and comments to help people making mods.
pennomi, I'm using 15 to mean an "invisible" collision tile. These do not show up on the minimap. Currently I'm using them for secret passages.
Also if you look at the collision tile image I use in Tiled you'll see eight corner tiles; I don't have these implemented yet in game. (I'm not sure yet if they'll be necessary)
I was looking into the code and I have some though and questions :
- The maximum level of an item is the maximum level of a monster + 3. The maximum level for a monster is 9 (skeleton boss), so in your demo some items are not dropable ? In lootManager.cpp, line 269, if actual <1, actual should be put to 1 instead of 0 ? (there is no level 0 items in your database).
- If an item has not a level, he won't drop ?
- Can an item have multiple bonuses ? If not it would be great !
And some small ideas for the future :
- In the file of monster, add the ability to apply a color filter. For instance the filter has a transparency of 100 and we can set a RGB color value (or a RGBA color value). It would allow to create 5-6 monsters of the same race but with different levels from the same sprite set.
- split the items.txt file into smaller file : one for weapon, one for armors, ...
- having a king of inheritance for config files : it would avoid to rewrite the same things for animation frames, ...
- Allow to have animated objects : trees, torches, ... For instance there is art from widelands here with animated falling trees. It would be awesome to see the tree folding after a spell or many attacks !
Re: Tartos
Also,
I probably won't do the colored monster thing. It was easier to do in Diablo because all the graphics were in a 256 color pallete. But it could come later if I change the rendering to OpenGL.
I tough it could be done with SDL. But finally it seems there is no pixel manipulation with SDL
I have updated the two link :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/outdoor.txt (starting point is 6,6)
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/generateIsland.py : A random walker that puts rectangles of grass and monsters on his path. Monsters level increase during the walk (from goblins to big skeletons)
If I want to put a dungeon entrance at the end of the path, should it be in the background layer or object layer ? I believe it's the second solution because the tile for the entrance is much bigger than other tiles.
Tartos,
If you're using that 4x4 tile "temple entrance", you'll want that in the background. To display correctly, you'll want to divide that large tile so that it's actually 7 individual tiles, in vertical slices. The middle slice will be 64 pixels wide, and the others will be 32 pixels wide. The white dots show the centerpoint of each of the 7 base tiles.
Hello!
as promised heres a Tiled plugin for osare.. as for now it can write map format of osare..
http://www.mediafire.com/file/sffwkt06yjgfa0c/osare%20plugin.rar
im currently working on how to read osare map formats.. I need some feedbacks on the plugin so i can improve it.
Jaderamiso, thanks for working on this!
I will clean up a current OSARE map in Tiled, with events and enemies included. That way we'll have a good test to make sure the plugin output is just like the actual OSARE map file.
I'm rather busy, so maybe give me a couple days on this? Thanks!
No problem. Take your time.
Hi, again I have a few questions :)
I would like to add chest and other objects in my maps.
- What are the 2 last numbers in a location line used for ? (the first two are the coordinates I believe)
- Can mapmod be used with the background layer ?
- What are the other types of event in addition to 'run_once' ?
- What are the 3 numbers of loot used for ? (I believe the first one is the level of the loot)
- Is it possible to add enemy spawn as event ? (for instance a monster appears after having opened a chest)
Tartos,
- Event locations are x,y,w,h. (x,y) is the northwest corner of the event box, and w,h is the tile width and height of the rectangular area. Note: right now the w,h is zero-based (e.g. 0,0 means the area is actually 1,1) but I will probably change that soon to make it more compatable with tools like Tiled.
- Mapmod can be used with background, object, or collision layers. mapmod=layer,x,y,tile_id
- Right now the only event types are "run_once" and "teleport". Really, the only event type that does anything is "run_once"; once that event is triggered it can't be triggered again (unless you leave the map and return to it). Any other event type will be ignored and assumed it should run every time the player enters that area.
Also note about teleport events, the reason they are not "run_once" is because you can have teleports within a map. The teleport event component is intermap=mapname.txt,x,y but if you leave the mapname.txt blank it assumes "intramap". I'll probably build a new specific "intramap" teleport that only takes x,y variables.
- loot=random,x,y,level OR loot=id,x,y,item_id (x and y are the tile in which to spawn the loot).
Example 1: spawn a random level 4 treasure in map position 10,10. loot=random,10,10,4
Example 2: spawn a longsword ( http://clintbellanger.net/rpg/item.php?id=200 ) in map position 10,10: loot=id,10,10,200
- Currently you can't spawn an enemy as an event but that is something I plan to add.
I hope to document all this soon, I didn't expect modders to show up just yet :)
Thanks for the fast reply !
A last question : for random loot, is the level of the loot affected by random variations (5% chance to have -3, 10% to have -2, ...)
For the documentation, I can compile all informations about OSARE map format in a thread if you want.
Tartos, very perceptive! Yes there is a level variation.
If the final level is 0 or below, no loot drops.
Within each level, loot has a distribution by quality.
The current distribution:
This means, for example, a specific normal quality level 8 item each has a 10X greater chance to drop than a specific epic level 8 item. If there are more normal quality items than epic items at that level anyway, that means there's an even higher chance of getting any normal quality item.
Okay, thanks for the details. Here is a dungeon with monsters and chests :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/dungeon.txt
The python script used to generate the map :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/generateDungeon.py
Next I ll try to add :
- some teleports to others generated maps
- Bosses with their minions : garding nice treasure chests or teleports
- some mechanism to make the player run (switches that open doors at the opposite of the dungeon :D)
- some kind of premade rooms (with thrones, statues, benches and switches)
Trying it now. Nice work!
Especially, nice use of tile variations (e.g. wall features). I'm impressed with this script.
You'll notice on my other maps using the dungeon tile that I ofen use those cut-away "half walls" so that the hero can be seen and not hidden behind the wall. Probably a bit trickier to put those in but the result is helpful to the player.
I'm not sure yet how I might integrate a random map generator into the game itself. But if you wanted to, say, generate a random 100-level-deep dungeon I could easily include it in the game.
Thanks for the feedback :)
- For tiles variation, tiles with the same class are taken at random. Perhaps by teaking the randomness or by pytting conditions a better result can be obtained. For instance forbid to put 3 walls with a torch in a row.
- Yes I have seen these cut-away "half walls", I have tried some maps with them but the result don't have a good look. I think it can be done with putting additionnal rules for tiles selection. For the moment there are only two kinds of tiles handled by the script. I'll try to increase this number.
- For the moment, I see this script as a mean to quickly add content. I would be very pleased if I could generate some dungeons that would be included in the game :).
pfunked it would be very nice if you find a moment to write a tutorial "how to make a tilset for OSARE, from Blender to Osare." even a short one, just to have some clues.
Your work is impressive !! thanks a lot for this game/engine.
nubux, I plan to do so. This week in fact, for our "Art Tutorial" Weekly Challenge
Here is a 5 level dungeon filled with goblins :
http://www-valoria.univ-ubs.fr/Nicolas.Bonnel/OSARE/osare.tar.gz
Unpack in resources folder and it should be ok. This will modify some files :
- tilesetdefs/tileset_dungeon.txt : add 2 new tiles for entrance and exit
- images/tilesets/tileset_dungeon.png : add 2 new tiles for entrance and exit
- spawn.txt : change the start to this dungeon
And add other files :
- images/enemies/goblin_color.png : made some variations of color, this can be improved because the weapon color change too
- enemies/goblinX.txt : goblins from level 1 to 6, each have a different color
- maps/dungeonX.txt : the 5 new maps
Tartos: excellent! aaah those dark goblins are fast!
It's great to see that, even this early, someone is able to figure out how to make content for the game. Kudos!
Excellent tutorial !! thank you very much, i've tried it (only with the plane for now) with blender 2.55 and i was able to find everything.Great job!!
nubux: thanks!
If the rest of you are wondering, nubux is talking about this tutorial I just posted: http://clintbellanger.net/rpg/tutorials/isometric_tiles/
Tartos,
In my latest Google Code commit, I made a small change to the map format. It is about the Event location (width,height). Before, a 1x1 tile event had a width,height of (0,0). Now it is (1,1) which obviously makes more sense. Basically, add +1 to every event location width and height. I've already converted my current maps.
I missed the 11/03 news on your web site. I love this cave tileset ! Will it be available in the next release ?
Tartos, I'll post the tileset to OGA as soon as I have it finished. I have lots more to add: stalactite/stalagmite pillars, general ground rubble, water, mine shaft features, etc.
And yes, hopefully I'll have a few cave maps in OSARE v0.11
Hi,
I'm interested in mapping, I've tried Tiled but I've some questions, if sombody could help me, I would be grateful :
-I don't understand how to install/use the osare plugin for tiled
-I was wandering if this plugin create the colision layer
-When I create a map, I'm obliged to use only one tileset for the engine (I saw that I could use several in Tiled), am I right ?
-For now I'm obliged to place manually creatures in the .txt file, right ?
-I can't read .tmx files I found on google code, what's wrong ? = "unvalid format line 5 column 6"
-when I create a map there are still some "black" squares is it normal ?
-Is there a max map size ? I read 256 per 256 tiles is it a limitation ?
-Is it possible to create a full wall with one click, instead of changing for each part of it (when I select an entire wall, it doesn't stand verticaly anymore but horizontally) ?
I'm sorry if these questions look (are ?) stupid, I'm beginner, I just want to understand!
Cybertroll:
Also, the way collision works:
Pages