59

Because it is expensive, and the return on that cost is usually zero. Building tools to create games is hard and expensive already. It becomes harder and more expensive when those tools need to be brought up to the level of polish required to ship them to (potentially very non-technical) end-users. Once you ship those tools, you also have customer ...


24

For a 'classic' 3D terrain editor, the steps could be those: Generate a mesh (e.g a grid of squares, every square made of two triangles), all vertices are shared between triangles (so that there is only one normal per intersection). This should be made a 3DMesh and rendered in your program. Make a tool to raise and lower (smaller and bigger) parts of the ...


13

You will have to separate your code into separate projects (in the same solution). Usually you would have the following setup: -Engine Core (DLL) -Game + Game Logic (EXE) -Content Pipeline (DLL) -Editor (EXE) For even larger projects you might want to separate the Engine Core over multiple projects like Core, Physics, Graphics, Audio, ...


10

There could be a lot of factors but the ones that come to my mind first are ease of use and compatibility. An AAA office environment would most likely have company-provided computers, meaning there would be very little variety in the OS and hardware that the program would need to support. This would mean fewer bugs, and it would also mean that if released ...


10

What money can you make from such a map editor? Prolonging the lifetime of a game is great for the customer, but for the studio? Blizzard had to keep the original Battle.Net servers online much longer, and with much greater capacity. That costs money. at the same time, sales of new copies of the game are almost non-existent. Users expect patches for new OS ...


9

The first thing you need to have a good grasp of is transforming 3D points to 2D screen coordinates and back again. Here are a couple of answers I gave about that subject; Understanding 3D to Screen, 3D to 2D. Now, to go from your mouse coordinate in 2D to 3D you need to do a 3D to 2D transformation backwards. This is fairly simple. An object/local ...


8

This is an incredibly complicated problem. I had an old series on blog about it but (a) I no longer recommend that approach and (b) old posts on my blog can't be read easily due to a snafu with a plugin and me not having time to fix it all. The gist of what you need to do on the "simple" end is to keep a table of IProperty objects which are specialized to ...


7

Are you talking about this editor? If so, it states right away: General purpose tile map editor with XML-based map format So you could just use a good, general purpose XML library such as: http://rapidxml.sourceforge.net/ After that it's just a matter of following the TMX specification. In other words, you will simply need to ask the XML library to ...


6

Tiled is very well suited for a platformer. But it really depends on how you design your tiles. Usually you'll have small tiles that are repeatable and form your landscape. Special corner- and edge-tiles can be used for a better look. Here's an example of such a sprite-sheet. If you'd like to position sprites freely (eg. you're not working with tiles), I ...


6

Gleed 2D is the most popular tool. It has recently been rewritten and can be found on GitHub. The output of the tool is a simple XML file. If you're using XNA, there's a small component that'll turn the XML into an object graph. There's versions for Windows, XBox, and Windows Phone. The new version contains lighting and behaviours:


6

It's been a while since the last update, but there's Gleed2D. I've used it before and it's pretty straightforward. Basically set up your layers, drag and drop sprites into the stage, and transform them into the correct place. Then export to XML and read on your game.


6

The first thing is to be clear on the data structure of your terrain, and what you want from an editor. Is it a mesh? An array of heights? Some sort of Minecraft-style voxel system? Do you need to be able to add mesh terrain features like trees and buildings? Manually, automatically or both? I could go on, but you get the idea. A basic terrain editor ...


5

This is just mostly a follow-up to Valmond's response, but it doesn't seem short enough to add as a comment. Once you get around to making a basic editor, you might want to experiment by generating the heightmap entirely on the GPU. This is completely optional but it's a good way of offloading work to the GPU for a constantly changing terrain. Valmond ...


4

Separate out rendering logic as best as you could from actual game logic when designing your game engine. One way of doing this is to use Component pattern when building your game engine. For example, XNA uses this pattern at the framework level for flexibility. Use the same code-base for rendering with your level editor; write wrappers if you have to. ...


4

The best way I've seen is to make use of some custom introspection. As Sean pointed out, this is pretty difficult to do on your own since it's not a direct standard C++ feature in any way. So if you're up for implementing something more advanced then read on. I actually implemented this (not the editor, just generic properties) in an open source project. ...


3

The commandos titles look like they use prerendered backgrounds. This means that one or multiple artists design the whole wort in a 2d or 3d programm. Commandos looks like it was done in 3d and then post processed in like photoshop. The exporter of the 3d programm used a special export method, as the viewing perspective is not physically correct. Objects ...


3

you can use a part of cocos2d-x library, it's a gameengine developed in c++ for 2d games, but you can just use the CCTMXTiledMap class from that engine to parse tmx file for you.


3

A bit late for Raj but for anyone else... string PictureLocation = @"D:\PictureName.png"; Texture2D Newtexture = LoadPicture(PictureLocation); string PictureDestination = @"D:\NewPictureName.png"; SavePicture(PictureDestination, Newtexture); public static Texture2D LoadPicture(string Filename) { FileStream ...


3

Sure it's possible and it has been done in the past, but there are several advantages and disadvantages associated with using a texture as the map: You'll need some way to determine specific attributes of parts of the map, e.g. whether some position is actually solid, or for other things, such as destructible terrain, ice, etc. Making parts of the map ...


3

It depends what you mean by tile-based. Most 2D games that involve a level that you view from the top-down are tile based. In this way different tiles usually have different properties, and pathfinding such as A* is easy to implement. A lot of level editors use a tile-based sprite-sheet to define all of the aspects of a level, but then use them in a tiled ...


3

Don't get overly clever with your storage. For each operation, store the old value, the new value, and what changed. Something like: class Edit: int x int y tile_t old tile_t new void apply_undo(): set_tile_at(x, y, old) void apply_redo(): set_tile_at(x, y, new) You will want this to store whole (not necessarily rectangular) regions ...


3

These are the two main solutions I can think of: If you use tilesets, add a rectangle on top of your tiles. You should also move the collision detection up a bit, not to have your character walking on the edge of the blocks. However, this can easily look like the character's feet are passing through the ground but it mostly depends on the quality of the ...


3

To complement the already existing answers I want to add two points: Often newer games have more complex geometry, effects or design (I'm not speaking of level layout here, only the complexity of the objects/buildings placed in one level). In old games you could just create a new map my placing different already existing terrain or structures in a new way, ...


2

The best ones I know of are Mappy and TIDE. Both export in open formats, and TIDE while not as well-known also exports in its own XML format and supports Mappy FMP, and Flixel's file format, so you can move back to Mappy or easily port to Flash.


2

Typically, I'll just create a bounding volume out of my mouse. The origin being where I clicked. Then, complete an intersection test by looping all objects. Then, sort the list you get back based on the criteria you want and select element 0.


2

In this video I show how do it with code...the projection/view is isometric, but all calcs are done in 3D... http://www.youtube.com/watch?v=axHp1f3RlHM When I calculate the mouse ray, I check for collision against a plane... but the procedure is analog to check against a list of boundingspheres associated with your objects. The algorithm should be similar ...


2

Its unlikely that the map itself is taking too much RAM, even on low-end Java phone targets. Voxel-based editors are editing RLE models - which is analogous to your use-case - every time the user clicks; we were doing that last century and it wasn't a performance problem then; so no worry now. One small detail; why use a Map<Integer,Interger> ? Why ...


2

There is a concept in software architecture called the "Zero, One, Infinity Rule". This basically states that you should support either zero of something, one of something, or any number of somethings. You should (almost) never write an application that supports (for example) 3 of something. So in your case, if you are sure that a single "Fringe" layer will ...


2

The thing you're referring to is known as the "gizmo". The reason it's facing the direction of the gizmo is because it's in local space and not world space. To change it just click on the drop down box (location shown in image) and click World


2

I use Tiled too. It seems strange that you're trying to do. You can create an Object Layer in TIled and set a position for your platform, but it is mostly used for movable objects. If your platform will be fixed it's weird not having an exact size in tiles. Maybe you're using the wrong technology to make your scenarios. Maybe using Bitmask will help you. ...


Only top voted, non community-wiki answers of a minimum length are eligible