forums | blogs | polls | tutorials | downloads | rules | help

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in remember_me_form_alter() (line 78 of /var/www/siegetheday.org/sites/all/modules/contrib/remember_me/remember_me.module).

SE1 Gotchas & lessons learned

Hi, I made a little map (Ehland) and want to share some things I learned. It's a very small map with 2 regions and can barely be considered a mod because there's a dsres file included, so these tips are for bloody beginners like me:
- This tutorial helped me get started: https://dungeonsiege.fandom.com/wiki/Category:Dungeon_Siege_Editor
- Second important resource for learning is to untank existing dsmap & dsres files e.g. of Ehb & click around.
- I made a map of islands floating in the sky - ledges are the best option to make the edge.
- I made big mushrooms and even bigger flowers. Use the "Object -> Next Object..." setting to orient & scale them randomly while placing them.
- Also, with flowers big as trees you'll want the camera to be able to see through them as it does with trees. Set their "aspect/does_block_camera" setting to true.
- To make a simple conversation, a character needs the common/job_talk.skrit and a conversation defined in the Region Conversation Manager. For my quest character and my hireable character however I needed some logic (quest character: choose conversation based on quest state, hireable character: choose conversation based on button clicked), and for that you need a custom talk skrit, and for that your map needs an accompanying dsres file. Congratulations you are now a modder.
- A conversation system for a hireable NPC should have conversations defined for join, accept, decline, disband, and rejoin. The "potential_member" button choice automatically defines variables like "party_accept_0x6000050" (see Ulora's talk skrit as an example), where "0x6000050" is the actor's game object ID *without* leading zeroes.
- Defining your own moods is not strictly necessary as the pre-existing ones provide quite some variety, but if you want to define some you'll also have to put them in a dsres file.
- I made a tombstone with an inscription displayed at the bottom of the screen when hovering. The object needs "aspect/is_selectable" = true, "common/rollover_display" = true and a "common/screen_name" of course.
- To prevent the player from going/standing somewhere, there's a special "blocking_object". The area it blocks is a lot bigger than the object's dimensions defined in the SE, so make sure to test it.
- For quick map tests, a windows shortcut to "...\DSLOA.exe nointro=true map=MyMap" is quite handy; it immediately starts a new game with a randomly created new character. There's also an option to teleport the character right to a specific node but I forgot what the option key was.
- When placing containers like barrels, crates, chests etc.: Those in furnishings/containers/misc are empty and you can define the "inventory/gold" property, and other objects in the Inventory tab. Those in the regional_containers subfolder are pre-defined with pcontent magic; just make sure the region corresponds to the expected level of your player's character. Regions "fh", "cr", "path2crypts" are suitable for beginner levels.
- I made a door that's locked on one side; simply set its "door_basic/use_toggle" = true and put a party_member_within_sphere/bounding_box trigger on one side that sends a we_req_activate to it.
- If you cannot select gizmos in SE, you simply have to turn on gizmo edit mode again (I'm so embarrassed).

Also some general remarks on level design:
- The more surreal some parts of your level design are, the more consistency the rest of it needs, else the player will not immerse. If you put giant mushrooms and flowers into your landscape, place them in sensible numbers in sensible locations, like you do with your trees and bushes.
- Don't put everything in the map that you encounter in the SE's Game Objects tree. Choose enemies & foliage that fit together and stick to these.
- When adding plants to the level I found it best to start with the big ones, e.g. start with trunks, then trees, bushes, and last the groundcovers. Placing enemies works best similarly, first put the bosses and last the phraks.
- Don't underestimate the power of moods & ambient sound emitters for an immersive atmosphere.
- Any reference to things outside the game world will break players' immersion.
- If you make a somewhat open-worldy map, be sure to at least nudge players in the right direction. Put the biggest exit of the village, and the most important shops, on the side you want the players to leave the village. Put the nicer / more visible path nodes in the direction the players should walk. Put harder enemies around the area they shouldn't walk initially.
- First time you get your hands to SE, or any mapping/modding tool for that matter, you'll have great plans to make a huge world like Ehb. Start smaller. Make a small map with only the essential functions, like a shop, some enemies and a quest; something small that is able to stand for itself and that you can actually finish & polish in a foreseeable time frame. You can still realize your grand plans afterwards.