View Full Version : Hello! I am new and have some question

05-13-2009, 03:36 PM
Hello everyone, my name is Frank and I am new to the forums. I've been an hobbyist game developer for a while now. I mostly do silly projects during my spare time. I've only worked on text and simple 2d games thus far.

This is a long post so bear with me. :)

The last few years I've been evaluating different game engines, while at the same time tinkering with my own game design ideas. I only found Novashell recently and I must say that I am VERY impressed. Seriously, this is probably one of the best 2d game engines out there. Definitely the best free one. So, before let me just say .... Thank you for sharing this amazing system with the rest of the us! I had a look at other games made by Seth and was amazed at the projects that he worked on. Dink Smallwood was one of my favourite games back in the day, in fact is still installed on one of my computers :D. Legend of the Red Dragon is another legendary (heehee) title.


Where can I find details of the map format? I am considering developing the map in an external editor (just for gfx placements) and then switching back to novashell to tweak scripts, paths, collision attributes, etc.

I was working on modifying Tiled, an open source map editor. For easier terrain drawing I was implementing automatic tile transitions. It is working so-so, but there are still some bugs that I need to iron out. Though, it would probably be better if I built this feature into Novashell's world editor instead.

Have you ever considered an asset manager, or is there one already built into the world editor? What I mean is this ... Being able to load up an asset, e.g. a house, then to set that assets collision polygon and default attributes and then to be able to commit those changes to file. This way if I need that asset on a different map, or in another project then those attributes will already be set for me.

I think that I may write myself an external asset manager just to set asset attributes then modify the world editor to be able to load these settings. Once again it should be possible to add this as an built in tool but I am still new to Novashell's architecture so it is still going to take me a while to get to grips with it.

My game will have a dimetric view. This will be the first dimetric project that I attempt to create. Here is my thoughts on the matter.

1. Tiled can be used for easy tile placement. Outputting a map using Novashell's map format may be tricky. Will have to switch back to Novashell to modify every asset by hand.

2. Can modify Novashell's editor to place snap to isometric. Will have to study the editor's architecture to add any functionality. Can then add automatic terrain transition to the editor.

3. Once all collision polygons are set (for each game element (npc, player, world objects)) then I can proceed to design the game as if it were regular (grid based) 2d and not dimetric.

4. Erm, well I will need to change the diagonal angle at which npcs are allowed to move.

What are your thoughts on the matter? Any advice you can offer me?

Thank you in advance!

05-13-2009, 05:56 PM
Wait ... so when one sets the properties of an image (sprite map) a .dat file is created in the same folder. I know that the .dat file contains all of the collision information. What I want to know is whether is what other information it contains.

05-13-2009, 06:07 PM
I'm afraid I don't know much about the inner workings of the system, but this is on the .dat files from the tutorial(http://www.rtsoft.com/novashell/docs/getting_started_part3.html)

Engine Tip: How does the error message know what the file name is if a tile doesn't store the filename? This data is kept in each maps "resources_used.dat" file and it's only purpose is to be available to look up resource hashes to spit out error messages that mean something.

Now, you didn't explicity save or load the collision data, but it's retained. Where exactly is the engine putting this stuff? If you look in the directory that contains your my_image.png, you'll see another file named my_image.dat. This contains extra information such as the collision data and transparent key color if set. If you cut and paste the image and it's .dat to a new project, that info will be retained and automatically applied if applicable. There is also a way to directly load and save collision shapes from script for more control, we'll get into that later.

Generally, collision data for entities are stored in separate .col files.

Hope some of that helps.

05-13-2009, 09:42 PM
Thank you for the reply.

That tutorial is actually the very thing that alerted me to the presence of the .dat files. The more I get to understand the engine, the more I am impressed by it. :D

05-14-2009, 12:59 AM
Hmm, I wonder how hard building an automatic tile transition system into Novashell would be. Tricky.

I have the editor setup to add more "modes" (like how the world map view is a mode) , so it would probably make sense to have a "Transition Paint Mode" but then you would have design a tileset editor or file format etc, handle everything from the ground up. Not something I would add unless I needed it, this is sort of how all novashell features are added. :sweatdrop:

About an asset manager - well, the concept with Novashell is that you should be able to cut and paste "Palette" maps (the folder itself) into a new project and then pull media/objects from them by cut and pasting things into your project in a visual way.

In practice though, this means you also need to copy over the script directories that the palettes use (say, a tree that uses tree.lua and tree.xml + art), so it depends on your own organization how well this works.

With flexibility comes complication though, as say, it's unlikely you can cut and paste a spider monster from treeworld into your own game unless your game scripts are very similar to Treeworlds.

So sharing is going to be hampered by the fact that games can be designed so many different ways, unless certain standards are agreed upon, like "The RPG kit style" or whatever.

05-14-2009, 04:27 AM
Fantastic. Thanks for the reply, Seth.

First about the asset management... Sounds like everything is already how I wished it would be! I am elated. Organisation is a veryworthwhile trade.

I chuckled pretty good when you explained to me how Novashell gets its new features. It makes sense though :D. I am pretty busy these days and can't wait to get some free time so that I have work through your source code. It will be awesome if I can come up with a high level design for adding the tile transitions mode.