HighLow Binary Options Demo Prepare for surprises

Forex Signals Reddit: top providers review (part 1)

Forex Signals Reddit: top providers review (part 1)

Forex Signals - TOP Best Services. Checked!

To invest in the financial markets, we must acquire good tools that help us carry out our operations in the best possible way. In this sense, we always talk about the importance of brokers, however, signal systems must also be taken into account.
The platforms that offer signals to invest in forex provide us with alerts that will help us in a significant way to be able to carry out successful operations.
For this reason, we are going to tell you about the importance of these alerts in relation to the trading we carry out, because, without a doubt, this type of system will provide us with very good information to invest at the right time and in the best assets in the different markets. financial
Within this context, we will focus on Forex signals, since it is the most important market in the world, since in it, multiple transactions are carried out on a daily basis, hence the importance of having an alert system that offers us all the necessary data to invest in currencies.
Also, as we all already know, cryptocurrencies have become a very popular alternative to investing in traditional currencies. Therefore, some trading services/tools have emerged that help us to carry out successful operations in this particular market.
In the following points, we will detail everything you need to know to start operating in the financial markets using trading signals: what are signals, how do they work, because they are a very powerful help, etc. Let's go there!

What are Forex Trading Signals?

https://preview.redd.it/vjdnt1qrpny51.jpg?width=640&format=pjpg&auto=webp&s=bc541fc996701e5b4dd940abed610b59456a5625
Before explaining the importance of Forex signals, let's start by making a small note so that we know what exactly these alerts are.
Thus, we will know that the signals on the currency market are received by traders to know all the information that concerns Forex, both for assets and for the market itself.
These alerts allow us to know the movements that occur in the Forex market and the changes that occur in the different currency pairs. But the great advantage that this type of system gives us is that they provide us with the necessary information, to know when is the right time to carry out our investments.
In other words, through these signals, we will know the opportunities that are presented in the market and we will be able to carry out operations that can become quite profitable.
Profitability is precisely another of the fundamental aspects that must be taken into account when we talk about Forex signals since the vast majority of these alerts offer fairly reliable data on assets. Similarly, these signals can also provide us with recommendations or advice to make our operations more successful.

»Purpose: predict movements to carry out Profitable Operations

In short, Forex signal systems aim to predict the behavior that the different assets that are in the market will present and this is achieved thanks to new technologies, the creation of specialized software, and of course, the work of financial experts.
In addition, it must also be borne in mind that the reliability of these alerts largely lies in the fact that they are prepared by financial professionals. So they turn out to be a perfect tool so that our investments can bring us a greater number of benefits.

The best signal services today

We are going to tell you about the 3 main alert system services that we currently have on the market. There are many more, but I can assure these are not scams and are reliable. Of course, not 100% of trades will be a winner, so please make sure you apply proper money management and risk management system.

1. 1000pipbuilder (top choice)

Fast track your success and follow the high-performance Forex signals from 1000pip Builder. These Forex signals are rated 5 stars on Investing.com, so you can follow every signal with confidence. All signals are sent by a professional trader with over 10 years investment experience. This is a unique opportunity to see with your own eyes how a professional Forex trader trades the markets.
The 1000pip Builder Membership is ordinarily a signal service for Forex trading. You will get all the facts you need to successfully comply with the trading signals, set your stop loss and take earnings as well as additional techniques and techniques!
You will get easy to use trading indicators for Forex Trades, including your entry, stop loss and take profit. Overall, the earnings target per months is 350 Pips, depending on your funding this can be a high profit per month! (In fact, there is by no means a guarantee, but the past months had been all between 600 – 1000 Pips).
>>>Know more about 1000pipbuilder
Your 1000pip builder membership gives you all in hand you want to start trading Forex with success. Read the directions and wait for the first signals. You can trade them inside your demo account first, so you can take a look at the performance before you make investments real money!
Features:
  • Free Trial
  • Forex signals sent by email and SMS
  • Entry price, take profit and stop loss provided
  • Suitable for all time zones (signals sent over 24 hours)
  • MyFXBook verified performance
  • 10 years of investment experience
  • Target 300-400 pips per month
Pricing:
https://preview.redd.it/zjc10xx6ony51.png?width=668&format=png&auto=webp&s=9b0eac95f8b584dc0cdb62503e851d7036c0232b
VISIT 1000ipbuilder here

2. DDMarkets

Digital Derivatives Markets (DDMarkets) have been providing trade alert offerings since May 2014 - fully documenting their change ideas in an open and transparent manner.
September 2020 performance report for DD Markets.
Their manner is simple: carry out extensive research, share their evaluation and then deliver a trading sign when triggered. Once issued, daily updates on the trade are despatched to members via email.
It's essential to note that DDMarkets do not tolerate floating in an open drawdown in an effort to earnings at any cost - a common method used by less professional providers to 'fudge' performance statistics.
Verified Statistics: Not independently verified.
Price: plans from $74.40 per month.
Year Founded: 2014
Suitable for Beginners: Yes, (includes handy to follow trade analysis)
VISIT
-------

3. JKonFX

If you are looking or a forex signal service with a reliable (and profitable) music record you can't go previous Joel Kruger and the team at JKonFX.
Trading performance file for JKonFX.
Joel has delivered a reputable +59.18% journal performance for 2016, imparting real-time technical and fundamental insights, in an extremely obvious manner, to their 30,000+ subscriber base. Considered a low-frequency trader, alerts are only a small phase of the overall JKonFX subscription. If you're searching for hundreds of signals, you may want to consider other options.
Verified Statistics: Not independently verified.
Price: plans from $30 per month.
Year Founded: 2014
Suitable for Beginners: Yes, (includes convenient to follow videos updates).
VISIT

The importance of signals to invest in Forex

Once we have known what Forex signals are, we must comment on the importance of these alerts in relation to our operations.
As we have already told you in the previous paragraph, having a system of signals to be able to invest is quite advantageous, since, through these alerts, we will obtain quality information so that our operations end up being a true success.

»Use of signals for beginners and experts

In this sense, we have to say that one of the main advantages of Forex signals is that they can be used by both beginners and trading professionals.
As many as others can benefit from using a trading signal system because the more information and resources we have in our hands. The greater probability of success we will have. Let's see how beginners and experts can take advantage of alerts:
  • Beginners: for inexperienced these alerts become even more important since they will thus have an additional tool that will guide them to carry out all operations in the Forex market.
  • Professionals: In the same way, professionals are also recommended to make use of these alerts, so they have adequate information to continue bringing their investments to fruition.
Now that we know that both beginners and experts can use forex signals to invest, let's see what other advantages they have.

»Trading automation

When we dedicate ourselves to working in the financial world, none of us can spend 24 hours in front of the computer waiting to perform the perfect operation, it is impossible.
That is why Forex signals are important, because, in order to carry out our investments, all we will have to do is wait for those signals to arrive, be attentive to all the alerts we receive, and thus, operate at the right time according to the opportunities that have arisen.
It is fantastic to have a tool like this one that makes our work easier in this regard.

»Carry out profitable Forex operations

These signals are also important, because the vast majority of them are usually quite profitable, for this reason, we must get an alert system that provides us with accurate information so that our operations can bring us great benefits.
But in addition, these Forex signals have an added value and that is that they are very easy to understand, therefore, we will have a very useful tool at hand that will not be complicated and will end up being a very beneficial weapon for us.

»Decision support analysis

A system of currency market signals is also very important because it will help us to make our subsequent decisions.
We cannot forget that, to carry out any type of operation in this market, previously, we must meditate well and know the exact moment when we will know that our investments are going to bring us profits .
Therefore, all the information provided by these alerts will be a fantastic basis for future operations that we are going to carry out.

»Trading Signals made by professionals

Finally, we have to recall the idea that these signals are made by the best professionals. Financial experts who know perfectly how to analyze the movements that occur in the market and changes in prices.
Hence the importance of alerts, since they are very reliable and are presented as a necessary tool to operate in Forex and that our operations are as profitable as possible.

What should a signal provider be like?

https://preview.redd.it/j0ne51jypny51.png?width=640&format=png&auto=webp&s=5578ff4c42bd63d5b6950fc6401a5be94b97aa7f
As you have seen, Forex signal systems are really important for our operations to bring us many benefits. For this reason, at present, there are multiple platforms that offer us these financial services so that investing in currencies is very simple and fast.
Before telling you about the main services that we currently have available in the market, it is recommended that you know what are the main characteristics that a good signal provider should have, so that, at the time of your choice, you are clear that you have selected one of the best systems.

»Must send us information on the main currency pairs

In this sense, one of the first things we have to comment on is that a good signal provider, at a minimum, must send us alerts that offer us information about the 6 main currencies, in this case, we refer to the euro, dollar, The pound, the yen, the Swiss franc, and the Canadian dollar.
Of course, the data you provide us will be related to the pairs that make up all these currencies. Although we can also find systems that offer us information about other minorities, but as we have said, at a minimum, we must know these 6.

»Trading tools to operate better

Likewise, signal providers must also provide us with a large number of tools so that we can learn more about the Forex market.
We refer, for example, to technical analysis above all, which will help us to develop our own strategies to be able to operate in this market.
These analyzes are always prepared by professionals and study, mainly, the assets that we have available to invest.

»Different Forex signals reception channels

They must also make available to us different ways through which they will send us the Forex signals, the usual thing is that we can acquire them through the platform's website, or by a text message and even through our email.
In addition, it is recommended that the signal system we choose sends us a large number of alerts throughout the day, in order to have a wide range of possibilities.

»Free account and customer service

Other aspects that we must take into account to choose a good signal provider is whether we have the option of receiving, for a limited time, alerts for free or the profitability of the signals they emit to us.
Similarly, a final aspect that we must emphasize is that a good signal system must also have excellent customer service, which is available to us 24 hours a day and that we can contact them at through an email, a phone number, or a live chat, for greater immediacy.
Well, having said all this, in our last section we are going to tell you which are the best services currently on the market. That is, the most suitable Forex signal platforms to be able to work with them and carry out good operations. In this case, we will talk about ForexPro Signals, 365 Signals and Binary Signals.

Forex Signals Reddit: conclusion

To be able to invest properly in the Forex market, it is convenient that we get a signal system that provides us with all the necessary information about this market. It must be remembered that Forex is a very volatile market and therefore, many movements tend to occur quickly.
Asset prices can change in a matter of seconds, hence the importance of having a system that helps us analyze the market and thus know, what is the right time for us to start operating.
Therefore, although there are currently many signal systems that can offer us good services, the three that we have mentioned above are the ones that are best valued by users, which is why they are the best signal providers that we can choose to carry out. our investments.
Most of these alerts are quite profitable and in addition, these systems usually emit a large number of signals per day with full guarantees. For all this, SignalsForexPro, Signals365, or SignalsBinary are presented as fundamental tools so that we can obtain a greater number of benefits when we carry out our operations in the currency market.
submitted by kayakero to makemoneyforexreddit [link] [comments]

NanoFusion - Project Update and Next Steps

Build-Off Result

I'm sure some people will be wondering about the status of the NanoFusion project going forward. Naturally, the outcome of the Nano Build-Off was pretty disappointing for me personally. After initially receiving such a wave of positive feedback here on reddit, it was unfortunate to not even crack the top 20 projects.
In spite of that result, I think the community's desire to see a trustless privacy protocol in the Nano ecosystem is actually quite strong. I believe this Build-Off result is primarily a reflection of the judging criteria, which skewed strongly towards apps that were already somewhat polished, and able to be tested by one person within the space of 10 minutes. This naturally disfavours a project like NanoFusion which is still a proof-of-concept, and requires multiple participants in order to properly use it. All that to say, while I applaud the winning projects for their efforts, and extend my gratitude to Nanillionaire for sponsoring the event, I don't believe that the Build-Off result gives a full picture of the community's true priorities for future development of the Nano ecosystem.
Nevertheless this result points to a stark reality: NanoFusion is not yet ready for consumer use, not by a long shot.

What will it take for NanoFusion to be consumer-ready?

Protocol and Reference Implementation Status
There is a small amount of work to be done to finish the reference implementation of the protocol. The binary tree of input mix accounts has been constructed, but the code is not yet written to actually execute the mix, nor to trigger and execute refunds where necessary. That is really the last step that needs to be completed for the reference implementation, and it's not especially complicated. The tricky bit is that there are still a few bugs around communication between the clients that need ironing out. But those are relatively minor bugs, I'm confident they won't require fundamental changes to the protocol or the implementation architecture.
However, once the reference implementation is complete, that is where a whole new set of challenges begins.
Wallet Integration
The primary challenge will be to integrate NanoFusion into one or more popular wallets. For a privacy protocol to be most effective, we need as many people as possible using it. In a cryptocurrency like Nano, where transactions and addresses are all publicly visible on a block explorer, privacy is achieved by making it difficult to determine which transactions belong to you. Making it difficult is a matter of having your transactions get "lost in the crowd". The crowd of transactions that might potentially be yours is called the "anonymity set". We need that anonymity set to be as large as possible, which means we need as many people participating in Fusion events as possible.
The best way to achieve this is to get NanoFusion adopted by popular wallets, and ideally to have it enabled by default. The less decisions that a user needs to make in order to start participating, the better.
This raises one very important question. How do we make it as easy and appealing as possible for the developers of popular wallets to integrate this technology?
Workflow Design
In order to make NanoFusion integration appealing to wallet developers, I believe we need to gear NanoFusion integration around workflows that actually work for end-users of the wallet. This is not as simple as it appears.
The Nano ecosystem is currently geared around the assumption that addresses will tend to be re-used for many sends and receives. This is almost intrinsic to the ORV consensus mechanism. You keep your funds in one account, and the voting weight for that account is assigned to your representative.
In a UTXO-based cryptocurrency, BCH in particular, it is much more normal to use a separate subaddress for every incoming transaction. CashFusion on BCH works by taking all your different receive addresses and mixing the funds from those addresses together (along with the funds of many other people's subaddress sets). But on Nano it's different. Imagine you have an online store accepting Nano funds via BrainBlocks integration. If you receive 100 payments, you might have BrainBlocks forward them all to just one account that you own. But this makes it trivial for a customer to look at the block explorer and see all of your sales volume, which completely undermines your privacy.
In the context of something like BrainBlocks, it's easy to see how our e-commerce store could generate a new address for each transaction, and have BrainBlocks forward funds to that new address. Then we could run NanoFusion later to obscure the linkages between our individual sales. But what about addresses that are shared in public? Lots of people put up single Nano addresses to receive donations, etc. What does NanoFusion do with those? For NanoFusion to be most effective, a given user should NOT have just one input and one output account in the mix. It makes it too easy for their input and output accounts to be linked (at least to a moderate-to-high degree of probability) by the publicly visible amounts in the accounts.
For NanoFusion to be most effective, we need to develop a culture where it is normal for people to use a new address each time they receive some nano. How do we make it appealing for wallet developers to build their wallets this way? I don't really know. The only example of this pattern that I know is Nanonymous (https://github.com/LilleJohs/Nanonymous). We could potentially implement something like stealth addresses, so that the user really gives out one canonical public address, but a different receive address is actually used for each transaction "under the hood". However, that adds a whole new layer of complexity. It means wallets have to be upgraded to know how to interact with a stealth address.
API Design
Even if we could arrange things so that it was more common for individuals to have multiple input accounts to mix, we would still be left with another question. What would wallet developers want the API for NanoFusion to look like? By nature, NanoFusion requires a large number of messages to be sent back and forth between all of the mix participants. For security reasons, those messages cannot be sent all at once. Player A has to wait for Player B to send message 1 before it is safe (cryptographically) for Player A to reveal the content of message 2.
What should a library look like that manages that complexity on behalf of the wallet developer? What language should it be written in? I have begun this project under the assumption that the most common wallet-dev language would be javascript, but there may be cases where other platforms are needed.

Where To From Here?

Technical Reflections
Thinking through all of these practical challenges has given me a new perspective on the whole issue of cryptocurrency privacy protocols. I have a much greater respect for what has been achieved by the Monero project. In Monero, everyone actually uses the privacy protocol. As described above, that is no small accomplishment. Even though the privacy protocols for Dash, ZCash, BTC and BCH do basically work, their use is not widespread. Even leaving aside the issue of the extra transaction fees incurred (which is not such a problem for Nano), these optional privacy protocols are just not that convenient to use. Because not everyone uses them, the anonymity set is not nearly as large as it could be. And because not everyone uses them, transactions you do before and after a mix/fusion event leak metadata which can be used to undermine the privacy that you gained by using the privacy protocol in the first place.
Inevitably, NanoFusion will also suffer from this problem. Suppose that 20% of the Nano community starts regularly participating in fusions (a very generous estimate, given the low adoption rate of optional privacy features in the other cryptocurrencies mentioned). That still leaves the large majority of transactions probably re-using addresses most of the time. This means that the non-private majority will leak fresh metadata whenever they interact with accounts that were previously obscured through NanoFusion. This is not an easy problem to overcome. It can only be done with a culture shift towards ubiquitous privacy, and that can probably only be achieved by all major wallets agreeing to enable privacy features by default. Not an easy hill to climb.
Personal Circumstances
For the sake of transparency, I also want to mention that I will be stepping back from NanoFusion for a while. This is simply a necessity of life. Our first child will be born in a few months. Once that happens, I will obviously have a lot going on and much less time available to work on these kinds of side projects. Between now and then, I need to focus on other projects which have more potential to generate some income for my little family. I'm a dad now(!), and my family comes first.
I'm very glad to have (hopefully) contributed some useful groundwork for the process of bringing privacy to Nano. This project also gave me the chance to learn some new technologies at a much deeper level, I'm grateful that too. Neverthless, for the foreseeable future, I'll be stepping back. I don't make that decision lightly. I put a lot of blood, sweat and tears into bringing NanoFusion this far, so I definitely hope it doesn't just fall by the wayside. I hope others will pick it up and run with it in my absence.
Call to Action
Want to make NanoFusion happen? Here's what we really need next:
  1. Wallet Developers - we need you to speak up. Tell us, what would an ideal NanoFusion API look like? How can we make it as easy as possible for you to integrate NanoFusion into your wallet app? What programming language do you want to use to consume that API? What I would love to see is several wallet developers collaborating together to create a document describing their ideal API. That will make it much easier for potential developers to pick it up and start implementing it.
  2. Javascript developers - are any of you interested in stepping up and finishing off the last bits of the reference implementation for NanoFusion?
As always, details of the project are available at http://nanofusion.casa (including demo videos, technical whitepaper and the link to the GitHub repo).
God bless everyone, thank you to all those who have followed along and offered so much encouragement for this project.
submitted by fatalglory to nanocurrency [link] [comments]

ASIC Regulation Thread - Regarding the proposed changes ( Australians effected the most )

I'm hopeless at formatting text, so if you think you can structure this post better take everything i write and put it into an easy to digest way. I'm just going to type out everything i know in text as fast as possible. I'm not a legal expert, I'm not somehow who understands every bit of information in the PDF's below, but i know I'm a retail trader that uses leverage to make profit which is why I'm posting this, in the hope that someone who can run a charge better than me, will.
Some of you are already aware of what might be happening, this is just a post to educate retail traders on changes that might be coming to certain brokers. This effects Australian Customers the most, but also effects those living in other countries that use Australian brokers, such as Pepperstone and others.
Last year in August 2019, ASIC ( Australian Securities and Investments Commission ) was concerned about retail traders going into Forex and Binary options without understanding these instruments properly and started sticking their noses in for tough regulation.
ASIC asked brokers and anyone with interest in the industry to write to them and explain what should and should not change from the changes they proposed, some of the proposed changes are very misguided and come from a lack of understanding exactly how OTC derivatives actually work.
I will provide the link to the paper further down so you can read it yourself and i will provide a link to all the submission made by all parties that sent submissions to ASIC, however the 2 main points of debate are:
1, To reduce the overall leverage available to retail traders to either 20:1 or 30:1. This means people who currently use leverage such as 100:1 to 500:1 and everything in between will be effected the most, even more so are those traders with relatively small accounts, meaning in order to get your foot in the door to trading you will need more capital for it to be viable.
^^ This point above is very important.
2, The removing of Binary options trading, which basically includes products like "Bet if gold will rise to this price in the next 30 seconds" This sort of stuff. So far from all the submissions from brokers and individuals nobody really cares if this changes as far as i know, though if you have concerns about this i would start voicing your disapproval. Though i would not waste your time here, all is pointing to this being eradicated completely with brokers also supporting the changes, I've never used such a product and know very little about them.
^^ This point above isn't very important and will probably be enforced in the future.
Still to this day i see retail traders not understanding leverage, they think of it as "dangerous and scary", it's not, position size is the real danger, not leverage. So ASIC is aiming to limit retail traders access to high leverage, they are claiming it is a way to protect traders who don't really understand what they are getting into by attacking leverage and not the real problem which is position size relative to your capital.
If it was truly about protecting retail traders from blowing up their accounts, they would look for ways to educate traders on "understanding position sizes and why it's important" rather than attacking leverage, but their goal is misguided or has an ulterior motive . I will give you a small example below.
EXAMPLE - We will use 2 demo accounts for demonstration purposes. If you don't understand my example, i suggest you try it for yourself. - Skip if not interested in examples.
Lets say we open 2 demo accounts with $1000 in both, one with 20:1 leverage and one with 500:1 leverage and we open an identical position on both accounts ( say a micro lot '0.01' on EURUSD ). You are safer on the 500:1 account as you don't need to put up as much margin as collateral as you would on the 20:1. If the trade we just opened goes against us and continues against us, the account with 20:1 leverage will run out of free margin a lot faster than the 500:1 account. In this simple example is shows you that leverage is not dangerous but safer and gives you a lot more breathing room. This trade was a small micro lot, so it would take hundreds of pips movements to get margin called and blow up that $1000 on each account. Lets now use a different position size to truly understand why retail traders blow up accounts and is the reason why trading can be dangerous.
This time instead of opening a micro lot of '0.01' on our $1000 dollar demo accounts, lets open a position size much larger, 5 lots. Remember we only have $1000 and we are about to open a position much larger relative to our capital ( which we should never do because we can't afford to do that ) the 20:1 probably wont even let you place that trade if you don't have enough margin as collateral or if you could open the position you would have a very tiny amount of free margin left over, meaning a small pip movement against you will instantly blow up your $1000 account. On the 500:1 account you wouldn't need to put up as much margin as collateral with more free margin if the trade goes bad, but again a small movement could blow up your account. In this example, both accounts were dangerous because the lack of understanding position sizes, opening a position you can't afford to open. This is what the true danger is, not the leverage.
Even in the second example, the higher leverage would "margin call" you out later. So i would go as far to say that lower leverage is more dangerous for you because it margin calls you out faster and just by having a lower leverage doesn't stop you from opening big positions that can blow you up in a 5 pip movement anymore, any leverage size is dangerous if you're opening positions you can't afford to open. This is also taking into consideration that no risk management is being used, with risk management higher leverage is even more powerful.
ASIC believes lowering leverage will stop people opening positions that they can't afford. When the reality is no matter how much capital you have $500, $1000, $5000, $50,000, $500,000, $5,000,000. You don't open position sizes that will blow that capital up completely with small movements. The same thing can happen on a 20:1 or 500:1 account.
Leverage is a tool, use it, if your on a lower leverage already such as 20:1, 30:1 it means your country has been regulated and you already have harder trading conditions. Just remember higher leverage allows you to open larger position sizes in total for the amount of money you own, but the issue is NOT that your using the higher leverage but because you are opening positions you can't afford, for what ever reason that is, the only fix for this is education and will not be fixed by simply lowing leverage, since you can just as easy blow up your account on low leverage just as fast or if not faster.
So what is going on?
There might ( get your tinfoil hats on ) be more that is involved here, deeper than you think, other agendas to try and stop small time retail traders from making money via OTC products, theories such as governments not wanting their citizens to be traders, rather would prefer you to get out there and work a 9 to 5 instead. Effective ways to do this would be making conditions harder with a much larger barrier of entry and the best way to increase the barrier of entry for retail traders is to limit leverage, lower leverage means you need to put up more money, less breathing room for trades, lower potential. They are limiting your upside potential and the downside stays the same, a blown account is a blow account.
Think of leverage as a weapon, a person wielding a butchers knife can probably destroy a person wielding a steak knife, but both knifes can prove fatal. They want to make sure your holding the butter knife then tell you to butcher a cow with it. 30:1 leverage is still workable and can still be profitable, but not as profitable as 500:1 accounts. This is why they are allowing professionals to use high leverage, this gives them another edge over successful retail traders who will still be trying to butcher a cow with a butter knife, while they are slaying limbs off the cow with machetes.
It's a way to hamstring you and keep you away rather than trying to "protect" you. The real danger is not leverage, they are barking up the wrong tree, how convenient to be barking up the very tree most retail traders don't fully understand ( leverage) , pass legislation to make trading conditions harder and at the same time push the narrative that trading is dangerous by making it even harder. A full circle strategy to make your trading conditions worse, so you don't succeed.
Listen carefully especially if you trade with any of the brokers that have provided their submissions to ASIC. Brokers want to seem like they are on your side and so far some of the submissions ( i haven't read them all ) have brokers willing to drop their leverage down to 30:1 because they know by dropping the leverage down it will start margin calling out their clients at a much faster rate, causing more blown up accounts / abandoned accounts with residual margin called funds, but they also know that if they make trading environments too hard less people will trade or even worse move their funds elsewhere offshore to unregulated brokers that offer higher leverage.
Right now it's all just a proposal, but as governments expand and continue to gain more control over it's citizens, it's just a matter of time till it's law, it's up to you to be vocal about it, let your broker know that if they drop their leverage, you're out, force them to fight for you.
If you have any more information related to this, or have anything to add, post below. I'm not an expert at this technical law talk, i know that i do well with 500:1 leverage and turn profits with it, it would be harder for me to do on a lower leverage, this is the reason for my post.
All related documents HERE
CP-322 ( Consultation paper 322 ) & Submissions from brokers and others.
https://asic.gov.au/regulatory-resources/find-a-document/consultation-papers/cp-322-product-intervention-otc-binary-options-and-cfds/
submitted by southpaw_destroyer to Forex [link] [comments]

Bitcoin Broker Understand the Benefits of CryptoCurrency Trading

Bitcoin is a cryptocurrency, which can be spent, saved, or invested, and it can be stolen too. Trading with Bitcoins was considered to be risky, but the current trends show that it has become a big hit the binary options sector. This decentralized currency is not regulated by any Government, or by any central authority.
What determines the price of Bitcoins?
Bitcoin's price is determined according to the supply and demand ratio. Price increases when the demand increases, the rates plummet downwards when the demand falls. Bitcoins in circulation are limited, and new ones are created at a very slow rate. Since it does not have enough cash reserve to move the market price, its price can be extremely volatile.
Bitcoin trading is popular because of -
Binary options Bitcoin trading platform
bitcoin binary options are getting familiar with popularity of these Bitcoins, and its constant fluctuating values. Therefore they are using this opportunity to offer traders with the latest volatile crypto-currency as an additional payment method. Bitcoin brokers providing crypto-currency as trading option include -
Bitcoin brokers provide a simple trading online platform. All you have to do is visit their website, enter your details, and create an account. You can start with demo account to understand the market action.
The trading screen is simple.
Is Bitcoin trading secure?
Bitcoin network is possibly the world's vast spread computing project. The most common weakness here is the user errors. Bitcoin wallet files can get lost, stolen, or deleted accidentally just like any other files in the digital form.
However, users can use sound security strategies to protect their cash. Alternatively, you could choose the service providers who offer high-level security, as well as insurance against loss or theft.
We provide latest information on Bitcoin brokers and online trading platforms on our website. Please visit our website to check out the broker reviews in order to make the right choices.
submitted by amirkhoso to u/amirkhoso [link] [comments]

Unkle Mike. Culling Of Invisible Objects In Quake Related Engines

Intro
Despite all these great achievements in video cards development and the sworn assurances of developers about drawing 2 to 3 million polygons on screen without a significant FPS drop, it’s not all that rosy in reality. It depends on methods of rendering, on the number of involved textures and on the complexity and number of involved shaders. So even if all this really does ultimately lead to high performance, it only happens in the demos that developers themselves kindly offer. In these demos, some "spherical dragons in vacuum" made of a good hundred thousand polygons are drawn very quickly indeed. However, the real ingame situation for some reason never looks like this funny dragon from a demo, and as a result many comrades abandon the development of their "Crysis killer" as soon as they can render a single room with a couple of light sources, because for some reason FPS in this room fluctuate around 40-60 even on their 8800GTS and upon creating second room it drops to a whopping 20. Of course with problems like this, it would be incorrect to say how things aren’t that bad and how the trouble of such developers are purely in their absence of correctly implemented culling, and how it is time for them to read this article. But for those who have already overcome “the first room syndrome" and tried to draw – inferior though, but, anyway - the world, this problem really is relevant.
However, it should be borne in mind that QUAKE, written in ancient times, was designed for levels of a “corridor" kind exclusively; therefore methods of clipping discussed in this article are not applicable to landscapes, such as ones from STALKER or Crysis, since completely different methods work there, whose analysis is beyond the scope of this article. Meanwhile we’ll talk about the classic corridor approach to mapping and the effective clipping of invisible surfaces, as well as clipping of entire objects.

The paper tree of baloon leaves

As you probably know, QUAKE uses BSP, Binary Spacing Partition tree. This is a space indexing algorithm, and BSP itself doesn’t care if the space is open or closed, it doesn’t even care if the map is sealed, it can be anything. BSP implies the division of a three-dimensional object into a certain number of secant planes called "the branches" or "the nodes" and volumetric areas or rooms called "the leaves". The names are confusing as you can see. In QUAKE / QUAKE2 the branches usually contain information about the surfaces that this branch contain, and the leaves are an empty space, not filled with nothing. Although sometimes leaves may contain water for example (in a form of a variable that indicates, specifically, that we’ve got water in this leaf). Also, the leaf contains a pointer to the data of potential visibility (Potentially Visible Set, PVS) and a list of all surfaces that are marked as being visible from this leaf. Actually the approach itself implies that we are able to draw our world however we prefer, either using leaves only or using branches only. This is especially noticeable in different versions of QUAKE: for example, in QUAKE1 in a leaf we just mark our surfaces as visible and then we also sequentially go through all the surfaces visible from a particular branch, assembling chains of surfaces to draw them later. But in QUAKE3, we can accumulate visible surfaces no sooner than we’ll get into the leaf itself.
In QUAKE and QUAKE2, all surfaces must lie on the node, which is why the BSP tree grows rather quickly, but in exchange this makes it possible to trace these surfaces by simply moving around the tree, not wasting time to check each surface separately, which affects the speed of the tracer positively. Because of this, unique surface is linked to each node (the original surface is divided into several if necessary) so in the nodes we always have what is known to be visible beforehand, and therefore we can perform a recursive search on the tree using the BBox pyramid of frustum as a direction of our movement along the BSP tree (SV_RecursiveWorldNode function).
In QUAKE3, the tree was simplified and it tries to avoid geometry cuts as much as possible (a BSP tree is not even obliged to cut geometry, such cuts are but a matter of optimality of such a tree). And surfaces in QUAKE3 do not lie on the node because patches and triangle models lie there instead. But what happens would they be put on the node nevertheless, you can see on the example of "The Edge Of Forever" map that I compiled recently for an experimental version of Xash. Turns out, in places that had a couple thousand visible nodes and leaves in the original, there are almost 170 thousand of them with a new tree. And this is the result after all the preliminary optimizations, otherwise it could have been even more, he-he. Yeah, so... For this reason, the tree in QUAKE3 does not put anything on the node and we certainly do need to get into the leaf, mark visible surfaces in it and add them to the rendering list. On the contrary, in QUAKE / QUAKE2 going deep down to the leaf itself is not necessary.
Invisible polygon cutoff (we are talking about world polys, separate game objects will be discussed a bit later) is based on two methods:
The first method is to use bit-vectors of visibility (so-called PVS - Potential Visible Set). The second method is regular frustum culling which actually got nothing to do with BSP but works just as efficiently, for a certain number of conditions of course. Bottom line: together these two methods provide almost perfect clipping of invisible polygons, drawing a very small visible piece out of the vast world. Let's take a closer look at PVS and how it works.

When FIDO users get drunk

Underlying idea of PVS is to expose the fact that one leaf is visible from another. For BSP alone it’s basically impossible because leaves from completely different branches can be visible at the same time and you will never find a way to identify the pattern for leafs from different branches seeing each other - it simply doesn’t exist. Therefore, the compiler has to puff for us, manually checking the visibility of all leaves from all leaves. Information about visibility in this case is scanty: one Boolean variable with possible values 0 and 1. 0 means that leaf is not visible and 1 means that leaf is visible. It is easy to guess that for each leaf there is a unique set of such Boolean variables the size of the total number of leaves on the map. So a set like this but for all the leaves will take an order of magnitude more space: the number of leaves multiplied by the number of leaves and multiplied by the size of our variable in which we will store information of visibility (0 \ 1).
And the number of leaves, as you can easily guess, is determined by map size map and by the compiler, which upon reaching a certain map size, cease to divide the world into leaves and treat resulting node as a leaf. Leaf size vary for different QUAKE. For example, in QUAKE1 leaves are very small. For example I can tell you that the compiler divide standard boxmap in QUAKE1 into as many as four leaves meanwhile in QUAKE3 similar boxmap takes only one leaf. But we digress.
Let's estimate the size of our future PVS file. Suppose we have an average map and it has a couple thousand leaves. Would we imagine that the information about the leaf visibility is stored in a variable of char type (1 byte) then the size of visdata for this level would be, no more no less, almost 4 megabytes. That is, much AF. Of course an average modern developer would shrug and pack the final result into zip archive but back in 1995 end users had modest machines, their memory was low and therefore visdata was packed in “more different” ways. The first step in optimizing is about storing data not in bytes, but in bits. It is easy to guess that such approach reduce final result as much as 8 times and what's typical AF – does it without any resource-intensive algorithms like Huffman trees. Although in exchange, such approach somewhat worsened code usability and readability. Why am I writing this? Due to many developers’ lack of understanding for conditions in code like this:
if ( pvs [ leafnum >> 3 ] & ( 1 << ( leafnum & 7 ) ) ) { } 
Actually, this condition implement simple, beautiful and elegant access to the desired bit in the array (as one can recall, addressing less than one byte is impossible and you can only work with them via bit operations)

Titans that keep the globe spinning

The visible part of the world is cut off in the same fashion: we find the current leaf where the player is located (in QUAKE this is implemented by the Mod_PointInLeaf function) then we get a pointer to visdata for the current leaf (for our convenience, it is linked directly to the leaf in the form of "compressed_vis" pointer) and then stupidly go through all the leaves and branches of the map and check them for being visible from our leaf (this can be seen in the R_MarkLeaves function). As long as some leaves turn out to be visible from the current leaf we assign them a unique number from "r_visframecount" sequence which increases by one every frame. Thus, we emphasize that this leaf is visible when we build the current frame. In the next frame, "r_framecount" is incremented by one and all the leaves are considered invisible again. As one can understand, this is much more convenient and much faster than revisiting all the leaves at the end of each frame and zeroing their "visible" variable. I drew attention to this feature because this mechanism also bothers some and they don’t understand how it works.
The R_RecursiveWorldNode function “walk” along leaves and branches marked this way. It cuts off obviously invisible leaves and accumulate a list of surfaces from visible ones. Of course the first check is done for the equivalence of r_visframecount and visframe for the node in question. Then the branch undergoes frustum pyramid check and if this check fails then we don’t climb further along this branch. Having stumbled upon a leaf, we mark all its surfaces visible the same way, assigning the current r_framecount value to the visframe variable (in the future this will help us to determine quickly whether a certain surface is visible in the current frame). Then, using a simple function, we determine which side we are from the plane of our branch (each branch has its own plane, literally called “plane” in the code) and, again, for now, we just take all surfaces linked to this branch and add them to the drawing chain (so-called “texturechain”), although nobody can actually stop us from drawing them immediately, right there, (in QUAKE1 source code one can see both options) having previously checked these surfaces for clipping with the frustum pyramid, or at least having made sure that the surface faces us.
In QUAKE, each surface has a special flag SURF_PLANEBACK which help us determine the orientation of the surface. But in QUAKE3 there is no such flag anymore, and clipping of invisible surfaces is not as efficient, sending twice as many surfaces for rendering. However, their total number after performing all the checks is not that great. However, whatever one may say, adding this check to Xash3D raised average FPS almost one and half times in comparison to original Half-Life. This is on the matter whether it is beneficial. But we digress.
So after chaining and drawing visible surfaces, we call R_RecursiveWorldNode again but now - for the second of two root branches of BSP tree. Just in case. Because the visible surfaces, too, may well be there. When the recursion ends, the result will either be a whole rendered world, or chains of visible surfaces at least. This is what can actually be sent for rendering with OpenGL or Direct3D, well, if we did not draw our world right in the R_RecursiveWorldNode function of course. Actually this method with minor upgrades successfully used in all three QUAKEs.

A naked man is in a wardrobe because he's waiting for a tram

One of the upgrades is utilization of the so-called areaportals. This is another optimization method coming straight out of QUAKE2. The point of using areaportals is about game logic being able to turn the visibility of an entire sectors on and off at its discretion. Technically, this is achieved as follows: the world is divided into zones similar to the usual partitioning along the BSP tree, however, there can’t be more than 256 of them (later I will explain why) and they are not connected in any way.
Regular visibility is determined just like in QUAKE; however, by installing a special “func_areaportal” entity we can force the compiler to split an area in two. This mechanism operates on approximately the same principle as the algorithm of searching for holes in the map, so you won’t deceive the compiler by putting func_areaportal in a bare field - the compiler will simply ignore it. Although if you make areaportal the size of the cross-section of this field (to the skybox in all directions) in spite of everything the zones will be divided. We can observe this technique in Half-Life 2 where an attempt to return to old places (with cheats for example) shows us disconnected areaportals and a brief transition through the void from one zone to another. Actually, this mechanism helped Half-Life 2 simulate large spaces successfully and still use BSP level structure (I have already said that BSP, its visibility check algorithm to be precise, is not very suitable for open spaces).
So installed areaportal forcibly breaks one zone into two, and the rest of the zoneization is at the discretion of the compiler, which at the same time makes sure not to exceed 256 zones limit, so their sizes can be completely different. Well, I repeat, it depends on the overall size of the map. Our areaportal is connected to some door dividing these two zones. When the door is closed - it turns areaportal off and the zones are separated from each other. Therefore, if the player is not in the cut off zone, then rendering it is not worth it. In QUAKE, we’d have to do a bunch of checks and it’s possible that we could only cut off a fraction of the number of polygons (after all, the door itself is not an obstacle for either visibility check, or even more so, nor it is for frustum). Compare to case in point: one command is issued - and the whole room is excluded from visibility. “Not bad,” you’d say, “but how would the renderer find out? After all, we performed all our operations on the server and the client does not know anything about it.” And here we go back to the question why there can’t be more than 256 zones.
The point is, information about all of zone visibility is, likewise, packaged in bit flags (like PVS) and transmitted to the client in a network message. Dividing 256 bits by 8 makes 32 bytes, which generally isn’t that much. In addition, the tail of this information can be cut off at ease if it contains zeroes only. Though the payback for such an optimization would appear as an extra byte that will have to be transmitted over the network to indicate the actual size of the message about the visibility of our zones. But, in general, this approach justified.

Light_environment traces enter from the back

Source Engine turned out to have a terrible bug which makes the whole areaportal thing nearly meaningless. Numerous problems arise because of it: water breaks down into segments that pop in, well, you should be familiar with all this by now. Areaportal cuts the geometry unpredictably, like an ordinary secant plane, but its whole point is being predictable! Whereas areaportal brushes in Source Engine have absolutely no priority in splitting the map. It should be like this: first, the tree is cut the regular way. And when no suitable planes left, the final secant plane of areaportal is used. This is the only way to cut the sectors correctly.

Modern problems

The second optimization method, as I said, is increased size of the final leaf akin to QUAKE3. It is believed that a video card would draw a certain amount of polygons much faster than the CPU would check whether they are visible. This come from the very concept of visibility check: if visibility check takes longer than direct rendering, then well, to hell with this check. The controversy of this approach is determined by a wide range of video cards present at the hands of the end users, and it is strongly determined by the surging fashion for laptops and netbooks in which a video card is a very conditional and very weak concept (don’t even consider its claimed Shader Model 3 support). Therefore, for desktop gaming machines it would be more efficient to draw more at a time, but for weak video cards of laptops traditional culling will remain more reliable. Even if it is such a simple culling as I described earlier.

Decompression sickness simulator

Although I should also mention the principles of frustum culling, perhaps they are incomprehensible to some. Cutoff by frustum pyramid is actually pure mathematics without any compiler calculations. From the current direction of the player’s gaze, a clipping pyramid is built (the tip of the pyramid – in case someone can’t understand - is oriented towards the player’s point of view and its base is oriented in the direction of player’s view). The angle between the walls of the pyramid can be sharp or blunt - as you probably guessed already, it depends on the player's FOV. In addition, the player can forcefully pull the far wall of the pyramid closer to himself (yes, this is the notorious “MaxRange” parameter in the “worldspawn” menu of the map editor). Of course, OpenGL also builds a similar pyramid for its internal needs when it takes information from the projection matrix but we’re talking local pyramid now. The finished pyramid consists of 4-6 planes (QUAKE uses only 4 planes and trusts OpenGL to independently cut far and near polygons, but if you write your own renderer and intend to support mirrors and portals you will definitely need all six planes). Well, the frustum test itself is an elementary check for a presence of AA-box (AABB, Axis Aligned Bounding Box) in the frustum pyramid. Or speaking more correctly, this is a check for their intersection. Let me remind you that each branch has its own dimensions (a fragment of secant plane bound by neighboring perpendicular secant planes) which are checked for intersection. But unfortunately the frustum test has one fundamental drawback - it cannot cut what is directly in the player’s view. We can adjust the cutoff distance, we can even make that “ear feint” like they do in QFusion where final zFar value is calculated in each frame before rendering and then taken into account in entity clipping, but after all, whatever they say, the value itself was obtained from PVS-information. Therefore, neither of two methods can replace the other but they just complement each other. This should be remembered.

I gotta lay off the pills I'm taking

It seems that we figured out the rendering of the world and now we are moving on smoothly to cutting off moving objects... which are all the visible objects in the world! Even ones that, at te first glance, stand still and aren’t planning to move anywhere. Cause the player moves! From one point he still sees a certain static object, and from another point, of course, he no longer does. This detail should also be considered.
Actually, at the beginning of this article I already spoke in detail about an algorithm of objects’ visibility check: first we find the visible leaf for the player, then we find the visible leaf for the entity and then we check by visdata whether they see each other. I, too, would like to clarify (if someone suddenly does not understand) how each moving entity is given the number of its current visible leaf, i.e. directly for entity’s its own current position, and the leaves themselves are of course static and always in the same place.

Ostrich is such an OP problem solver

So the method described above has two potential problems:
The first problem is that even if A equals B, then, oddly enough, B is far from being always equal A. In other words, entity A can see entity B, but this does not mean that entity B see entity A, and, no, it’s not about one of them “looking” away. So why is this happening? Most often for two reasons:
The first reason is that one of the entities’ ORIGIN sit tight inside the wall and the Mod_PointInLeaf function for it points to the outer “zero” leaf from which EVERYTHING is visible (haven’t any of you ever flown around the map?). Meanwhile, no leaf inside the map can see outer leaf - these two features actually explain an interesting fact of an entire world geometry becoming visible and on the contrary, all objects disappearing when you fly outside the map. In regular mode, similar problems can occur for objects attached to the wall or recessed into the wall. For example, sometimes the sounds of a pressed button or opening door disappear because its current position went beyond the world borders. This phenomenon is fought by interchanging objects A and B or by obtaining alternative points for the position of an object, but all the same, it’s all not very reliable.

But lawyer said that you don't exist

In addition, as I said, there is another problem. It come from the fact that not every entity fits a single leaf. Only the player is so small that he can always be found in one leaf only (well, in the most extreme case - in two leaves on the border of water and air. This phenomenon is fought with various hacks btw), but some giant hentacle or on the contrary, an elevator made as a door entity, can easily occupy 30-40 leaves at a time. An attempt to check one leaf (for example, one where the center of the model is) will inevitably lead to a deplorable result: as soon as the center of an object will be out of the player’s visibility range, the entire object will disappear completely. The most common case is the notorious func_door used as an elevator. There is one in QUAKE on the E1M1. Observe: it travels halfway and then its ORIGIN is outside the map and therefore it must disappear from the player’s field of view. However, it does not go anywhere, right? Let us see in greater detail how this is done.
The simplest idea that comes to one’s mind: since the object occupies several leaves, we have to save them all somewhere in the structure of an object in the code and check them one by one. If at least one of these leaves is visible, then the whole object is visible (for example, it’s very tip). This is exactly what was implemented in QUAKE: a static array for 16 leaves and a simple recursive function SV_FindTouchedLeafs that looks for all the leaves in range hardcoded in "pev->absmins" and "pev->absmax" variables (pev i.e. a Pointer to EntVars_t table). absmins and absmax are recalculated each time SV_LinkEdict (or its more specific case of UTIL_SetOrigin) is called. Hence the quite logical conclusion that a simple change of ORIGIN without recalculating its visible leaf will take the object out of visibility sooner or later even if, surprisingly enough, it’s right in front of the player and the player should technically still be able to see it. Inb4 why one have to call UTIL_SetOrigin and wouldn’t it be easier to just assign new value to the "pev->origin" vector without calling this function. It wouldn’t.
With this method we can solve both former problems perfectly: we can fight the loss of visibility if the object's ORIGIN went beyond the world borders and level the difference of visibility for A->B versus visibility for B->A.

A secret life of monster_tripmine

Actually we’ve yet to encounter another problem, but it does not occur immediately. Remember, we’ve got an array of 16 leaves. But what if it won’t be enough? Thank God there are no beams in QUAKE and no very long elevators made as func_door either. For this exact reason. Because when the array is filled to capacity, the SV_FindTouchedLeafs function just stop and we can only hope that there won’t be that many cases when an object disappear right before our eyes. But in the original QUAKE, such cases may well be. In Half-Life, the situation is even worse - as you can remember there are rays that can reach for half the map, tripmine rays for example. In this case, a situation may occur when we see just the very tip of the ray. For most of these rays, 16 leaves are clearly not enough. Valve tried to remedy the situation by increasing the array to 48 leaves. That helped. On early maps. If you remember, at the very beginning of the game when the player has already got off the trailer, he enters that epic elevator that takes him down. The elevator is made as a door entity and it occupies 48 leaves exactly. Apparently, the final expansion of the array was based after its dimensions. Then the programmers realized that this isn’t really a solution, because no matter how much one would expand the array, it can still be lacking for something. So then they screwed up an alternative method for visibility check: a head branch (headnode) check. In short, this is still the same SV_FindTouchedLeafs but now it is called directly from the place of visibility check and with a subsequent transfer of visdata in there. In general, it is not used very often because it is slower than checking pre-accumulated leaves, that is, it is intended just for such non-standard cases like this one.
Well, and since, I hope, general picture of the clipping mechanism already beginning to take shape in your mind, I will finish the article in just a few words.
On the server, all objects that have already passed the visibility check are added to the network message containing information about visible objects. Thus, on the client, the list of visible entities is already cut off by PVS and we do not have to do this again and therefore a simple frustum check is enough. You ask, "why did we have to cut off invisible objects on the server when we could do this later when we are on the client already?" I reply: yes, we could, but now the objects cut off on the server didn’t get into the network message and saved us some traffic. And since the player still does not see them, what is the point of transferring them to the client just to check them for visibility after? This is a kind of double optimizing :)
© Uncle Mike 2012
submitted by crystallize1 to HalfLife [link] [comments]

OBLIGATORY FILLER MATERIAL – Breaking Bad, Part 3

Continuing
“Hello and good day, gentlemen”, I say. “I am Doctor Rocknocker. You may and will refer to me as ‘Rock’. OK? None of this ‘Doctor’ or ‘Sir’ guff. We green here?”
There was a buzz of voices but no direct answers.
“OK. Let’s get a few things down right here and now.
(1.) Call me Rock.
(b.) Answer me loudly. I will need to hear you loud and clear. Best get used to that now.
(iii.) “We green?” means “Are we in agreement?” It’s a form of shorthand I use here and in the field.
(⍾.) “You diggin’ me, Beaumont? means you’ve really done gone and pissed me off; you’ve done something untoward. Pray you never hear that phrase, and,
(∞.) I’m the boss. The top dog. The hookin’ bull. The Maharaja here. I possess the first, final and only words you’re going to listen to for the next couple of weeks. What I say, goes. Any problem, please let me know now so we can replace you most quickly.”
A gentle buzz, but no replies.
“Gentlemen. Do we agree?” I ask.
“Yes, Rock.” Was the reply.
OK, there might be some form of a societal prohibition against making loud noises. That’s the first thing that has to go.
“Gentlemen, we will be working in the great outdoors where there are wind, rain, waves, and other environmental nonsense making all sorts of unrequited noise. We need clear and proper lines of communication. I need to hear you clearly and vice-versa. When speaking, you will speak slowly, clearly, and loudly. “
DO WE AGREE!?!” I yell, rather deafeningly.
“YES, ROCK!” came the eventual reply.
“Outstanding”. I ponder.
Continuing…
“Mr. Sanjay is my de facto second in command. If I’m out having a smoke, taking a piss, or having a snort, he’s in charge. Listen to him as if I suddenly lost 150 pounds, shaved my beard, and inexplicably become Indian.” I chuckled.
They seemed to enjoy that. I actually elicited a few chuckles.
“Mr. Sanjay will now distribute to you your locker boxes. You will wait until he hands you yours. Do not get up and mill around the room. We green?” I ask.
“Green! Doctor Rock.” Came the noisy reply.
“Progress. Marvelous.”, I reflect.
“I’ll be right back. Mr. Sanjay, the room is yours.” I note. I might need to cut back on the coffee.
I slope off to the loo and it’s just as horrible as you can imagine an outdoor communal shithouse in sunny India attended by 30,000 Indian gentlemen could be.
Fuck COVID-19. I’m thinking hot and cold running dysentery, dengue, and death here. Ick.
Glad I have a highly functioning immune system.
I retrieve a shiny aluminum Halliburton™ case from Headquarters and ease off to an unused office space to change.
I went from my usual field garb to full PPEs. It was quite a sight.
I’ll be telling you about it in mere moments. Contain the excitement.
I’m walking back to Outbuilding #2 and damned if my get-up didn’t elicit a few gasps, shielded guffaws, and a salute or two. I have to admit, to the uninitiated, I was a sight right out of Area 52, the more secret one, west by northeast of Roswell, New Mexico.
I get back to the outbuilding and enter. Everyone was looking through their locker boxes, chuckling about their good fortune and wondering with Joker-like glee what the hell all these wonderful gizmos were and where did I get them? They all stopped dead in their tracks when I walked in.
Their silence was palpable.
“Gentlemen”, I said, “Here’s how you are going to look at work tomorrow. Revel in its utility, comfort, and extreme fashion sense.” I did a quick spin like I used to on the runway.
At O’Hare when we were doing field geostatic tests. Whatever were you thinking?
Anyways…
I was wearing a pair of size 66-XTall NFPA 70E blaze orange Carhartt Nomex coveralls. I had on a Dax carbon-fiber blaze orange “Coal Scuttle” hardhat with swing-away hearing protection keyed into your personal communications module, and a gold-anodized, pull-down full face shield. The helmet was designed to drain away falling water down over one’s back and not down one’s neck.
I had a pair of ‘wet’ gloves under the snap retainer on my left shoulder, a pair of ‘dry’ gloves on my right. I was wearing an orange CMC Safety 9-point safety and rescue harness, good to well over 1,500 pounds. Over both shoulders, around the crotch, up the front, and around the back, X-style. This popular harness features multiple D-ring attachment points and the patented JackBack removable padding with breathable D-3 cloth, which keeps shoulder straps separated and makes donning and doffing a breeze. It had several catch-points where one could easily and readily attach to the snap carabiners and get bodily dragged out of a nasty situation by rope or chain. The front waist D-ring allows a comfortable, stable sitting position for rappels and the sternum D-ring works well for helicopter or crane-assist hoists. Gear loops offer easy access to equipment, and quick-connect-disconnect shoulder straps and leg loops make the harness quick to don or doff. It could be used for impromptu spelunking on days off.
I had on Size 16 EEE Gear Box 8088 Men's 8 inch Black Leather intrinsically-safe hard-toed lace-up black turned-heel leather work boots with the new self-cleaning, oil-and chemical resistant Vibram soles.
They couldn’t see, but I was also wearing a cotton-Nomex blend wifebeater and boxers as well. Nomex tends to chafe. Best be safe.
I had a powerful Maglite flashlight clipped to my rescue harness, as well as my mini Air Horn; a blaster’s must. I also had a mobile VHF-Commslink™ radio in a pocket on the back of my coveralls on the left shoulder. I had the microphone for it Velcro-ed to my rescue harness within easy reach. Very cop like. Very cool. Very necessary.
I had a traditional Zippo and Bic Butane lighters in my right-hand chest pocket and a brace of cigars, though these were optional, in my left pocket. I carried a bespoke constructed Swiss Army Knife on a lanyard in my right front pocket and had a custom Bears Paw Leatherman hanging on the left of my rescue harness.
Also clipped to the harness was a Silva orienteering compass. There was a selection of NASA write anywhere pens, Sharpies, and oil-writing chalk pencils in my other front pockets. I had an oil industry tally book in my other front pocket.
Why blaze orange? Well, Red Adair already co-opted bright red, and fluorescent green wasn’t available in my size.
So, we’re now ready to plant explosives in West India or go deer hunting in the Northwoods of Baja Canada.
“Questions, Gentlemen?” I asked.
I explained that in their locker boxes were purchase orders, POs, for every bit of kit I was wearing. They were to take these POs to the Company Store and get, well, kitted out in their own sizes and preferences. I wanted to see everyone back here tomorrow at 1300 hours looking as I do now. Well, maybe skip the cigar and be not quite so large.
I sat down on the table in front of the crowd and had Sanjay bring over the demo locker box.
“OK, gents,” I said, “This locker box is yours and is numbered as such. They will be stored here in Outbuilding #2. Each of you will receive a key for this building as it is now your headquarters. We’ll get back to locker boxes in a minute. Anyone need a break for a few minutes?” I asked.
No one dared answer at this magical juncture in the narrative.
“Well, I do”, I said, “Meet back here in twenty minutes. Sanjay?”
The class wandered out and I conversed with Sanjay. We found the maps I had ordered.
They were an aerial view of the breaking yard and it was split into 6 zones, all a different color. There was one master for the wall and 28 copies for the guys. I also had a log-in/log-out board made. Vertically numbered 1 to 28. There were also 7 vertical bars labeled Zone 1 through Zone 6, and one for ‘in dispose’; i.e., in Latrin-e Land. This was so I’d know where my guys were at all times.
There was a hook for each one of these areas to log in, and to let anyone know where a certain person was during the day or night. You’re number 10? And you’re going to be wielding a torch over in Zone 5? Your brass tag goes right there. You’re going to skip over to Zone 3? Get your ass back here and swap it over to where you’re going. There is no excuse for being where you haven’t said you were, short of active accident or dismemberment.
Everyone shuffles back in and I explain the tote board.
“Notice there’s no spot to leave your brass chit if you’ve gone off the reservation?” I asked. “Why do you suppose that is?”
Confused looks all around.
“Because you keep that brass token with you when you’re not on the job. Lose it, lose your job. Sounds harsh, but so is getting your fucking hands blown off. Think of it as an exercise in discipline.”
There was a very little rebuttal.
“When you are on location, your brass token will reflect where you are. You are off-site, put the brass token in your wallet next to your lucky ‘circular impression’.
There were several knowing grins in my cadets.
Wear it around your neck on a chain. Keep it on your keyring. You can wrap it up in ribbons, you can slip it in your sock; I don’t care. Thing is, it is your ticket to this job. Hold on to it, there will be no replacements. We green?”
“Green, Doctor!”
“Outstanding.”
“Now, locker boxes. Gentlemen”, I continued. “These are your personal boxes that will be archived here. They will contain everything that you will need to carry out the job initially and help you with training the next crew that comes through after I leave. Keep them neat and tidy. I like to pull unannounced locker box inspections, gentlemen. Be forewarned.”
The sound of active scribbling is music to my tinny ears.
“Now, as such”, I continue, “Each locker box, at this point, is identical. Please follow along with me as we do inventory: Each gets locker box will contain (as I pull out the item for identification):
• 1- set Purchase Orders (POs) for PPEs
• 1- Galvanometer
• 2- Blaster’s pliers
• 1- Custom Leatherman
• 1- Metal clipboard
• Various Pens, pencils, paper, etc.
• 5- Sharpies
• 1 copy: Blasters Protocols Handbook, 15th Edition
• 1 copy: Blasting and explosives safety training manual by the IEE.
• 1 copy: Theory and practice of blasting, by Hino (A classic)
• 1 copy: Blasters Handbook, 17th Edition
• Various Explosives catalogs
• 1- Custom Swiss Army Knife
• Several Butane lighters
“Are we in agreement, gentlemen?” I ask. “Please check to be certain you have what the manifest states.”
“As long as we’re going over locker boxes, let’s look at our set of PPE purchase orders. Each locker box will contain POs for:
• 1 pair Orange Nomex coveralls, in your size
• 1 Dax carbon-fibre blaze orange hardhat with ear protection, gold face shield
• 1- CMC Safety 9-point extraction harness with carabiners
• 2- pairs Safety Glasses
• 2- pairs of gloves –wet & dry
• 1- pair Gear Box 8088 hard-toed intrinsically safe 8” work boots
• 1- Silva Orienteering Compass
• 3- pairs of cotton WaterWick socks
• 1- CommsLink™ VHF radio with microphone
• 1- Maglight power flashlight
• 1- Rain suit – also Nomex, bibs and outer shell
• 1- Mini Air Horn Power Tootler
• 1- Pair cotton/Nomex blende underwear – anti-chafe, wifebeateboxer: 3 sets.
• 1- 16-ounce container ‘Babies Bottom’ Talcum powder. Nomex chafes.
“Well, that’s a lot of gear; you best become real familiar with it as soon as you can. You are responsible for your PPEs. Lose them and replace them at your own cost. Wear them out? No problem. We will replace them. Get caught on location without your proper PPEs? Alavida. Goodbye. There is no second try. Fuck up once, and you’re gone. I am here for a limited time to try and teach you characters how to blast boats. I am not here to be your wet-nurse or mother. We green?” I ask.
“YES! Green! Rock!”
“Outstanding!”
We spend about an hour going over the various contents of the locker boxes and I answer general questions about blasting and explosives.
“We will use Primacord by the mile and tons of C-4 primarily. I might introduce you to binary explosives if there’s time. We might also get into PETN and RDX. Dynamite for training. But that’s about it.”
“We will use demolition wire and electrically fired blasting caps and boosters. We might have some time to look at set-pull-forget mechanicochemical fuses. But you’ll all learn some basic electrical wiring and how to design a circuit.”
“Tomorrow, given it doesn’t rain and the creek don’t rise.”
“Time, gentlemen!” I said. It’s been a long day and I’m a bit jet-lagged knackered. Besides, I wanted to give that Jacuzzi a spin.
“OK, remember: get your PPEs tomorrow morning at the Company Store. I expect to see each and every one of you here tomorrow, kitted out and ready to go, at 1300 sharp. That’s it. See you tomorrow. Susandhya. [Good evening.]” I said.
Locker boxes are locked and stowed in an orderly fashion. Each and everyone one of my 24 acolytes come to me before he leaves work to thank me personally and shake my hand.
“This might just work out”, I say to no one in particular.
Sanjay and I head back to the Raj for the night. I’m really tired, finally feeling the jet travel hit, and not the least bit hungry.
However, I do ring up the 214 cigar dude and relieve him of a selection of fine smokes. I drop by the bar for a couple of barley-pops before I retire to my capacious room for the night.
“Sanjay”, I say, “I’m knackered. If anyone wants me, head them off until tomorrow. It can wait. I’m going to get some kip and don’t want to be disturbed. No maids, no Majordomo, no butler. I just want to get unconscious for a while.”
“No problem, Rock”, Sanjay assures me, “I’ll tell them you’ve gone bush and haven’t left a forwarding address.”
“Good man”, I say, patting him on the shoulder. Hell, I must be getting old. Shit like teaching a band of newbies and whooping a little ass would have never as much as caused me a short breath. Then again, it’s probably not the years, it’s really the mileage…
After a quick light breakfast come morning, Sanjay and I are back on location. I’m being given a tour of the place by the day-shift foreman, one Mr. Vikramaditya Shrivastava.
“Yikes”, I say to Sanjay, “You characters really go for your 11-syllable names.”
“Call him ‘Vik’, Rock”, Sanjay smiles, “Good thing you’ve never asked about my last name.”
“Probably is”, I snicker back. I’m not getting roped into this little tussle.
Vik speaks fairly passable English, but I’m still glad Sanjay is here. The first order of business is to see the explosives bunker I sent plans for and how that’s coming along. They tell me it’s almost finished and ready to be stocked with what I’ve ordered.
“Outstanding, let’s have a look,” I say.
Into the Citation Golf Cart, we go. None of this plebian walking shit. We’re MIPs, Monstrously Important People.
Plebes walk, we ride.
We drive around the piles of rusty scrap, huge hunks of bulkhead, and disconcertingly quickly through polychromatic puddles of who-knows-what to slide to a stop in front of a large canvas tent.
Think M *A *S *H-type mess tent.
“What’s this?” I ask, “Commissary? First Aid?”
“No, Dr. Rock”, Vik explains, “Here are your explosives.”
My eyes grow large.
“What do you mean?” I ask. What the fuck do you mean? I mean.
“Building of your bunker is taking more time than we expected what with your design imperatives. But your order was filled most expediently. We are storing it here until the bunker is complete.” He smiles in that inimitable Indian manner that is so irritating when they don’t realize the major fuck-up they’ve just committed.
“OK. Simmer down, Rock.” I say to myself. “Sanjay, ask him again what’s in that tent. That bottomless tent that’s just a sheet of tarpaulin held up by metal poles.”
“He says that’s your explosives order, Rock,” Sanjay says. His demeanor went from perky and helpful to terrified as he saw me turn several shades of crimson and begin to emit wisps of steam.
“Sanjay”, I said in calm, calculated terms. “You are telling me there are over 9 tons of high explosives, blasting caps, boosters, demo wire, and ANFO sitting on wet sand in this heat under a sheet of fucking tarpaulin?”
“Yes?” he stammered, with a squeak.
“OK.”, I said. “We need to keep very calm and not go completely apeshit; and I’m telling you, right now, that’s taking Augean-level effort. We have a situation here, Mr. Sanjay. A very, very dangerous and very deadly situation. Let’s above all, remain calm.”
“Right, Rock”, he replies.
I turn to Vik and say in a calm and collected tone, “YOU STUPID MOTHERFUCKER! WHAT HAVE YOU DONE?
“Calm and collected, right, Rock?” Sanjay smirks and Mr. Vik withers under my verbal assault.
“Sorry, I had to get that one out.”, I apologized, “Mr. Vik. You have created a real blockbuster here. Quite literally. I figured, erroneously it seems, that you would not take delivery of over 9 TONS of high explosives before you had a very safe and secure place to store such.”
“It arrived sooner than we thought. We got a good price on it,” he explained.
You did? Fucking great! Holy mothering fuck!
Now I was even more worried. One does not get discounts or bargain-basement deals on quality high explosives.
“Pray, Mr. Vik”, I entreated, “From where did you source these detonic components?”
“From Best Blast and Supply Llc of Hong Kong Enterprises.” He replied, “Bulk discount quantities, quick delivery bonus. Saved crore rupee.”
No. I was wrong, it could get worse.
Not only 9 tons of high explosives, 9 tons of counterfeit, knock-off, and non-regulated manufacturer explosives.
“OK”, I said, “Let’s take stock here. My bunker isn’t finished yet? Correct? So you and the company meatheads ordered 9 tons of knock-off explosives from some shady and cheesy Chinese dealer and you stored them on wet beach sand, in this heat, under a tarp? Have I got all that right?”
“Oh, yes Doctor Rock.”, he smiled.
“Sanjay”, I said in a low, firm tone, “We have a…situation. We need to cordon this area off and build an exclusion zone as far as we can around it. No one, and I mean no one, gets within what, 10 kilometers? of the tent. This thing goes off, it’s going to leave a much larger than that cone of devastation. Then we need to visit with the management of this place and have a few thousand well-chosen four-letter words. Then I can think about what the fuck we’re going to do about this situation. I’m struggling to remain calm so everyone else will, but this is just a wee bit tetchy. Find me some red flags and start planting them around the tent, working our way out. Let’s go. Calmly, collectively, and with purpose.”
We find a source of 2-meter poles with red pennants. Sanjay also finds a few miles of yellow “Danger: Stay The Fuck Away” tape. We gather then and head back to the tent. We start to spiral out from it planting flags and running tape.
We did the best we could, but we were disrupting daily business activities. Good. Let the head idiots in charge know they’ve fucked up and grandly.
Back at headquarters, I’m fuming. I’m damn mad. I’m loud and being all extremely American about all this.
“You fucking idiots! 9 tons of cheap-shit high explosives? From China? Stored on wet sand in this heat? Under a benchod tarp? Why the flying fuck do you think I sent such detailed plans for a storage bunker? Do you assholes even think?” I railed on like this for at least half an hour, going all Gene Wilder in ‘Young Frankenstein’.
“Yes, Doctor”, one Mr. Karam Kanungo, the local boss and company president said, “That is all true and steps will be taken to redress the situation. But that doesn’t address the issue at hand. What do you suggest?”
“I suggest you are all taken out and given hot coffee high colonics to clear out your thinking processes”, I spit, “But that still leaves us with a nine-ton headache out there waiting to bloom into something even more aggravating.”
The entire assembled board agreed.
I calm down a bit and have a think. Fuck your boardroom, I’m having a cigar.
“You need a licensed, certified, master blaster to go and sort that out. Do you happen to have one handy?” I asked, sweeter than clover honey.
“Ah, yes, you are…oh.”, was the collective realization.
“Yeah, I know. It’s me. I’m the only one that can sort this shit out. We can’t even wait until we find someone from the world to assist. We are sitting on a literal time bomb, gentlemen.” I reply.
They all agreed and were relieved I was going to take on the challenge.
What else could I do? That stuff lights off and we’re talking easily hundreds if not thousands of fatalities and countless injuries. Fuck that. Not on my watch.
I tells ya’ what. The fucking Karma Fairy better shower me with gifts and accolades, blowjobs and candy corn after all this.
In a metaphorical sense, of course.
“OK, Mr. Sanjay, you’re with me.” I say, “Now look, Herr Macs”, I address the collective board, “Before I had carte blanche. Now, if I even think we might need something, it appears. We’ll sort out our honoraria and bonuses for this after we get back.”
Everyone present agreed most hastily. Handshakes all around and apologies from the board cemented the issue.
“OK, Sanjay. I need a bus. At least 24-seater. With a driver than knows how, when, and where to stop. OK?” I ask.
“24, Rock?”, Sanjay asks, “You’re not thinking of including the recruits now, are you?”
“Yes I am, Mr. Sanjay.”, I replied sternly, “On the job training. Meet me at outbuilding #2 at 1300 as per plan. Order a bus and arrange the largest forklift that can manage beach sand, about 100 wooden pallets, plastic wrap, and sandbags. Lots and lots of sandbags. Have them stockpiled away from the tent in a muster area. OK. You got all that?”
“Yes, Rock”, he said, “I’ll be there in a couple of hours. It will only take a few phone calls.”
“Marvelous.”
Not even 1000 in the fucking morning and I’m facing life and death decisions once again. I dig an emergency flask out of my field vest. If this doesn’t qualify as an emergency, what the fuck does?
A tot or two later, I change into my PPEs, and light a cigar. I catch a tap-tap to the region of the tent. I need to reconnoiter the area and figure out what sort of dragon I have to slay and the best way of going about slaughtering the sumbitch.
I’m standing alone, about 250 meters from the tent of death.
I’m puzzling and puzzling; but I can’t allow for my puzzler to go sore. Not this early, anyway.
“OK, me ol’ mucker”, I sigh, “It’s me or thee. Pucker up, Buckwheat. Here I come.”
A blast suit like the ones bomb disposal dudes wear wouldn’t help in the least. All it would do is hold the mashed body parts together to make for easier disposal. I’m anywhere within a kilometer or so of this pile of Chinese counterfeit boom-makers and it decides to let go; I’m lunchmeat. That’s it. Alive one second; kerpow, splat, instantaneously zonked into component particles the next. That’s the long and short of it. No ‘thank you’s. No ‘good bye’s. Just existing here one minute and in an alternate dimension the next.
Doesn't that just take the biscuit? Funny old thing, life.
I trod onwards.
For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
I was walking up to the tent, clearing a path for the forklift. No fucking way I’m schlepping nine tons of dodgy explosives out of here, over wet beach sand, by hand and hoof.
Sand. I’m with young Anakin on this one. I hate sand. I hate walking in dry sand, hiking in wet sand. It makes for a wonderful oil reservoir and I love its porosity and permeability at depth. But at the surface, forget it. Yow! Let me tell you about the time I was out in the Rub al-Khali desert. The great Sand Erg. Wind blowing a force 9 gale! Seif dunes 1,000 meters high…
Yeah. I know. I’m stalling.
I’m approaching the tent. Carefully. I pause to light a new cigar. You might think that daft, but it’s really not. None of the stuff inside is heat-sensitive; let me clarify. None of the stuff is going to go off if hit by errant ash or even a sustained flame. But sitting out in the 30C+ heat? OK, that makes it twitchier. Cigars do the opposite for me. Give me something to concentrate upon and it calms me down.
I need calm now. By the bucketful. Where’s a monsoon when you really need one?
OK, I made it. I’m at the tent. Got to hand it to the workers around here, they respect authority and don’t come anywhere near the tent. They also don’t apparently give a shit as there no crowd gathered filming me with their iPhones to post to You Tube© if the tent decides to go all detonic.
Good. I couldn’t yell anything at them they’d understand to clear out anyway.
I open the hole in the side of the tent and pause. I’m hit with a wave of hot air. And the heady redolence of onions, sewer gas, and dog farts.
Sorry, that’s just me. Weird midnight snack last night. Frozen durian. What a treat.
Anyways.
I smell kerosene. Old wood pulp, like musty magazines. And an undercurrent of almonds.
“Oh, treble fuck me,” I say to no one within 100 square kilometers.
Kerosene is sweaty C-4. Old wood pulp is dynamite. Almonds? My old friend, nitroglycerine.
Things, if possible, went from real to super-uber major-league holy-fuck real.
“OK”, I say, as I dig out my phone and begin to snap pictures at a frantic rate.
Luckily, all the ordnance was piled like-with-like. Blasting caps? All over here. C-4, all along this ‘wall’. Dynamite? All over here. Non-explosives? Right over here.
I was mentally running like a squadron of overclocked Crays, wondering what I need to do to sort out this little situation. I’m so deep in thought, someone would need to throw me a rope to get my attention.
Or, just tap me on the shoulder.
Once I returned from low earth orbit, I turn to see a little wisp of an Indian feller, who had to be at least 27 years Methuselah’s senior.
“What? THE? Actual? Fuck? Are? You? DOING? Here?” I screamed.
“A thousand pardons, Sahib.”, the ancient one said, “I saw you working alone. Salim wonders if you need some help? Salim is good helper. Salim will help you good.”
“Yes, Salim. Oh, hello by the way.”, I said, calming a bit, forcing myself to smile so I didn’t kill him on the spot, “I do need your help. I need you to go, very slowly, out of this tent and to where the flags begin. Stand there and allow access to no one. OK. We green?”
Salim smiles broadly revealing both teeth. I slowly usher him out and remind myself to order a few new pairs of boxers before the day is out.
Back to the problem at hand. There are some salvageable items here. But the most the C-4, all the dynamite and every sack of ANFO has to go. And by ‘go’, I mean be disposed of. How?
By blowing it up, how else?
An idea creeps into my skull. I puff and puff while it grows and finally, I’ve a plan of attack.
I close the tent and slowly walk away. I hand Salim 1000 rupees and tell him that no one, I don’t care if it was Mahatma Gandhi reincarnate, goes anywhere near that tent.
“You savvy?” I ask.
“Oh, Sahib! I savvy! Thank you! Salaam! I savvy!” he is beside himself with joy, 13 bucks, and a task.
I look at my watch. It’s just gone noon. Good. I need a sandwich, some fluid replacement, as I’ve probably literally sweated off 5 kilos in the last hour and a half, and some time to jot down my plans.
I catch a tap-tap, geez, these things are everywhere around here. They form an unsanctioned, but necessary, sort of intradepartmental transport system here. I tip a couple of hundred rupees for every trip. They see blaze orange and they have this Pavlovian reaction. I sometimes need to break up fist-fights over which driver arrived first.
“Commissary”, I say, sit down, let the tap-tap, which is really nothing more than a glorified golf cart, adjust to my Western bulk and away we zip.
Salim is waving to me as we depart.
I shudder to think if I hadn’t had a tot or two and was a bit jumpier from the morning’s caffeine. Here's to alcohol: the cause of, and solution to, all of life's problems.
At the commissary, I grab a tall iced, fruit cocktail juice; a slurry of mixed dragon fruit, kiwi, carambola, blood orange, green apple, watermelon, bitter melon, sweet melon, & bailan melon fruity essence. I’m incredibly thirsty and I need some calories, but not in bulk and not from onion bhajis, mutton kabobs, or something claiming to be grilled chicken on a stick.
The last thing I need today is a case of the trots or even sharp gas pains in the next few hours. I add about 5 fingers of Old Fornicator Vodka to the juice and sip it slowly as my biometric rhythms return from the ionosphere and back to more normal levels.
Remember, I’m EtOh-based. I need to control my various fluid levels very carefully.
The blasting muse is upon me. In less than 30 minutes, I have a plan. Both a written out procedure and a map of what needs to be done.
I finish off another tall, icy glass of potato and various fruit juices, venture outside feeling almost like I’ve once again regained the illusion of control of the situation and my life.
I fire up a heater and decide to walk the approximately 1100 meters to outbuilding #2. I’m thinking as I sashay along; figuring this and calculating that.
I round the corner and see Outbuilding #2 and a bus parked next to it.
The bus looks like a refugee from Sgt. Pepper’s Lonely Hearts Club Band. The movie and album.
I go into Outbuilding #2 and see about half the class has arrived, and they are all kitted out in their new, stiff, and scratchy PPEs.
I nod hello to all and see Sanjay over across the room.
“Mr. Sanjay”, I say, “Nice bus. What’s the story?”
“Only one I could find that was a 24 seater, not actively falling apart, and with an English speaking driver. Rock. Mr. Maha, owneoperator.” He replied.
“Mr. Maha”, I said, shaking his hand. “Love the bus. Some sort of passion project?”
Mr. Maha laughs. “I was city bus driver for 39 years. I retire and go nuts. I buy old bus and fix up mechanicals. Runs all like excellently. Looks like dung heap. I begin to paint and never quite knew when to stop.”
“I like it. Adds a sense of surrealism to the day, as if it really needs more.” I reply, “However, I do hope you know how to stop. I mean that sincerely. We have a literal bomb to defuse. Does that bother you?”
“No, Doctor”, he says, “Nothing much bothers me anymore. I know. You are here. You are to make safe. I feel safe that you’re here. Let us go to work.”
“Outstanding”. I say.
I tell him that a fat bonus will be his when this is all over if all goes to plan.
“Unnecessary.”, he replies, “Mr. Sanjay has already paid me.”
“Paid? Perhaps”, I reply, “You are going to get danger money whether you like it or not.”
“I guess I will like it, Doctor.” He smiles.
“Marvelous.”
I look at the clock, it’s 1256. Almost showtime.
1300 on the spot. I pick up the microphone and address the assembled 24.
“Gentlemen”, I say, “Very good. You all look like late October in the United States. Very festive.” as all are kitted out in their respective PPEs.
“We have a little matter to handle. One that has just cropped up and one you’re certainly not ready for, but I have no other choice. Does that bother anyone here?” I ask.
Head shakes and questions arise.
“OK, class”, I say, “For your first training exercise, we’re going to defuse a 9-ton bomb. Let’s go.”
The collective gasp drew my cigar smoke in another direction, right towards them.
“Doctor…Ah, Rock. Really?” one brave soul asked for the crowd.
“Yes”, I said, “seems your company officials got a ‘real deal’ on some dodgy Chinese explosives. They didn’t wait until they finished the storage bunker I had designed, so they simply set the stuff on the beach and covered it with a canvas tent.”
There were more gasps.
“Indeed”, I said, “We need to neutralize this threat. Sanjay is passing out copies of my plan and designs on just how to do this. Read them over and let me know what you think. You have 5 minutes. We’re out of here at 1330 on the nose.”
They read quickly, cogitated over the plans and as I had assumed, didn’t find any flaws within.
“OK”, I say after an inch of cigar had passed, “You follow my directions, directly and without question, there’s no reason you can’t come out of this alive and happy, free to pursue a life of religious fulfillment.”
There was a chuckle or two at that last line. ‘Airplane’ is such a classic movie.
“Now I know”, I continued, “That this is pretty scary shit. Especially for you guys, being tossed in the deep end like this. I know because I’m scared to death.”
“Oh, Doctor Rock”, one of my acolytes said, “We do not believe this is so.”
“I stay alive by being scared to death”, I replied. “You will learn this as well.”
Sanjay checks out everyone’s PPE and all appear in good order. They are happy to have such nice, new equipment.
And that’s a problem. People used to ragged and ratty shit with which to work will go to extraordinary lengths to not filthy-up brand new working gear. This is one little bugaboo I’m going to settle here and now.
“One thing, gentlemen”, I note, “You all have nice, clean, and new PPEs. You look great. You come back to Outbuilding #2 looking as pristine, you’re gone. Keeping clean is not a part of your training. You’re going to sweat and stink. You keep to clean and it tells me you’re goldbricking, that is, not doing your job.” I say as I surreptitiously unscrew the top of my travel mug, ‘accidentally’ trip and shower the front row with Greenland coffee, lukewarm.
“See?”, I saw, “They were totally protected. That’s what PPEs are all about. We green?”
“Somewhat brown, Rock”, a couple of the guys in the front row reply without a hint of irony.
“Outstanding.”
“Gentlemen, it is time. Take what you think you’ll need and leave the rest in your locker box. Brass tags to Sector 4. On the bus, we leave in 5 minutes.”
I move my brass marker to Zone 4, puff a blue cloud for all to see, and head out to the bus.
We’re loaded and headed to Sector 4 in less than 5 minutes.
“OK”, I say”, I’m going to break you up into groups of 4. Tags number 1 to 4, you’re group 1. 5-8, group 2, and so on. OK?”
All respond in the affirmative.
OK. Six groups of four, Sanjay and me to lead the pack. We roll up to just outside the exclusion zone. With a squeal of brakes, we grind to a halt.
“Outside”, I command, “Assemble in your groups next to the bus. Go!”.
Like a well-oiled team, they de-bus and stand together in 6 groups. Sanjay and I walk along, inspecting the troops.
“OK”, I say, “This may seem like a shit job, but group 4. Back on the bus. To the commissary. Water, juice, and whatever else you think we’ll need to stay hydrated out there. Don’t worry, we’re going on rotation once you get back. You’ll all get a chance to do the exciting stuff. Now, move it.”
I say something to Sanjay, he jots it down in his book, certain to remind me later.
“OK, let’s see. Group 1. Storage detail. Build the temporary in-ground storage locker like it’s shown in the plan. Get help and have them source the manpower and materials. It needs to be done in the next 2 hours. Go!”
There are some explosives that can be salvaged. I need a place to store them. I’ve scouted and laid out a spot away from prying eyes where they can build an 8x8x8 hole in the ground, line it with marine plywood, and store whatever we can salvage. A plywood roof over the thing, a couple of locks, and well, Robert’s your Mother’s Sister’s Husband.
Next, I send group 3 to build a road from the tent to an area on the beach sourced as Disposal Area #1. They will take flags and tape and run a road, of sorts, from the tent to the beach; cordoning it off so we can take the forklift and its loads of dodgy high explosives to the disposal area.
The other groups are doing needful and necessary things as well. I tell Sanjay to keep a lid on things, I’m going to bring the forklift, a few pallets, sandbags and such in for the first run.
I find the forklift, and it’s a huge old Hyster 52-ton truck.
It’ll do.
The keys are in, so I drop in and fire it up. It catches on the first twirl and I pick up a half-dozen wooden pallets, a bunch of sandbags, and a few huge rolls of plastic wrapping. It’s like driving a tank, but it has plenty of power and just a low gear range.
I drive it back to Sector 4 and almost rum over Salim. He was taking my previous orders very seriously, indeed.
“All cool, Salim”, I say over the roar of the forklift, “It’s just me.”
He waves and lets me pass. He’s serious as a heart attack about keeping people out.
I drive and realize that I can’t drive ‘gingerly’ in a conveyance such as this. I can drive deliberately and with forethought, but it rumbles and shudders the ground. Best to slide in, drop the load, and shut her down while I figure out what’s next.
I do so and drop the pallets, etc., just outside the flap of the tent. I back off a few feet, drop the forks, and shut the noisy machine down for the time being.
Sanjay appears. As does Crew #5. I motion them to come over, slowly and with forethought.
We’re all standing outside the tent flap. I raise an index finger, right, of course, to get their attention.
“Gentlemen, first lesson. What says these explosives have gone bad? Answer:” and I open the tent flap.
“Take a whiff. What do you smell?” I instruct.
“Old paper?” was one answer.
“Oil? Petrol? Something petrochemical?” was the next.
“Almonds?” Sanjay says.
“Highest marks. We’ve old C-4. It sweats and smells like kerosene. Old paper or pulp? Dynamite gone wet and bad. Almonds? Bitter, bitter almonds? Nitroglycerine. Yes, guys. We’ve got rogue nitro inside. Anyone want to quit? Now’s your chance.” I ask, being deadly serious.
One looks to another; then they all look to me…eyes wide…
To be continued…
submitted by Rocknocker to Rocknocker [link] [comments]

MAME 0.220

[ Removed by reddit in response to a copyright notice. ]
submitted by cuavas to emulation [link] [comments]

Invisible Object Culling In Quake Related Engines (REVISED)

Prologue
Despite all these great achievements in video cards development and the sworn assurances of developers about drawing 2 to 3 million polygons on screen without a significant FPS drop, it’s not all that rosy in reality. It depends on methods of rendering, on the number of involved textures and on the complexity and number of involved shaders. So even if all this really does ultimately lead to high performance, it only happens in the demos that developerss themselves kindly offer. In these demos, some "spherical dragons in vacuum" made of a good hundred thousand polygons are drawn very quickly indeed. However, the real ingame situation for some reason never looks like this funny dragon from a demo, and as a result many comrades abandon the development of their "Crysis killer" as soon as they can render a single room with a couple of light sources, because for some reason FPS in this room fluctuate around 40-60 even on their 8800GTS and upon creating second room it drops to a whopping 20. Of course with problems like this, it would be incorrect to say how things aren’t that bad and how the trouble of such developers are purely in their absence of correctly implemented culling, and how it is time for them to read this article. But for those who have already overcome “the first room syndrome" and tried to draw – inferior though, but, anyway - the world, this problem really is relevant.
However, it should be borne in mind that QUAKE, written in ancient times, was designed for levels of a “corridor" kind exclusively; therefore methods of clipping discussed in this article are not applicable to landscapes, such as ones from STALKER or Crysis, since completely different methods work there, whose analysis is beyond the scope of this article. Meanwhile we’ll talk about the classic corridor approach to mapping and the effective clipping of invisible surfaces, as well as clipping of entire objects.

The paper tree of baloon leaves

As you probably know, QUAKE uses BSP, Binary Spacing Partition tree. This is a space indexing algorithm, and BSP itself doesn’t care if the space is open or closed, it doesn’t even care if the map is sealed, it can be anything. BSP implies the division of a three-dimensional object into a certain number of secant planes called "the branches" or "the nodes" and volumetric areas or rooms called "the leaves". The names are confusing as you can see. In QUAKE / QUAKE2 the branches usually contain information about the surfaces that this branch contain, and the leaves are an empty space, not filled with nothing. Although sometimes leaves may contain water for example (in a form of a variable that indicates, specifically, that we’ve got water in this leaf). Also, the leaf contains a pointer to the data of potential visibility (Potentially Visible Set, PVS) and a list of all surfaces that are marked as being visible from this leaf. Actually the approach itself implies that we are able to draw our world however we prefer, either using leaves only or using branches only. This is especially noticeable in different versions of QUAKE: for example, in QUAKE1 in a leaf we just mark our surfaces as visible and then we also sequentially go through all the surfaces visible from a particular branch, assembling chains of surfaces to draw them later. But in QUAKE3, we can accumulate visible surfaces no sooner than we’ll get into the leaf itself.
In QUAKE and QUAKE2, all surfaces must lie on the node, which is why the BSP tree grows rather quickly, but in exchange this makes it possible to trace these surfaces by simply moving around the tree, not wasting time to check each surface separately, which affects the speed of the tracer positively. Because of this, unique surface is linked to each node (the original surface is divided into several if necessary) so in the nodes we always have what is known to be visible beforehand, and therefore we can perform a recursive search on the tree using the BBox pyramid of frustum as a direction of our movement along the BSP tree (SV_RecursiveWorldNode function).
In QUAKE3, the tree was simplified and it tries to avoid geometry cuts as much as possible (a BSP tree is not even obliged to cut geometry, such cuts are but a matter of optimality of such a tree). And surfaces in QUAKE3 do not lie on the node because patches and triangle models lie there instead. But what happens would they be put on the node nevertheless, you can see on the example of "The Edge Of Forever" map that I compiled recently for an experimental version of Xash. Turns out, in places that had a couple thousand visible nodes and leaves in the original, there are almost 170 thousand of them with a new tree. And this is the result after all the preliminary optimizations, otherwise it could have been even more, he-he. Yeah, so... For this reason, the tree in QUAKE3 does not put anything on the node and we certainly do need to get into the leaf, mark visible surfaces in it and add them to the rendering list. On the contrary, in QUAKE / QUAKE2 going deep down to the leaf itself is not necessary.
Invisible polygon cutoff (we are talking about world polys, separate game objects will be discussed a bit later) is based on two methods:
The first method is to use bit-vectors of visibility (so-called PVS - Potential Visible Set). The second method is regular frustum culling which actually got nothing to do with BSP but works just as efficiently, for a certain number of conditions of course. Bottom line: together these two methods provide almost perfect clipping of invisible polygons, drawing a very small visible piece out of the vast world. Let's take a closer look at PVS and how it works.

When FIDO users get drunk

Underlying idea of PVS is to expose the fact that one leaf is visible from another. For BSP alone it’s basically impossible because leaves from completely different branches can be visible at the same time and you will never find a way to identify the pattern for leafs from different branches seeing each other - it simply doesn’t exist. Therefore, the compiler has to puff for us, manually checking the visibility of all leaves from all leaves. Information about visibility in this case is scanty: one Boolean variable with possible values 0 and 1. 0 means that leaf is not visible and 1 means that leaf is visible. It is easy to guess that for each leaf there is a unique set of such Boolean variables the size of the total number of leaves on the map. So a set like this but for all the leaves will take an order of magnitude more space: the number of leaves multiplied by the number of leaves and multiplied by the size of our variable in which we will store information of visibility (0 \ 1).
And the number of leaves, as you can easily guess, is determined by map size map and by the compiler, which upon reaching a certain map size, cease to divide the world into leaves and treat resulting node as a leaf. Leaf size vary for different QUAKE. For example, in QUAKE1 leaves are very small. For example I can tell you that the compiler divide standard boxmap in QUAKE1 into as many as four leaves meanwhile in QUAKE3 similar boxmap takes only one leaf. But we digress.
Let's estimate the size of our future PVS file. Suppose we have an average map and it has a couple thousand leaves. Would we imagine that the information about the leaf visibility is stored in a variable of char type (1 byte) then the size of visdata for this level would be, no more no less, almost 4 megabytes. That is, much AF. Of course an average modern developer would shrug and pack the final result into zip archive but back in 1995 end users had modest machines, their memory was low and therefore visdata was packed in “more different” ways. The first step in optimizing is about storing data not in bytes, but in bits. It is easy to guess that such approach reduce final result as much as 8 times and what's typical AF – does it without any resource-intensive algorithms like Huffman trees. Although in exchange, such approach somewhat worsened code usability and readability. Why am I writing this? Due to many developers’ lack of understanding for conditions in code like this:
if ( pvs [ leafnum >> 3 ] & ( 1 << ( leafnum & 7 ) ) ) { } 
Actually, this condition implement simple, beautiful and elegant access to the desired bit in the array (as one can recall, addressing less than one byte is impossible and you can only work with them via bit operations)

Titans that keep the globe spinning

The visible part of the world is cut off in the same fashion: we find the current leaf where the player is located (in QUAKE this is implemented by the Mod_PointInLeaf function) then we get a pointer to visdata for the current leaf (for our convenience, it is linked directly to the leaf in the form of "compressed_vis" pointer) and then stupidly go through all the leaves and branches of the map and check them for being visible from our leaf (this can be seen in the R_MarkLeaves function). As long as some leaves turn out to be visible from the current leaf we assign them a unique number from "r_visframecount" sequence which increases by one every frame. Thus, we emphasize that this leaf is visible when we build the current frame. In the next frame, "r_framecount" is incremented by one and all the leaves are considered invisible again. As one can understand, this is much more convenient and much faster than revisiting all the leaves at the end of each frame and zeroing their "visible" variable. I drew attention to this feature because this mechanism also bothers some and they don’t understand how it works.
The R_RecursiveWorldNode function “walk” along leaves and branches marked this way. It cuts off obviously invisible leaves and accumulate a list of surfaces from visible ones. Of course the first check is done for the equivalence of r_visframecount and visframe for the node in question. Then the branch undergoes frustum pyramid check and if this check fails then we don’t climb further along this branch. Having stumbled upon a leaf, we mark all its surfaces visible the same way, assigning the current r_framecount value to the visframe variable (in the future this will help us to determine quickly whether a certain surface is visible in the current frame). Then, using a simple function, we determine which side we are from the plane of our branch (each branch has its own plane, literally called “plane” in the code) and, again, for now, we just take all surfaces linked to this branch and add them to the drawing chain (so-called “texturechain”), although nobody can actually stop us from drawing them immediately, right there, (in QUAKE1 source code one can see both options) having previously checked these surfaces for clipping with the frustum pyramid, or at least having made sure that the surface faces us.
In QUAKE, each surface has a special flag SURF_PLANEBACK which help us determine the orientation of the surface. But in QUAKE3 there is no such flag anymore, and clipping of invisible surfaces is not as efficient, sending twice as many surfaces for rendering. However, their total number after performing all the checks is not that great. However, whatever one may say, adding this check to Xash3D raised average FPS almost one and half times in comparison to original Half-Life. This is on the matter whether it is beneficial. But we digress.
So after chaining and drawing visible surfaces, we call R_RecursiveWorldNode again but now - for the second of two root branches of BSP tree. Just in case. Because the visible surfaces, too, may well be there. When the recursion ends, the result will either be a whole rendered world, or chains of visible surfaces at least. This is what can actually be sent for rendering with OpenGL or Direct3D, well, if we did not draw our world right in the R_RecursiveWorldNode function of course. Actually this method with minor upgrades successfully used in all three QUAKEs.

A naked man is in a wardrobe because he's waiting for a tram

One of the upgrades is utilization of the so-called areaportals. This is another optimization method coming straight out of QUAKE2. The point of using areaportals is about game logic being able to turn the visibility of an entire sectors on and off at its discretion. Technically, this is achieved as follows: the world is divided into zones similar to the usual partitioning along the BSP tree, however, there can’t be more than 256 of them (later I will explain why) and they are not connected in any way.
Regular visibility is determined just like in QUAKE; however, by installing a special “func_areaportal” entity we can force the compiler to split an area in two. This mechanism operates on approximately the same principle as the algorithm of searching for holes in the map, so you won’t deceive the compiler by putting func_areaportal in a bare field - the compiler will simply ignore it. Although if you make areaportal the size of the cross-section of this field (to the skybox in all directions) in spite of everything the zones will be divided. We can observe this technique in Half-Life 2 where an attempt to return to old places (with cheats for example) shows us disconnected areaportals and a brief transition through the void from one zone to another. Actually, this mechanism helped Half-Life 2 simulate large spaces successfully and still use BSP level structure (I have already said that BSP, its visibility check algorithm to be precise, is not very suitable for open spaces).
So installed areaportal forcibly breaks one zone into two, and the rest of the zoneization is at the discretion of the compiler, which at the same time makes sure not to exceed 256 zones limit, so their sizes can be completely different. Well, I repeat, it depends on the overall size of the map. Our areaportal is connected to some door dividing these two zones. When the door is closed - it turns areaportal off and the zones are separated from each other. Therefore, if the player is not in the cut off zone, then rendering it is not worth it. In QUAKE, we’d have to do a bunch of checks and it’s possible that we could only cut off a fraction of the number of polygons (after all, the door itself is not an obstacle for either visibility check, or even more so, nor it is for frustum). Compare to case in point: one command is issued - and the whole room is excluded from visibility. “Not bad,” you’d say, “but how would the renderer find out? After all, we performed all our operations on the server and the client does not know anything about it.” And here we go back to the question why there can’t be more than 256 zones.
The point is, information about all of zone visibility is, likewise, packaged in bit flags (like PVS) and transmitted to the client in a network message. Dividing 256 bits by 8 makes 32 bytes, which generally isn’t that much. In addition, the tail of this information can be cut off at ease if it contains zeroes only. Though the payback for such an optimization would appear as an extra byte that will have to be transmitted over the network to indicate the actual size of the message about the visibility of our zones. But, in general, this approach justified.

Light_environment traces enter from the back

Source Engine turned out to have a terrible bug which makes the whole areaportal thing nearly meaningless. Numerous problems arise because of it: water breaks down into segments that pop in, well, you should be familiar with all this by now. Areaportal cuts the geometry unpredictably, like an ordinary secant plane, but its whole point is being predictable! Whereas areaportal brushes in Source Engine have absolutely no priority in splitting the map. It should be like this: first, the tree is cut the regular way. And when no suitable planes left, the final secant plane of areaportal is used. This is the only way to cut the sectors correctly.

Modern problems

The second optimization method, as I said, is increased size of the final leaf akin to QUAKE3. It is believed that a video card would draw a certain amount of polygons much faster than the CPU would check whether they are visible. This come from the very concept of visibility check: if visibility check takes longer than direct rendering, then well, to hell with this check. The controversy of this approach is determined by a wide range of video cards present at the hands of the end users, and it is strongly determined by the surging fashion for laptops and netbooks in which a video card is a very conditional and very weak concept (don’t even consider its claimed Shader Model 3 support). Therefore, for desktop gaming machines it would be more efficient to draw more at a time, but for weak video cards of laptops traditional culling will remain more reliable. Even if it is such a simple culling as I described earlier.

Decompression sickness simulator

Although I should also mention the principles of frustum culling, perhaps they are incomprehensible to some. Cutoff by frustum pyramid is actually pure mathematics without any compiler calculations. From the current direction of the player’s gaze, a clipping pyramid is built (the tip of the pyramid – in case someone can’t understand - is oriented towards the player’s point of view and its base is oriented in the direction of player’s view). The angle between the walls of the pyramid can be sharp or blunt - as you probably guessed already, it depends on the player's FOV. In addition, the player can forcefully pull the far wall of the pyramid closer to himself (yes, this is the notorious “MaxRange” parameter in the “worldspawn” menu of the map editor). Of course, OpenGL also builds a similar pyramid for its internal needs when it takes information from the projection matrix but we’re talking local pyramid now. The finished pyramid consists of 4-6 planes (QUAKE uses only 4 planes and trusts OpenGL to independently cut far and near polygons, but if you write your own renderer and intend to support mirrors and portals you will definitely need all six planes). Well, the frustum test itself is an elementary check for a presence of AA-box (AABB, Axis Aligned Bounding Box) in the frustum pyramid. Or speaking more correctly, this is a check for their intersection. Let me remind you that each branch has its own dimensions (a fragment of secant plane bound by neighboring perpendicular secant planes) which are checked for intersection. But unfortunately the frustum test has one fundamental drawback - it cannot cut what is directly in the player’s view. We can adjust the cutoff distance, we can even make that “ear feint” like they do in QFusion where final zFar value is calculated in each frame before rendering and then taken into account in entity clipping, but after all, whatever they say, the value itself was obtained from PVS-information. Therefore, neither of two methods can replace the other but they just complement each other. This should be remembered.

I gotta lay off the pills I'm taking

It seems that we figured out the rendering of the world and now we are moving on smoothly to cutting off moving objects... which are all the visible objects in the world! Even ones that, at te first glance, stand still and aren’t planning to move anywhere. Cause the player moves! From one point he still sees a certain static object, and from another point, of course, he no longer does. This detail should also be considered.
Actually, at the beginning of this article I already spoke in detail about an algorithm of objects’ visibility check: first we find the visible leaf for the player, then we find the visible leaf for the entity and then we check by visdata whether they see each other. I, too, would like to clarify (if someone suddenly does not understand) how each moving entity is given the number of its current visible leaf, i.e. directly for entity’s its own current position, and the leaves themselves are of course static and always in the same place.

Ostrich is such an OP problem solver

So the method described above has two potential problems:
The first problem is that even if A equals B, then, oddly enough, B is far from being always equal A. In other words, entity A can see entity B, but this does not mean that entity B see entity A, and, no, it’s not about one of them “looking” away. So why is this happening? Most often for two reasons:
The first reason is that one of the entities’ ORIGIN sit tight inside the wall and the Mod_PointInLeaf function for it points to the outer “zero” leaf from which EVERYTHING is visible (haven’t any of you ever flown around the map?). Meanwhile, no leaf inside the map can see outer leaf - these two features actually explain an interesting fact of an entire world geometry becoming visible and on the contrary, all objects disappearing when you fly outside the map. In regular mode, similar problems can occur for objects attached to the wall or recessed into the wall. For example, sometimes the sounds of a pressed button or opening door disappear because its current position went beyond the world borders. This phenomenon is fought by interchanging objects A and B or by obtaining alternative points for the position of an object, but all the same, it’s all not very reliable.

But lawyer said that you don't exist

In addition, as I said, there is another problem. It come from the fact that not every entity fits a single leaf. Only the player is so small that he can always be found in one leaf only (well, in the most extreme case - in two leaves on the border of water and air. This phenomenon is fought with various hacks btw), but some giant hentacle or on the contrary, an elevator made as a door entity, can easily occupy 30-40 leaves at a time. An attempt to check one leaf (for example, one where the center of the model is) will inevitably lead to a deplorable result: as soon as the center of an object will be out of the player’s visibility range, the entire object will disappear completely. The most common case is the notorious func_door used as an elevator. There is one in QUAKE on the E1M1. Observe: it travels halfway and then its ORIGIN is outside the map and therefore it must disappear from the player’s field of view. However, it does not go anywhere, right? Let us see in greater detail how this is done.
The simplest idea that comes to one’s mind: since the object occupies several leaves, we have to save them all somewhere in the structure of an object in the code and check them one by one. If at least one of these leaves is visible, then the whole object is visible (for example, it’s very tip). This is exactly what was implemented in QUAKE: a static array for 16 leaves and a simple recursive function SV_FindTouchedLeafs that looks for all the leaves in range hardcoded in "pev->absmins" and "pev->absmax" variables (pev i.e. a Pointer to EntVars_t table). absmins and absmax are recalculated each time SV_LinkEdict (or its more specific case of UTIL_SetOrigin) is called. Hence the quite logical conclusion that a simple change of ORIGIN without recalculating its visible leaf will take the object out of visibility sooner or later even if, surprisingly enough, it’s right in front of the player and the player should technically still be able to see it. Inb4 why one have to call UTIL_SetOrigin and wouldn’t it be easier to just assign new value to the "pev->origin" vector without calling this function. It wouldn’t.
With this method we can solve both former problems perfectly: we can fight the loss of visibility if the object's ORIGIN went beyond the world borders and level the difference of visibility for A->B versus visibility for B->A.

A secret life of monster_tripmine

Actually we’ve yet to encounter another problem, but it does not occur immediately. Remember, we’ve got an array of 16 leaves. But what if it won’t be enough? Thank God there are no beams in QUAKE and no very long elevators made as func_door either. For this exact reason. Because when the array is filled to capacity, the SV_FindTouchedLeafs function just stop and we can only hope that there won’t be that many cases when an object disappear right before our eyes. But in the original QUAKE, such cases may well be. In Half-Life, the situation is even worse - as you can remember there are rays that can reach for half the map, tripmine rays for example. In this case, a situation may occur when we see just the very tip of the ray. For most of these rays, 16 leaves are clearly not enough. Valve tried to remedy the situation by increasing the array to 48 leaves. That helped. On early maps. If you remember, at the very beginning of the game when the player has already got off the trailer, he enters that epic elevator that takes him down. The elevator is made as a door entity and it occupies 48 leaves exactly. Apparently, the final expansion of the array was based after its dimensions. Then the programmers realized that this isn’t really a solution, because no matter how much one would expand the array, it can still be lacking for something. So then they screwed up an alternative method for visibility check: a head branch (headnode) check. In short, this is still the same SV_FindTouchedLeafs but now it is called directly from the place of visibility check and with a subsequent transfer of visdata in there. In general, it is not used very often because it is slower than checking pre-accumulated leaves, that is, it is intended just for such non-standard cases like this one.
Well, and since, I hope, general picture of the clipping mechanism already beginning to take shape in your mind, I will finish the article in just a few words.
On the server, all objects that have already passed the visibility check are added to the network message containing information about visible objects. Thus, on the client, the list of visible entities is already cut off by PVS and we do not have to do this again and therefore a simple frustum check is enough. You ask, "why did we have to cut off invisible objects on the server when we could do this later when we are on the client already?" I reply: yes, we could, but now the objects cut off on the server didn’t get into the network message and saved us some traffic. And since the player still does not see them, what is the point of transferring them to the client just to check them for visibility after? This is a kind of double optimizing :)
© Uncle Mike 2012
submitted by crystallize1 to hammer [link] [comments]

MAME 0.219

MAME 0.219

MAME 0.219 arrives today, just in time for the end of February! This month we’ve got another piece of Nintendo Game & Watch history – Pinball – as well as a quite a few TV games, including Dream Life Superstar, Designer’s World, Jenna Jameson’s Strip Poker, and Champiyon Pinball. The previously-added Care Bears and Piglet’s Special Day TV games are now working, as well as the big-endian version of the MIPS Magnum R4000. As always, the TV games vary enormously in quality, from enjoyable titles, to low-effort games based on licensed intellectual properties, to horrible bootlegs using blatantly copied assets. If music/rhythm misery is your thing, there’s even a particularly bad dance mat game in there.
On the arcade side, there are fixes for a minor but long-standing graphical issue in Capcom’s genre-defining 1942, and also a fairly significant graphical regression in Seibu Kaihatsu’s Raiden Fighters. Speaking of Seibu Kaihatsu, our very own Angelo Salese significantly improved the experience in Good E-Jan, and speaking of graphics fixes, cam900 fixed some corner cases in Data East’s innovative, but little-known, shoot-’em-up Boogie Wings. Software list additions include the Commodore 64 INPUT 64 collection (courtesy of FakeShemp) and the Spanish ZX Spectrum Load’N’Run collection (added by ICEknight). New preliminary CPU cores and disassemblers include IBM ROMP, the NEC 78K family, Samsung KS0164 and SSD Corp’s Xavix 2.
As always, you can get the source and 64-bit Windows binary packages from the download page.

MAME Testers Bugs Fixed

New working machines

New working clones

Machines promoted to working

Clones promoted to working

New machines marked as NOT_WORKING

New clones marked as NOT_WORKING

New working software list additions

Software list items promoted to working

New NOT_WORKING software list additions

Source Changes

submitted by cuavas to emulation [link] [comments]

Binary.com - Secret Higher/Lower - Binary Options Strategy ... How to Start Trading Binary Options with HighLow Markets Binary com tick reader mt4 higher lower strategy option ...

High/Low – They had to offer these didn’t they? The standard binary trade – will the asset value finish higher or lower than the current price. Expiries range from 15 minutes up to ‘End of Day’ expiries. High/Low Spread – As above, but the difference is in the payout and strike price. Payouts on the ‘spread’ options are 100% ... HighLow Binary Options demo account is an important part of the company’s offer discussed in our HighLow Binary Options Review and will provide you with 10,000 virtual US dollars and a vast selection of trading options. Four trading modes, each with several different expiration times, will make sure you get as close as possible to the real trading experience. Graphs for each available Highlow binary options demo. Geschrieben von am 7. Oktober 2020. Veröffentlicht in Allgemein. Schreibe einen Kommentar. Highlow Binary Options Demo ... A binary options demo account is an opportunity for the client to use the broker’s platform for free over a certain period of time (or indefinitely). The broker will usually also provide the client with “demo money” which can be used to place trades as if they were live funds. If you are new to binary options, demo accounts can be a great place to start. While you may understand the concept of trading, actual trading with real money can be a daunting prospect. For the inexperienced trader risking your own money can be a nervous time and as such we highly recommend using a demo before you feel confident trading real money. Not only is it an excellent plan to start ... I want to create an account with High Low Binary Options but then I discovered that you do not have Namibia on the list of countries from which people can open accounts. Please assist me open an account. I am from Namibia. 0. Reply. Author. John Kane. 1 year ago. Reply to [email protected] . I recommend contacting the broker directly. I have no direct association with HighLow so this is not ... High/Low is the most basic type of binary options trade. Turbo is the short-term version of it. You will also notice that there are additional tree types called High/Low Spread and Turbo Spread. These are essentially the same, except that as the name implies, you pay a spread when you place these trades. Doing so allows you to receive a higher payout should you win—up to 200%. These high ... Videos provide the best way for traders new to binary options to see exactly what they are, how they work and how to start trading. On this page, we have listed a range of useful demo videos. They start explaining the very basics of binary trading and broker platforms, and move on to more advanced topics, such as specific strategies, technical analysis and managing trading funds. This is quite unusual for a binary options broker and as such, offers a great deal of credibility to the broker. While these are important aspects for a broker, it can be difficult for traders to make a decision solely based on these features. In fact, it can be quite confusing to choose a particular broker without understanding what they or their trading platform have to offer. This is one of ... HighLow is one of the rare binary options brokers that allow traders to start using demo account even before they make ... HighLow is supported with High/Low, Highlow Spread, Turbo and Turbo Speed options. Every of those options is equipped with different expiry times and assets. HighLow allows traders to choose between: 30 seconds; 1, 3, 5 minutes; 15 minutes; One hour; One day; Traders are ...

[index] [16779] [8666] [16571] [5761] [12031] [15769] [27187] [5618] [20717] [4935]

Binary.com - Secret Higher/Lower - Binary Options Strategy ...

The payouts on High/Low options are 90% on average, which is the best offer we know of so far. If you trade Spreads, your profit could even be 100% on a successful trade. You must know, however ... - Binary com tick reader mt4 higher lower option hacks ... Core Liquidity Markets Review & Setup Tutorial + 'No Deposit' Binary Options Demo on MT4 by Real Binary Options Reviews. 12:33 . Binary ... Open VIRTUAL money demo account Binary.com - http://goo.gl/y45Lng https://www.youtube.com/playlist?list=PLZHwIefz6SHbX1dk7d... https://www.youtube.com/playlist?list=PLZHwIefz6SHbMrqMhb... Binary.com - Secret Higher/Lower - Binary Options Strategy You Can Download The Latest Bot / Signal Vfxalert Please Click on The link below! Contact Telegram... The HighLow Option type is a conventional Binary option showing the mid price and offering payouts of between 175% to 190% on your investment. Learn how to trade HighLow with this easy to follow ...

https://binary-optiontrade.dodgwestceallea.cf