tpw 2315 Posted March 22, 2013 (edited) The recent release of Arma3 alpha has inspired me to end my 6 month break from Arma coding and see if I could port some of my mods over from Arma2. First cab off the rank is tpw_houselights. This small mod enables lights to automatically come on in enterable buildings around the player after dark. It will work on any map with ALICE2 compatible enterable buildings, and will simply ignore unenterable ALICE buildings. Sick and tired of villages being pitch black after dark? This addon will create a flickering glow from houses at night which greatly increases immersion. tpw_houselights comes in 2 versions: a single player version which dynamically calculates lights and will work on any map on Arma2 or Arma3 with enterable buildings; and a multiplayer version with precalculated lights for Arma3 Stratis and a number of popular Arma2 maps. This version ensures that all players running the mod will see the same lights at the same locations. Both versions can be run as either an addon which affects all missions, or a script version which can be run from your own missions. Please download below, and read the documentation with detailed installation notes, usage, caveats, thanks etc. If you find any bugs or can suggest improvements, please let me know. Single player download: http://dl.dropbox.com/u/481663/TPW_HOUSELIGHTS_109.zip Single player documentation: TPW HOUSELIGHTS ========================== Version: 1.09 Released: 20130322 Authors: tpw Requires: CBA (Arma2 or Arma3 specific version) Runs on : Arma2, Operation Arrowhead, Combined Operations, Arma3 alpha Changelog: ---------- 1.00 - initial release 20120510 1.01 - Can now be configured from hpp file. Lights are removed from houses after player leaves area. 1.02 - Not released 1.03 - Lights can flicker. 3 different light types, each fully configurable for brightness, colour and flickering. Miscellaneous improvements. 1.04-1.06 - Not released 1.07 - Total overhaul of code for true dynamic lights. Lights only flicker within a configurable distance of player to save CPU. Distant lights are brighter to compensate for limitations in lighting engine. 1.08 - Minor bugfixes, initialisation hint is configurable 1.081 - Config bugfixes 1.09 - Minor tweaks, Arma3 compatibility. Summary: -------- This addon causes lights to automatically come on in enterable buildings around the player after dark. It will work on any map with ALICE2 compatible enterable buildings, and will simply ignore unenterable ALICE buildings. Sick and tired of villages being pitch black after dark? This addon will create a flickering glow from houses at night which greatly increases immersion. How to use it: -------------- Addon version: Extract the @TPW_HOUSELIGHTS modfolder to your preferred mod location, and call it via command line or mod launcher. You must also copy userconfig/TPW_HOUSELIGHTS/TPW_HOUSELIGHTS.hpp to your Arma2 or Arma3 userconfig/TPW_HOUSELIGHTS/TPW_HOUSELIGHTS.hpp. This config file can be edited to taste and is well commented, so it's easy to change appropriately. The addon version will work for any and every mission. Script version: Copy @TPW_HOUSELIGHTS/scripts/tpw_houselights109.sqf to your mission folder, and call it from the init line of the player or the mission's init.sqf with 0 = [] execvm "tpw_houselights109.sqf"; How it works: ------------- At startup the script scans all houses within a 20km radius of the player, and any enterable houses are placed into a houses array. Each house in the array is then given its own set of lighting parameters, and a lit/unlit status. If the sun is below the horizon, then every 15 seconds the houses array is scanned, and any unlit house within the player's specified radius has a light source created using the lighting parameters associated with that house. Any lit house outside the radius has its light removed. Shortcomings: ------------- The addon requires CBA to launch properly. If anyone knows of a way to convert a simple script into a PBO in a way that does not require CBA then I'd like to know about it. The addon works in SP and MP (but not on a dedicated server). Owing to the various randomisation features of the script, different MP players may see different lights even if at the same location on the map. If you are playing MP and require all players to see the same lights at the same point on a map, then please use the MP version of this addon. The CPU and network overhead, and my coding inability, prevents me from implementing true light source synchronisation. You are welcome to examine the heavily commented code to see if there is a way a dedicated server synchronised MP solution is achievable. Light sources don't seem to stress the engine too hard, but flickering light sources can. Default settings put lights into 30 or fewer houses around the player, with 5-6 of them flickering. You may need to adjust the settings if you find your performance suffering. Feedback: --------- I'm a shit coder and no doubt this can be improved. I would value any feedback and suggestions, so give me your 2 cent's worth on the BIS forum. Thanks: ------- *Das Attorney for showing me how to create PBO addons, and for general advice. *CarlGustaffa for his excellent azimuth code. *Rydygier for his inspiration to write my own flickering code. *RogueTrooper for improved enterable building code. *Xeno for config and server advice. *Demon Cleaner and Muzzleflash for code optimisation and cleanup. *Twistking for excellent suggestions re light source uniformity for MP. *Foxhound for dedication to supporting the Arma modding community. *As always, thanks to BIS for a fantastic piece of software, and for the incredible community on the BIS froum. Personal note: -------------- Due to some significant personal difficulties I basically took a 6 month break from Arma, coding, and computers in general. I'd like to extend a special thank you to Ollem for continuing to work on and extend some of my other coding projects (TPWCAS especially) during this time, and for his support and belief in me. tpw Multiplayer download: http://dl.dropbox.com/u/481663/TPW_HOUSELIGHTS_109_MP.zip Multiplayer documentation: TPW HOUSELIGHTS MP ========================== Version: 1.09 MP Released: 20130322 Authors: tpw Requires: CBA (Arma2 or Arma3 specific version) Runs on : Arma2, Operation Arrowhead, Combined Operations, Arma3 alpha Changelog: ---------- 1.00 - initial release 20120510 1.01 - Can now be configured from hpp file. Lights are removed from houses after player leaves area. 1.02 - Not released 1.03 - Lights can flicker. 3 different light types, each fully configurable for brightness, colour and flickering. Miscellaneous improvements. 1.04-1.06 - Not released 1.07 - Total overhaul of code for true dynamic lights. Lights only flicker within a configurable distance of player to save CPU. Distant lights are brighter to compensate for limitations in lighting engine. 1.08 - Minor bugfixes, initialisation hint is configurable 1.08MP - Multiplayer compatible version with light parameters hard coded, so that all players will see the same lights at the same point on a map. 1.09MP - Minor tweaks, Arma3 compatibility. Summary: -------- This addon causes lights to automatically come on in enterable buildings around the player after dark. It will work on any map with ALICE2 compatible enterable buildings, and will simply ignore unenterable ALICE buildings. Sick and tired of villages being pitch black after dark? This addon will create a flickering glow from houses at night which greatly increases immersion. How to use it: -------------- Addon version: Extract the @TPW_HOUSELIGHTS_MP modfolder to your preferred mod location, and call it via command line or mod launcher. You must also copy userconfig/TPW_HOUSELIGHTS/TPW_HOUSELIGHTS.hpp to your Arma2 or Arma3 userconfig/TPW_HOUSELIGHTS/TPW_HOUSELIGHTS.hpp. This config file can be edited to taste and is well commented, so it's easy to change appropriately. Script version: Copy @TPW_HOUSELIGHTS_MP/scripts/tpw_houselights109-mp.sqf to your mission folder, and call it from the init line of the player or the mission's init.sqf with 0 = [] execvm "tpw_houselights109-mp.sqf"; How it works: ------------- Unlike the single player version of this script which dynamically calculates light parameters for any map each time it is initialised, this MP version has hard coded house and light parameters. These parameters are simply a (very large) array of arrays of position data for each house, with the lighting parameters for that house. Depending on the map, the appropriate array is processed and the final array of lightable houses generated for the script to use. Every player using this script will see the same lights at the same spot on the map. No synchronisation necessary. I've set it up with house data from some of the most common maps with enterable buildings: Aliabad Clafghan Fallujah Fayshkhabur Hazarkot Lingor Qom Sangin Shapur Stratis Takistan Tigeria Torabora Tropica Zargabad If you would like to add your own map or change the lighting parameters, then please use the script version: tpw_houselights-scan.sqf can be used to generate a lighting array for the map, which can then be pasted from the clipboard into tpw_houselights109-mp.sqf. Or, please let me know via the BIS forum and I can add them into a future addon version. Shortcomings: ------------- The addon requires CBA to launch properly. If anyone knows of a way to convert a simple script into a PBO in a way that does not require CBA then I'd like to know about it. This version of the addon works in SP and MP (but not on a dedicated server). Because the randomisation of lights, brightnesses, colours and flickering has been precalculated, different MP players will see the same lights at the same location on the map. However, each player is required to run this addon inidividually. The CPU and network overhead, and my coding inability, prevents me from implementing true light source synchronisation. You are welcome to examine the heavily commented code to see if there is a way a dedicated server synchronised MP solution is achievable. Light sources don't seem to stress the engine too hard, but flickering light sources can. Default settings put lights into 30 or fewer houses around the player, with 5-6 of them flickering. This version of the addons does not easily allow changing of light parameters, in the interests of a uniform experience betwen players. If you require configuration, please either use the script version of this addon, or use the SP version. Feedback: --------- I'm a shit coder and no doubt this can be improved. I would value any feedback and suggestions, so give me your 2 cent's worth on the BIS forum. Thanks: ------- *Das Attorney for showing me how to create PBO addons, and for general advice. *CarlGustaffa for his excellent azimuth code. *Rydygier for his inspiration to write my own flickering code. *RogueTrooper for improved enterable building code. *Xeno for config and server advice. *Demon Cleaner and Muzzleflash for code optimisation and cleanup. *Twistking for excellent suggestions re light source uniformity for MP. *Foxhound for dedication to supporting the Arma modding community. *As always, thanks to BIS for a fantastic piece of software, and for the incredible community on the BIS froum. Personal note: -------------- Due to some significant personal difficulties I basically took a 6 month break from Arma, coding, and computers in general. I'd like to extend a special thank you to Ollem for continuing to work on and extend some of my other coding projects (TPWCAS especially) during this time, and for his support and belief in me. tpw My mods: TPW CIVS: Ambient civs and traffic TPW FALL: Realistic infantry falling from height and bullet hits TPW LOS: AI Line of sight system for enhanced CQB TPW EBS: Engine based AI/player suppression TPW HOUSELIGHTS: Automatic house lighting TPW BLEEDOUT: Realistic bleeding system Edited August 30, 2013 by tpw Share this post Link to post Share on other sites
dmarkwick 261 Posted March 22, 2013 Nice one, thanks :) Share this post Link to post Share on other sites
CubicVirtuoso 10 Posted March 22, 2013 Can we get some before/after screenshots? Share this post Link to post Share on other sites
Predator.v2 10 Posted March 22, 2013 This time my "before/after" shots aren't that good, but i have some good shots on buildings with good lightning and on some with still too dark lightning (in my opinion): https://dl.dropbox.com/u/106806270/Saku%20Lights/original1.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselight1.png https://dl.dropbox.com/u/106806270/Saku%20Lights/original2.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselight2.png Good ones: https://dl.dropbox.com/u/106806270/Saku%20Lights/houselightsgood1.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselightsgood2.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselightsgood3.png Too dark ones: https://dl.dropbox.com/u/106806270/Saku%20Lights/houselighttoodark1.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselighttoodark2.png https://dl.dropbox.com/u/106806270/Saku%20Lights/houselighttoodark3.png Some general feedback: Could you increase the lightstrength on the very dark buildings? And maybe you could set the lightning to a default position at the ceiling, some building have their light, come out of the middle of a wall (i.e. houselighttoodark1.png). Share this post Link to post Share on other sites
dmarkwick 261 Posted March 22, 2013 There is a general problem with lighting still in ArmA3 (IMO) that will probably fix a lot of things like this. Darkest night is not too bad, but anywhere close to dusk or dawn and the lighting engine acts inconsistently. Share this post Link to post Share on other sites
kremator 1065 Posted March 22, 2013 Finally it's here ! Good work mate. Putting it in immediately! Share this post Link to post Share on other sites
tpw 2315 Posted March 22, 2013 Thanks for the kind words and feedback gents, I knew there was a reason why I liked Arma coding! @Predator.v2, thanks for the screenshots. I will try to take a few of my own shortly, at the moment my priority is just getting it working and online. DMarkwick is correct, there are significant differences between the lighting engines of A2 and A3. Houselights generally appear brighter throughout evening-night-predawn in A2, and can appear quite faint during the evening and predawn in A3. Until the A3 lighting engine is finalised I don't see much point trying to compensate. Regarding lights in individual houses: basically every house has a light placed inside 1.5m off the floor. For most houses this is good enough, provided you don't ask yourself where the lamp or candle is. For some houses the light is not centered properly. Adjusting the lighting on a per house basis could potentially be done but would be a simply enormous job since there are so many house models. Share this post Link to post Share on other sites
lordprimate 159 Posted March 22, 2013 If i may comment on those picture posted by predator. first off those lights that seem really dim are the "candle" simulation.. "Candles" are not that bright ... I personally think that the candle Sim is very accurate. I say again, candles are not bright... remember that this simulates "candle", "incandescent", and "Television" light.. the Incandescent light will most likely be the brightest... A lot of the light sources appear at eye level... however, would probably cause the light to bleed out from walls more then usual if moved around. Would it be possible to look for houses that have a certain amount of positioning available and maybe have two lights if its a "candle"? Ie two story house. or a large building like an appt. etc. Share this post Link to post Share on other sites
Bushbeater 0 Posted March 22, 2013 Thank you thank you !!!!!! :dancehead: Share this post Link to post Share on other sites
tpw 2315 Posted March 22, 2013 @Lordprimate. Firstly, thanks for inspiring me to finally release the A2&A3 version of the mod, and for showing up on this thread to keep helping out! I should give you a bit of background to put the lighting into perspective. When I initially wrote the mod I was simply trying to recreate the ambient house lighting effect as seen in Arma2, where lights would randomly appear in the windows of the mostly non-enterable buildings on Utes and Chernarus. I tend to not play CQB style, and was happy just to see lights in buildings as I ran around outside at night. Once you actually enter the buildings there's a lot of suspension of disbelief that has to happen because there's no visible light source. I tried placing lights closer to ceilings but found that the light just bled through to outside and looked even worse. Because most OA maps tended to be poorer desert/central asian with lots of small mud huts, I went for a single light per hut, rather than trying to realistically place multiple sources into each dwelling. So what you are seeing is a bit of a compromise at the moment. I can certainly look into placing additional lights in buildings with more buildingpositions. In the mean time, it's easy enough to change the lighting parameters for increased brightness, fewer candles etc. Share this post Link to post Share on other sites
Guest Posted March 23, 2013 (edited) Release frontpaged on the Armaholic homepage. TPW Houselights - automatic house light addon A2 - Multiplayer v1.09TPW Houselights - automatic house light addon A2 - Singleplayer v1.09Community Base AddonsTPW Houselights - automatic house light addon A3 - Multiplayer v1.09TPW Houselights - automatic house light addon A3 - Singleplayer v1.09Community Base Addons A3 As discussed I made different pages for the Arma 2 and the Arma 3 versions. Both pages show the same info except for Arma 2 or Arma 3 specific info. The pages also link to the correct CBA version to use. Edited March 23, 2013 by Guest fixed news link Share this post Link to post Share on other sites
Brain 12 Posted March 23, 2013 Release frontpaged on the Armaholic homepage.. Link is broken for me... Share this post Link to post Share on other sites
KeyCat 131 Posted March 23, 2013 Nice to see you back tpw! This combined with Sakura_Chan's work may just be what the doctor ordered... will test tomorrow! And also thanks to our own Foxhound for hosting the files :) /KC Share this post Link to post Share on other sites
johncage 30 Posted March 23, 2013 might want to put a lamp or lightbulb object at the source of these lights. Share this post Link to post Share on other sites
tpw 2315 Posted March 23, 2013 might want to put a lamp or lightbulb object at the source of these lights. Perfectly doable, except that the lamp would be floating in mid air. I'm not sure how to write a function that would place the lamp at ceiling height (and in any case the light would just bleed through). Share this post Link to post Share on other sites
sqb-sma 66 Posted March 23, 2013 Perfectly doable, except that the lamp would be floating in mid air. I'm not sure how to write a function that would place the lamp at ceiling height (and in any case the light would just bleed through). So long as it's not that far away from the wall that would be ok. A lightbulb hanging from the ceiling would be ok, the wall mounted/fluorescent style ones on the other hand... Share this post Link to post Share on other sites
lordprimate 159 Posted March 23, 2013 (edited) tpw, i have a question about your new release, about the flickering, and how to adjust it? in the older version the flickering was set in the param's for the light. I was wondering if it would be possible to change the param's for the effects of the lights? This was my setup : _candle = [255,127,24,50,25,100,80];//candles flicker rapidly most of the time, are not bright _incan = [255,200,100,100,80,5,5];//bright full light mostly flicker free _tv = [100,200,255,80,60,100,80];//flickers, fairly bright These settings looked just amazing at night the lights came alive. Is there any way to get this level of control again? Edited March 23, 2013 by Lordprimate Share this post Link to post Share on other sites
tpw 2315 Posted March 23, 2013 (edited) tpw, i have a question about your new release, about the flickering, and how to adjust it?in the older version the flickering was set in the param's for the light. I was wondering if it would be possible to change the param's for the effects of the lights? This was my setup : _candle = [255,127,24,50,25,100,80];//candles flicker rapidly most of the time, are not bright _incan = [255,200,100,100,80,5,5];//bright full light mostly flicker free _tv = [100,200,255,80,60,100,80];//flickers, fairly bright These settings looked just amazing at night the lights came alive. Is there any way to get this level of control again? LP I never removed any control, depending on the version you are using you have full access to all those parameters to get the light settings you enjoy. Which version are you using? SP or MP, script or addon? If you are using the MP addon version then the lights are hard coded in with the following settings _candle =[255,127,24,60,30,80,10]; // warm yellow/orange (candle or fire) _incan = [255,200,100,80,40,20,5]; // yellow/white (incandesecent) _tv = [100,200,255,60,30,100,30]; // blue/white (television or fluorescent) _ratio = [4,2,1]; // ratio of candle:incan:tv If you want to change them in the script version then you'll need to run tpw_houselights-scan.sqf for your map, using your settings: _candle = [255,127,24,50,25,100,80];//candles flicker rapidly most of the time, are not bright _incan = [255,200,100,100,80,5,5];//bright full light mostly flicker free _tv = [100,200,255,80,60,100,80];//flickers, fairly bright and then paste from the clipboard back into tpw_houselights109-mp.sqf In the SP version you can edit either the TPW_HOUSLIGHTS.cpp if using the addon version : TPW_CANDLE[] = {255,127,24,60,20,80,10}; //Warm yellow/orange flame TPW_INCAN[] = {255,200,100,60,20,20,5}; //Yellow white incandescent or lantern TPW_TV[] = {100,200,255,60,20,100,30}; //Blue/white television TPW_RATIO[] = {4,2,1}; //Ratio of candle:incan:tv or these lines in tpw_houselights109.sqf if you want to use the script version: _candle =[255,127,24,60,30,80,10]; // warm yellow/orange (candle or fire) _incan = [255,200,100,80,40,20,5]; // yellow/white (incandesecent) _tv = [100,200,255,60,30,100,30]; // blue/white (television or fluorescent) _ratio = [4,2,1]; // ratio of candle:incan:tv And just for your reference, here is the blurb from the config LIGHT-TYPE VALUES Light-type will be picked at random. Each individual light array consists of: [red,green,blue,maximum brightness,minimum brightness,%chance of flickering,%brightness to flicker] Example: [255,127,24,60,30,80,10] = warm yellow, brightness between 30-60, 80% chance of flickering, 10% brightness variation when flickering Red, green and blue values are 0-255 Brightness values are 0-255 Flickering values are 0-100 Light sources don't really stress the engine, but flickering lightsources can. If you want no flickering, set all %chance of flickering values to 0. Edited March 23, 2013 by tpw Share this post Link to post Share on other sites
lordprimate 159 Posted March 23, 2013 ok i must have passed over something or been looking at the wrong file or something .. Thanks a bunch!! Share this post Link to post Share on other sites
pellejones 1 Posted March 23, 2013 TPW, we always use your script! But like the others say the default version is quite dark. I ported the old 1.08 version for myself some time ago and changed a few things. There are two new light commands (or more) that affect how the cone of the light looks, also the attenuation of the light. With these values I think I found a pretty nice setup for lights. Note that I do not use flicker and I also ignore the different light settings such as color and different brightness. The brightness will differ anyway since the reflection on surfaces makes light more or less bright. White walls will make the room much brighter than brown walls, using the same settings for both lights. _lp setLightColor [1,0.784314,0.392157]; //Color _lp setLightBrightness 0.05; // Set its brightness _lp setLightIntensity 10; //How bright is the light _lp setLightAttenuation [2, 1, 1, 20]; //[Range, Constant (0.0 = bright and higher value dims), Linear (fade quick with distance!), range (change brightness when out of distance) Share this post Link to post Share on other sites
Drumheller 19 Posted March 23, 2013 So for the multiplayer version, as long as the host is running the mod, everyone will see the same lights? Or does everyone connected have to have the mod? Share this post Link to post Share on other sites
MasterDon 10 Posted March 23, 2013 I totally understand. No one should be complaining haha. Good job on this mod I like it! Share this post Link to post Share on other sites
ron533 0 Posted March 23, 2013 Thanks for the addon! unfortunately, I saw it load once in stratis, but later, after reloading ARMA again it stopped working for although it is loaded (Hint is loaded). I use it with Saku lightsfx (also tried without) and selected 100% of houses lighted. strange thing is that with NV on I can see as if the lights inside a house are lit, but removing NV - pitch dark. Any ideas?? Thanks! Share this post Link to post Share on other sites
tpw 2315 Posted March 23, 2013 It seems to be a bug in the A3 lighting at this stage. Start an editor mission at 2030 and it will be pitch black, even the streetlights are barely visible. Start a mission at 0100 and everything looks great and well lit. Thanks for the addon!unfortunately, I saw it load once in stratis, but later, after reloading ARMA again it stopped working for although it is loaded (Hint is loaded). I use it with Saku lightsfx (also tried without) and selected 100% of houses lighted. strange thing is that with NV on I can see as if the lights inside a house are lit, but removing NV - pitch dark. Any ideas?? Thanks! ---------- Post added at 06:38 ---------- Previous post was at 06:37 ---------- So for the multiplayer version, as long as the host is running the mod, everyone will see the same lights? Or does everyone connected have to have the mod? It's client side only, so everyone playing will need the mod. ---------- Post added at 06:46 ---------- Previous post was at 06:38 ---------- TPW, we always use your script! But like the others say the default version is quite dark. I ported the old 1.08 version for myself some time ago and changed a few things. There are two new light commands (or more) that affect how the cone of the light looks, also the attenuation of the light.With these values I think I found a pretty nice setup for lights. Note that I do not use flicker and I also ignore the different light settings such as color and different brightness. The brightness will differ anyway since the reflection on surfaces makes light more or less bright. White walls will make the room much brighter than brown walls, using the same settings for both lights. _lp setLightColor [1,0.784314,0.392157]; //Color _lp setLightBrightness 0.05; // Set its brightness _lp setLightIntensity 10; //How bright is the light _lp setLightAttenuation [2, 1, 1, 20]; //[Range, Constant (0.0 = bright and higher value dims), Linear (fade quick with distance!), range (change brightness when out of distance) Good stuff mate. If you PM me with the code I will see about implementing it (if you'd like to share). The A3 lighting engine is a little strange at this point, and I hope it changes. Late at night the lights seem quite bright. Earlier in the evening everything can seem very dark. I tried experimenting with a Stratis variable which doubles the brightness of lights for this map, but then they seem too bright at certain times of night... Share this post Link to post Share on other sites