Jump to content
The Dark Mod Forums

TDM 2.04 updater and XP


Recommended Posts

Nail on the head:


You have mid to hi end system, why on earth are you still running xp and not windows 7? You can buy upgrade versions of 7 for £20 or less on eBay or games key sites. As for the malloc error, that sounds like Xp is limited the amount of ram can be used for any applications or games.


Old 32bit updater here: https://db.tt/tm8FqdRn


// a friendly reminder, dropbox will be discontinuing public folder sharing in a short while. Alternate file host or "shared dropbox folder" with restricted priv. for "guest/user" might be advised.

Edited by teh_saccade
Link to comment
Share on other sites

Here is an XP compile:






1) Use the updater in teh_saccade's post above or one available at the Moddb site for the darkmod

2) When the updater launches, click the Advanced button and select "Do not let tdm_updater update itself" and "keep mirrors"

3) Then wait for confirmation that your installation is up to date

4) Extract the 204_xp.zip to a folder anywhere (for example, on your Desktop)

5) Copy TheDarkMod.exe and gamex86.dll from this folder into your darkmod folder and overwrite the existing files

6) Launch TDM as you normally would



I tested this build briefly on 2 missions "The Outpost", "Behind Closed Doors". The AI and mechanics all seemed to work just

fine. This is pretty good because it looks like it's using 2013 libraries to do the XP build rather than the 2010 libraries so perhaps

we can finally merge the 64-bit branch and still have working AI and mantling (fingers crossed).


I wouldn't revert any config changes we discussed yet.


Test this on a small mission like "The Outpost" then go back to "A House of Locked Secrets".

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:




(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

@nbohr1more: Thanks hugely. TDM 2.04 installed using your method.


The install folder (F:\darkmod here) should pre-exist or the installer will baulk, in case anyone else tries it. Best to run it from there.


"The Outpost" ran fine, except for a single audio-jarring crash once, near the start. Reloaded and finished. As you might expect with lower settings, torches could occasionally be seen through doors and doorframes, and a plume of black smoke crowned each one. Water surface was black, and sky was oddly mobile. Underwater was crazily magnified-ish.


"A House Of Locked Secrets" gave up with same error at exactly the same point as before. :(

Link to comment
Share on other sites

For the updater on xp, only tdm-updater 0.65 is not xp compatible.

(tested 0.61 trough 0.65 on XP SP3 32bit)


So, Get an earlier

Old 32bit updater here: https://db.tt/tm8FqdRn

And if people dont trust dropbox downloads, Get this updater from package The Dark Mod 2.02-2.03 Update Package (Windows) from moddb. Edited by freyk
  • Like 1

Info: My portfolio and darkmod graphical installer
Amnesty for Bikerdude!

Link to comment
Share on other sites

  • 2 months later...

Damn. I came back to update to 2.04 today and ran into this myself. Yup, WinXP 32. *raises hand*


Sounds like, from above, that there's a need for versions of the updater prior to 0.65, and thus to disallow it to update itself. And, even with a working 2.04 (from win32-friendly binaries above) there might still be issues (malloc and graphics). So right now I'm debating just sticking with 2.03 (and its graphics bugs, which drove me to update in the first place...) and hoping some day will bring a 2.05 that supports XP 32bit. The wiki mentions the 2.04 dropbox binaries but omits the rest, that I've seen. Double damn, I hope this is an easy fix (compiler switch or such).

  • Like 1
Link to comment
Share on other sites

Malloc errors are gonna happen if you don't have enough memory for larger missions.


The XP compile improves this situation but there are missions that will still make a 32-bit environment sweat.


To ease the pain, as has always been the case, you can use the image_downsize cvars but this has always had

the problem of making menus (etc) blurry. There is a patch that addresses that blurry issue:




I'm pretty sure I also made that patch with the XP compile switch but if not, I can do a new build.


If we can get 2.05 working properly with MSVC 2013 without 2010 libraries, we can ship XP binaries,

MSVC 2010 doesn't have native XP compile but the compiles have worked up till now for most users.

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:




(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

  • 4 months later...

Thanks muchly for that! I've updated and it seems to be working well running 2.05.


I did run into the issue where halos of lights (and I assume other such effects) show through walls when viewed at a distance. Wasn't that corrected a build or two ago? I can live with it, just curious if I've missed a manual fix somewhere along the line or if it was still a problem.


Edit: Yes, according to the 2.04 video it was fixed in that release. I can't confirm whether or not it was fixed on my system as I never installed 2.04 (due to problems in this thread) but I can definitely say it's still happening for me in 2.05.

  • Like 1
Link to comment
Share on other sites

Here you are, sir.



bind "TAB" "inventory_hotkey ''"
bind "ESCAPE" "togglemenu"
bind "SPACE" "_moveup"
bind "-" "_impulse50"
bind "0" "_impulse5"
bind "1" "_impulse2"
bind "2" "_impulse1"
bind "3" "_impulse3"
bind "4" "_impulse4"
bind "5" "_impulse7"
bind "6" "_impulse9"
bind "7" "_impulse6"
bind "8" "_impulse10"
bind "9" "_impulse8"
bind "=" "_impulse49"
bind "\" "_mlook"
bind "]" "_impulse47"
bind "^" "_impulse0"
bind "`" "_impulse0"
bind "a" "_button5"
bind "b" "_impulse52"
bind "c" "_back"
bind "d" "_forward"
bind "e" "_impulse24"
bind "f" "_moveRight"
bind "g" "_impulse23"
bind "h" "toggle pm_crouchheight 38 50;toggle pm_crouchviewheight 34 46;"
bind "i" "inventory_cycle_group '#str_02391'"
bind "m" "inventory_cycle_maps"
bind "o" "_impulse19"
bind "p" "inventory_cycle_group '#str_02389'"
bind "q" "inventory_cycle_maps"
bind "r" "_impulse46"
bind "s" "_moveLeft"
bind "t" "_impulse44"
bind "v" "inventory_use '#str_02395'"
bind "w" "_impulse45"
bind "x" "_impulse50"
bind "y" "_impulse14"
bind "z" "inventory_use '#str_02396'"
bind "BACKSPACE" "inventory_hotkey"
bind "PAUSE" "pause"
bind "LEFTARROW" "_left"
bind "RIGHTARROW" "_right"
bind "ALT" "_impulse51"
bind "CTRL" "inventory_cycle_group '#str_02392'"
bind "SHIFT" "_speed"
bind "DEL" "_lookdown"
bind "PGDN" "_lookup"
bind "END" "_impulse18"
bind "F1" "inventory_hotkey '#str_02398'"
bind "F2" "inventory_hotkey '#str_02438'"
bind "F3" "inventory_hotkey '#str_02399'"
bind "F4" "inventory_hotkey '#str_02400'"
bind "F5" "inventory_cycle_group '#str_02389'"
bind "F7" "_impulse22"
bind "F9" "exec autoexec.cfg"
bind "F11" "savegame quick"
bind "F12" "loadgame quick"
bind "MOUSE1" "_attack"
bind "MOUSE2" "_impulse41"
bind "MOUSE3" "_zoom"
bind "MWHEELDOWN" "_impulse48"
bind "MWHEELUP" "_impulse47"
bind "PRINTSCREEN" "screenshot"
seta gui_mediumFontLimit "0.30"
seta gui_smallFontLimit "0.15"
seta radiant_entityMode "0"
seta net_socksPassword ""
seta net_socksUsername ""
seta net_socksPort "1080"
seta net_socksServer ""
seta net_socksEnabled "0"
seta win_ypos "84"
seta win_xpos "81"
seta sys_lang "english"
seta s_decompressionLimit "6"
seta s_useEAXReverb "1"
seta s_useOpenAL "1"
seta s_libOpenAL "openal32.dll"
seta s_numberOfSpeakers "2"
seta s_doorDistanceAdd "450"
seta s_globalFraction "0.8"
seta s_subFraction "0.75"
seta s_playDefaultSound "1"
seta s_volume_dB "-5.714285"
seta s_meterTopTime "2000"
seta s_reverse "0"
seta s_spatializationDecay "2"
seta s_maxSoundsPerShader "0"
seta s_diffractionMax "10"
seta r_screenshot_format "jpg"
seta r_debugArrowStep "120"
seta r_debugLineWidth "1"
seta r_debugLineDepthTest "0"
seta r_cgFragmentProfile "best"
seta r_cgVertexProfile "best"
seta r_forceLoadImages "0"
seta r_shadows "1"
seta r_offsetunits "-0.1"
seta r_offsetfactor "-2"
seta r_clear "2"
seta r_useSoftParticles "1"
seta r_skipDepthCapture "0"
seta r_skipBump "0"
seta r_skipSpecular "0"
seta r_skipNewAmbient "0"
seta r_renderer "best"
seta r_brightness "1.166667"
seta r_gamma "1.142857"
seta r_swapInterval "0"
seta r_useIndexBuffers "1"
seta r_customHeight "486"
seta r_customWidth "720"
seta r_fullscreen "0"
seta r_mode "5"
seta r_multiSamples "0"
seta image_mipmapMode "2"
seta image_blockChecksum "0"
seta image_downSizeLimit "256"
seta image_ignoreHighQuality "0"
seta image_downSizeBumpLimit "128"
seta image_downSizeSpecularLimit "64"
seta image_downSizeBump "0"
seta image_downSizeSpecular "0"
seta image_useCache "0"
seta image_cacheMegs "20"
seta image_cacheMinK "200"
seta image_usePrecompressedTextures "1"
seta image_useNormalCompression "2"
seta image_useAllFormats "1"
seta image_useCompression "1"
seta image_preload "1"
seta image_roundDown "1"
seta image_forceDownSize "0"
seta image_downSize "0"
seta image_lodbias "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_LINEAR"
seta gui_filter_game "0"
seta gui_filter_idle "0"
seta gui_filter_gameType "0"
seta gui_filter_players "0"
seta gui_filter_password "0"
seta net_clientDownload "1"
seta net_master4 ""
seta net_master3 ""
seta net_master2 ""
seta net_master1 ""
seta net_clientMaxRate "16000"
seta net_serverMaxClientRate "16000"
seta m_strafeSmooth "4"
seta m_smooth "3"
seta m_strafeScale "6.25"
seta m_yaw "0.022"
seta m_pitch "0.022"
seta sensitivity "9.746032"
seta in_toggleZoom "0"
seta in_toggleCrouch "0"
seta in_toggleRun "0"
seta in_alwaysRun "0"
seta in_freeLook "1"
seta in_anglespeedkey "1.5"
seta in_pitchspeed "140"
seta in_yawspeed "140"
seta gui_configServerRate "0"
seta com_numQuickSaves "2"
seta com_guid ""
seta com_asyncTic "0"
seta com_fixedTic "0"
seta com_preloadDemos "0"
seta com_compressDemos "1"
seta com_product_lang_ext "1"
seta com_videoRam "128"
seta com_showFPS "0"
seta com_purgeAll "0"
seta com_machineSpec "-1"
seta g_spectatorChat "0"
seta net_clientLagOMeter "1"
seta r_postprocess_bloomKernelSize "2"
seta r_postprocess_bloomIntensity "0"
seta r_postprocess "0"
seta net_serverDlTable ""
seta net_serverDlBaseURL ""
seta net_serverDownload "0"
seta mod_validSkins "skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow"
seta g_mapCycle "mapcycle"
seta g_voteFlags "0"
seta g_gameReviewPause "10"
seta g_countDown "10"
seta g_password ""
seta g_testModelHeadJoint "Spine2"
seta g_testModelHead "atdm:ai_head_citywatch"
seta g_showBrass "1"
seta g_showProjectilePct "0"
seta g_showHud "1"
seta g_showPlayerShadow "0"
seta pm_walkspeed "70"
seta g_showcamerainfo "0"
seta g_damageScale "1"
seta g_decals "1"
seta g_doubleVision "1"
seta g_bloodEffects "1"
seta g_projectileLights "1"
seta g_muzzleFlash "1"
seta gui_CenterY "0.5"
seta gui_CenterX "0.5"
seta gui_Height "1.0"
seta gui_Width "1.0"
seta r_fovRatio "0"
seta r_aspectRatio "0"
seta ui_showGun "1"
seta ui_autoSwitch "1"
seta ui_team "Red"
seta ui_skin "skins/characters/player/marine_mp"
seta ui_name "Player"
seta si_serverURL ""
seta si_spectators "1"
seta si_usePass "0"
seta si_warmup "0"
seta si_teamDamage "0"
seta si_timeLimit "10"
seta si_fragLimit "10"
seta si_maxPlayers "4"
seta si_map "game/mp/d3dm1"
seta si_gameType "singleplayer"
seta si_name "DOOM Server"
seta tdm_lod_bias "1.0"
seta tdm_voice_from_off_volume "-2.857143"
seta tdm_voice_player_volume "-2.539682"
seta tdm_music_volume "-5.079365"
seta tdm_ambient_method "0"
seta tdm_door_auto_open_on_unlock "0"
seta tdm_bow_aimer "0"
seta tdm_lp_debug_hud "0"
seta tdm_lp_pawlow "0"
seta tdm_lp_randomize "1"
seta tdm_lp_auto_pick "0"
seta tdm_lp_autopick_attempts "3"
seta tdm_lp_pick_timeout "400"
seta tdm_lp_sample_delay "10"
seta tdm_lp_base_count "5"
seta tdm_empty_model "models/darkmod/misc/system/empty.lwo"
seta tdm_lg_split "0"
seta tdm_lg_model "models/darkmod/misc/system/lightgem.lwo"
seta tdm_lg_weak "0"
seta tdm_lg_interleave "1"
seta pm_rope_snd_rep_dist "32"
seta pm_min_stepsound_interval "200"
seta pm_stepvol_crouch_creep "-7"
seta pm_stepvol_crouch_run "4"
seta pm_stepvol_crouch_walk "-2"
seta pm_stepvol_creep "-5"
seta pm_stepvol_run "8"
seta pm_stepvol_walk "0"
seta tdm_underwater_blur "3"
seta tdm_rope_pull_force_factor "140"
seta tdm_inv_use_visual_feedback "1"
seta tdm_door_control "0"
seta tdm_inv_use_on_frob "0"
seta tdm_inv_loot_sound "frob_loot"
seta tdm_inv_hud_pickupmessages "1"
seta tdm_hud_hide_lightgem "0"
seta tdm_hud_opacity "0.7"
seta tdm_grabber_reverse_control "0"
seta tdm_bounce_sound_min_vel "80"
seta tdm_bounce_sound_max_vel "400"
seta tdm_throw_max_vel "900"
seta tdm_throw_time "1200"
seta tdm_throw_max "3500"
seta tdm_throw_min "600"
seta tdm_phys_show_momentum "0"
seta tdm_ai_vision_hardcore "1.5"
seta tdm_ai_vision_challenging "1.2"
seta tdm_ai_vision_forgiving "0.6"
seta tdm_ai_vision_nearly_blind "0.2"
seta tdm_ai_vision "2"
seta tdm_melee_difficulty "normal"
seta tdm_melee_max_particles "10"
seta tdm_melee_forbid_auto_parry "0"
seta tdm_melee_auto_parry "0"
seta tdm_melee_invert_parry "0"
seta tdm_melee_invert_attack "1"
seta tdm_melee_mouse_thresh_ "0"
seta tdm_dragged_item_highlight "1"
seta tdm_drag_encumber_max "0.4"
seta tdm_drag_encumber_maxmass "55"
seta tdm_drag_encumber_minmass "10"
seta tdm_drag_jump_masslimit "20"
seta tdm_drag_af_free "0"
seta tdm_drag_af_ground_timer "800"
seta tdm_drag_damping_af "0.4"
seta tdm_drag_damping "0.0"
seta tdm_drag_stuck_dist "38.0"
seta tdm_drag_force_max "100000"
seta tdm_drag_limit_force "1"
seta tdm_collision_damage_scale_horiz "0.5"
seta tdm_collision_damage_scale_vert "1"
seta tdm_frob_fadetime "100"
seta tdm_frob_width "10.0"
seta tdm_frob_distance_default "63"
seta pm_lean_toggle "0"
seta pm_lean_door_bounds_exp "8.0"
seta pm_lean_door_max "40"
seta pm_lean_door_increments "10"
seta pm_lean_to_valid_increments "25"
seta pm_lean_forward_stretch "15"
seta pm_lean_forward_height "0.4"
seta pm_lean_forward_time "400.0"
seta pm_lean_forward_angle "2"
seta pm_lean_stretch "2"
seta pm_lean_height "0.4"
seta pm_lean_time "400.0"
seta pm_lean_angle "15.0"
seta tdm_reattach_delay "100"
seta tdm_crouch_toggle_hold_time "400"
seta tdm_toggle_crouch "1"
seta tdm_footfall_sounds_movetype_specific "1"
seta pm_mantle_minflatness "0.707"
seta pm_mantle_height "0.2"
seta pm_mantle_reach "0.5"
seta pm_weightmod "1"
seta pm_push_max_mass "200"
seta pm_push_heavy_threshold "0.15"
seta pm_push_accel_time "1000"
seta pm_push_start_delay "1000"
seta pm_push_maximpulse "300"
seta pm_pushmod "0.15"
seta pm_max_swimspeed_mod "1.4"
seta pm_crouchmod "0.54"
seta pm_creepmod "0.44"
seta pm_runmod "2.12"
seta tdm_savegame_compress "1"
seta tdm_force_savegame_load "0"
seta tdm_mainmenu_confirmquit "1"
seta tdm_debug_aastype "aas32"
seta tdm_allow_http_access "1"
seta tdm_proxy_pass ""
seta tdm_proxy_user ""
seta tdm_proxy ""
seta tdm_fm_restart_delay "0"
seta tdm_default_relations_def "atdm:team_relations_default"
seta tdm_show_trainer_messages "1"
seta tdm_menu_music "1"
seta tdm_wideScreenMode "0"
seta tdm_interaction_vfp_type "1"
seta tdm_ai_show_aasfuncobstacle_state "0"
seta tdm_show_health "0"
seta tdm_ai_debug_greetings "0"
seta tdm_ai_debug_transition_barks "0"
seta tdm_ai_opt_update_enemypos_interleave "48"
seta tdm_ai_opt_interleavethinkframes "0"
seta tdm_ai_opt_interleavethinkskipPVS "0"
seta tdm_ai_opt_interleavethinkmaxdist "0"
seta tdm_ai_opt_interleavethinkmindist "0"
seta tdm_ai_visdist_show "0.0"
seta tdm_ai_search_show "0.0"
seta tdm_showko "0"
seta tdm_showsprop_radius "0"
seta tdm_showsprop "0"
seta tdm_spr_debug "0"
seta tdm_sndprop_disable "0"
seta tdm_ai_acuity_susp "1.2"
seta tdm_ai_acuity_L5 "1.5"
seta tdm_ai_acuity_L4 "1.3"
seta tdm_ai_acuity_L3 "1.1"
seta tdm_ai_show_conversationstate "0"
seta tdm_ai_show_enemy_visibility "0"
seta tdm_ai_sight_scale "1000.0"
seta tdm_ai_sight_thresh "1.0"
seta tdm_ai_showelevator "0"
seta tdm_ai_showdoor "0"
seta tdm_ai_debug_blocked "0"
seta tdm_ai_showAASarea "0"
seta tdm_ai_showgoalpos "0"
seta tdm_ai_showdest "0"
seta tdm_ai_showalert "0"
seta tdm_ai_showtasks "0"
seta tdm_ai_showanimstate "0"
seta tdm_ai_showko "0"
seta tdm_ai_showfov "0"
seta tdm_ai_debug "0"
seta tdm_ai_bumpobject_impulse "250"
seta tdm_ai_tact "20.0"
seta tdm_ai_sight_combat_cutoff "20.0"
seta tdm_ai_sightmin "15.0"
seta tdm_ai_sightmax "40.0"
seta tdm_ai_sight_mag "1.0"
seta tdm_ai_sight_prob "0.7"
seta tdm_ai_showbark "0"
seta tdm_ai_sndvol "0.0"
seta tdm_player_wait_until_ready "1"
seta tdm_ai_hearing_hardcore "1.5"
seta tdm_ai_hearing_challenging "1.0"
seta tdm_ai_hearing_forgiving "0.6"
seta tdm_ai_hearing_nearly_deaf "0.2"
seta tdm_ai_hearing "2"
seta tdm_ai_showname "0"
seta g_enablePortalSky "2"
seta tdm_lg_interleave_min "40"
seta tdm_ai_search_type "4"


Link to comment
Share on other sites

These are the cvars that control the decal sort issue:


seta r_offsetunits "-0.1"
seta r_offsetfactor "-2"


You can try changing the r_offsetfactor value to -1 or -3 and see if the behavior improves.


I will suggest that you take advantage of the improved performance changes in 2.05:


seta r_useIndexBuffers "0"

seta tdm_lg_split "1"


Once you have those set, you can try playing with interleave values:


seta tdm_lg_interleave "3"

seta tdm_lg_interleave_min "1"


and finally, if you have more than 128 mb of VRAM, you should fix:


seta com_videoRam "128"

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:




(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

I'll definitely be trying the performance tweaks. Surprised the vram is still set to 128. That must stretch back years, across multiple PCs. :)


The r_offset values don't seem to be doing anything, though. I've set it up so I'm facing some offending light globes, changing the values (even beyond suggested above) at the console and I'm seeing literally no change at all. Any ideas?

Link to comment
Share on other sites



If this is your own map, you may want to try modifying the SofteningRadius in your particle def:



Please visit TDM's IndieDB site and help promote the mod:




(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

*waves to Bikerdude* :)


It's the training map, in the archery area. I stand against the chapelesque building, near the wall with the patrolling guard, then walk back/forward aligned with the archery ranges. Through the short stretch of wall shows light globes from the other side of the wall.





Link to comment
Share on other sites

Hmm. I thought Biker adjusted that.

I'll recheck that if I get a chance tonight.


If you delete the training mission and run tdm_updater does the problem come back?

Please visit TDM's IndieDB site and help promote the mod:




(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • Nort

      I want to be a fish, but I'm not a fish. My mom wants to be a fish too, and so she's killing herself eating plankton and sh***ng blood, and tells me to stop nagging her about taking her medication. I spent several hours today, just lying in bed, having anxiety over just existing, and not being a fish. You fish, you don't know how lucky you are. You can eat all the plankton you want. I tried eating plankton again yesterday, and I just got sick. I hate being a shark.
      · 0 replies
    • Nort

      I just gave myself vertigo. A pleasant kind of vertigo, like the world has been lifted off my shoulders. I'll explain:
      Yesterday I saw to my dismay, that I had made my entire map two - two - units too short on every level - that every set01 piece was sticking 2 units into the ceiling. That's basically 402 brushes that needs to be realigned (minus the ground floor brushes).
      I knew enough about selections to do all of that in a very tense five minutes, and it compiled without leaks. (Thank you so much, Dark Radiant devs, for making an editor with such care for precision that you can align hundreds of brushes perfectly at once (which is not something I can say for Valve's Hammer editor, which has some serious issues on that front, which actually made me just quit it in disgust).) However, the result is that the entire level has now been stretched a barely noticable 2 units, and it will take some getting used to psychologically.
      · 0 replies
    • Nort

      My workflow is basically running from a chain of disasters, eventually trying to seek shelter in former disasters. It's not ideal - it's just my life.
      When I abandoned my first map, it was out of a typical mental breakdown, and so I returned to find a skybox void where the kitchen door should have been (due to a misplaced visportal) and two overlapping brushes Z-fighting on the kitchen floor.
      I've now cleaned up the last bit of mess, by cleanly separating every floor into its own layer. Now I can finally work on each floor in peace.
      ...not that I really needed to. Once you get skilled enough, the orthographic messes, well, I'll let this video speak for itself:
      · 1 reply
    • Nort

      Beams, beams, beams...
      Support beams, and cross beams, and then beams to fixate the support beams to the cross beams. The more beams you have in a map, the better. There's walls, floors and ceilings, but the rest of the map is pretty much just beams. Beams makes a thief happy.
      · 0 replies
    • jaxa

      Embracer Group is Buying Square Enix Montréal, Eidos, and Crystal Dynamics for “Only” 300 Million USD: https://wccftech.com/embracer-group-square-enix-montreal-eidos-crystal-dynamics/
      · 1 reply
  • Create New...