11

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 ...


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 ...


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. ...


4

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

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

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

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

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

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

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

I would recommend you to take a look at the model-view-controller concept. The model would be your map with all the objects on it. The view would be your graphic engine which visualizes the current state of the model. The controllers are the parts of the code which implement the game logic or the map editing capabilities. When your application is in "...


2

Killing Floor was created with the Unreal-2 engine, not the Unreal-3 engine (UDK), so you're kind of trying to export backwards. You're going to run into problems doing this - if it even works at all. Try copying it across in chunks. First select all the BSP (Right click on a BSP mesh and go Select All > Same Class), then copy and see if it will paste into ...


2

Use a plane or three planes to check collision against them. If the world is empty you need to collide with something... one easy solution is setting a reference plane... usually the ground... and check ray collision against the plane to get coordinates in world space... when you work with objects in an editor, the easier is working in world coordinates......


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. ...


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

Dynamically importing and processing content at runtime is explained in the sample WinForms Series 2: Content Loading. This is the preferred method. You can also build an XNA Content Project file using MSBuild. this blog post explains how. You can create a temporary project file, so you don't need to modify or rebuild files in your Solution. Additional ...


2

Is there any reason you are using primitives over meshes? The engine shines if you import custom models. So you can avoid the tedious process of modeling in unity by modeling in a program that is actually designed for that. The only other way I know off creating something like a door in unity without using multiple primitives is coding a mesh for it by hand....


2

The way I would approach this is to create at least two tiles (dirt and road) on GIMP as you suggested (pixel size depending on the size of your car). Then I would keep track of the "board" of a certain size, where the number represents the number of tiles, using a matrix or a list of lists (IDK what engine/language/platform you are using so I'm keeping it ...


2

The select tool. Clicking any tile with the select tool, the inspector will tell you the position relative to 0,0. With a little bit of math (and/or additional clicks), you can hone in on whichever tile you are searching for https://docs.unity3d.com/Manual/Tilemap-Painting.html


2

Sharp edges are easy, you just subtract height times step height from the y coordinate and you're done. Smooth edges on the other hand are a bit harder. For each tile you have to check the sorrounding 8 tiles and draw the correct step type (256 possibilities with 6 different cases) For instance, having only 1 raised corner tile around creates a tile with ...


2

There are fundamentally two parts to anything in a video game; data and behaviour. An example of data would be the speed of the player, how high they can jump, how many enemies should spawn in a certain room, etc. An example of behaviour would be that the player jumps when SPACEBAR is pressed, the enemies spawn when the player picks up the golden coin in the ...


1

It depends, if you want to build a city you can either do so procedurally (which also allows endless regeneration) or you can do so manually. But even if you do so manually you will likely want to duplicate a lot of things, for example you probably don't want to model each lamppost individually but instead keep one model for all of them. You can do the same ...


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